dapp 0.22.2 → 0.22.3

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
  SHA256:
3
- metadata.gz: 6772c46b21f3e433f04fb8c2c1d3ebc12cd48d41783c70751ba2eb90ae8dc0d5
4
- data.tar.gz: f4a098cc19c7357ec473d3167b6b793d1e6197a6592e4abdca449a6d78674273
3
+ metadata.gz: 47259cb4752b216b1a7a7c5e9bb0ed9226f6f101974bb633739516a5e631599a
4
+ data.tar.gz: 6e4e53aac766610d3ce419514ec1e5e88a48185b21ab516169dd0ddf2d8c7a32
5
5
  SHA512:
6
- metadata.gz: 10534955c4393d6241001a96d90e20bc667f6ae09a5d4a1a2f4a15caced9b928646d53aa53598ac0c5132559305546a7f802548e30156a7ad5a24f967d70f111
7
- data.tar.gz: 01cf0cbf46224eb0c5b95269e681fe5e73703a0a216f3f898faaa5d5471bc6c536fd396caa1fbee873d81f9e606679028849fc3b01e290dcb6ca9094e20ca219
6
+ metadata.gz: f2c7dbffefb9f2a4d364b11ce2f0b78067c356e297fa0de4b314756029157f2d2d78fc0b8e465b9f3796b94632cd0d3fdb9e499892b42d20b8e35ae6e4b5cef1
7
+ data.tar.gz: c675f0a8769b304eb8bb458b212346b25df8ffe5245f5544dc9a103d0cf37651174f7eabcd6266a840a866fce8a45a16e40058ac31769c92658d34b3988e6016
@@ -68,10 +68,16 @@ module Dapp
68
68
  dapp = ::Dapp::Dapp.new(options: options)
69
69
 
70
70
  log_dapp_running_time(dapp, ignore: !log_running_time) do
71
- if block_given?
72
- yield dapp
73
- elsif !run_method.nil?
74
- dapp.public_send(run_method)
71
+ begin
72
+ before_dapp_run_command(dapp)
73
+
74
+ if block_given?
75
+ yield dapp
76
+ elsif !run_method.nil?
77
+ dapp.public_send(run_method)
78
+ end
79
+ ensure
80
+ dapp.terminate
75
81
  end
76
82
  end
77
83
  end
@@ -91,6 +97,11 @@ module Dapp
91
97
  raise
92
98
  end
93
99
 
100
+ def before_dapp_run_command(dapp, &blk)
101
+ yield if block_given?
102
+ dapp.try_host_docker_login
103
+ end
104
+
94
105
  def cli_options(**kwargs)
95
106
  dirs = [config[:build_dir], config[:run_dir], config[:deploy_dir]]
96
107
  if dirs.compact.size > 1
data/lib/dapp/dapp.rb CHANGED
@@ -126,7 +126,8 @@ module Dapp
126
126
  self.class.host_docker_tmp_config_dir
127
127
  end
128
128
 
129
- def host_docker_login
129
+ def try_host_docker_login
130
+ return if options[:without_registry]
130
131
  return unless option_repo
131
132
 
132
133
  validate_repo_name!(option_repo)
@@ -6,21 +6,6 @@ module Dapp::Dimg::CLI
6
6
  run_dapp_command(run_method, options: cli_options(dimgs_patterns: cli_arguments))
7
7
  end
8
8
 
9
- def run_dapp_command(run_method, options: {}, log_running_time: true)
10
- super(nil, options: options, log_running_time: log_running_time) do |dapp|
11
- begin
12
- dapp.host_docker_login
13
- if block_given?
14
- yield dapp
15
- elsif !run_method.nil?
16
- dapp.public_send(run_method)
17
- end
18
- ensure
19
- dapp.terminate
20
- end
21
- end
22
- end
23
-
24
9
  def run_method
25
10
  class_to_lowercase
26
11
  end
@@ -69,6 +69,12 @@ BANNER
69
69
  description: 'Default timeout to wait for resources to become ready, 300 seconds by default.',
70
70
  proc: proc {|v| Integer(v)}
71
71
 
72
+ option :registry_username,
73
+ long: '--registry-username USERNAME'
74
+
75
+ option :registry_password,
76
+ long: '--registry-password PASSWORD'
77
+
72
78
  option :without_registry,
73
79
  long: "--without-registry",
74
80
  default: false,
@@ -77,22 +83,26 @@ BANNER
77
83
 
78
84
  def run(argv = ARGV)
79
85
  self.class.parse_options(self, argv)
86
+ run_dapp_command(run_method, options: cli_options)
87
+ end
80
88
 
81
- options = cli_options
82
- options[:tag] = [*options.delete(:tag), *options.delete(:image_version)]
89
+ def before_dapp_run_command(dapp, &blk)
90
+ super(dapp) do
91
+ yield if block_given?
83
92
 
84
- run_dapp_command(nil, options: options) do |dapp|
93
+ # Опция repo определяется в данном хуке, чтобы установить
94
+ # значение по умолчанию из объекта dapp: dapp.name
85
95
  repo = if not cli_arguments[0].nil?
86
96
  self.class.required_argument(self, 'repo')
87
97
  else
88
98
  dapp.name
89
99
  end
90
-
91
100
  dapp.options[:repo] = repo
92
101
 
93
- dapp.public_send(run_method)
94
- end
102
+ dapp.options[:tag] = [*dapp.options.delete(:tag), *dapp.options.delete(:image_version)]
103
+ end # super
95
104
  end
105
+
96
106
  end
97
107
  end
98
108
  end
@@ -56,18 +56,22 @@ BANNER
56
56
 
57
57
  def run(argv = ARGV)
58
58
  self.class.parse_options(self, argv)
59
+ run_dapp_command(run_method, options: cli_options, log_running_time: false)
60
+ end
61
+
62
+ def before_dapp_run_command(dapp, &blk)
63
+ super(dapp) do
64
+ yield if block_given?
59
65
 
60
- run_dapp_command(nil, options: cli_options, log_running_time: false) do |dapp|
66
+ # Опция repo определяется в данном хуке, чтобы установить
67
+ # значение по умолчанию из объекта dapp: dapp.name
61
68
  repo = if not cli_arguments[0].nil?
62
69
  self.class.required_argument(self, 'repo')
63
70
  else
64
71
  dapp.name
65
72
  end
66
-
67
73
  dapp.options[:repo] = repo
68
-
69
- dapp.public_send(run_method)
70
- end
74
+ end # super
71
75
  end
72
76
 
73
77
  end
@@ -65,19 +65,24 @@ BANNER
65
65
 
66
66
  def run(argv = ARGV)
67
67
  self.class.parse_options(self, argv)
68
+ run_dapp_command(run_method, options: cli_options, log_running_time: false)
69
+ end
70
+
71
+ def before_dapp_run_command(dapp, &blk)
72
+ super(dapp) do
73
+ yield if block_given?
68
74
 
69
- run_dapp_command(nil, options: cli_options, log_running_time: false) do |dapp|
75
+ # Опция repo определяется в данном хуке, чтобы установить
76
+ # значение по умолчанию из объекта dapp: dapp.name
70
77
  repo = if not cli_arguments[0].nil?
71
78
  self.class.required_argument(self, 'repo')
72
79
  else
73
80
  dapp.name
74
81
  end
75
-
76
82
  dapp.options[:repo] = repo
77
-
78
- dapp.public_send(run_method)
79
- end
83
+ end # super
80
84
  end
85
+
81
86
  end
82
87
  end
83
88
  end
@@ -128,7 +128,7 @@ module Dapp
128
128
  protected
129
129
 
130
130
  # query_parameters — соответствует 'Query Parameters' в документации kubernetes
131
- # excon_parameters — соответствует опциям Excon
131
+ # excon_parameters — соответствует connection-опциям Excon
132
132
  # body — hash для http-body, соответствует 'Body Parameters' в документации kubernetes, опционален
133
133
  def request!(method, path, body: nil, excon_parameters: {}, response_body_parameters: {}, **query_parameters)
134
134
  with_connection(excon_parameters: excon_parameters) do |conn|
@@ -173,36 +173,15 @@ module Dapp
173
173
  end
174
174
 
175
175
  def with_connection(excon_parameters: {}, &blk)
176
- old_ssl_ca_file = Excon.defaults[:ssl_ca_file]
177
- old_ssl_cert_store = Excon.defaults[:ssl_cert_store]
178
- old_middlewares = Excon.defaults[:middlewares].dup
179
-
180
- begin
181
- ssl_cert_store = OpenSSL::X509::Store.new
182
- if ssl_ca_file = kube_config.fetch('clusters', [{}]).first.fetch('cluster', {}).fetch('certificate-authority', nil)
183
- ssl_cert_store.add_file ssl_ca_file
184
- elsif ssl_ca_data = kube_config.fetch('clusters', [{}]).first.fetch('cluster', {}).fetch('certificate-authority-data', nil)
185
- ssl_cert_store.add_cert OpenSSL::X509::Certificate.new(Base64.decode64(ssl_ca_data))
186
- end
187
-
188
- Excon.defaults[:ssl_ca_file] = nil
189
- Excon.defaults[:ssl_cert_store] = ssl_cert_store
190
- Excon.defaults[:middlewares] << Excon::Middleware::RedirectFollower
191
-
192
- connection = begin
193
- Excon.new(kube_cluster_config['cluster']['server'], **kube_server_options(excon_parameters)).tap(&:get)
194
- rescue Excon::Error::Socket => err
195
- raise Error::ConnectionRefused,
196
- code: :kube_server_connection_refused,
197
- data: { kube_cluster_config: kube_cluster_config, kube_user_config: kube_user_config, error: err.message }
198
- end
199
-
200
- return yield connection
201
- ensure
202
- Excon.defaults[:ssl_ca_file] = old_ssl_ca_file
203
- Excon.defaults[:ssl_cert_store] = old_ssl_cert_store
204
- Excon.defaults[:middlewares] = old_middlewares
176
+ connection = begin
177
+ Excon.new(kube_cluster_config['cluster']['server'], **kube_server_options(excon_parameters)).tap(&:get)
178
+ rescue Excon::Error::Socket => err
179
+ raise Error::ConnectionRefused,
180
+ code: :kube_server_connection_refused,
181
+ data: { kube_cluster_config: kube_cluster_config, kube_user_config: kube_user_config, error: err.message }
205
182
  end
183
+
184
+ return yield connection
206
185
  end
207
186
 
208
187
  def kube_server_options(excon_parameters = {})
@@ -219,6 +198,18 @@ module Dapp
219
198
  client_key_data = kube_config.fetch('users', [{}]).first.fetch('user', {}).fetch('client-key-data', nil)
220
199
  opts[:client_key_data] = Base64.decode64(client_key_data) if client_key_data
221
200
 
201
+ ssl_cert_store = OpenSSL::X509::Store.new
202
+ if ssl_ca_file = kube_config.fetch('clusters', [{}]).first.fetch('cluster', {}).fetch('certificate-authority', nil)
203
+ ssl_cert_store.add_file ssl_ca_file
204
+ elsif ssl_ca_data = kube_config.fetch('clusters', [{}]).first.fetch('cluster', {}).fetch('certificate-authority-data', nil)
205
+ ssl_cert_store.add_cert OpenSSL::X509::Certificate.new(Base64.decode64(ssl_ca_data))
206
+ end
207
+ opts[:ssl_cert_store] = ssl_cert_store
208
+
209
+ opts[:ssl_ca_file] = nil
210
+
211
+ opts[:middlewares] = [*Excon.defaults[:middlewares], Excon::Middleware::RedirectFollower]
212
+
222
213
  opts.merge!(excon_parameters)
223
214
  end
224
215
  end
data/lib/dapp/version.rb CHANGED
@@ -1,4 +1,4 @@
1
1
  module Dapp
2
- VERSION = '0.22.2'.freeze
2
+ VERSION = '0.22.3'.freeze
3
3
  BUILD_CACHE_VERSION = 25
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.2
4
+ version: 0.22.3
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-08 00:00:00.000000000 Z
11
+ date: 2017-12-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: mixlib-shellout