Batch: Return RequestId for all operations (#5870)

This commit is contained in:
Bert Blommers 2023-01-24 14:50:10 -01:00 committed by GitHub
parent 23542b1b16
commit a11cc558db
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 21 additions and 2 deletions

View File

@ -1,4 +1,5 @@
from moto.core.responses import BaseResponse from moto.core.responses import BaseResponse
from moto.utilities.aws_headers import amzn_request_id
from .models import batch_backends, BatchBackend from .models import batch_backends, BatchBackend
from urllib.parse import urlsplit, unquote from urllib.parse import urlsplit, unquote
@ -22,6 +23,7 @@ class BatchResponse(BaseResponse):
return urlsplit(self.uri).path.lstrip("/").split("/")[1] return urlsplit(self.uri).path.lstrip("/").split("/")[1]
# CreateComputeEnvironment # CreateComputeEnvironment
@amzn_request_id
def createcomputeenvironment(self) -> str: def createcomputeenvironment(self) -> str:
compute_env_name = self._get_param("computeEnvironmentName") compute_env_name = self._get_param("computeEnvironmentName")
compute_resource = self._get_param("computeResources") compute_resource = self._get_param("computeResources")
@ -42,6 +44,7 @@ class BatchResponse(BaseResponse):
return json.dumps(result) return json.dumps(result)
# DescribeComputeEnvironments # DescribeComputeEnvironments
@amzn_request_id
def describecomputeenvironments(self) -> str: def describecomputeenvironments(self) -> str:
compute_environments = self._get_param("computeEnvironments") compute_environments = self._get_param("computeEnvironments")
@ -51,6 +54,7 @@ class BatchResponse(BaseResponse):
return json.dumps(result) return json.dumps(result)
# DeleteComputeEnvironment # DeleteComputeEnvironment
@amzn_request_id
def deletecomputeenvironment(self) -> str: def deletecomputeenvironment(self) -> str:
compute_environment = self._get_param("computeEnvironment") compute_environment = self._get_param("computeEnvironment")
@ -59,6 +63,7 @@ class BatchResponse(BaseResponse):
return "" return ""
# UpdateComputeEnvironment # UpdateComputeEnvironment
@amzn_request_id
def updatecomputeenvironment(self) -> str: def updatecomputeenvironment(self) -> str:
compute_env_name = self._get_param("computeEnvironment") compute_env_name = self._get_param("computeEnvironment")
compute_resource = self._get_param("computeResources") compute_resource = self._get_param("computeResources")
@ -77,6 +82,7 @@ class BatchResponse(BaseResponse):
return json.dumps(result) return json.dumps(result)
# CreateJobQueue # CreateJobQueue
@amzn_request_id
def createjobqueue(self) -> str: def createjobqueue(self) -> str:
compute_env_order = self._get_param("computeEnvironmentOrder") compute_env_order = self._get_param("computeEnvironmentOrder")
queue_name = self._get_param("jobQueueName") queue_name = self._get_param("jobQueueName")
@ -97,6 +103,7 @@ class BatchResponse(BaseResponse):
return json.dumps(result) return json.dumps(result)
# DescribeJobQueues # DescribeJobQueues
@amzn_request_id
def describejobqueues(self) -> str: def describejobqueues(self) -> str:
job_queues = self._get_param("jobQueues") job_queues = self._get_param("jobQueues")
@ -106,6 +113,7 @@ class BatchResponse(BaseResponse):
return json.dumps(result) return json.dumps(result)
# UpdateJobQueue # UpdateJobQueue
@amzn_request_id
def updatejobqueue(self) -> str: def updatejobqueue(self) -> str:
compute_env_order = self._get_param("computeEnvironmentOrder") compute_env_order = self._get_param("computeEnvironmentOrder")
queue_name = self._get_param("jobQueue") queue_name = self._get_param("jobQueue")
@ -124,6 +132,7 @@ class BatchResponse(BaseResponse):
return json.dumps(result) return json.dumps(result)
# DeleteJobQueue # DeleteJobQueue
@amzn_request_id
def deletejobqueue(self) -> str: def deletejobqueue(self) -> str:
queue_name = self._get_param("jobQueue") queue_name = self._get_param("jobQueue")
@ -132,6 +141,7 @@ class BatchResponse(BaseResponse):
return "" return ""
# RegisterJobDefinition # RegisterJobDefinition
@amzn_request_id
def registerjobdefinition(self) -> str: def registerjobdefinition(self) -> str:
container_properties = self._get_param("containerProperties") container_properties = self._get_param("containerProperties")
node_properties = self._get_param("nodeProperties") node_properties = self._get_param("nodeProperties")
@ -165,6 +175,7 @@ class BatchResponse(BaseResponse):
return json.dumps(result) return json.dumps(result)
# DeregisterJobDefinition # DeregisterJobDefinition
@amzn_request_id
def deregisterjobdefinition(self) -> str: def deregisterjobdefinition(self) -> str:
queue_name = self._get_param("jobDefinition") queue_name = self._get_param("jobDefinition")
@ -173,6 +184,7 @@ class BatchResponse(BaseResponse):
return "" return ""
# DescribeJobDefinitions # DescribeJobDefinitions
@amzn_request_id
def describejobdefinitions(self) -> str: def describejobdefinitions(self) -> str:
job_def_name = self._get_param("jobDefinitionName") job_def_name = self._get_param("jobDefinitionName")
job_def_list = self._get_param("jobDefinitions") job_def_list = self._get_param("jobDefinitions")
@ -186,6 +198,7 @@ class BatchResponse(BaseResponse):
return json.dumps(result) return json.dumps(result)
# SubmitJob # SubmitJob
@amzn_request_id
def submitjob(self) -> str: def submitjob(self) -> str:
container_overrides = self._get_param("containerOverrides") container_overrides = self._get_param("containerOverrides")
depends_on = self._get_param("dependsOn") depends_on = self._get_param("dependsOn")
@ -208,12 +221,14 @@ class BatchResponse(BaseResponse):
return json.dumps(result) return json.dumps(result)
# DescribeJobs # DescribeJobs
@amzn_request_id
def describejobs(self) -> str: def describejobs(self) -> str:
jobs = self._get_param("jobs") jobs = self._get_param("jobs")
return json.dumps({"jobs": self.batch_backend.describe_jobs(jobs)}) return json.dumps({"jobs": self.batch_backend.describe_jobs(jobs)})
# ListJobs # ListJobs
@amzn_request_id
def listjobs(self) -> str: def listjobs(self) -> str:
job_queue = self._get_param("jobQueue") job_queue = self._get_param("jobQueue")
job_status = self._get_param("jobStatus") job_status = self._get_param("jobStatus")
@ -225,6 +240,7 @@ class BatchResponse(BaseResponse):
return json.dumps(result) return json.dumps(result)
# TerminateJob # TerminateJob
@amzn_request_id
def terminatejob(self) -> str: def terminatejob(self) -> str:
job_id = self._get_param("jobId") job_id = self._get_param("jobId")
reason = self._get_param("reason") reason = self._get_param("reason")
@ -234,6 +250,7 @@ class BatchResponse(BaseResponse):
return "" return ""
# CancelJob # CancelJob
@amzn_request_id
def canceljob(self) -> str: def canceljob(self) -> str:
job_id = self._get_param("jobId") job_id = self._get_param("jobId")
reason = self._get_param("reason") reason = self._get_param("reason")
@ -241,6 +258,7 @@ class BatchResponse(BaseResponse):
return "" return ""
@amzn_request_id
def tags(self) -> str: def tags(self) -> str:
resource_arn = unquote(self.path).split("/v1/tags/")[-1] resource_arn = unquote(self.path).split("/v1/tags/")[-1]
tags = self._get_param("tags") tags = self._get_param("tags")

View File

@ -72,11 +72,12 @@ def test_submit_job_by_name():
resp = batch_client.submit_job( resp = batch_client.submit_job(
jobName="test1", jobQueue=queue_arn, jobDefinition=job_definition_name jobName="test1", jobQueue=queue_arn, jobDefinition=job_definition_name
) )
resp["ResponseMetadata"].should.have.key("RequestId")
job_id = resp["jobId"] job_id = resp["jobId"]
resp_jobs = batch_client.describe_jobs(jobs=[job_id]) resp_jobs = batch_client.describe_jobs(jobs=[job_id])
resp_jobs["ResponseMetadata"].should.have.key("RequestId")
# batch_client.terminate_job(jobId=job_id)
len(resp_jobs["jobs"]).should.equal(1) len(resp_jobs["jobs"]).should.equal(1)
resp_jobs["jobs"][0]["jobId"].should.equal(job_id) resp_jobs["jobs"][0]["jobId"].should.equal(job_id)