Skip to content

Commit 6c2d859

Browse files
authored
[containerapp] az containerapp job stop: Return custom message for stop job execution (#29399)
1 parent 05b3099 commit 6c2d859

File tree

8 files changed

+7052
-6240
lines changed

8 files changed

+7052
-6240
lines changed

src/azure-cli/azure/cli/command_modules/containerapp/_client_factory.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,9 @@ def handle_raw_exception(e):
4040
if "Error starting job" in stringErr:
4141
raise CLIInternalError("There was an error starting the job execution. Please check input parameters and try again.")
4242

43+
if "Requested job execution" in stringErr and "not found" in stringErr:
44+
raise CLIInternalError("Requested job execution not found. Please check input parameters and try again.")
45+
4346
if "{" in stringErr and "}" in stringErr:
4447
jsonError = stringErr[stringErr.index("{"):stringErr.rindex("}") + 1]
4548
jsonError = json.loads(jsonError)

src/azure-cli/azure/cli/command_modules/containerapp/_clients.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1016,7 +1016,7 @@ def stop_job(cls, cmd, resource_group_name, name, job_execution_name, job_execut
10161016
job_execution_name,
10171017
cls.api_version)
10181018

1019-
r = send_raw_request(cmd.cli_ctx, "POST", request_url, body=json.dumps(job_execution_names))
1019+
r = send_raw_request(cmd.cli_ctx, "POST", request_url, body=job_execution_names)
10201020
return r.json()
10211021

10221022
@classmethod

src/azure-cli/azure/cli/command_modules/containerapp/custom.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1624,7 +1624,14 @@ def stop_containerappsjob(cmd, resource_group_name, name, job_execution_name=Non
16241624
if execution_name_list is not None:
16251625
execution_name_list = execution_name_list.split(",")
16261626
execution_name_list = json.dumps({'jobExecutionName': execution_name_list})
1627-
return ContainerAppsJobClient.stop_job(cmd=cmd, resource_group_name=resource_group_name, name=name, job_execution_name=job_execution_name, job_execution_names=execution_name_list)
1627+
r = ContainerAppsJobClient.stop_job(cmd=cmd, resource_group_name=resource_group_name, name=name, job_execution_name=job_execution_name, job_execution_names=execution_name_list)
1628+
1629+
# if stop is called for a single job execution, return generic response
1630+
if job_execution_name:
1631+
return "Job Execution: " + job_execution_name + ", stopped successfully."
1632+
1633+
# else return the response
1634+
return r
16281635
except CLIError as e:
16291636
handle_raw_exception(e)
16301637

src/azure-cli/azure/cli/command_modules/containerapp/tests/latest/recordings/test_containerapp_job_custom_executionstest_e2e.yaml

Lines changed: 163 additions & 174 deletions
Large diffs are not rendered by default.

src/azure-cli/azure/cli/command_modules/containerapp/tests/latest/recordings/test_containerapp_job_executionstest_e2e.yaml

Lines changed: 221 additions & 178 deletions
Large diffs are not rendered by default.

src/azure-cli/azure/cli/command_modules/containerapp/tests/latest/recordings/test_containerappjob_create_with_yaml.yaml

Lines changed: 5626 additions & 5364 deletions
Large diffs are not rendered by default.

src/azure-cli/azure/cli/command_modules/containerapp/tests/latest/recordings/test_containerappjob_eventtriggered_create_with_yaml.yaml

Lines changed: 1028 additions & 521 deletions
Large diffs are not rendered by default.

src/azure-cli/azure/cli/command_modules/containerapp/tests/latest/test_containerappjob_executions.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,8 @@ def test_containerapp_job_executionstest_e2e(self, resource_group):
8282
# stop the most recently started execution
8383
self.cmd("az containerapp job stop --resource-group {} --name {} --job-execution-name {}".format(resource_group, job, execution['name'])).get_output_in_json()
8484

85-
# get stopped execution for the job and check status
85+
# get stopped execution for the job and check status after waiting for 5 seconds to ensure job has stopped
86+
time.sleep(5)
8687
singleExecution = self.cmd("az containerapp job execution show --resource-group {} --name {} --job-execution-name {}".format(resource_group, job, execution['name'])).get_output_in_json()
8788
self.assertEqual(job in singleExecution['name'], True)
8889
self.assertEqual(singleExecution['properties']['status'], "Stopped")

0 commit comments

Comments
 (0)