capistrano-nomad 0.12.0 → 0.12.2
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 +4 -4
- data/Gemfile.lock +1 -1
- data/capistrano-nomad.gemspec +9 -9
- data/lib/capistrano/nomad/helpers/dsl.rb +44 -43
- data/lib/capistrano/nomad/helpers/nomad.rb +44 -43
- 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: 9ea1dce7c57651a12a7f34dae3d0451cb964500b28c5356b12fbe552b7811f0a
|
4
|
+
data.tar.gz: 3f4a63bb2294ad4928faecd28f1bd0003d0f09b249ccf2649e5228918e562904
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 168ea50bf0399fa51a796362555a2a29ebe0637f2d7896c2a1f1a83b451fd5d6b35eebb29907b9f6a80c675305ffd319a8acbcab28b5ffc2002c940dc49c1d31
|
7
|
+
data.tar.gz: 0e7eed0ef654d2b945d9d2dd7b7089918aebaac61e3d71b9e8210a8f5038e5cf3baf938c849746da06f80dc97b32f6f0d1fc17cefa697d639221be137fef229c
|
data/Gemfile.lock
CHANGED
data/capistrano-nomad.gemspec
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |spec|
|
4
4
|
spec.name = "capistrano-nomad"
|
5
|
-
spec.version = "0.12.
|
5
|
+
spec.version = "0.12.2"
|
6
6
|
spec.authors = ["James Hu"]
|
7
7
|
|
8
8
|
spec.summary = "Capistrano plugin for deploying and managing Nomad jobs"
|
@@ -18,7 +18,7 @@ Gem::Specification.new do |spec|
|
|
18
18
|
# Specify which files should be added to the gem when it is released.
|
19
19
|
# The `git ls-files -z` loads the files in the RubyGem that have been added into git.
|
20
20
|
spec.files = Dir.chdir(File.expand_path(__dir__)) do
|
21
|
-
|
21
|
+
%x(git ls-files -z).split("\x0").reject do |f|
|
22
22
|
(f == __FILE__) || f.match(%r{\A(?:(?:bin|test|spec|features)/|\.(?:git|travis|circleci)|appveyor)})
|
23
23
|
end
|
24
24
|
end
|
@@ -27,13 +27,13 @@ Gem::Specification.new do |spec|
|
|
27
27
|
spec.require_paths = ["lib"]
|
28
28
|
|
29
29
|
# Uncomment to register a new dependency of your gem
|
30
|
-
spec.add_dependency
|
31
|
-
spec.add_dependency
|
32
|
-
spec.add_dependency
|
33
|
-
spec.add_dependency
|
34
|
-
spec.add_dependency
|
35
|
-
spec.add_dependency
|
36
|
-
spec.add_dependency
|
30
|
+
spec.add_dependency("activesupport", "<= 7.0.8")
|
31
|
+
spec.add_dependency("byebug")
|
32
|
+
spec.add_dependency("capistrano", "~> 3.0")
|
33
|
+
spec.add_dependency("git")
|
34
|
+
spec.add_dependency("rake", "~> 13.0")
|
35
|
+
spec.add_dependency("sshkit")
|
36
|
+
spec.add_dependency("sshkit-interactive")
|
37
37
|
|
38
38
|
# For more information and examples about making a new gem, check out our
|
39
39
|
# guide at: https://bundler.io/guides/creating_gem.html
|
@@ -59,115 +59,116 @@ def nomad_job(name, attributes = {})
|
|
59
59
|
description_name << name.to_s
|
60
60
|
|
61
61
|
namespace(name) do
|
62
|
-
desc
|
63
|
-
task
|
62
|
+
desc("Build #{description_name} job Docker images")
|
63
|
+
task(:build) do
|
64
64
|
capistrano_nomad_build_jobs_docker_images([name], namespace: namespace)
|
65
65
|
end
|
66
66
|
|
67
|
-
desc
|
68
|
-
task
|
67
|
+
desc("Push #{description_name} job Docker images")
|
68
|
+
task(:push) do
|
69
69
|
capistrano_nomad_push_jobs_docker_images([name], namespace: namespace)
|
70
70
|
end
|
71
71
|
|
72
|
-
desc
|
73
|
-
task
|
72
|
+
desc("Build and push #{description_name} job Docker images")
|
73
|
+
task(:assemble) do
|
74
74
|
capistrano_nomad_build_jobs_docker_images([name], namespace: namespace)
|
75
75
|
capistrano_nomad_push_jobs_docker_images([name], namespace: namespace)
|
76
76
|
end
|
77
77
|
|
78
|
-
desc
|
79
|
-
task
|
78
|
+
desc("Upload #{description_name} job and related files")
|
79
|
+
task(:upload) do
|
80
80
|
capistrano_nomad_upload_jobs([name], namespace: namespace)
|
81
81
|
end
|
82
82
|
|
83
|
-
desc
|
84
|
-
task
|
83
|
+
desc("Run #{description_name} job")
|
84
|
+
task(:run) do
|
85
85
|
capistrano_nomad_run_jobs([name], namespace: namespace, is_detached: false)
|
86
86
|
end
|
87
87
|
|
88
|
-
desc
|
89
|
-
task
|
88
|
+
desc("Purge and run #{description_name} job again")
|
89
|
+
task(:rerun) do
|
90
90
|
capistrano_nomad_rerun_jobs([name], namespace: namespace, is_detached: false)
|
91
91
|
end
|
92
92
|
|
93
|
-
desc
|
94
|
-
task
|
93
|
+
desc("Upload and plan #{description_name} job")
|
94
|
+
task(:upload_plan) do
|
95
95
|
capistrano_nomad_upload_plan_jobs([name], namespace: namespace)
|
96
96
|
end
|
97
97
|
|
98
|
-
desc
|
99
|
-
task
|
98
|
+
desc("Upload and run #{description_name} job")
|
99
|
+
task(:upload_run) do
|
100
100
|
capistrano_nomad_upload_run_jobs([name], namespace: namespace, is_detached: false)
|
101
101
|
end
|
102
102
|
|
103
|
-
desc
|
104
|
-
task
|
103
|
+
desc("Upload and re-run #{description_name} job")
|
104
|
+
task(:upload_rerun) do
|
105
105
|
capistrano_nomad_upload_rerun_jobs([name], namespace: namespace, is_detached: false)
|
106
106
|
end
|
107
107
|
|
108
|
-
desc
|
109
|
-
task
|
108
|
+
desc("Deploy #{description_name} job")
|
109
|
+
task(:deploy) do
|
110
110
|
capistrano_nomad_deploy_jobs([name], namespace: namespace, is_detached: false)
|
111
111
|
end
|
112
112
|
|
113
|
-
desc
|
114
|
-
task
|
113
|
+
desc("Stop #{description_name} job")
|
114
|
+
task(:stop) do
|
115
115
|
capistrano_nomad_stop_jobs([name], namespace: namespace)
|
116
116
|
end
|
117
117
|
|
118
|
-
desc
|
119
|
-
task
|
118
|
+
desc("Restart #{description_name} job")
|
119
|
+
task(:restart) do
|
120
120
|
capistrano_nomad_restart_jobs([name], namespace: namespace)
|
121
121
|
end
|
122
122
|
|
123
|
-
desc
|
124
|
-
task
|
125
|
-
capistrano_nomad_revert_jobs([name],
|
123
|
+
desc("Revert #{description_name} job. Specify version with VERSION. Specify targeting tasks with docker image with DOCKER_IMAGE. If none specified, it will revert to previous version")
|
124
|
+
task(:revert) do
|
125
|
+
capistrano_nomad_revert_jobs([name],
|
126
126
|
namespace: namespace,
|
127
|
+
version: ENV["VERSION"],
|
127
128
|
docker_image: ENV["DOCKER_IMAGE"],
|
128
129
|
)
|
129
130
|
end
|
130
131
|
|
131
|
-
desc
|
132
|
-
task
|
132
|
+
desc("Purge #{description_name} job")
|
133
|
+
task(:purge) do
|
133
134
|
capistrano_nomad_purge_jobs([name], namespace: namespace, is_detached: false)
|
134
135
|
end
|
135
136
|
|
136
|
-
desc
|
137
|
-
task
|
137
|
+
desc("Display status of #{description_name} job")
|
138
|
+
task(:status) do
|
138
139
|
capistrano_nomad_display_job_status(name, namespace: namespace)
|
139
140
|
end
|
140
141
|
|
141
|
-
desc
|
142
|
-
task
|
142
|
+
desc("Open console to #{description_name} job. Specify task with TASK, command with CMD")
|
143
|
+
task(:console) do
|
143
144
|
command = ENV["CMD"].presence || "/bin/sh"
|
144
145
|
|
145
146
|
capistrano_nomad_exec_within_job(name, command, namespace: namespace, task: ENV["TASK"])
|
146
147
|
end
|
147
148
|
|
148
|
-
desc
|
149
|
-
task
|
149
|
+
desc("Display stdout and stderr of #{description_name} job. Specify task with TASK")
|
150
|
+
task(:logs) do
|
150
151
|
capistrano_nomad_tail_job_logs(name, namespace: namespace, stdout: true)
|
151
152
|
capistrano_nomad_tail_job_logs(name, namespace: namespace, stderr: true)
|
152
153
|
end
|
153
154
|
|
154
|
-
desc
|
155
|
-
task
|
155
|
+
desc("Display stdout of #{description_name} job. Specify task with TASK")
|
156
|
+
task(:stdout) do
|
156
157
|
capistrano_nomad_tail_job_logs(name, namespace: namespace, stdout: true)
|
157
158
|
end
|
158
159
|
|
159
|
-
desc
|
160
|
-
task
|
160
|
+
desc("Display stderr of #{description_name} job. Specify task with TASK")
|
161
|
+
task(:stderr) do
|
161
162
|
capistrano_nomad_tail_job_logs(name, namespace: namespace, stderr: true)
|
162
163
|
end
|
163
164
|
|
164
|
-
desc
|
165
|
-
task
|
165
|
+
desc("Follow logs of #{description_name} job. Specify task with TASK")
|
166
|
+
task(:follow) do
|
166
167
|
capistrano_nomad_display_job_logs(name, namespace: namespace, f: true)
|
167
168
|
end
|
168
169
|
|
169
|
-
desc
|
170
|
-
task
|
170
|
+
desc("Open job in web UI")
|
171
|
+
task(:ui) do
|
171
172
|
capistrano_nomad_open_job_ui(name, namespace: namespace)
|
172
173
|
end
|
173
174
|
end
|
@@ -30,7 +30,7 @@ def capistrano_nomad_ensure_absolute_path(path)
|
|
30
30
|
end
|
31
31
|
|
32
32
|
def capistrano_nomad_build_file_path(parent_path, basename, kind: nil, **options)
|
33
|
-
capistrano_nomad_ensure_options!(
|
33
|
+
capistrano_nomad_ensure_options!(options)
|
34
34
|
namespace = options[:namespace]
|
35
35
|
segments = [parent_path]
|
36
36
|
|
@@ -135,7 +135,7 @@ def capistrano_nomad_capture_nomad_command(*args, **options)
|
|
135
135
|
end
|
136
136
|
|
137
137
|
def capistrano_nomad_find_job_task_details(name, task: nil, **options)
|
138
|
-
capistrano_nomad_ensure_options!(
|
138
|
+
capistrano_nomad_ensure_options!(options)
|
139
139
|
task = task.presence || name
|
140
140
|
|
141
141
|
# Find alloc id that contains task that is also running
|
@@ -178,7 +178,7 @@ def capistrano_nomad_find_job_task_details(name, task: nil, **options)
|
|
178
178
|
end
|
179
179
|
|
180
180
|
def capistrano_nomad_exec_within_job(name, command, task: nil, **options)
|
181
|
-
capistrano_nomad_ensure_options!(
|
181
|
+
capistrano_nomad_ensure_options!(options)
|
182
182
|
|
183
183
|
capistrano_nomad_run_remotely do
|
184
184
|
if (task_details = capistrano_nomad_find_job_task_details(name, task: task, **options))
|
@@ -251,18 +251,18 @@ def capistrano_nomad_upload(local_path:, remote_path:, erb_vars: {})
|
|
251
251
|
end
|
252
252
|
end
|
253
253
|
|
254
|
-
def capistrano_nomad_ensure_options!(
|
254
|
+
def capistrano_nomad_ensure_options!(options)
|
255
255
|
options[:namespace] ||= :default
|
256
256
|
end
|
257
257
|
|
258
258
|
def capistrano_nomad_fetch_namespace_options(**options)
|
259
|
-
capistrano_nomad_ensure_options!(
|
259
|
+
capistrano_nomad_ensure_options!(options)
|
260
260
|
|
261
261
|
fetch(:nomad_namespaces)&.dig(options[:namespace])
|
262
262
|
end
|
263
263
|
|
264
264
|
def capistrano_nomad_fetch_job_options(name, *args, **options)
|
265
|
-
capistrano_nomad_ensure_options!(
|
265
|
+
capistrano_nomad_ensure_options!(options)
|
266
266
|
|
267
267
|
fetch(:nomad_jobs).dig(options[:namespace], name.to_sym, *args)
|
268
268
|
end
|
@@ -272,7 +272,7 @@ def capistrano_nomad_fetch_job_var_files(name, **options)
|
|
272
272
|
end
|
273
273
|
|
274
274
|
def capistrano_nomad_fetch_jobs_names_by_namespace(**options)
|
275
|
-
capistrano_nomad_ensure_options!(
|
275
|
+
capistrano_nomad_ensure_options!(options)
|
276
276
|
namespace = options[:namespace]
|
277
277
|
|
278
278
|
# Can pass tags via command line (e.g. TAG=foo or TAGS=foo,bar)
|
@@ -298,92 +298,92 @@ def capistrano_nomad_fetch_jobs_names_by_namespace(**options)
|
|
298
298
|
end
|
299
299
|
|
300
300
|
def capistrano_nomad_fetch_jobs_docker_image_types(names, **options)
|
301
|
-
capistrano_nomad_ensure_options!(
|
301
|
+
capistrano_nomad_ensure_options!(options)
|
302
302
|
|
303
303
|
names.map { |n| fetch(:nomad_jobs).dig(options[:namespace], n.to_sym, :docker_image_types) }.flatten.compact.uniq
|
304
304
|
end
|
305
305
|
|
306
306
|
def capistrano_nomad_define_group_tasks(namespace:)
|
307
307
|
define_tasks = lambda do |nomad_namespace: nil|
|
308
|
-
desc
|
309
|
-
task
|
308
|
+
desc("Build #{nomad_namespace} job Docker images")
|
309
|
+
task(:build) do
|
310
310
|
capistrano_nomad_fetch_jobs_names_by_namespace(namespace: nomad_namespace).each do |jobs_namespace, names|
|
311
311
|
capistrano_nomad_push_jobs_docker_images(names, namespace: jobs_namespace)
|
312
312
|
end
|
313
313
|
end
|
314
314
|
|
315
|
-
desc
|
316
|
-
task
|
315
|
+
desc("Push #{nomad_namespace} job Docker images")
|
316
|
+
task(:push) do
|
317
317
|
capistrano_nomad_fetch_jobs_names_by_namespace(namespace: nomad_namespace).each do |jobs_namespace, names|
|
318
318
|
capistrano_nomad_push_jobs_docker_images(names, namespace: jobs_namespace)
|
319
319
|
end
|
320
320
|
end
|
321
321
|
|
322
|
-
desc
|
323
|
-
task
|
322
|
+
desc("Build and push #{nomad_namespace} job Docker images")
|
323
|
+
task(:assemble) do
|
324
324
|
capistrano_nomad_fetch_jobs_names_by_namespace(namespace: nomad_namespace).each do |jobs_namespace, names|
|
325
325
|
capistrano_nomad_assemble_jobs_docker_images(names, namespace: jobs_namespace)
|
326
326
|
end
|
327
327
|
end
|
328
328
|
|
329
|
-
desc
|
330
|
-
task
|
329
|
+
desc("Upload #{nomad_namespace} jobs")
|
330
|
+
task(:upload) do
|
331
331
|
capistrano_nomad_fetch_jobs_names_by_namespace(namespace: nomad_namespace).each do |jobs_namespace, names|
|
332
332
|
capistrano_nomad_upload_jobs(names, namespace: jobs_namespace)
|
333
333
|
end
|
334
334
|
end
|
335
335
|
|
336
|
-
desc
|
337
|
-
task
|
336
|
+
desc("Run #{nomad_namespace} jobs")
|
337
|
+
task(:run) do
|
338
338
|
capistrano_nomad_fetch_jobs_names_by_namespace(namespace: nomad_namespace).each do |jobs_namespace, names|
|
339
339
|
capistrano_nomad_run_jobs(names, namespace: jobs_namespace)
|
340
340
|
end
|
341
341
|
end
|
342
342
|
|
343
|
-
desc
|
344
|
-
task
|
343
|
+
desc("Upload and run #{nomad_namespace} jobs")
|
344
|
+
task(:upload_run) do
|
345
345
|
capistrano_nomad_fetch_jobs_names_by_namespace(namespace: nomad_namespace).each do |jobs_namespace, names|
|
346
346
|
capistrano_nomad_upload_run_jobs(names, namespace: jobs_namespace)
|
347
347
|
end
|
348
348
|
end
|
349
349
|
|
350
|
-
desc
|
351
|
-
task
|
350
|
+
desc("Deploy #{nomad_namespace} jobs")
|
351
|
+
task(:deploy) do
|
352
352
|
capistrano_nomad_fetch_jobs_names_by_namespace(namespace: nomad_namespace).each do |jobs_namespace, names|
|
353
353
|
capistrano_nomad_deploy_jobs(names, namespace: jobs_namespace)
|
354
354
|
end
|
355
355
|
end
|
356
356
|
|
357
|
-
desc
|
358
|
-
task
|
357
|
+
desc("Rerun #{nomad_namespace} jobs")
|
358
|
+
task(:rerun) do
|
359
359
|
capistrano_nomad_fetch_jobs_names_by_namespace(namespace: nomad_namespace).each do |jobs_namespace, names|
|
360
360
|
capistrano_nomad_rerun_jobs(names, namespace: jobs_namespace)
|
361
361
|
end
|
362
362
|
end
|
363
363
|
|
364
|
-
desc
|
365
|
-
task
|
364
|
+
desc("Restart #{nomad_namespace} jobs")
|
365
|
+
task(:restart) do
|
366
366
|
capistrano_nomad_fetch_jobs_names_by_namespace(namespace: nomad_namespace).each do |jobs_namespace, names|
|
367
367
|
capistrano_nomad_restart_jobs(names, namespace: jobs_namespace)
|
368
368
|
end
|
369
369
|
end
|
370
370
|
|
371
|
-
desc
|
372
|
-
task
|
371
|
+
desc("Revert #{nomad_namespace} jobs")
|
372
|
+
task(:revert) do
|
373
373
|
capistrano_nomad_fetch_jobs_names_by_namespace(namespace: nomad_namespace).each do |jobs_namespace, names|
|
374
374
|
capistrano_nomad_revert_jobs(names, namespace: jobs_namespace)
|
375
375
|
end
|
376
376
|
end
|
377
377
|
|
378
|
-
desc
|
379
|
-
task
|
378
|
+
desc("Stop #{nomad_namespace} jobs")
|
379
|
+
task(:stop) do
|
380
380
|
capistrano_nomad_fetch_jobs_names_by_namespace(namespace: nomad_namespace).each do |jobs_namespace, names|
|
381
381
|
capistrano_nomad_stop_jobs(names, namespace: jobs_namespace)
|
382
382
|
end
|
383
383
|
end
|
384
384
|
|
385
|
-
desc
|
386
|
-
task
|
385
|
+
desc("Purge #{nomad_namespace} jobs")
|
386
|
+
task(:purge) do
|
387
387
|
capistrano_nomad_fetch_jobs_names_by_namespace(namespace: nomad_namespace).each do |jobs_namespace, names|
|
388
388
|
capistrano_nomad_purge_jobs(names, namespace: jobs_namespace)
|
389
389
|
end
|
@@ -459,7 +459,7 @@ def capistrano_nomad_plan_jobs(names, **options)
|
|
459
459
|
end
|
460
460
|
|
461
461
|
def capistrano_nomad_run_jobs(names, is_detached: true, **options)
|
462
|
-
capistrano_nomad_ensure_options!(
|
462
|
+
capistrano_nomad_ensure_options!(options)
|
463
463
|
|
464
464
|
names.each do |name|
|
465
465
|
run_options = {
|
@@ -521,7 +521,7 @@ def capistrano_nomad_deploy_jobs(names, **options)
|
|
521
521
|
end
|
522
522
|
|
523
523
|
def capistrano_nomad_restart_jobs(names, **options)
|
524
|
-
capistrano_nomad_ensure_options!(
|
524
|
+
capistrano_nomad_ensure_options!(options)
|
525
525
|
|
526
526
|
names.each do |name|
|
527
527
|
# Automatic yes to prompts. If set, the command automatically restarts multi-region jobs only in the region targeted
|
@@ -531,7 +531,7 @@ def capistrano_nomad_restart_jobs(names, **options)
|
|
531
531
|
end
|
532
532
|
|
533
533
|
def capistrano_nomad_stop_jobs(names, **options)
|
534
|
-
capistrano_nomad_ensure_options!(
|
534
|
+
capistrano_nomad_ensure_options!(options)
|
535
535
|
|
536
536
|
names.each do |name|
|
537
537
|
capistrano_nomad_execute_nomad_command(:job, :stop, options, name)
|
@@ -539,22 +539,23 @@ def capistrano_nomad_stop_jobs(names, **options)
|
|
539
539
|
end
|
540
540
|
|
541
541
|
def capistrano_nomad_purge_jobs(names, is_detached: true, **options)
|
542
|
-
capistrano_nomad_ensure_options!(
|
542
|
+
capistrano_nomad_ensure_options!(options)
|
543
543
|
|
544
544
|
names.each do |name|
|
545
545
|
capistrano_nomad_execute_nomad_command(:stop, options.reverse_merge(purge: true, detach: is_detached), name)
|
546
546
|
end
|
547
547
|
end
|
548
548
|
|
549
|
-
def capistrano_nomad_revert_jobs(names, version, docker_image: nil, **options)
|
550
|
-
capistrano_nomad_ensure_options!(
|
549
|
+
def capistrano_nomad_revert_jobs(names, version: nil, docker_image: nil, **options)
|
550
|
+
capistrano_nomad_ensure_options!(options)
|
551
551
|
versions_by_job_name = {}
|
552
552
|
|
553
553
|
names.each do |name|
|
554
554
|
history_output_json = capistrano_nomad_display_job_history(name, **options.reverse_merge(json: true))
|
555
555
|
history_output = JSON.parse(history_output_json)
|
556
|
-
|
557
|
-
|
556
|
+
versions_by_job_name[name] = if version.presence
|
557
|
+
version
|
558
|
+
elsif docker_image.presence
|
558
559
|
# Find job history with matching docker image
|
559
560
|
docker_image_job_history = history_output.find do |job_history|
|
560
561
|
task_images = job_history.dig("TaskGroups")
|
@@ -570,8 +571,8 @@ def capistrano_nomad_revert_jobs(names, version, docker_image: nil, **options)
|
|
570
571
|
end
|
571
572
|
|
572
573
|
docker_image_job_history.dig("Version")
|
574
|
+
# Revert to previous version if nothing specified
|
573
575
|
else
|
574
|
-
# If no version specified then revert to previous version
|
575
576
|
history_output[1].dig("Version")
|
576
577
|
end
|
577
578
|
end
|
@@ -582,13 +583,13 @@ def capistrano_nomad_revert_jobs(names, version, docker_image: nil, **options)
|
|
582
583
|
end
|
583
584
|
|
584
585
|
def capistrano_nomad_display_job_history(name, **options)
|
585
|
-
capistrano_nomad_ensure_options!(
|
586
|
+
capistrano_nomad_ensure_options!(options)
|
586
587
|
|
587
588
|
capistrano_nomad_capture_nomad_command(:job, :history, options, name)
|
588
589
|
end
|
589
590
|
|
590
591
|
def capistrano_nomad_display_job_status(name, **options)
|
591
|
-
capistrano_nomad_ensure_options!(
|
592
|
+
capistrano_nomad_ensure_options!(options)
|
592
593
|
|
593
594
|
capistrano_nomad_execute_nomad_command(:status, options, name)
|
594
595
|
end
|