rake_fly 2.10.0.pre.1 → 2.10.0.pre.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +2 -0
- data/Gemfile.lock +39 -10
- data/Rakefile +67 -45
- data/bin/console +4 -3
- data/lib/rake_fly/kernel_extensions.rb +2 -0
- data/lib/rake_fly/task_sets/authentication.rb +13 -8
- data/lib/rake_fly/task_sets/pipeline.rb +20 -16
- data/lib/rake_fly/task_sets/project.rb +79 -69
- data/lib/rake_fly/task_sets.rb +2 -0
- data/lib/rake_fly/tasks/authentication/ensure.rb +23 -15
- data/lib/rake_fly/tasks/authentication/login.rb +40 -20
- data/lib/rake_fly/tasks/pipeline/destroy.rb +28 -21
- data/lib/rake_fly/tasks/pipeline/get.rb +26 -19
- data/lib/rake_fly/tasks/pipeline/push.rb +12 -10
- data/lib/rake_fly/tasks/pipeline/set.rb +28 -21
- data/lib/rake_fly/tasks/pipeline/unpause.rb +23 -16
- data/lib/rake_fly/tasks.rb +2 -0
- data/lib/rake_fly/version.rb +3 -1
- data/lib/rake_fly.rb +103 -57
- data/rake_fly.gemspec +65 -0
- metadata +70 -26
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'ruby_fly'
|
2
4
|
require 'rake_factory'
|
3
5
|
require 'concourse'
|
@@ -7,39 +9,45 @@ module RakeFly
|
|
7
9
|
module Authentication
|
8
10
|
class Ensure < RakeFactory::Task
|
9
11
|
default_name :ensure
|
10
|
-
default_prerequisites
|
12
|
+
default_prerequisites(RakeFactory::DynamicValue.new do |t|
|
11
13
|
[t.fly_ensure_task_name]
|
12
|
-
|
13
|
-
default_description
|
14
|
+
end)
|
15
|
+
default_description(RakeFactory::DynamicValue.new do |t|
|
14
16
|
target = t.target || '<derived>'
|
15
17
|
|
16
18
|
"Ensure logged in for target #{target}"
|
17
|
-
|
19
|
+
end)
|
18
20
|
|
19
21
|
parameter :target, required: true
|
20
22
|
|
21
23
|
parameter :home_directory,
|
22
|
-
|
24
|
+
default: RakeFactory::DynamicValue.new { |_|
|
25
|
+
Dir.home
|
26
|
+
}
|
23
27
|
|
24
|
-
parameter :login_task_name, :
|
28
|
+
parameter :login_task_name, default: :login
|
25
29
|
|
26
|
-
parameter :fly_ensure_task_name, :
|
30
|
+
parameter :fly_ensure_task_name, default: :'fly:ensure'
|
27
31
|
|
28
32
|
action do |t, args|
|
29
|
-
puts
|
33
|
+
$stdout.puts("Ensuring target #{t.target} is logged in...")
|
34
|
+
|
35
|
+
FileUtils.mkdir_p(t.home_directory)
|
36
|
+
|
30
37
|
status = RubyFly.status(
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
38
|
+
target: t.target,
|
39
|
+
environment: {
|
40
|
+
'HOME' => t.home_directory
|
41
|
+
}
|
42
|
+
)
|
35
43
|
if status == :logged_in
|
36
|
-
puts
|
44
|
+
$stdout.puts('Already logged in. Continuing...')
|
37
45
|
else
|
38
|
-
puts
|
46
|
+
$stdout.puts('Not logged in. Logging in...')
|
39
47
|
t.application[t.login_task_name, t.scope].invoke(*args)
|
40
48
|
end
|
41
49
|
end
|
42
50
|
end
|
43
51
|
end
|
44
52
|
end
|
45
|
-
end
|
53
|
+
end
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'ruby_fly'
|
2
4
|
require 'rake_factory'
|
3
5
|
require 'concourse'
|
@@ -13,14 +15,15 @@ module RakeFly
|
|
13
15
|
|
14
16
|
def execute(task)
|
15
17
|
RubyFly.login(
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
18
|
+
target: task.target,
|
19
|
+
concourse_url: task.concourse_url,
|
20
|
+
username: task.username,
|
21
|
+
password: task.password,
|
22
|
+
team: task.team,
|
23
|
+
environment: {
|
24
|
+
'HOME' => task.home_directory
|
25
|
+
}
|
26
|
+
)
|
24
27
|
end
|
25
28
|
end
|
26
29
|
|
@@ -30,12 +33,22 @@ module RakeFly
|
|
30
33
|
end
|
31
34
|
|
32
35
|
def execute(task)
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
+
save_target(task, fetch_token(task))
|
37
|
+
end
|
38
|
+
|
39
|
+
private
|
40
|
+
|
41
|
+
def fetch_token(task)
|
42
|
+
Concourse::Client
|
43
|
+
.new(url: task.concourse_url)
|
44
|
+
.for_skymarshal
|
45
|
+
.create_token(
|
36
46
|
username: task.username,
|
37
|
-
password: task.password
|
47
|
+
password: task.password
|
48
|
+
)
|
49
|
+
end
|
38
50
|
|
51
|
+
def save_target(task, token)
|
39
52
|
rc = RubyFly::RC.load(home: task.home_directory)
|
40
53
|
rc.add_or_update_target(task.target) do |target|
|
41
54
|
target.api = task.concourse_url
|
@@ -47,15 +60,15 @@ module RakeFly
|
|
47
60
|
end
|
48
61
|
|
49
62
|
default_name :login
|
50
|
-
default_prerequisites
|
63
|
+
default_prerequisites(RakeFactory::DynamicValue.new do |t|
|
51
64
|
t.backend.new.resolve_prerequisites(t)
|
52
|
-
|
53
|
-
default_description
|
65
|
+
end)
|
66
|
+
default_description(RakeFactory::DynamicValue.new do |t|
|
54
67
|
concourse_url = t.concourse_url || '<derived>'
|
55
68
|
target = t.target || '<derived>'
|
56
69
|
|
57
70
|
"Login to #{concourse_url} as target #{target}"
|
58
|
-
|
71
|
+
end)
|
59
72
|
|
60
73
|
parameter :concourse_url, required: true
|
61
74
|
parameter :team, default: 'main'
|
@@ -66,15 +79,22 @@ module RakeFly
|
|
66
79
|
parameter :backend, default: ApiBackend
|
67
80
|
|
68
81
|
parameter :home_directory,
|
69
|
-
|
82
|
+
default: RakeFactory::DynamicValue.new { |_|
|
83
|
+
Dir.home
|
84
|
+
}
|
70
85
|
|
71
|
-
parameter :fly_ensure_task_name, :
|
86
|
+
parameter :fly_ensure_task_name, default: :'fly:ensure'
|
72
87
|
|
73
88
|
action do |t|
|
74
|
-
puts
|
89
|
+
$stdout.puts(
|
90
|
+
"Logging in to #{t.concourse_url} as target #{t.target}..."
|
91
|
+
)
|
92
|
+
|
93
|
+
FileUtils.mkdir_p(t.home_directory)
|
94
|
+
|
75
95
|
t.backend.new.execute(t)
|
76
96
|
end
|
77
97
|
end
|
78
98
|
end
|
79
99
|
end
|
80
|
-
end
|
100
|
+
end
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'ruby_fly'
|
2
4
|
require 'rake_factory'
|
3
5
|
|
@@ -6,41 +8,46 @@ module RakeFly
|
|
6
8
|
module Pipeline
|
7
9
|
class Destroy < RakeFactory::Task
|
8
10
|
default_name :destroy
|
9
|
-
default_prerequisites
|
11
|
+
default_prerequisites(RakeFactory::DynamicValue.new do |t|
|
10
12
|
[t.fly_ensure_task_name, t.authentication_ensure_task_name]
|
11
|
-
|
12
|
-
default_description
|
13
|
+
end)
|
14
|
+
default_description(RakeFactory::DynamicValue.new do |t|
|
13
15
|
pipeline = t.pipeline || '<derived>'
|
14
16
|
target = t.target || '<derived>'
|
15
|
-
|
17
|
+
|
16
18
|
"Destroy pipeline #{pipeline} for target #{target}"
|
17
|
-
|
18
|
-
|
19
|
-
parameter :target, :
|
19
|
+
end)
|
20
|
+
|
21
|
+
parameter :target, required: true
|
20
22
|
parameter :team
|
21
|
-
parameter :pipeline, :
|
23
|
+
parameter :pipeline, required: true
|
22
24
|
|
23
25
|
parameter :non_interactive
|
24
26
|
|
25
27
|
parameter :home_directory,
|
26
|
-
|
28
|
+
default: RakeFactory::DynamicValue.new { |_|
|
29
|
+
Dir.home
|
30
|
+
}
|
27
31
|
|
28
|
-
parameter :fly_ensure_task_name, :
|
32
|
+
parameter :fly_ensure_task_name, default: :'fly:ensure'
|
29
33
|
parameter :authentication_ensure_task_name,
|
30
|
-
|
31
|
-
|
34
|
+
default: :'authentication:ensure'
|
35
|
+
|
32
36
|
action do |t|
|
33
|
-
puts
|
37
|
+
$stdout.puts(
|
38
|
+
"Destroying pipeline #{t.pipeline} for target #{t.target}..."
|
39
|
+
)
|
34
40
|
RubyFly.destroy_pipeline(
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
41
|
+
target: t.target,
|
42
|
+
team: t.team,
|
43
|
+
pipeline: t.pipeline,
|
44
|
+
non_interactive: t.non_interactive,
|
45
|
+
environment: {
|
46
|
+
'HOME' => t.home_directory
|
47
|
+
}
|
48
|
+
)
|
42
49
|
end
|
43
50
|
end
|
44
51
|
end
|
45
52
|
end
|
46
|
-
end
|
53
|
+
end
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'ruby_fly'
|
2
4
|
require 'rake_factory'
|
3
5
|
|
@@ -6,36 +8,41 @@ module RakeFly
|
|
6
8
|
module Pipeline
|
7
9
|
class Get < RakeFactory::Task
|
8
10
|
default_name :get
|
9
|
-
default_prerequisites
|
11
|
+
default_prerequisites(RakeFactory::DynamicValue.new do |t|
|
10
12
|
[t.fly_ensure_task_name, t.authentication_ensure_task_name]
|
11
|
-
|
12
|
-
default_description
|
13
|
+
end)
|
14
|
+
default_description(RakeFactory::DynamicValue.new do |t|
|
13
15
|
pipeline = t.pipeline || '<derived>'
|
14
16
|
target = t.target || '<derived>'
|
15
|
-
|
17
|
+
|
16
18
|
"Get pipeline #{pipeline} for target #{target}"
|
17
|
-
|
18
|
-
|
19
|
-
parameter :target, :
|
20
|
-
parameter :pipeline, :
|
19
|
+
end)
|
20
|
+
|
21
|
+
parameter :target, required: true
|
22
|
+
parameter :pipeline, required: true
|
21
23
|
|
22
24
|
parameter :home_directory,
|
23
|
-
|
25
|
+
default: RakeFactory::DynamicValue.new { |_|
|
26
|
+
Dir.home
|
27
|
+
}
|
24
28
|
|
25
|
-
parameter :fly_ensure_task_name, :
|
29
|
+
parameter :fly_ensure_task_name, default: :'fly:ensure'
|
26
30
|
parameter :authentication_ensure_task_name,
|
27
|
-
|
28
|
-
|
31
|
+
default: :'authentication:ensure'
|
32
|
+
|
29
33
|
action do |t|
|
30
|
-
puts
|
34
|
+
$stdout.puts(
|
35
|
+
"Getting pipeline #{t.pipeline} for target #{t.target}..."
|
36
|
+
)
|
31
37
|
RubyFly.get_pipeline(
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
38
|
+
target: t.target,
|
39
|
+
pipeline: t.pipeline,
|
40
|
+
environment: {
|
41
|
+
'HOME' => t.home_directory
|
42
|
+
}
|
43
|
+
)
|
37
44
|
end
|
38
45
|
end
|
39
46
|
end
|
40
47
|
end
|
41
|
-
end
|
48
|
+
end
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'ruby_fly'
|
2
4
|
require 'rake_factory'
|
3
5
|
|
@@ -6,25 +8,25 @@ module RakeFly
|
|
6
8
|
module Pipeline
|
7
9
|
class Push < RakeFactory::Task
|
8
10
|
default_name :push
|
9
|
-
default_description
|
11
|
+
default_description(RakeFactory::DynamicValue.new do |t|
|
10
12
|
pipeline = t.pipeline || '<derived>'
|
11
13
|
target = t.target || '<derived>'
|
12
14
|
|
13
15
|
"Push pipeline #{pipeline} to target #{target}"
|
14
|
-
|
16
|
+
end)
|
15
17
|
|
16
|
-
parameter :target, :
|
17
|
-
parameter :pipeline, :
|
18
|
+
parameter :target, required: true
|
19
|
+
parameter :pipeline, required: true
|
18
20
|
|
19
|
-
parameter :get_task_name, :
|
20
|
-
parameter :set_task_name, :
|
21
|
-
parameter :unpause_task_name, :
|
21
|
+
parameter :get_task_name, default: :get
|
22
|
+
parameter :set_task_name, default: :set
|
23
|
+
parameter :unpause_task_name, default: :unpause
|
22
24
|
|
23
25
|
action do |t, args|
|
24
26
|
[
|
25
|
-
|
26
|
-
|
27
|
-
|
27
|
+
t.application[t.set_task_name, t.scope],
|
28
|
+
t.application[t.get_task_name, t.scope],
|
29
|
+
t.application[t.unpause_task_name, t.scope]
|
28
30
|
].each do |task|
|
29
31
|
task.invoke(*args)
|
30
32
|
end
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'ruby_fly'
|
2
4
|
require 'rake_factory'
|
3
5
|
|
@@ -6,45 +8,50 @@ module RakeFly
|
|
6
8
|
module Pipeline
|
7
9
|
class Set < RakeFactory::Task
|
8
10
|
default_name :set
|
9
|
-
default_prerequisites
|
11
|
+
default_prerequisites(RakeFactory::DynamicValue.new do |t|
|
10
12
|
[t.fly_ensure_task_name, t.authentication_ensure_task_name]
|
11
|
-
|
12
|
-
default_description
|
13
|
+
end)
|
14
|
+
default_description(RakeFactory::DynamicValue.new do |t|
|
13
15
|
pipeline = t.pipeline || '<derived>'
|
14
16
|
target = t.target || '<derived>'
|
15
17
|
|
16
18
|
"Set pipeline #{pipeline} for target #{target}"
|
17
|
-
|
19
|
+
end)
|
18
20
|
|
19
|
-
parameter :target, :
|
21
|
+
parameter :target, required: true
|
20
22
|
parameter :team
|
21
|
-
parameter :pipeline, :
|
22
|
-
parameter :config, :
|
23
|
+
parameter :pipeline, required: true
|
24
|
+
parameter :config, required: true
|
23
25
|
|
24
26
|
parameter :vars
|
25
27
|
parameter :var_files
|
26
28
|
parameter :non_interactive
|
27
29
|
|
28
30
|
parameter :home_directory,
|
29
|
-
|
31
|
+
default: RakeFactory::DynamicValue.new { |_|
|
32
|
+
Dir.home
|
33
|
+
}
|
30
34
|
|
31
|
-
parameter :fly_ensure_task_name, :
|
35
|
+
parameter :fly_ensure_task_name, default: :'fly:ensure'
|
32
36
|
parameter :authentication_ensure_task_name,
|
33
|
-
|
37
|
+
default: :'authentication:ensure'
|
34
38
|
|
35
39
|
action do |t|
|
36
|
-
puts
|
40
|
+
$stdout.puts(
|
41
|
+
"Setting pipeline #{t.pipeline} for target #{t.target}..."
|
42
|
+
)
|
37
43
|
RubyFly.set_pipeline(
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
44
|
+
target: t.target,
|
45
|
+
team: t.team,
|
46
|
+
pipeline: t.pipeline,
|
47
|
+
config: t.config,
|
48
|
+
vars: t.vars,
|
49
|
+
var_files: t.var_files,
|
50
|
+
non_interactive: t.non_interactive,
|
51
|
+
environment: {
|
52
|
+
'HOME' => t.home_directory
|
53
|
+
}
|
54
|
+
)
|
48
55
|
end
|
49
56
|
end
|
50
57
|
end
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'ruby_fly'
|
2
4
|
require 'rake_factory'
|
3
5
|
|
@@ -6,36 +8,41 @@ module RakeFly
|
|
6
8
|
module Pipeline
|
7
9
|
class Unpause < RakeFactory::Task
|
8
10
|
default_name :unpause
|
9
|
-
default_prerequisites
|
11
|
+
default_prerequisites(RakeFactory::DynamicValue.new do |t|
|
10
12
|
[t.fly_ensure_task_name, t.authentication_ensure_task_name]
|
11
|
-
|
12
|
-
default_description
|
13
|
+
end)
|
14
|
+
default_description(RakeFactory::DynamicValue.new do |t|
|
13
15
|
pipeline = t.pipeline || '<derived>'
|
14
16
|
target = t.target || '<derived>'
|
15
17
|
|
16
18
|
"Unpause pipeline #{pipeline} for target #{target}"
|
17
|
-
|
19
|
+
end)
|
18
20
|
|
19
|
-
parameter :target, :
|
21
|
+
parameter :target, required: true
|
20
22
|
parameter :team
|
21
|
-
parameter :pipeline, :
|
23
|
+
parameter :pipeline, required: true
|
22
24
|
|
23
25
|
parameter :home_directory,
|
24
|
-
|
26
|
+
default: RakeFactory::DynamicValue.new { |_|
|
27
|
+
Dir.home
|
28
|
+
}
|
25
29
|
|
26
|
-
parameter :fly_ensure_task_name, :
|
30
|
+
parameter :fly_ensure_task_name, default: :'fly:ensure'
|
27
31
|
parameter :authentication_ensure_task_name,
|
28
|
-
|
32
|
+
default: :'authentication:ensure'
|
29
33
|
|
30
34
|
action do |t|
|
31
|
-
puts
|
35
|
+
$stdout.puts(
|
36
|
+
"Unpausing pipeline #{t.pipeline} for target #{t.target}..."
|
37
|
+
)
|
32
38
|
RubyFly.unpause_pipeline(
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
+
target: t.target,
|
40
|
+
team: t.team,
|
41
|
+
pipeline: t.pipeline,
|
42
|
+
environment: {
|
43
|
+
'HOME' => t.home_directory
|
44
|
+
}
|
45
|
+
)
|
39
46
|
end
|
40
47
|
end
|
41
48
|
end
|
data/lib/rake_fly/tasks.rb
CHANGED
data/lib/rake_fly/version.rb
CHANGED