rake_fly 2.1.0 → 2.2.0.pre.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +46 -5
- data/lib/rake_fly/task_sets/pipeline.rb +3 -0
- data/lib/rake_fly/tasks.rb +2 -0
- data/lib/rake_fly/tasks/authentication/ensure.rb +43 -0
- data/lib/rake_fly/tasks/authentication/login.rb +80 -0
- data/lib/rake_fly/tasks/pipeline/get.rb +8 -2
- data/lib/rake_fly/tasks/pipeline/set.rb +7 -1
- data/lib/rake_fly/tasks/pipeline/unpause.rb +7 -1
- data/lib/rake_fly/version.rb +1 -1
- metadata +64 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f1553b29769e9089a1c21950076a23e0e5d00baaca2ec765ba4ebe8406ca055a
|
4
|
+
data.tar.gz: 25651a41be01bbf6a8d2a4ae116dfd966b41a6d81616122f8f16d89642ffae52
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 68ba456621bd07990e2d7d4e72c88f81a4ba0c4b06bbc738c4ff7856e8fda13aa3f9d1e2757ae94719976f2bcfda089bf8a722246f488522108f84f90e727276
|
7
|
+
data.tar.gz: 5927edbe22792ef8580f0441e557828ec0c1d2deefd953e2ac1b44a8139ff156d55a52d7728f71e3a9ff57cfae98c36a0165a6d6c30fc80b64a572541392fdf6
|
data/Gemfile.lock
CHANGED
@@ -1,10 +1,11 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
rake_fly (2.
|
4
|
+
rake_fly (2.2.0.pre.5)
|
5
|
+
concourse.rb (>= 0.4)
|
5
6
|
rake_dependencies (~> 2, < 3)
|
6
7
|
rake_factory (>= 0.29, < 1)
|
7
|
-
ruby_fly (>= 0.
|
8
|
+
ruby_fly (>= 0.29)
|
8
9
|
semantic (~> 1.6.1)
|
9
10
|
|
10
11
|
GEM
|
@@ -19,11 +20,46 @@ GEM
|
|
19
20
|
addressable (2.7.0)
|
20
21
|
public_suffix (>= 2.0.2, < 5.0)
|
21
22
|
colored2 (3.1.2)
|
23
|
+
concourse.rb (0.4.0)
|
24
|
+
dry-schema (~> 0.5)
|
25
|
+
excon (~> 0.72)
|
26
|
+
semantic (~> 1.5)
|
22
27
|
concurrent-ruby (1.1.7)
|
23
28
|
diff-lcs (1.4.4)
|
24
29
|
docile (1.3.4)
|
30
|
+
dry-configurable (0.12.0)
|
31
|
+
concurrent-ruby (~> 1.0)
|
32
|
+
dry-core (~> 0.5, >= 0.5.0)
|
33
|
+
dry-container (0.7.2)
|
34
|
+
concurrent-ruby (~> 1.0)
|
35
|
+
dry-configurable (~> 0.1, >= 0.1.3)
|
36
|
+
dry-core (0.5.0)
|
37
|
+
concurrent-ruby (~> 1.0)
|
38
|
+
dry-equalizer (0.3.0)
|
39
|
+
dry-inflector (0.2.0)
|
40
|
+
dry-initializer (3.0.4)
|
41
|
+
dry-logic (1.1.0)
|
42
|
+
concurrent-ruby (~> 1.0)
|
43
|
+
dry-core (~> 0.5, >= 0.5)
|
44
|
+
dry-schema (0.6.0)
|
45
|
+
concurrent-ruby (~> 1.0)
|
46
|
+
dry-configurable (~> 0.8, >= 0.8.0)
|
47
|
+
dry-core (~> 0.4)
|
48
|
+
dry-equalizer (~> 0.2)
|
49
|
+
dry-initializer (~> 3.0)
|
50
|
+
dry-logic (~> 1.0)
|
51
|
+
dry-types (~> 1.0)
|
52
|
+
dry-types (1.4.0)
|
53
|
+
concurrent-ruby (~> 1.0)
|
54
|
+
dry-container (~> 0.3)
|
55
|
+
dry-core (~> 0.4, >= 0.4.4)
|
56
|
+
dry-equalizer (~> 0.3)
|
57
|
+
dry-inflector (~> 0.1, >= 0.1.2)
|
58
|
+
dry-logic (~> 1.0, >= 1.0.2)
|
25
59
|
excon (0.78.1)
|
26
60
|
fakefs (0.20.1)
|
61
|
+
faker (2.15.1)
|
62
|
+
i18n (>= 1.6, < 2)
|
27
63
|
faraday (1.3.0)
|
28
64
|
faraday-net_http (~> 1.0)
|
29
65
|
multipart-post (>= 1.2, < 3)
|
@@ -32,8 +68,9 @@ GEM
|
|
32
68
|
gem-release (2.2.0)
|
33
69
|
hamster (3.0.0)
|
34
70
|
concurrent-ruby (~> 1.0)
|
35
|
-
i18n (1.8.
|
71
|
+
i18n (1.8.7)
|
36
72
|
concurrent-ruby (~> 1.0)
|
73
|
+
jwt (2.2.2)
|
37
74
|
lino (1.7.0)
|
38
75
|
hamster (~> 3.0)
|
39
76
|
open4 (~> 1.3)
|
@@ -44,6 +81,7 @@ GEM
|
|
44
81
|
faraday (>= 0.9)
|
45
82
|
sawyer (~> 0.8.0, >= 0.5.3)
|
46
83
|
open4 (1.3.4)
|
84
|
+
openssl (2.2.0)
|
47
85
|
public_suffix (4.0.6)
|
48
86
|
rake (13.0.3)
|
49
87
|
rake_circle_ci (0.9.0)
|
@@ -85,7 +123,7 @@ GEM
|
|
85
123
|
rspec-support (~> 3.10.0)
|
86
124
|
rspec-support (3.10.1)
|
87
125
|
ruby2_keywords (0.0.2)
|
88
|
-
ruby_fly (0.
|
126
|
+
ruby_fly (0.29.0)
|
89
127
|
lino (>= 1.5)
|
90
128
|
ruby_gpg2 (0.8.0)
|
91
129
|
lino (>= 1.5)
|
@@ -94,7 +132,7 @@ GEM
|
|
94
132
|
addressable (>= 2.3.5)
|
95
133
|
faraday (> 0.8, < 2.0)
|
96
134
|
semantic (1.6.1)
|
97
|
-
simplecov (0.21.
|
135
|
+
simplecov (0.21.1)
|
98
136
|
docile (~> 1.1)
|
99
137
|
simplecov-html (~> 0.11)
|
100
138
|
simplecov_json_formatter (~> 0.1)
|
@@ -113,7 +151,10 @@ DEPENDENCIES
|
|
113
151
|
activesupport (>= 4)
|
114
152
|
bundler (~> 2.1)
|
115
153
|
fakefs (~> 0.18)
|
154
|
+
faker (~> 2.15)
|
116
155
|
gem-release (~> 2.0)
|
156
|
+
jwt (~> 2.2)
|
157
|
+
openssl (~> 2.2)
|
117
158
|
rake (~> 13.0)
|
118
159
|
rake_circle_ci (~> 0.9)
|
119
160
|
rake_fly!
|
@@ -19,6 +19,9 @@ module RakeFly
|
|
19
19
|
parameter :var_files
|
20
20
|
parameter :non_interactive
|
21
21
|
|
22
|
+
parameter :home_directory,
|
23
|
+
default: RakeFactory::DynamicValue.new { |_| ENV['HOME'] }
|
24
|
+
|
22
25
|
parameter :get_task_name, :default => :get
|
23
26
|
parameter :set_task_name, :default => :set
|
24
27
|
parameter :unpause_task_name, :default => :unpause
|
data/lib/rake_fly/tasks.rb
CHANGED
@@ -0,0 +1,43 @@
|
|
1
|
+
require 'ruby_fly'
|
2
|
+
require 'rake_factory'
|
3
|
+
require 'concourse'
|
4
|
+
|
5
|
+
module RakeFly
|
6
|
+
module Tasks
|
7
|
+
module Authentication
|
8
|
+
class Ensure < RakeFactory::Task
|
9
|
+
default_name :ensure
|
10
|
+
default_prerequisites RakeFactory::DynamicValue.new { |t|
|
11
|
+
[t.ensure_task_name]
|
12
|
+
}
|
13
|
+
default_description RakeFactory::DynamicValue.new { |t|
|
14
|
+
target = t.target || '<derived>'
|
15
|
+
|
16
|
+
"Ensure logged in for target #{target}"
|
17
|
+
}
|
18
|
+
|
19
|
+
parameter :target, required: true
|
20
|
+
|
21
|
+
parameter :home_directory,
|
22
|
+
default: RakeFactory::DynamicValue.new { |_| ENV['HOME'] }
|
23
|
+
|
24
|
+
parameter :ensure_task_name, :default => :'fly:ensure'
|
25
|
+
|
26
|
+
action do |t, args|
|
27
|
+
puts "Ensuring target #{t.target} is logged in..."
|
28
|
+
status = RubyFly.status(
|
29
|
+
target: t.target,
|
30
|
+
environment: {
|
31
|
+
"HOME" => t.home_directory
|
32
|
+
})
|
33
|
+
if status == :logged_in
|
34
|
+
puts "Already logged in. Continuing..."
|
35
|
+
else
|
36
|
+
puts "Not logged in. Logging in..."
|
37
|
+
t.application[:login, t.scope].invoke(*args)
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
@@ -0,0 +1,80 @@
|
|
1
|
+
require 'ruby_fly'
|
2
|
+
require 'rake_factory'
|
3
|
+
require 'concourse'
|
4
|
+
|
5
|
+
module RakeFly
|
6
|
+
module Tasks
|
7
|
+
module Authentication
|
8
|
+
class Login < RakeFactory::Task
|
9
|
+
class FlyBackend
|
10
|
+
def resolve_prerequisites(task)
|
11
|
+
[task.ensure_task_name]
|
12
|
+
end
|
13
|
+
|
14
|
+
def execute(task)
|
15
|
+
RubyFly.login(
|
16
|
+
target: task.target,
|
17
|
+
concourse_url: task.concourse_url,
|
18
|
+
username: task.username,
|
19
|
+
password: task.password,
|
20
|
+
team: task.team,
|
21
|
+
environment: {
|
22
|
+
"HOME" => task.home_directory
|
23
|
+
})
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
class ApiBackend
|
28
|
+
def resolve_prerequisites(_)
|
29
|
+
[]
|
30
|
+
end
|
31
|
+
|
32
|
+
def execute(task)
|
33
|
+
client = Concourse::Client.new(
|
34
|
+
url: task.concourse_url)
|
35
|
+
token = client.for_skymarshal.create_token(
|
36
|
+
username: task.username,
|
37
|
+
password: task.password)
|
38
|
+
|
39
|
+
rc = RubyFly::RC.load(home: task.home_directory)
|
40
|
+
rc.add_or_update_target(task.target) do |target|
|
41
|
+
target.api = task.concourse_url
|
42
|
+
target.team = task.team
|
43
|
+
target.bearer_token = token.access_token
|
44
|
+
end
|
45
|
+
rc.write!
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
default_name :login
|
50
|
+
default_prerequisites RakeFactory::DynamicValue.new { |t|
|
51
|
+
t.backend.new.resolve_prerequisites(t)
|
52
|
+
}
|
53
|
+
default_description RakeFactory::DynamicValue.new { |t|
|
54
|
+
concourse_url = t.concourse_url || '<derived>'
|
55
|
+
target = t.target || '<derived>'
|
56
|
+
|
57
|
+
"Login to #{concourse_url} as target #{target}"
|
58
|
+
}
|
59
|
+
|
60
|
+
parameter :concourse_url, required: true
|
61
|
+
parameter :team, default: 'main'
|
62
|
+
parameter :target, required: true
|
63
|
+
parameter :username
|
64
|
+
parameter :password
|
65
|
+
|
66
|
+
parameter :backend, default: ApiBackend
|
67
|
+
|
68
|
+
parameter :home_directory,
|
69
|
+
default: RakeFactory::DynamicValue.new { |_| ENV['HOME'] }
|
70
|
+
|
71
|
+
parameter :ensure_task_name, :default => :'fly:ensure'
|
72
|
+
|
73
|
+
action do |t|
|
74
|
+
puts "Logging in to #{t.concourse_url} as target #{t.target}..."
|
75
|
+
t.backend.new.execute(t)
|
76
|
+
end
|
77
|
+
end
|
78
|
+
end
|
79
|
+
end
|
80
|
+
end
|
@@ -18,14 +18,20 @@ module RakeFly
|
|
18
18
|
|
19
19
|
parameter :target, :required => true
|
20
20
|
parameter :pipeline, :required => true
|
21
|
-
|
21
|
+
|
22
|
+
parameter :home_directory,
|
23
|
+
default: RakeFactory::DynamicValue.new { |_| ENV['HOME'] }
|
24
|
+
|
22
25
|
parameter :ensure_task_name, :default => :'fly:ensure'
|
23
26
|
|
24
27
|
action do |t|
|
25
28
|
puts "Getting pipeline #{t.pipeline} for target #{t.target}..."
|
26
29
|
RubyFly.get_pipeline(
|
27
30
|
target: t.target,
|
28
|
-
pipeline: t.pipeline
|
31
|
+
pipeline: t.pipeline,
|
32
|
+
environment: {
|
33
|
+
"HOME" => t.home_directory
|
34
|
+
})
|
29
35
|
end
|
30
36
|
end
|
31
37
|
end
|
@@ -25,6 +25,9 @@ module RakeFly
|
|
25
25
|
parameter :var_files
|
26
26
|
parameter :non_interactive
|
27
27
|
|
28
|
+
parameter :home_directory,
|
29
|
+
default: RakeFactory::DynamicValue.new { |_| ENV['HOME'] }
|
30
|
+
|
28
31
|
parameter :ensure_task_name, :default => :'fly:ensure'
|
29
32
|
|
30
33
|
action do |t|
|
@@ -36,7 +39,10 @@ module RakeFly
|
|
36
39
|
config: t.config,
|
37
40
|
vars: t.vars,
|
38
41
|
var_files: t.var_files,
|
39
|
-
non_interactive: t.non_interactive
|
42
|
+
non_interactive: t.non_interactive,
|
43
|
+
environment: {
|
44
|
+
"HOME" => t.home_directory
|
45
|
+
})
|
40
46
|
end
|
41
47
|
end
|
42
48
|
end
|
@@ -20,6 +20,9 @@ module RakeFly
|
|
20
20
|
parameter :team
|
21
21
|
parameter :pipeline, :required => true
|
22
22
|
|
23
|
+
parameter :home_directory,
|
24
|
+
default: RakeFactory::DynamicValue.new { |_| ENV['HOME'] }
|
25
|
+
|
23
26
|
parameter :ensure_task_name, :default => :'fly:ensure'
|
24
27
|
|
25
28
|
action do |t|
|
@@ -27,7 +30,10 @@ module RakeFly
|
|
27
30
|
RubyFly.unpause_pipeline(
|
28
31
|
target: t.target,
|
29
32
|
team: t.team,
|
30
|
-
pipeline: t.pipeline
|
33
|
+
pipeline: t.pipeline,
|
34
|
+
environment: {
|
35
|
+
"HOME" => t.home_directory
|
36
|
+
})
|
31
37
|
end
|
32
38
|
end
|
33
39
|
end
|
data/lib/rake_fly/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rake_fly
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.2.0.pre.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Toby Clemson
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-01-
|
11
|
+
date: 2021-01-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake_dependencies
|
@@ -56,14 +56,28 @@ dependencies:
|
|
56
56
|
requirements:
|
57
57
|
- - ">="
|
58
58
|
- !ruby/object:Gem::Version
|
59
|
-
version: '0.
|
59
|
+
version: '0.29'
|
60
60
|
type: :runtime
|
61
61
|
prerelease: false
|
62
62
|
version_requirements: !ruby/object:Gem::Requirement
|
63
63
|
requirements:
|
64
64
|
- - ">="
|
65
65
|
- !ruby/object:Gem::Version
|
66
|
-
version: '0.
|
66
|
+
version: '0.29'
|
67
|
+
- !ruby/object:Gem::Dependency
|
68
|
+
name: concourse.rb
|
69
|
+
requirement: !ruby/object:Gem::Requirement
|
70
|
+
requirements:
|
71
|
+
- - ">="
|
72
|
+
- !ruby/object:Gem::Version
|
73
|
+
version: '0.4'
|
74
|
+
type: :runtime
|
75
|
+
prerelease: false
|
76
|
+
version_requirements: !ruby/object:Gem::Requirement
|
77
|
+
requirements:
|
78
|
+
- - ">="
|
79
|
+
- !ruby/object:Gem::Version
|
80
|
+
version: '0.4'
|
67
81
|
- !ruby/object:Gem::Dependency
|
68
82
|
name: semantic
|
69
83
|
requirement: !ruby/object:Gem::Requirement
|
@@ -218,6 +232,48 @@ dependencies:
|
|
218
232
|
- - "~>"
|
219
233
|
- !ruby/object:Gem::Version
|
220
234
|
version: '0.18'
|
235
|
+
- !ruby/object:Gem::Dependency
|
236
|
+
name: jwt
|
237
|
+
requirement: !ruby/object:Gem::Requirement
|
238
|
+
requirements:
|
239
|
+
- - "~>"
|
240
|
+
- !ruby/object:Gem::Version
|
241
|
+
version: '2.2'
|
242
|
+
type: :development
|
243
|
+
prerelease: false
|
244
|
+
version_requirements: !ruby/object:Gem::Requirement
|
245
|
+
requirements:
|
246
|
+
- - "~>"
|
247
|
+
- !ruby/object:Gem::Version
|
248
|
+
version: '2.2'
|
249
|
+
- !ruby/object:Gem::Dependency
|
250
|
+
name: openssl
|
251
|
+
requirement: !ruby/object:Gem::Requirement
|
252
|
+
requirements:
|
253
|
+
- - "~>"
|
254
|
+
- !ruby/object:Gem::Version
|
255
|
+
version: '2.2'
|
256
|
+
type: :development
|
257
|
+
prerelease: false
|
258
|
+
version_requirements: !ruby/object:Gem::Requirement
|
259
|
+
requirements:
|
260
|
+
- - "~>"
|
261
|
+
- !ruby/object:Gem::Version
|
262
|
+
version: '2.2'
|
263
|
+
- !ruby/object:Gem::Dependency
|
264
|
+
name: faker
|
265
|
+
requirement: !ruby/object:Gem::Requirement
|
266
|
+
requirements:
|
267
|
+
- - "~>"
|
268
|
+
- !ruby/object:Gem::Version
|
269
|
+
version: '2.15'
|
270
|
+
type: :development
|
271
|
+
prerelease: false
|
272
|
+
version_requirements: !ruby/object:Gem::Requirement
|
273
|
+
requirements:
|
274
|
+
- - "~>"
|
275
|
+
- !ruby/object:Gem::Version
|
276
|
+
version: '2.15'
|
221
277
|
- !ruby/object:Gem::Dependency
|
222
278
|
name: simplecov
|
223
279
|
requirement: !ruby/object:Gem::Requirement
|
@@ -253,6 +309,8 @@ files:
|
|
253
309
|
- lib/rake_fly/task_sets.rb
|
254
310
|
- lib/rake_fly/task_sets/pipeline.rb
|
255
311
|
- lib/rake_fly/tasks.rb
|
312
|
+
- lib/rake_fly/tasks/authentication/ensure.rb
|
313
|
+
- lib/rake_fly/tasks/authentication/login.rb
|
256
314
|
- lib/rake_fly/tasks/pipeline/get.rb
|
257
315
|
- lib/rake_fly/tasks/pipeline/push.rb
|
258
316
|
- lib/rake_fly/tasks/pipeline/set.rb
|
@@ -273,9 +331,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
273
331
|
version: '2.6'
|
274
332
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
275
333
|
requirements:
|
276
|
-
- - "
|
334
|
+
- - ">"
|
277
335
|
- !ruby/object:Gem::Version
|
278
|
-
version:
|
336
|
+
version: 1.3.1
|
279
337
|
requirements: []
|
280
338
|
rubygems_version: 3.0.1
|
281
339
|
signing_key:
|