dapp 0.22.7 → 0.22.8

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 8d39108e47246ec97bcdb25fd0464b58772efc23
4
- data.tar.gz: 0d0262e3bd5675b69bc988e4c25588523e6881d0
3
+ metadata.gz: 5be296595c66f302d0e6226ba61deadbed26a924
4
+ data.tar.gz: 7ccabbde07fe12ff244351d029f14bac3d84e47d
5
5
  SHA512:
6
- metadata.gz: 5e182c079f4848bbf817d2380c1b3dae904eb6c69beebc541fcfaad6d480060608b5d3ecd126faa94cd2146345b57afdd96ba03aca8bd1b954db90b5192b7e7d
7
- data.tar.gz: ac6a75467e166fa1a20c360cb2cb82846d8de06e3c3ba187cbcd281010a767309e2eef0ac3fb754d97e701bb80422b8f485703485b7184cfd42422f119cbf31e
6
+ metadata.gz: 8eefcc9b0784aaf84d3132129e27cc450ee5835b3f29a9688a60fdf3dc86e4e62b6a280cf9471f77ff4cec0eabc2f47237e86551a5cddbd72ee080e3163fc906
7
+ data.tar.gz: a80bc990f70fd9fc8244c2a76a8958a94d20ba7fd5c94aa0130ef5fd0ef980c674f4bf11ab519a489e88176281ef32e319cb4af75702310f9176f8343e0a4a7a
data/lib/dapp/dapp.rb CHANGED
@@ -149,24 +149,28 @@ module Dapp
149
149
 
150
150
  def host_docker
151
151
  @host_docker ||= begin
152
- raise Error::Dapp, code: :docker_not_found if (res = shellout('which docker')).exitstatus.nonzero?
153
- docker_bin = res.stdout.strip
154
-
155
- current_docker_version = Gem::Version.new(shellout!("#{docker_bin} --version").stdout.strip[/(\d+\.)+\d+(?=\.\d+)/])
156
- required_min_docker_version = Gem::Version.new('1.10')
157
-
158
- if required_min_docker_version >= current_docker_version
159
- raise Error::Dapp, code: :docker_version, data: { min_version: required_min_docker_version.to_s,
160
- version: current_docker_version.to_s }
152
+ min_docker_minor_version = Gem::Version.new('1.10')
153
+ unless host_docker_minor_version > min_docker_minor_version
154
+ raise Error::Dapp, code: :docker_version, data: { min_version: min_docker_minor_version.to_s,
155
+ version: host_docker_minor_version.to_s }
161
156
  end
162
157
 
163
158
  [].tap do |cmd|
164
- cmd << docker_bin
159
+ cmd << host_docker_bin
165
160
  cmd << "--config #{host_docker_config_dir}"
166
161
  end.join(' ')
167
162
  end
168
163
  end
169
164
 
165
+ def host_docker_bin
166
+ raise Error::Dapp, code: :docker_not_found if (res = shellout('which docker')).exitstatus.nonzero?
167
+ res.stdout.strip
168
+ end
169
+
170
+ def host_docker_minor_version
171
+ Gem::Version.new(shellout!("#{host_docker_bin} --version").stdout.strip[/\d+\.\d+/])
172
+ end
173
+
170
174
  def host_docker_config_dir
171
175
  if options_with_docker_credentials? && !options[:repo].nil?
172
176
  host_docker_tmp_config_dir
@@ -178,14 +182,14 @@ module Dapp
178
182
  end
179
183
 
180
184
  def options_with_docker_credentials?
181
- (options.key?(:registry_username) && options.key?(:registry_password)) || ENV.key?('CI_JOB_TOKEN')
185
+ !docker_credentials.nil?
182
186
  end
183
187
 
184
188
  def docker_credentials
185
189
  if options.key?(:registry_username) && options.key?(:registry_password)
186
190
  [options[:registry_username], options[:registry_password]]
187
- elsif ENV.key?('CI_JOB_TOKEN')
188
- ['gitlab-ci-token', ENV['CI_JOB_TOKEN']]
191
+ elsif ENV.key?('DAPP_CI_JOB_TOKEN') || ENV.key?('CI_JOB_TOKEN')
192
+ ['gitlab-ci-token', ENV['DAPP_CI_JOB_TOKEN'] || ENV['CI_JOB_TOKEN']]
189
193
  end
190
194
  end
191
195
 
@@ -31,6 +31,12 @@ BANNER
31
31
  '(use system ssh-agent by default)'].join,
32
32
  default: nil,
33
33
  proc: ->(v) { composite_options(:ssh_key) << v }
34
+
35
+ option :registry_username,
36
+ long: '--registry-username USERNAME'
37
+
38
+ option :registry_password,
39
+ long: '--registry-password PASSWORD'
34
40
  end
35
41
  end
36
42
  end
@@ -24,15 +24,15 @@ BANNER
24
24
  boolean: true
25
25
 
26
26
  option :registry_username,
27
- long: '--registry-username USERNAME'
27
+ long: '--registry-username USERNAME'
28
28
 
29
29
  option :registry_password,
30
- long: '--registry-password PASSWORD'
30
+ long: '--registry-password PASSWORD'
31
31
 
32
32
  def run(argv = ARGV)
33
33
  self.class.parse_options(self, argv)
34
34
  repo = self.class.required_argument(self, 'repo')
35
- run_dapp_command(run_method, options: cli_options(dimgs_patterns: cli_arguments, repo: repo))
35
+ run_dapp_command(run_method, options: cli_options(dimgs_patterns: cli_arguments, repo: repo, verbose: true))
36
36
  end
37
37
  end
38
38
  end
@@ -16,7 +16,7 @@ BANNER
16
16
 
17
17
  def run(argv = ARGV)
18
18
  self.class.parse_options(self, argv)
19
- run_dapp_command(run_method, options: cli_options(dimgs_patterns: cli_arguments))
19
+ run_dapp_command(run_method, options: cli_options(dimgs_patterns: cli_arguments, verbose: true))
20
20
  end
21
21
  end
22
22
  end
@@ -19,10 +19,16 @@ BANNER
19
19
  long: '--with-stages',
20
20
  boolean: true
21
21
 
22
+ option :registry_username,
23
+ long: '--registry-username USERNAME'
24
+
25
+ option :registry_password,
26
+ long: '--registry-password PASSWORD'
27
+
22
28
  def run(argv = ARGV)
23
29
  self.class.parse_options(self, argv)
24
30
  repo = self.class.required_argument(self, 'repo')
25
- run_dapp_command(run_method, options: cli_options(dimgs_patterns: cli_arguments, repo: repo))
31
+ run_dapp_command(run_method, options: cli_options(dimgs_patterns: cli_arguments, repo: repo, verbose: true))
26
32
  end
27
33
  end
28
34
  end
@@ -45,11 +45,8 @@ module Dapp
45
45
  end
46
46
 
47
47
  def delete_repo_image(registry, repo_image)
48
- if dry_run?
49
- log([repo_image[:dimg], repo_image[:tag]].compact.join(':'))
50
- else
51
- registry.image_delete(repo_image[:tag], repo_image[:dimg])
52
- end
48
+ log([repo_image[:dimg], repo_image[:tag]].compact.join(':')) if dry_run? || log_verbose?
49
+ registry.image_delete(repo_image[:tag], repo_image[:dimg]) unless dry_run?
53
50
  end
54
51
 
55
52
  def select_dapp_artifacts_ids(labels)
@@ -39,7 +39,7 @@ module Dapp
39
39
  api_request(repo_suffix, "/manifests/#{image_digest(tag)}",
40
40
  method: :delete,
41
41
  expects: [202, 404],
42
- headers: { Accept: 'Accept: application/vnd.docker.distribution.manifest.v2+json' })
42
+ headers: { Accept: 'application/vnd.docker.distribution.manifest.v2+json' })
43
43
  end
44
44
 
45
45
  def image_history(tag)
@@ -3,9 +3,9 @@ module Dapp
3
3
  module DockerRegistry
4
4
  class Base
5
5
  module Authorization
6
- def authorization_options(url)
7
- (@authorization_options ||= {})[@repo_suffix] ||= begin
8
- case authenticate_header = raw_request(url).headers['Www-Authenticate']
6
+ def authorization_options(url, method:)
7
+ (@authorization_options ||= {})[[@repo_suffix, method]] ||= begin
8
+ case authenticate_header = raw_request(url, method: method).headers['Www-Authenticate']
9
9
  when /Bearer/ then { headers: { Authorization: "Bearer #{authorization_token(authenticate_header)}" } }
10
10
  when /Basic/ then { headers: { Authorization: "Basic #{authorization_auth}" } }
11
11
  when nil then {}
@@ -34,18 +34,20 @@ module Dapp
34
34
  end
35
35
 
36
36
  def authorization_auth
37
- if ::Dapp::Dapp.options_with_docker_credentials?
38
- Base64.strict_encode64(::Dapp::Dapp.docker_credentials.join(':'))
39
- else
40
- auths = auths_section_from_docker_config
41
- r = repo
42
- loop do
43
- break unless r.include?('/') && !auths.keys.any? { |auth| auth.start_with?(r) }
44
- r = chomp_name(r)
37
+ @authorization_auth ||= begin
38
+ if ::Dapp::Dapp.options_with_docker_credentials?
39
+ Base64.strict_encode64(::Dapp::Dapp.docker_credentials.join(':'))
40
+ else
41
+ auths = auths_section_from_docker_config
42
+ r = repo
43
+ loop do
44
+ break unless r.include?('/') && !auths.keys.any? { |auth| auth.start_with?(r) }
45
+ r = chomp_name(r)
46
+ end
47
+ credential = (auths[r] || auths.find { |repo, _| repo == r })
48
+ user_not_authorized! if credential.nil?
49
+ credential['auth']
45
50
  end
46
- credential = (auths[r] || auths.find { |repo, _| repo == r })
47
- user_not_authorized! if credential.nil?
48
- credential['auth']
49
51
  end
50
52
  end
51
53
 
@@ -8,7 +8,7 @@ module Dapp
8
8
  end
9
9
 
10
10
  def request(url, **options)
11
- raw_request(url, options.in_depth_merge(authorization_options(url)))
11
+ raw_request(url, options.in_depth_merge(authorization_options(url, method: options[:method] || :get)))
12
12
  end
13
13
 
14
14
  def raw_request(url, **options)
@@ -66,7 +66,7 @@ module Dapp
66
66
  options.map do |key, vals|
67
67
  case key
68
68
  when :cmd, :entrypoint
69
- vals = [''] if vals == []
69
+ vals = [''] if vals == [] && ::Dapp::Dapp.host_docker_minor_version >= Gem::Version.new('17.10')
70
70
  [vals]
71
71
  when :env, :label then vals.map(&method(:options_to_args)).flatten
72
72
  else vals
@@ -29,6 +29,12 @@ BANNER
29
29
  default: [],
30
30
  proc: proc { |v| composite_options(:helm_secret_values) << v }
31
31
 
32
+ option :registry_username,
33
+ long: '--registry-username USERNAME'
34
+
35
+ option :registry_password,
36
+ long: '--registry-password PASSWORD'
37
+
32
38
  def run(argv = ARGV)
33
39
  self.class.parse_options(self, argv)
34
40
 
@@ -39,6 +39,12 @@ BANNER
39
39
  default: [],
40
40
  proc: proc { |v| composite_options(:templates) << v }
41
41
 
42
+ option :registry_username,
43
+ long: '--registry-username USERNAME'
44
+
45
+ option :registry_password,
46
+ long: '--registry-password PASSWORD'
47
+
42
48
  def run(argv = ARGV)
43
49
  self.class.parse_options(self, argv)
44
50
  run_dapp_command(nil, options: cli_options, log_running_time: false) do |dapp|
data/lib/dapp/version.rb CHANGED
@@ -1,4 +1,4 @@
1
1
  module Dapp
2
- VERSION = '0.22.7'.freeze
3
- BUILD_CACHE_VERSION = 25
2
+ VERSION = '0.22.8'.freeze
3
+ BUILD_CACHE_VERSION = 26
4
4
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dapp
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.22.7
4
+ version: 0.22.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dmitry Stolyarov
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-12-25 00:00:00.000000000 Z
11
+ date: 2017-12-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: mixlib-shellout