nextmv 1.0.0__py3-none-any.whl → 1.0.0.dev0__py3-none-any.whl
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.
- nextmv/__about__.py +1 -1
- nextmv/__entrypoint__.py +2 -1
- nextmv/__init__.py +4 -0
- nextmv/cli/CONTRIBUTING.md +40 -112
- nextmv/cli/cloud/__init__.py +0 -4
- nextmv/cli/cloud/acceptance/create.py +22 -20
- nextmv/cli/cloud/acceptance/delete.py +12 -8
- nextmv/cli/cloud/acceptance/get.py +10 -9
- nextmv/cli/cloud/acceptance/list.py +3 -3
- nextmv/cli/cloud/acceptance/update.py +6 -6
- nextmv/cli/cloud/account/__init__.py +3 -3
- nextmv/cli/cloud/account/create.py +11 -11
- nextmv/cli/cloud/account/delete.py +8 -7
- nextmv/cli/cloud/account/get.py +3 -3
- nextmv/cli/cloud/account/update.py +5 -5
- nextmv/cli/cloud/app/create.py +26 -25
- nextmv/cli/cloud/app/delete.py +7 -6
- nextmv/cli/cloud/app/exists.py +2 -2
- nextmv/cli/cloud/app/get.py +2 -2
- nextmv/cli/cloud/app/list.py +3 -3
- nextmv/cli/cloud/app/push.py +54 -349
- nextmv/cli/cloud/app/update.py +12 -12
- nextmv/cli/cloud/batch/create.py +28 -26
- nextmv/cli/cloud/batch/delete.py +10 -6
- nextmv/cli/cloud/batch/get.py +9 -9
- nextmv/cli/cloud/batch/list.py +3 -3
- nextmv/cli/cloud/batch/metadata.py +4 -4
- nextmv/cli/cloud/batch/update.py +6 -6
- nextmv/cli/cloud/data/__init__.py +1 -1
- nextmv/cli/cloud/data/upload.py +15 -15
- nextmv/cli/cloud/ensemble/__init__.py +0 -2
- nextmv/cli/cloud/ensemble/create.py +22 -21
- nextmv/cli/cloud/ensemble/delete.py +10 -6
- nextmv/cli/cloud/ensemble/get.py +4 -4
- nextmv/cli/cloud/ensemble/update.py +9 -9
- nextmv/cli/cloud/input_set/__init__.py +0 -2
- nextmv/cli/cloud/input_set/create.py +22 -22
- nextmv/cli/cloud/input_set/get.py +3 -3
- nextmv/cli/cloud/input_set/list.py +3 -3
- nextmv/cli/cloud/input_set/update.py +24 -24
- nextmv/cli/cloud/instance/create.py +15 -14
- nextmv/cli/cloud/instance/delete.py +7 -6
- nextmv/cli/cloud/instance/exists.py +2 -2
- nextmv/cli/cloud/instance/get.py +2 -2
- nextmv/cli/cloud/instance/list.py +3 -3
- nextmv/cli/cloud/instance/update.py +14 -14
- nextmv/cli/cloud/managed_input/create.py +16 -14
- nextmv/cli/cloud/managed_input/delete.py +8 -7
- nextmv/cli/cloud/managed_input/get.py +3 -3
- nextmv/cli/cloud/managed_input/list.py +3 -3
- nextmv/cli/cloud/managed_input/update.py +9 -9
- nextmv/cli/cloud/run/cancel.py +2 -2
- nextmv/cli/cloud/run/create.py +40 -34
- nextmv/cli/cloud/run/get.py +8 -8
- nextmv/cli/cloud/run/input.py +4 -4
- nextmv/cli/cloud/run/list.py +6 -6
- nextmv/cli/cloud/run/logs.py +10 -9
- nextmv/cli/cloud/run/metadata.py +4 -4
- nextmv/cli/cloud/run/track.py +33 -32
- nextmv/cli/cloud/scenario/create.py +21 -21
- nextmv/cli/cloud/scenario/delete.py +10 -6
- nextmv/cli/cloud/scenario/get.py +9 -9
- nextmv/cli/cloud/scenario/list.py +3 -3
- nextmv/cli/cloud/scenario/metadata.py +4 -4
- nextmv/cli/cloud/scenario/update.py +6 -6
- nextmv/cli/cloud/secrets/create.py +17 -17
- nextmv/cli/cloud/secrets/delete.py +10 -6
- nextmv/cli/cloud/secrets/get.py +4 -4
- nextmv/cli/cloud/secrets/list.py +3 -3
- nextmv/cli/cloud/secrets/update.py +20 -17
- nextmv/cli/cloud/upload/create.py +2 -2
- nextmv/cli/cloud/version/create.py +10 -9
- nextmv/cli/cloud/version/delete.py +7 -6
- nextmv/cli/cloud/version/exists.py +2 -2
- nextmv/cli/cloud/version/get.py +2 -2
- nextmv/cli/cloud/version/list.py +3 -3
- nextmv/cli/cloud/version/update.py +8 -8
- nextmv/cli/community/__init__.py +1 -1
- nextmv/cli/community/clone.py +204 -20
- nextmv/cli/community/list.py +125 -60
- nextmv/cli/configuration/config.py +10 -43
- nextmv/cli/configuration/create.py +7 -7
- nextmv/cli/configuration/delete.py +8 -8
- nextmv/cli/configuration/list.py +3 -3
- nextmv/cli/main.py +36 -26
- nextmv/cli/message.py +54 -71
- nextmv/cli/options.py +0 -28
- nextmv/cli/version.py +1 -1
- nextmv/cloud/__init__.py +38 -14
- nextmv/cloud/acceptance_test.py +65 -1
- nextmv/cloud/account.py +6 -1
- nextmv/cloud/application/__init__.py +75 -18
- nextmv/cloud/application/_acceptance.py +8 -13
- nextmv/cloud/application/_batch_scenario.py +19 -4
- nextmv/cloud/application/_input_set.py +6 -42
- nextmv/cloud/application/_instance.py +3 -3
- nextmv/cloud/application/_managed_input.py +2 -2
- nextmv/cloud/application/_version.py +3 -4
- nextmv/cloud/batch_experiment.py +1 -3
- nextmv/cloud/integration.py +4 -7
- nextmv/deprecated.py +3 -5
- nextmv/input.py +52 -0
- nextmv/local/runner.py +1 -1
- nextmv/model.py +11 -50
- nextmv/options.py +256 -11
- nextmv/output.py +62 -0
- nextmv/run.py +10 -1
- nextmv/status.py +51 -1
- {nextmv-1.0.0.dist-info → nextmv-1.0.0.dev0.dist-info}/METADATA +4 -5
- nextmv-1.0.0.dev0.dist-info/RECORD +158 -0
- nextmv/cli/cloud/ensemble/list.py +0 -63
- nextmv/cli/cloud/input_set/delete.py +0 -64
- nextmv/cli/cloud/shadow/__init__.py +0 -33
- nextmv/cli/cloud/shadow/create.py +0 -184
- nextmv/cli/cloud/shadow/delete.py +0 -64
- nextmv/cli/cloud/shadow/get.py +0 -61
- nextmv/cli/cloud/shadow/list.py +0 -63
- nextmv/cli/cloud/shadow/metadata.py +0 -66
- nextmv/cli/cloud/shadow/start.py +0 -43
- nextmv/cli/cloud/shadow/stop.py +0 -53
- nextmv/cli/cloud/shadow/update.py +0 -96
- nextmv/cli/cloud/switchback/__init__.py +0 -33
- nextmv/cli/cloud/switchback/create.py +0 -151
- nextmv/cli/cloud/switchback/delete.py +0 -64
- nextmv/cli/cloud/switchback/get.py +0 -62
- nextmv/cli/cloud/switchback/list.py +0 -63
- nextmv/cli/cloud/switchback/metadata.py +0 -68
- nextmv/cli/cloud/switchback/start.py +0 -43
- nextmv/cli/cloud/switchback/stop.py +0 -53
- nextmv/cli/cloud/switchback/update.py +0 -96
- nextmv/cli/confirm.py +0 -34
- nextmv/cloud/application/_shadow.py +0 -320
- nextmv/cloud/application/_switchback.py +0 -332
- nextmv/cloud/community.py +0 -446
- nextmv/cloud/shadow.py +0 -254
- nextmv/cloud/switchback.py +0 -228
- nextmv-1.0.0.dist-info/RECORD +0 -185
- nextmv-1.0.0.dist-info/entry_points.txt +0 -2
- {nextmv-1.0.0.dist-info → nextmv-1.0.0.dev0.dist-info}/WHEEL +0 -0
- {nextmv-1.0.0.dist-info → nextmv-1.0.0.dev0.dist-info}/licenses/LICENSE +0 -0
nextmv/cli/cloud/run/create.py
CHANGED
|
@@ -68,7 +68,7 @@ def create(
|
|
|
68
68
|
"--tail",
|
|
69
69
|
"-t",
|
|
70
70
|
help="Tail the logs until the run completes. Logs are streamed to [magenta]stderr[/magenta]. "
|
|
71
|
-
"Specify log output location with --logs.",
|
|
71
|
+
"Specify log output location with [code]--logs[/code].",
|
|
72
72
|
rich_help_panel="Output control",
|
|
73
73
|
),
|
|
74
74
|
] = False,
|
|
@@ -79,7 +79,7 @@ def create(
|
|
|
79
79
|
"-w",
|
|
80
80
|
help="Wait for the run to complete. Run result is printed to [magenta]stdout[/magenta] for "
|
|
81
81
|
"[magenta]json[/magenta], to a dir for [magenta]multi-file[/magenta]. "
|
|
82
|
-
"Specify output location with --output.",
|
|
82
|
+
"Specify output location with [code]--output[/code].",
|
|
83
83
|
rich_help_panel="Output control",
|
|
84
84
|
),
|
|
85
85
|
] = False,
|
|
@@ -129,7 +129,7 @@ def create(
|
|
|
129
129
|
metavar="INSTANCE_ID",
|
|
130
130
|
rich_help_panel="Run configuration",
|
|
131
131
|
),
|
|
132
|
-
] =
|
|
132
|
+
] = "latest",
|
|
133
133
|
integration_id: Annotated[
|
|
134
134
|
str | None,
|
|
135
135
|
typer.Option(
|
|
@@ -210,99 +210,101 @@ def create(
|
|
|
210
210
|
Create a new Nextmv Cloud application run.
|
|
211
211
|
|
|
212
212
|
Input for the run should be given through [magenta]stdin[/magenta] or the
|
|
213
|
-
--input flag. When using the --input flag, the
|
|
214
|
-
following:
|
|
213
|
+
[code]--input[/code] flag. When using the [code]--input[/code] flag, the
|
|
214
|
+
value can be one of the following:
|
|
215
215
|
|
|
216
|
-
- [
|
|
216
|
+
- [green]<FILE_PATH>[/green]: path to a [magenta]file[/magenta] containing
|
|
217
217
|
the input data. Use with the [magenta]json[/magenta], and
|
|
218
218
|
[magenta]text[/magenta] content formats.
|
|
219
|
-
- [
|
|
219
|
+
- [green]<DIR_PATH>[/green]: path to a [magenta]directory[/magenta]
|
|
220
220
|
containing the input data files. Use with the
|
|
221
221
|
[magenta]multi-file[/magenta] content format.
|
|
222
|
-
- [
|
|
222
|
+
- [green]<.tar.gz_PATH>[/green]: path to a [magenta].tar.gz[/magenta] file
|
|
223
223
|
containing tarred input data files. Use with the
|
|
224
224
|
[magenta]multi-file[/magenta] content format.
|
|
225
225
|
|
|
226
226
|
The CLI determines how to send the input to the application based on the
|
|
227
227
|
value.
|
|
228
228
|
|
|
229
|
-
Use the --wait flag to wait for the run to complete, polling
|
|
230
|
-
Using the --output flag will also activate
|
|
231
|
-
specify a destination (file or dir) for the
|
|
232
|
-
content type.
|
|
229
|
+
Use the [code]--wait[/code] flag to wait for the run to complete, polling
|
|
230
|
+
for results. Using the [code]--output[/code] flag will also activate
|
|
231
|
+
waiting, and allows you to specify a destination (file or dir) for the
|
|
232
|
+
output, depending on the content type.
|
|
233
233
|
|
|
234
|
-
Use the --tail flag to stream logs to
|
|
235
|
-
run completes. Using the
|
|
236
|
-
|
|
234
|
+
Use the [code]--tail[/code] flag to stream logs to
|
|
235
|
+
[magenta]stderr[/magenta] until the run completes. Using the
|
|
236
|
+
[code]--logs[/code] flag will also activate waiting, and allows you to
|
|
237
|
+
specify a file to write the logs to.
|
|
237
238
|
|
|
238
239
|
An application run executes against a specific instance. An instance
|
|
239
240
|
represents the combination of executable code and configuration. You can
|
|
240
|
-
specify the instance with the --instance-id flag. These are
|
|
241
|
-
values for this flag:
|
|
241
|
+
specify the instance with the [code]--instance-id[/code] flag. These are
|
|
242
|
+
the possible values for this flag:
|
|
242
243
|
|
|
243
|
-
- [
|
|
244
|
-
application. When an application is created, the default instance is [magenta]latest[/magenta].
|
|
245
|
-
- [yellow]latest[/yellow]: uses the special [magenta]latest[/magenta]
|
|
244
|
+
- [green]latest[/green]: uses the special [magenta]latest[/magenta]
|
|
246
245
|
instance of the application. This corresponds to the latest pushed
|
|
247
|
-
executable.
|
|
248
|
-
- [
|
|
246
|
+
executable. This is the default behavior.
|
|
247
|
+
- [green]default[/green]: if the application has a [italic]default[/italic]
|
|
248
|
+
instance configured, then it uses that instance. Setting the flag's value
|
|
249
|
+
to [code]''[/code] (empty string) has the same effect.
|
|
250
|
+
- [green]<INSTANCE_ID>[/green]: uses the instance with the given ID.
|
|
249
251
|
|
|
250
252
|
[bold][underline]Examples[/underline][/bold]
|
|
251
253
|
|
|
252
254
|
- Read a [magenta]json[/magenta] input via [magenta]stdin[/magenta], from an [magenta]input.json[/magenta] file,
|
|
253
255
|
and submit a run to an app with ID [magenta]hare-app[/magenta], using the [magenta]latest[/magenta] instance.
|
|
254
|
-
$ [
|
|
256
|
+
$ [green]cat input.json | nextmv cloud run create --app-id hare-app[/green]
|
|
255
257
|
|
|
256
258
|
- Read a [magenta]json[/magenta] input from an [magenta]input.json[/magenta] file, and
|
|
257
259
|
submit a run to an app with ID [magenta]hare-app[/magenta], using the [magenta]latest[/magenta] instance.
|
|
258
|
-
$ [
|
|
260
|
+
$ [green]nextmv cloud run create --app-id hare-app --input input.json[/green]
|
|
259
261
|
|
|
260
262
|
- Read a [magenta]json[/magenta] input from an [magenta]input.json[/magenta] file, and
|
|
261
263
|
submit a run to an app with ID [magenta]hare-app[/magenta], using the [magenta]latest[/magenta] instance.
|
|
262
264
|
Wait for the run to complete and print the result to [magenta]stdout[/magenta].
|
|
263
|
-
$ [
|
|
265
|
+
$ [green]nextmv cloud run create --app-id hare-app --input input.json --wait[/green]
|
|
264
266
|
|
|
265
267
|
- Read a [magenta]json[/magenta] input from an [magenta]input.json[/magenta] file, and
|
|
266
268
|
submit a run to an app with ID [magenta]hare-app[/magenta], using the [magenta]latest[/magenta] instance.
|
|
267
269
|
Tail the run's logs, streaming to [magenta]stderr[/magenta].
|
|
268
|
-
$ [
|
|
270
|
+
$ [green]nextmv cloud run create --app-id hare-app --input input.json --tail[/green]
|
|
269
271
|
|
|
270
272
|
- Read a [magenta]json[/magenta] input from an [magenta]input.json[/magenta] file, and
|
|
271
273
|
submit a run to an app with ID [magenta]hare-app[/magenta], using the [magenta]latest[/magenta] instance.
|
|
272
274
|
Wait for the run to complete and write the result to an [magenta]output.json[/magenta] file.
|
|
273
|
-
$ [
|
|
275
|
+
$ [green]nextmv cloud run create --app-id hare-app --input input.json --output output.json[/green]
|
|
274
276
|
|
|
275
277
|
- Read a [magenta]json[/magenta] input from an [magenta]input.json[/magenta] file, and
|
|
276
278
|
submit a run to an app with ID [magenta]hare-app[/magenta], using the [magenta]latest[/magenta] instance.
|
|
277
279
|
Wait for the run to complete, and write the logs to a [magenta]logs.log[/magenta] file.
|
|
278
|
-
$ [
|
|
280
|
+
$ [green]nextmv cloud run create --app-id hare-app --input input.json --logs logs.log[/green]
|
|
279
281
|
|
|
280
282
|
- Read a [magenta]json[/magenta] input from an [magenta]input.json[/magenta] file, and submit a run to an app with
|
|
281
283
|
ID [magenta]hare-app[/magenta], using the [magenta]latest[/magenta] instance. Wait for the run to complete. Tail
|
|
282
284
|
the run's logs, streaming to [magenta]stderr[/magenta]. Write the logs to a [magenta]logs.log[/magenta] file.
|
|
283
285
|
Write the result to an [magenta]output.json[/magenta] file.
|
|
284
|
-
$ [
|
|
285
|
-
--output output.json [/
|
|
286
|
+
$ [green]nextmv cloud run create --app-id hare-app --input input.json --tail --logs logs.log \\
|
|
287
|
+
--output output.json [/green]
|
|
286
288
|
|
|
287
289
|
- Read a [magenta]multi-file[/magenta] input from an [magenta]inputs[/magenta] directory, and
|
|
288
290
|
submit a run to an app with ID [magenta]hare-app[/magenta], using the [magenta]default[/magenta] instance.
|
|
289
|
-
$ [
|
|
291
|
+
$ [green]nextmv cloud run create --app-id hare-app --input inputs --instance-id default[/green]
|
|
290
292
|
|
|
291
293
|
- Read a [magenta]multi-file[/magenta] input from an [magenta]inputs[/magenta] directory, and
|
|
292
294
|
submit a run to an app with ID [magenta]hare-app[/magenta], using the [magenta]default[/magenta] instance.
|
|
293
295
|
Wait for the run to complete, and save the results to the default location (a directory named after the run ID).
|
|
294
|
-
$ [
|
|
296
|
+
$ [green]nextmv cloud run create --app-id hare-app --input inputs --instance-id default --wait[/green]
|
|
295
297
|
|
|
296
298
|
- Read a [magenta]multi-file[/magenta] input from an [magenta]inputs[/magenta] directory, and
|
|
297
299
|
submit a run to an app with ID [magenta]hare-app[/magenta], using the [magenta]burrow[/magenta] instance.
|
|
298
300
|
Wait for the run to complete and download the result files to an [magenta]outputs[/magenta] directory.
|
|
299
|
-
$ [
|
|
301
|
+
$ [green]nextmv cloud run create --app-id hare-app --input inputs --instance-id burrow --output outputs[/green]
|
|
300
302
|
"""
|
|
301
303
|
|
|
302
304
|
# Validate that input is provided.
|
|
303
305
|
stdin = sys.stdin.read().strip() if sys.stdin.isatty() is False else None
|
|
304
306
|
if stdin is None and (input is None or input == ""):
|
|
305
|
-
error("Input data must be provided via the --input flag or [magenta]stdin[/magenta].")
|
|
307
|
+
error("Input data must be provided via the [code]--input[/code] flag or [magenta]stdin[/magenta].")
|
|
306
308
|
|
|
307
309
|
# Instantiate the basic requirements to start a new run.
|
|
308
310
|
cloud_app = build_app(app_id=app_id, profile=profile)
|
|
@@ -318,6 +320,10 @@ def create(
|
|
|
318
320
|
)
|
|
319
321
|
run_options = build_run_options(options)
|
|
320
322
|
|
|
323
|
+
# Handles the default instance.
|
|
324
|
+
if instance_id == "default":
|
|
325
|
+
instance_id = ""
|
|
326
|
+
|
|
321
327
|
# Start the run before deciding if we should poll or not.
|
|
322
328
|
input_kwarg = resolve_input_kwarg(
|
|
323
329
|
stdin=stdin,
|
nextmv/cli/cloud/run/get.py
CHANGED
|
@@ -46,7 +46,7 @@ def get(
|
|
|
46
46
|
"-w",
|
|
47
47
|
help="Wait for the run to complete. Run result is printed to [magenta]stdout[/magenta] for "
|
|
48
48
|
"[magenta]json[/magenta], to a dir for [magenta]multi-file[/magenta]. "
|
|
49
|
-
"Specify output location with --output.",
|
|
49
|
+
"Specify output location with [code]--output[/code].",
|
|
50
50
|
),
|
|
51
51
|
] = False,
|
|
52
52
|
profile: ProfileOption = None,
|
|
@@ -54,8 +54,8 @@ def get(
|
|
|
54
54
|
"""
|
|
55
55
|
Get the result (output) of a Nextmv Cloud application run.
|
|
56
56
|
|
|
57
|
-
Use the --wait flag to wait for the run to complete, polling
|
|
58
|
-
for results. Using the --output flag will also activate
|
|
57
|
+
Use the [code]--wait[/code] flag to wait for the run to complete, polling
|
|
58
|
+
for results. Using the [code]--output[/code] flag will also activate
|
|
59
59
|
waiting, and allows you to specify a destination (file or dir) for the
|
|
60
60
|
output, depending on the content type.
|
|
61
61
|
|
|
@@ -63,25 +63,25 @@ def get(
|
|
|
63
63
|
|
|
64
64
|
- Get the results of a run with ID [magenta]burrow-123[/magenta], belonging to an app with ID
|
|
65
65
|
[magenta]hare-app[/magenta].
|
|
66
|
-
$ [
|
|
66
|
+
$ [green]nextmv cloud run get --app-id hare-app --run-id burrow-123[/green]
|
|
67
67
|
|
|
68
68
|
- Get the results of a run with ID [magenta]burrow-123[/magenta], belonging to an app with ID
|
|
69
69
|
[magenta]hare-app[/magenta]. Wait for the run to complete if necessary.
|
|
70
|
-
$ [
|
|
70
|
+
$ [green]nextmv cloud run get --app-id hare-app --run-id burrow-123 --wait[/green]
|
|
71
71
|
|
|
72
72
|
- Get the results of a run with ID [magenta]burrow-123[/magenta], belonging to an app with ID
|
|
73
73
|
[magenta]hare-app[/magenta]. The app is a [magenta]json[/magenta] app.
|
|
74
74
|
Save the results to a [magenta]results.json[/magenta] file.
|
|
75
|
-
$ [
|
|
75
|
+
$ [green]nextmv cloud run get --app-id hare-app --run-id burrow-123 --output results.json[/green]
|
|
76
76
|
|
|
77
77
|
- Get the results of a run with ID [magenta]burrow-123[/magenta], belonging to an app with ID
|
|
78
78
|
[magenta]hare-app[/magenta]. The app is a [magenta]multi-file[/magenta] app.
|
|
79
79
|
Save the results to the [magenta]results[/magenta] dir.
|
|
80
|
-
$ [
|
|
80
|
+
$ [green]nextmv cloud run get --app-id hare-app --run-id burrow-123 --output results[/green]
|
|
81
81
|
|
|
82
82
|
- Get the results of a run with ID [magenta]burrow-123[/magenta], belonging to an app with ID
|
|
83
83
|
[magenta]hare-app[/magenta]. Use the profile named [magenta]hare[/magenta].
|
|
84
|
-
$ [
|
|
84
|
+
$ [green]nextmv cloud run get --app-id hare-app --run-id burrow-123 --profile hare[/green]
|
|
85
85
|
"""
|
|
86
86
|
|
|
87
87
|
cloud_app = build_app(app_id=app_id, profile=profile)
|
nextmv/cli/cloud/run/input.py
CHANGED
|
@@ -35,21 +35,21 @@ def input(
|
|
|
35
35
|
Get the input of a Nextmv Cloud application run.
|
|
36
36
|
|
|
37
37
|
By default, the input is fetched and printed to [magenta]stdout[/magenta].
|
|
38
|
-
Use the --output flag to save the input to a file.
|
|
38
|
+
Use the [code]--output[/code] flag to save the input to a file.
|
|
39
39
|
|
|
40
40
|
[bold][underline]Examples[/underline][/bold]
|
|
41
41
|
|
|
42
42
|
- Get the input of a run with ID [magenta]burrow-123[/magenta], belonging to an app with ID
|
|
43
43
|
[magenta]hare-app[/magenta]. Input is printed to [magenta]stdout[/magenta].
|
|
44
|
-
$ [
|
|
44
|
+
$ [green]nextmv cloud run input --app-id hare-app --run-id burrow-123[/green]
|
|
45
45
|
|
|
46
46
|
- Get the input of a run with ID [magenta]burrow-123[/magenta], belonging to an app with ID
|
|
47
47
|
[magenta]hare-app[/magenta]. Save the input to a [magenta]input.json[/magenta] file.
|
|
48
|
-
$ [
|
|
48
|
+
$ [green]nextmv cloud run input --app-id hare-app --run-id burrow-123 --output input.json[/green]
|
|
49
49
|
|
|
50
50
|
- Get the input of a run with ID [magenta]burrow-123[/magenta], belonging to an app with ID
|
|
51
51
|
[magenta]hare-app[/magenta]. Use the profile named [magenta]hare[/magenta].
|
|
52
|
-
$ [
|
|
52
|
+
$ [green]nextmv cloud run input --app-id hare-app --run-id burrow-123 --profile hare[/green]
|
|
53
53
|
"""
|
|
54
54
|
|
|
55
55
|
cloud_app = build_app(app_id=app_id, profile=profile)
|
nextmv/cli/cloud/run/list.py
CHANGED
|
@@ -43,25 +43,25 @@ def list(
|
|
|
43
43
|
Get the list of runs for a Nextmv Cloud application.
|
|
44
44
|
|
|
45
45
|
By default, the list of runs is fetched and printed to [magenta]stdout[/magenta].
|
|
46
|
-
Use the --output flag to save the list to a file.
|
|
46
|
+
Use the [code]--output[/code] flag to save the list to a file.
|
|
47
47
|
|
|
48
|
-
You can use the optional --status flag to filter runs by their status.
|
|
48
|
+
You can use the optional [code]--status[/code] flag to filter runs by their status.
|
|
49
49
|
|
|
50
50
|
[bold][underline]Examples[/underline][/bold]
|
|
51
51
|
|
|
52
52
|
- Get the list of runs for an app with ID [magenta]hare-app[/magenta]. List is printed to [magenta]stdout[/magenta].
|
|
53
|
-
$ [
|
|
53
|
+
$ [green]nextmv cloud run list --app-id hare-app[/green]
|
|
54
54
|
|
|
55
55
|
- Get the list of runs for an app with ID [magenta]hare-app[/magenta]. Save the list to a
|
|
56
56
|
[magenta]runs.json[/magenta] file.
|
|
57
|
-
$ [
|
|
57
|
+
$ [green]nextmv cloud run list --app-id hare-app --output runs.json[/green]
|
|
58
58
|
|
|
59
59
|
- Get the list of runs for an app with ID [magenta]hare-app[/magenta].
|
|
60
60
|
Use the profile named [magenta]hare[/magenta].
|
|
61
|
-
$ [
|
|
61
|
+
$ [green]nextmv cloud run list --app-id hare-app --profile hare[/green]
|
|
62
62
|
|
|
63
63
|
- Get the list of [magenta]queued[/magenta] runs for an app with ID [magenta]hare-app[/magenta].
|
|
64
|
-
$ [
|
|
64
|
+
$ [green]nextmv cloud run list --app-id hare-app --status queued[/green]
|
|
65
65
|
"""
|
|
66
66
|
|
|
67
67
|
cloud_app = build_app(app_id=app_id, profile=profile)
|
nextmv/cli/cloud/run/logs.py
CHANGED
|
@@ -38,7 +38,7 @@ def logs(
|
|
|
38
38
|
"--tail",
|
|
39
39
|
"-t",
|
|
40
40
|
help="Tail the logs until the run completes. Logs are streamed to [magenta]stderr[/magenta]. "
|
|
41
|
-
"Specify log output location with --output.",
|
|
41
|
+
"Specify log output location with [code]--output[/code].",
|
|
42
42
|
),
|
|
43
43
|
] = False,
|
|
44
44
|
timeout: Annotated[
|
|
@@ -54,31 +54,32 @@ def logs(
|
|
|
54
54
|
Get the logs of a Nextmv Cloud application run.
|
|
55
55
|
|
|
56
56
|
By default, the logs are fetched and printed to [magenta]stderr[/magenta].
|
|
57
|
-
Use the --tail flag to stream logs to
|
|
58
|
-
run completes. Using the
|
|
59
|
-
|
|
57
|
+
Use the [code]--tail[/code] flag to stream logs to
|
|
58
|
+
[magenta]stderr[/magenta] until the run completes. Using the
|
|
59
|
+
[code]--output[/code] flag will also activate waiting, and allows you to
|
|
60
|
+
specify a file to write the logs to.
|
|
60
61
|
|
|
61
62
|
[bold][underline]Examples[/underline][/bold]
|
|
62
63
|
|
|
63
64
|
- Get the logs of a run with ID [magenta]burrow-123[/magenta], belonging to an app with ID
|
|
64
65
|
[magenta]hare-app[/magenta]. Logs are printed to [magenta]stderr[/magenta].
|
|
65
|
-
$ [
|
|
66
|
+
$ [green]nextmv cloud run logs --app-id hare-app --run-id burrow-123[/green]
|
|
66
67
|
|
|
67
68
|
- Get the logs of a run with ID [magenta]burrow-123[/magenta], belonging to an app with ID
|
|
68
69
|
[magenta]hare-app[/magenta]. Tail the logs until the run completes.
|
|
69
|
-
$ [
|
|
70
|
+
$ [green]nextmv cloud run logs --app-id hare-app --run-id burrow-123 --tail[/green]
|
|
70
71
|
|
|
71
72
|
- Get the logs of a run with ID [magenta]burrow-123[/magenta], belonging to an app with ID
|
|
72
73
|
[magenta]hare-app[/magenta]. Save the logs to a [magenta]logs.log[/magenta] file.
|
|
73
|
-
$ [
|
|
74
|
+
$ [green]nextmv cloud run logs --app-id hare-app --run-id burrow-123 --output logs.log[/green]
|
|
74
75
|
|
|
75
76
|
- Get the logs of a run with ID [magenta]burrow-123[/magenta], belonging to an app with ID
|
|
76
77
|
[magenta]hare-app[/magenta]. Tail the logs and save them to a [magenta]logs.log[/magenta] file.
|
|
77
|
-
$ [
|
|
78
|
+
$ [green]nextmv cloud run logs --app-id hare-app --run-id burrow-123 --tail --output logs.log[/green]
|
|
78
79
|
|
|
79
80
|
- Get the logs of a run with ID [magenta]burrow-123[/magenta], belonging to an app with ID
|
|
80
81
|
[magenta]hare-app[/magenta]. Use the profile named [magenta]hare[/magenta].
|
|
81
|
-
$ [
|
|
82
|
+
$ [green]nextmv cloud run logs --app-id hare-app --run-id burrow-123 --profile hare[/green]
|
|
82
83
|
"""
|
|
83
84
|
|
|
84
85
|
cloud_app = build_app(app_id=app_id, profile=profile)
|
nextmv/cli/cloud/run/metadata.py
CHANGED
|
@@ -34,21 +34,21 @@ def metadata(
|
|
|
34
34
|
Get the metadata of a Nextmv Cloud application run.
|
|
35
35
|
|
|
36
36
|
By default, the metadata is fetched and printed to [magenta]stdout[/magenta].
|
|
37
|
-
Use the --output flag to save the metadata to a file.
|
|
37
|
+
Use the [code]--output[/code] flag to save the metadata to a file.
|
|
38
38
|
|
|
39
39
|
[bold][underline]Examples[/underline][/bold]
|
|
40
40
|
|
|
41
41
|
- Get the metadata of a run with ID [magenta]burrow-123[/magenta], belonging to an app with ID
|
|
42
42
|
[magenta]hare-app[/magenta]. Metadata is printed to [magenta]stdout[/magenta].
|
|
43
|
-
$ [
|
|
43
|
+
$ [green]nextmv cloud run metadata --app-id hare-app --run-id burrow-123[/green]
|
|
44
44
|
|
|
45
45
|
- Get the metadata of a run with ID [magenta]burrow-123[/magenta], belonging to an app with ID
|
|
46
46
|
[magenta]hare-app[/magenta]. Save the metadata to a [magenta]metadata.json[/magenta] file.
|
|
47
|
-
$ [
|
|
47
|
+
$ [green]nextmv cloud run metadata --app-id hare-app --run-id burrow-123 --output metadata.json[/green]
|
|
48
48
|
|
|
49
49
|
- Get the metadata of a run with ID [magenta]burrow-123[/magenta], belonging to an app with ID
|
|
50
50
|
[magenta]hare-app[/magenta]. Use the profile named [magenta]hare[/magenta].
|
|
51
|
-
$ [
|
|
51
|
+
$ [green]nextmv cloud run metadata --app-id hare-app --run-id burrow-123 --profile hare[/green]
|
|
52
52
|
"""
|
|
53
53
|
|
|
54
54
|
cloud_app = build_app(app_id=app_id, profile=profile)
|
nextmv/cli/cloud/run/track.py
CHANGED
|
@@ -143,86 +143,87 @@ def track(
|
|
|
143
143
|
"""
|
|
144
144
|
Track an external run as a Nextmv Cloud application run.
|
|
145
145
|
|
|
146
|
-
Please see the help of the --content-type option for details
|
|
147
|
-
content types.
|
|
146
|
+
Please see the help of the [code]--content-type[/code] option for details
|
|
147
|
+
on valid content types.
|
|
148
148
|
|
|
149
149
|
If the content type is [magenta]json[/magenta] or [magenta]text[/magenta],
|
|
150
150
|
then input for the run can be given through [magenta]stdin[/magenta]. The
|
|
151
|
-
--input option allows you to specify a file or directory path
|
|
152
|
-
input, instead of using [magenta]stdin[/magenta]. In the case of
|
|
151
|
+
[code]--input[/code] option allows you to specify a file or directory path
|
|
152
|
+
for the input, instead of using [magenta]stdin[/magenta]. In the case of
|
|
153
153
|
[magenta]multi-file[/magenta] content type, the input must be given through
|
|
154
|
-
a directory specified via the --input option.
|
|
154
|
+
a directory specified via the [code]--input[/code] option.
|
|
155
155
|
|
|
156
|
-
The --output option allows you to specify a file or directory
|
|
157
|
-
output of the run. The behavior depends on the content type.
|
|
158
|
-
type is [magenta]json[/magenta] or [magenta]text[/magenta],
|
|
159
|
-
path must be provided. If the content type is
|
|
156
|
+
The [code]--output[/code] option allows you to specify a file or directory
|
|
157
|
+
path for the output of the run. The behavior depends on the content type.
|
|
158
|
+
If the content type is [magenta]json[/magenta] or [magenta]text[/magenta],
|
|
159
|
+
then a file path must be provided. If the content type is
|
|
160
160
|
[magenta]multi-file[/magenta], then a directory path must be provided.
|
|
161
161
|
|
|
162
162
|
Run logs, assets, and statistics can be provided via files using the
|
|
163
|
-
--logs, --assets, and --statistics
|
|
164
|
-
statistics must be provided as
|
|
165
|
-
must be provided as a utf-8
|
|
163
|
+
[code]--logs[/code], [code]--assets[/code], and [code]--statistics[/code]
|
|
164
|
+
options, respectively. Assets and statistics must be provided as
|
|
165
|
+
[magenta]json[/magenta] files, while logs must be provided as a utf-8
|
|
166
|
+
encoded text file.
|
|
166
167
|
|
|
167
168
|
[bold][underline]Examples[/underline][/bold]
|
|
168
169
|
|
|
169
170
|
- Track a [magenta]successful[/magenta] [magenta]json[/magenta] run via [magenta]stdin[/magenta]
|
|
170
171
|
input, for an app with ID [magenta]hare-app[/magenta].
|
|
171
|
-
$ [
|
|
172
|
+
$ [green]cat input.json | nextmv cloud run track --app-id hare-app --status succeeded[/green]
|
|
172
173
|
|
|
173
174
|
- Track a [magenta]successful[/magenta] [magenta]json[/magenta] run with input from an
|
|
174
175
|
[magenta]input.json[/magenta] file and output from an
|
|
175
176
|
[magenta]output.json[/magenta] file, for an app with ID
|
|
176
177
|
[magenta]hare-app[/magenta].
|
|
177
|
-
$ [
|
|
178
|
-
--output output.json[/
|
|
178
|
+
$ [green]nextmv cloud run track --app-id hare-app --status succeeded --input input.json \\
|
|
179
|
+
--output output.json[/green]
|
|
179
180
|
|
|
180
181
|
- Track a [magenta]successful[/magenta] [magenta]json[/magenta] run including logs from a
|
|
181
182
|
[magenta]logs.log[/magenta] file, for an app with ID
|
|
182
183
|
[magenta]hare-app[/magenta].
|
|
183
|
-
$ [
|
|
184
|
-
--output output.json --logs logs.log[/
|
|
184
|
+
$ [green]nextmv cloud run track --app-id hare-app --status succeeded --input input.json \\
|
|
185
|
+
--output output.json --logs logs.log[/green]
|
|
185
186
|
|
|
186
187
|
- Track a [magenta]successful[/magenta] [magenta]json[/magenta] run with assets and statistics
|
|
187
188
|
from [magenta]json[/magenta] files, for an app with ID
|
|
188
189
|
[magenta]hare-app[/magenta].
|
|
189
|
-
$ [
|
|
190
|
-
--output output.json --assets assets.json --statistics statistics.json[/
|
|
190
|
+
$ [green]nextmv cloud run track --app-id hare-app --status succeeded --input input.json \\
|
|
191
|
+
--output output.json --assets assets.json --statistics statistics.json[/green]
|
|
191
192
|
|
|
192
193
|
- Track a [magenta]failed[/magenta] run with an error message, for an app with ID
|
|
193
194
|
[magenta]hare-app[/magenta].
|
|
194
|
-
$ [
|
|
195
|
-
--error-msg "Solver timed out"[/
|
|
195
|
+
$ [green]nextmv cloud run track --app-id hare-app --status failed --input input.json \\
|
|
196
|
+
--error-msg "Solver timed out"[/green]
|
|
196
197
|
|
|
197
198
|
- Track a [magenta]successful[/magenta] [magenta]text[/magenta] run with text content type,
|
|
198
199
|
for an app with ID [magenta]hare-app[/magenta].
|
|
199
|
-
$ [
|
|
200
|
-
--output output.txt --content-type text[/
|
|
200
|
+
$ [green]nextmv cloud run track --app-id hare-app --status succeeded --input input.txt \\
|
|
201
|
+
--output output.txt --content-type text[/green]
|
|
201
202
|
|
|
202
203
|
- Track a [magenta]successful[/magenta] [magenta]multi-file[/magenta] run from an
|
|
203
204
|
[magenta]inputs[/magenta] directory with output to an
|
|
204
205
|
[magenta]outputs[/magenta] directory, for an app with ID
|
|
205
206
|
[magenta]hare-app[/magenta], using the [magenta]default[/magenta]
|
|
206
207
|
instance.
|
|
207
|
-
$ [
|
|
208
|
-
--output outputs --content-type multi-file --instance-id default[/
|
|
208
|
+
$ [green]nextmv cloud run track --app-id hare-app --status succeeded --input inputs \\
|
|
209
|
+
--output outputs --content-type multi-file --instance-id default[/green]
|
|
209
210
|
|
|
210
211
|
- Track a [magenta]successful[/magenta] run with a name, description, and duration, for an app
|
|
211
212
|
with ID [magenta]hare-app[/magenta].
|
|
212
|
-
$ [
|
|
213
|
-
--output output.json --name "Production run" --description "Weekly optimization" --duration 5000[/
|
|
213
|
+
$ [green]nextmv cloud run track --app-id hare-app --status succeeded --input input.json \\
|
|
214
|
+
--output output.json --name "Production run" --description "Weekly optimization" --duration 5000[/green]
|
|
214
215
|
|
|
215
216
|
- Track a [magenta]successful[/magenta] [magenta]json[/magenta] run with all available options,
|
|
216
217
|
for an app with ID [magenta]hare-app[/magenta].
|
|
217
|
-
$ [
|
|
218
|
+
$ [green]nextmv cloud run track --app-id hare-app --status succeeded --input input.json \\
|
|
218
219
|
--output output.json --logs logs.log --assets assets.json --statistics statistics.json \\
|
|
219
|
-
--name "Full run" --description "Complete example" --duration 10000 --instance-id burrow[/
|
|
220
|
+
--name "Full run" --description "Complete example" --duration 10000 --instance-id burrow[/green]
|
|
220
221
|
"""
|
|
221
222
|
|
|
222
223
|
# Validate that input is provided.
|
|
223
224
|
stdin = sys.stdin.read().strip() if sys.stdin.isatty() is False else None
|
|
224
225
|
if stdin is None and (input is None or input == ""):
|
|
225
|
-
error("Input data must be provided via the --input flag or [magenta]stdin[/magenta].")
|
|
226
|
+
error("Input data must be provided via the [code]--input[/code] flag or [magenta]stdin[/magenta].")
|
|
226
227
|
|
|
227
228
|
# Instantiate the basic requirements to start a new run.
|
|
228
229
|
cloud_app = build_app(app_id=app_id, profile=profile)
|
|
@@ -392,7 +393,7 @@ def resolve_input(
|
|
|
392
393
|
error(
|
|
393
394
|
"Input provided via [magenta]stdin[/magenta] is [magenta]json[/magenta], "
|
|
394
395
|
f"but the specified content format is {content_format.value}. "
|
|
395
|
-
"--content-format should be set to [magenta]json[/magenta]."
|
|
396
|
+
"[code]--content-format[/code] should be set to [magenta]json[/magenta]."
|
|
396
397
|
)
|
|
397
398
|
|
|
398
399
|
except json.JSONDecodeError:
|
|
@@ -401,7 +402,7 @@ def resolve_input(
|
|
|
401
402
|
error(
|
|
402
403
|
"Input provided via [magenta]stdin[/magenta] is [magenta]text[/magenta], "
|
|
403
404
|
f"but the specified content format is {content_format.value}. "
|
|
404
|
-
"--content-format should be set to [magenta]text[/magenta]."
|
|
405
|
+
"[code]--content-format[/code] should be set to [magenta]text[/magenta]."
|
|
405
406
|
)
|
|
406
407
|
|
|
407
408
|
tracked_run.input = input_data
|
|
@@ -100,7 +100,7 @@ def create(
|
|
|
100
100
|
"--wait",
|
|
101
101
|
"-w",
|
|
102
102
|
help="Wait for the scenario test to complete. Results are printed to [magenta]stdout[/magenta]. "
|
|
103
|
-
"Specify output location with --output.",
|
|
103
|
+
"Specify output location with [code]--output[/code].",
|
|
104
104
|
rich_help_panel="Output control",
|
|
105
105
|
),
|
|
106
106
|
] = False,
|
|
@@ -112,21 +112,21 @@ def create(
|
|
|
112
112
|
A scenario test allows you to run multiple scenarios with different inputs,
|
|
113
113
|
instances/versions, and configurations in a single test.
|
|
114
114
|
|
|
115
|
-
Use the --wait flag to wait for the scenario test to complete,
|
|
116
|
-
polling for results. Using the --output flag will also
|
|
115
|
+
Use the [code]--wait[/code] flag to wait for the scenario test to complete,
|
|
116
|
+
polling for results. Using the [code]--output[/code] flag will also
|
|
117
117
|
activate waiting, and allows you to specify a destination file for the
|
|
118
118
|
results.
|
|
119
119
|
|
|
120
120
|
[bold][underline]Scenarios[/underline][/bold]
|
|
121
121
|
|
|
122
122
|
Scenarios are provided as [magenta]json[/magenta] objects using the
|
|
123
|
-
--scenarios flag. Each scenario defines the configuration for
|
|
124
|
-
test execution.
|
|
123
|
+
[code]--scenarios[/code] flag. Each scenario defines the configuration for
|
|
124
|
+
a scenario test execution.
|
|
125
125
|
|
|
126
126
|
You can provide scenarios in three ways:
|
|
127
127
|
- A single scenario as a [magenta]json[/magenta] object.
|
|
128
|
-
- Multiple scenarios by repeating the --scenarios flag.
|
|
129
|
-
- Multiple scenarios as a [magenta]json[/magenta] array in a single --scenarios flag.
|
|
128
|
+
- Multiple scenarios by repeating the [code]--scenarios[/code] flag.
|
|
129
|
+
- Multiple scenarios as a [magenta]json[/magenta] array in a single [code]--scenarios[/code] flag.
|
|
130
130
|
|
|
131
131
|
Each scenario must have the following fields:
|
|
132
132
|
- [magenta]instance_id[/magenta]: ID of the instance to use for this scenario (required).
|
|
@@ -142,7 +142,7 @@ def create(
|
|
|
142
142
|
- [magenta]values[/magenta]: List of values for the configuration option.
|
|
143
143
|
|
|
144
144
|
Example object format:
|
|
145
|
-
[
|
|
145
|
+
[green]{
|
|
146
146
|
"instance_id": "bunny-hopper-v2",
|
|
147
147
|
"scenario_input": {
|
|
148
148
|
"scenario_input_type": "input_set",
|
|
@@ -157,12 +157,12 @@ def create(
|
|
|
157
157
|
"values": ["optimized", "balanced", "safe"]
|
|
158
158
|
}
|
|
159
159
|
]
|
|
160
|
-
}[/
|
|
160
|
+
}[/green]
|
|
161
161
|
|
|
162
162
|
[bold][underline]Examples[/underline][/bold]
|
|
163
163
|
|
|
164
164
|
- Create a scenario test with a single scenario.
|
|
165
|
-
$ [
|
|
165
|
+
$ [green]SCENARIO='{
|
|
166
166
|
"instance_id": "warren-planner-v1",
|
|
167
167
|
"scenario_input": {
|
|
168
168
|
"scenario_input_type": "input_set",
|
|
@@ -172,10 +172,10 @@ def create(
|
|
|
172
172
|
}
|
|
173
173
|
}
|
|
174
174
|
}'
|
|
175
|
-
nextmv cloud scenario create --app-id hare-app --name "Spring Meadow Routes" --scenarios "$SCENARIO"[/
|
|
175
|
+
nextmv cloud scenario create --app-id hare-app --name "Spring Meadow Routes" --scenarios "$SCENARIO"[/green]
|
|
176
176
|
|
|
177
177
|
- Create with multiple scenarios by repeating the flag.
|
|
178
|
-
$ [
|
|
178
|
+
$ [green]SCENARIO1='{
|
|
179
179
|
"instance_id": "hop-optimizer",
|
|
180
180
|
"scenario_input": {
|
|
181
181
|
"scenario_input_type": "input_set",
|
|
@@ -196,10 +196,10 @@ def create(
|
|
|
196
196
|
}
|
|
197
197
|
}'
|
|
198
198
|
nextmv cloud scenario create --app-id hare-app --name "Lettuce Delivery Optimization" \\
|
|
199
|
-
--scenarios "$SCENARIO1" --scenarios "$SCENARIO2"[/
|
|
199
|
+
--scenarios "$SCENARIO1" --scenarios "$SCENARIO2"[/green]
|
|
200
200
|
|
|
201
201
|
- Create with multiple scenarios in a single [magenta]json[/magenta] array.
|
|
202
|
-
$ [
|
|
202
|
+
$ [green]SCENARIOS='[
|
|
203
203
|
{
|
|
204
204
|
"instance_id": "burrow-builder",
|
|
205
205
|
"scenario_input": {
|
|
@@ -222,10 +222,10 @@ def create(
|
|
|
222
222
|
}
|
|
223
223
|
]'
|
|
224
224
|
nextmv cloud scenario create --app-id hare-app --name "Warren Construction Plans" \\
|
|
225
|
-
--scenarios "$SCENARIOS"[/
|
|
225
|
+
--scenarios "$SCENARIOS"[/green]
|
|
226
226
|
|
|
227
227
|
- Create a scenario test and wait for it to complete.
|
|
228
|
-
$ [
|
|
228
|
+
$ [green]SCENARIO='{
|
|
229
229
|
"instance_id": "foraging-route",
|
|
230
230
|
"scenario_input": {
|
|
231
231
|
"scenario_input_type": "input_set",
|
|
@@ -236,10 +236,10 @@ def create(
|
|
|
236
236
|
}
|
|
237
237
|
}'
|
|
238
238
|
nextmv cloud scenario create --app-id hare-app --name "Autumn Carrot Collection" --scenarios "$SCENARIO" \\
|
|
239
|
-
--wait[/
|
|
239
|
+
--wait[/green]
|
|
240
240
|
|
|
241
241
|
- Create a scenario test and save the results to a file, waiting for completion.
|
|
242
|
-
$ [
|
|
242
|
+
$ [green]SCENARIO='{
|
|
243
243
|
"instance_id": "safe-hopper",
|
|
244
244
|
"scenario_input": {
|
|
245
245
|
"scenario_input_type": "input_set",
|
|
@@ -250,10 +250,10 @@ def create(
|
|
|
250
250
|
}
|
|
251
251
|
}'
|
|
252
252
|
nextmv cloud scenario create --app-id hare-app --name "Fox Avoidance Routes" --scenarios "$SCENARIO" \\
|
|
253
|
-
--output bunny-safety-results.json[/
|
|
253
|
+
--output bunny-safety-results.json[/green]
|
|
254
254
|
|
|
255
255
|
- Create a scenario test with configuration options.
|
|
256
|
-
$ [
|
|
256
|
+
$ [green]SCENARIO='{
|
|
257
257
|
"instance_id": "hop-optimizer",
|
|
258
258
|
"scenario_input": {
|
|
259
259
|
"scenario_input_type": "input_set",
|
|
@@ -269,7 +269,7 @@ def create(
|
|
|
269
269
|
}
|
|
270
270
|
]
|
|
271
271
|
}'
|
|
272
|
-
nextmv cloud scenario create --app-id hare-app --name "Speed Analysis" --scenarios "$SCENARIO"[/
|
|
272
|
+
nextmv cloud scenario create --app-id hare-app --name "Speed Analysis" --scenarios "$SCENARIO"[/green]
|
|
273
273
|
"""
|
|
274
274
|
|
|
275
275
|
cloud_app = build_app(app_id=app_id, profile=profile)
|