dapp 0.35.34 → 0.35.35
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/bin/dapp +2 -1
- data/lib/dapp/dapp.rb +1 -1
- data/lib/dapp/dapp/ruby2go.rb +11 -6
- data/lib/dapp/kube/dapp/command/deploy.rb +27 -10
- data/lib/dapp/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 962963230c35adae042eb0857ac0680679dc693df4f07de532fed95711b0a7c9
|
4
|
+
data.tar.gz: 5ce37d21f2b25fcf16fddbc6fc2ee6a03bf7f51f8634161497d5484d64b61c06
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 985aff68a55fb1f36035d495917643e72a85facf352551e84ac463187d8532c2c1ac889e8e26974b72d51c938b512d55ea919f72e6f7e6ee970e021b7fbd9a2a
|
7
|
+
data.tar.gz: 6f9d1df209449b7d35a126798ce87baa47aedde309eb43014f8badd72e1c0272b2d443e73be50b00d529243c4e0cc09591b9ee1a2c772be9b17fa39ba00fa9bd
|
data/bin/dapp
CHANGED
@@ -53,7 +53,8 @@ def set_gitlab_cancel_handler
|
|
53
53
|
|
54
54
|
parents_pids.each do |pid|
|
55
55
|
if not process_alive? pid
|
56
|
-
|
56
|
+
home_dir = (ENV["DAPP_HOME"] || File.join(ENV["HOME"], ".dapp"))
|
57
|
+
File.open(File.join(home_dir, "cancelled"), "a") do |file|
|
57
58
|
file.write "#{Process.pid}\n"
|
58
59
|
end
|
59
60
|
|
data/lib/dapp/dapp.rb
CHANGED
data/lib/dapp/dapp/ruby2go.rb
CHANGED
@@ -1,6 +1,9 @@
|
|
1
1
|
module Dapp
|
2
2
|
class Dapp
|
3
3
|
module Ruby2Go
|
4
|
+
class Error < ::Dapp::Error::Base
|
5
|
+
end
|
6
|
+
|
4
7
|
def ruby2go_image(args_hash)
|
5
8
|
_ruby2go("image", args_hash)
|
6
9
|
end
|
@@ -33,8 +36,8 @@ module Dapp
|
|
33
36
|
_ruby2go("slug", args_hash)
|
34
37
|
end
|
35
38
|
|
36
|
-
def ruby2go_deploy_watcher(args_hash)
|
37
|
-
_ruby2go("deploy-watcher", args_hash)
|
39
|
+
def ruby2go_deploy_watcher(args_hash, **kwargs)
|
40
|
+
_ruby2go("deploy-watcher", args_hash, **kwargs)
|
38
41
|
end
|
39
42
|
|
40
43
|
def ruby2go_init
|
@@ -47,13 +50,15 @@ module Dapp
|
|
47
50
|
"DAPP_BIN_#{progname.gsub("-", "_").upcase}"
|
48
51
|
end
|
49
52
|
|
50
|
-
def _ruby2go(progname, args_hash)
|
53
|
+
def _ruby2go(progname, args_hash, tmp_dir: nil)
|
54
|
+
tmp_dir = _ruby2go_tmp_dir if tmp_dir.nil?
|
55
|
+
|
51
56
|
call_id = SecureRandom.uuid
|
52
57
|
|
53
|
-
args_file = File.join(
|
58
|
+
args_file = File.join(tmp_dir, "args.#{call_id}.json")
|
54
59
|
File.open(args_file, "w") {|f| f.write JSON.dump(args_hash)}
|
55
60
|
|
56
|
-
res_file = File.join(
|
61
|
+
res_file = File.join(tmp_dir, "res.#{call_id}.json")
|
57
62
|
|
58
63
|
if bin_path = ENV[_ruby2go_bin_path_env_var_name(progname)]
|
59
64
|
unless File.exists? bin_path
|
@@ -84,7 +89,7 @@ module Dapp
|
|
84
89
|
File.open(res_file, "r") {|f| res = JSON.load(f.read)}
|
85
90
|
res
|
86
91
|
else
|
87
|
-
raise ::Dapp::Error
|
92
|
+
raise ::Dapp::Dapp::Ruby2Go::Error, code: :ruby2go_command_unexpected_exitstatus, data: { progname: progname, status_code: status_code }
|
88
93
|
end
|
89
94
|
end
|
90
95
|
|
@@ -155,6 +155,7 @@ module Dapp
|
|
155
155
|
watch_hooks_condition_mutex = ::Mutex.new
|
156
156
|
watch_hooks_condition = ::ConditionVariable.new
|
157
157
|
deploy_has_began = false
|
158
|
+
|
158
159
|
unless dry_run? and watch_hooks.any?
|
159
160
|
watch_hooks_thr = Thread.new do
|
160
161
|
watch_hooks_condition_mutex.synchronize do
|
@@ -168,13 +169,30 @@ module Dapp
|
|
168
169
|
begin
|
169
170
|
if ENV["KUBEDOG"] != "0"
|
170
171
|
timeout = self.options[:timeout] || 300
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
172
|
+
tmp_dir = Dir.mktmpdir('dapp-ruby2go-', tmp_base_dir)
|
173
|
+
res = nil
|
174
|
+
|
175
|
+
begin
|
176
|
+
res = ruby2go_deploy_watcher(
|
177
|
+
{
|
178
|
+
"action" => "watch job",
|
179
|
+
"resourceName" => job.name,
|
180
|
+
"namespace" => release.namespace,
|
181
|
+
"timeout" => timeout,
|
182
|
+
"logsFromTime" => kube_deploy_start_time
|
183
|
+
},
|
184
|
+
tmp_dir: tmp_dir,
|
185
|
+
)
|
186
|
+
rescue ::Dapp::Dapp::Ruby2Go::Error => err
|
187
|
+
# ignore interrupt
|
188
|
+
if err.net_status[:data][:status_code] == 17
|
189
|
+
res = {}
|
190
|
+
else
|
191
|
+
raise
|
192
|
+
end
|
193
|
+
ensure
|
194
|
+
FileUtils.rmtree(tmp_dir)
|
195
|
+
end
|
178
196
|
|
179
197
|
if res["error"]
|
180
198
|
$stderr.puts(::Dapp::Dapp.paint_string(::Dapp::Helper::NetStatus.message(res["error"]), :warning))
|
@@ -196,7 +214,6 @@ module Dapp
|
|
196
214
|
# ошибку для информации пользователю без завершения работы dapp.
|
197
215
|
$stderr.puts(::Dapp::Dapp.paint_string(::Dapp::Helper::NetStatus.message(e), :warning))
|
198
216
|
end
|
199
|
-
|
200
217
|
end # Thread
|
201
218
|
end # unless
|
202
219
|
|
@@ -218,6 +235,8 @@ module Dapp
|
|
218
235
|
release.install_helm_release
|
219
236
|
end
|
220
237
|
|
238
|
+
watch_hooks_thr.join if !dry_run? && watch_hooks_thr && watch_hooks_thr.alive?
|
239
|
+
|
221
240
|
if cmd_res.error?
|
222
241
|
if cmd_res.stderr.end_with? "has no deployed releases\n"
|
223
242
|
log_warning "[WARN] Helm release #{release.name} is in improper state: #{cmd_res.stderr}"
|
@@ -229,8 +248,6 @@ module Dapp
|
|
229
248
|
raise ::Dapp::Error::Command, code: :kube_helm_failed, data: {output: (cmd_res.stdout + cmd_res.stderr).strip}
|
230
249
|
else
|
231
250
|
kube_delete_helm_auto_purge_trigger_file(release.name)
|
232
|
-
|
233
|
-
watch_hooks_thr.join if !dry_run? && watch_hooks_thr && watch_hooks_thr.alive?
|
234
251
|
log_info((cmd_res.stdout + cmd_res.stderr).strip)
|
235
252
|
end
|
236
253
|
end
|
data/lib/dapp/version.rb
CHANGED