dapp 0.22.2 → 0.22.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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