Skip to content
This repository was archived by the owner on Aug 11, 2020. It is now read-only.

Commit 662902f

Browse files
committed
tweak: Add flag to show or hide logs. Default is hide.
1 parent 910523a commit 662902f

File tree

2 files changed

+22
-10
lines changed

2 files changed

+22
-10
lines changed

paperspace/cli/experiments.py

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -235,6 +235,13 @@ def common_experiments_create_single_node_options(f):
235235
return functools.reduce(lambda x, opt: opt(x), reversed(options), f)
236236

237237

238+
show_logs_option = click.option(
239+
"--logs/--no-logs",
240+
"show_logs",
241+
default=False,
242+
)
243+
244+
238245
@create_experiment.command(name="multinode", help="Create multi node experiment")
239246
@common_experiments_create_options
240247
@common_experiment_create_multi_node_options
@@ -259,38 +266,42 @@ def create_single_node(api_key, **kwargs):
259266
@create_and_start_experiment.command(name="multinode", help="Create and start new multi node experiment")
260267
@common_experiments_create_options
261268
@common_experiment_create_multi_node_options
269+
@show_logs_option
262270
@click.pass_context
263-
def create_and_start_multi_node(ctx, api_key, **kwargs):
271+
def create_and_start_multi_node(ctx, api_key, show_logs, **kwargs):
264272
del_if_value_is_none(kwargs)
265273
experiments_api = client.API(config.CONFIG_EXPERIMENTS_HOST, api_key=api_key)
266274
command = experiments_commands.CreateAndStartExperimentCommand(api=experiments_api)
267275
experiment = command.execute(kwargs)
268-
if experiment is not None:
276+
if experiment is not None and show_logs is True:
269277
ctx.invoke(list_logs, experiment_id=experiment["handle"], line=0, limit=100, follow=True, api_key=api_key)
270278

271279

272280
@create_and_start_experiment.command(name="singlenode", help="Create and start new single node experiment")
273281
@common_experiments_create_options
274282
@common_experiments_create_single_node_options
283+
@show_logs_option
275284
@click.pass_context
276-
def create_and_start_single_node(ctx, api_key, **kwargs):
285+
def create_and_start_single_node(ctx, api_key, show_logs, **kwargs):
277286
kwargs["experimentTypeId"] = constants.ExperimentType.SINGLE_NODE
278287
del_if_value_is_none(kwargs)
279288
experiments_api = client.API(config.CONFIG_EXPERIMENTS_HOST, api_key=api_key)
280289
command = experiments_commands.CreateAndStartExperimentCommand(api=experiments_api)
281290
experiment = command.execute(kwargs)
282-
if experiment is not None:
291+
if experiment is not None and show_logs is True:
283292
ctx.invoke(list_logs, experiment_id=experiment["handle"], line=0, limit=100, follow=True, api_key=api_key)
284293

285294

286295
@experiments.command("start", help="Start experiment")
287296
@click.argument("experiment-id")
288297
@api_key_option
298+
@show_logs_option
289299
@click.pass_context
290-
def start_experiment(ctx, experiment_id, api_key):
300+
def start_experiment(ctx, experiment_id, show_logs, api_key):
291301
experiments_api = client.API(config.CONFIG_EXPERIMENTS_HOST, api_key=api_key)
292302
experiments_commands.start_experiment(experiment_id, api=experiments_api)
293-
ctx.invoke(list_logs, experiment_id=experiment_id, line=0, limit=100, follow=True, api_key=api_key)
303+
if show_logs is True:
304+
ctx.invoke(list_logs, experiment_id=experiment_id, line=0, limit=100, follow=True, api_key=api_key)
294305

295306

296307
@experiments.command("stop", help="Stop experiment")

tests/functional/test_jobs.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -173,12 +173,13 @@ def test_should_print_proper_message_when_jobs_list_was_used_with_mutually_exclu
173173

174174

175175
class TestJobLogs(TestJobs):
176-
URL = "https://logs.paperspace.io/jobs/logs?jobId=some_job_id&line=0&limit=10000"
176+
URL = "https://logs.paperspace.io/jobs/logs"
177177

178178
RESPONSE_JSON_WITH_WRONG_API_TOKEN = {"status": 400, "message": "Invalid API token"}
179179
EXPECTED_RESPONSE_JSON = example_responses.LIST_OF_LOGS_FOR_JOB
180180
BASIC_COMMAND_WITHOUT_PARAMETERS = ["jobs", "logs"]
181181
BASIC_COMMAND = ["jobs", "logs", "--jobId", "some_job_id", "--apiKey", "some_key"]
182+
BASIC_COMMAND_PARAMS = {"jobId": "some_job_id", "line": 0, "limit": 10000}
182183

183184
EXPECTED_STDOUT_WITHOUT_PARAMETERS = """Usage: cli jobs logs [OPTIONS]
184185
Try "cli jobs logs --help" for help.
@@ -225,7 +226,7 @@ def test_should_send_valid_get_request_and_print_available_logs(self, get_patche
225226
get_patched.assert_called_with(self.URL,
226227
headers=self.EXPECTED_HEADERS_WITH_CHANGED_API_KEY,
227228
json=None,
228-
params=None)
229+
params=self.BASIC_COMMAND_PARAMS)
229230

230231
assert result.output == self.EXPECTED_STDOUT
231232
assert result.exit_code == 0
@@ -240,7 +241,7 @@ def test_should_send_valid_get_request_when_log_list_was_used_with_wrong_api_key
240241
get_patched.assert_called_with(self.URL,
241242
headers=self.EXPECTED_HEADERS_WITH_CHANGED_API_KEY,
242243
json=None,
243-
params=None)
244+
params=self.BASIC_COMMAND_PARAMS)
244245
assert result.output == self.EXPECTED_STDOUT_WITH_WRONG_API_TOKEN
245246
assert result.exit_code == 0
246247

@@ -254,7 +255,7 @@ def test_should_print_error_message_when_error_status_code_received_but_no_conte
254255
get_patched.assert_called_with(self.URL,
255256
headers=self.EXPECTED_HEADERS_WITH_CHANGED_API_KEY,
256257
json=None,
257-
params=None)
258+
params=self.BASIC_COMMAND_PARAMS)
258259
assert result.output == "Error while parsing response data: No JSON\n"
259260
assert result.exit_code == 0
260261

0 commit comments

Comments
 (0)