include=["TAGS"] for describe_task_definition (#3265)

* include=["TAGS"] for describe_task_definition

* Different approach

* describe_services tags and tests
This commit is contained in:
Peter Baumgartner 2020-09-01 03:24:08 -06:00 committed by GitHub
parent 236ab59afe
commit 94c676b9cf
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 33 additions and 8 deletions

View File

@ -87,7 +87,10 @@ class EC2ContainerServiceResponse(BaseResponse):
def describe_task_definition(self): def describe_task_definition(self):
task_definition_str = self._get_param("taskDefinition") task_definition_str = self._get_param("taskDefinition")
data = self.ecs_backend.describe_task_definition(task_definition_str) data = self.ecs_backend.describe_task_definition(task_definition_str)
return json.dumps({"taskDefinition": data.response_object, "failures": []}) resp = {"taskDefinition": data.response_object, "failures": []}
if "TAGS" in self._get_param("include", []):
resp["tags"] = self.ecs_backend.list_tags_for_resource(data.arn)
return json.dumps(resp)
def deregister_task_definition(self): def deregister_task_definition(self):
task_definition_str = self._get_param("taskDefinition") task_definition_str = self._get_param("taskDefinition")
@ -191,13 +194,16 @@ class EC2ContainerServiceResponse(BaseResponse):
cluster_str = self._get_param("cluster") cluster_str = self._get_param("cluster")
service_names = self._get_param("services") service_names = self._get_param("services")
services = self.ecs_backend.describe_services(cluster_str, service_names) services = self.ecs_backend.describe_services(cluster_str, service_names)
resp = {
return json.dumps( "services": [service.response_object for service in services],
{ "failures": [],
"services": [service.response_object for service in services], }
"failures": [], if "TAGS" in self._get_param("include", []):
} for i, service in enumerate(services):
) resp["services"][i]["tags"] = self.ecs_backend.list_tags_for_resource(
service.arn
)
return json.dumps(resp)
def update_service(self): def update_service(self):
cluster_str = self._get_param("cluster") cluster_str = self._get_param("cluster")

View File

@ -254,6 +254,7 @@ def test_describe_task_definition():
"logConfiguration": {"logDriver": "json-file"}, "logConfiguration": {"logDriver": "json-file"},
} }
], ],
tags=[{"key": "Name", "value": "test_ecs_task"}],
) )
_ = client.register_task_definition( _ = client.register_task_definition(
family="test_ecs_task", family="test_ecs_task",
@ -297,6 +298,11 @@ def test_describe_task_definition():
"arn:aws:ecs:us-east-1:012345678910:task-definition/test_ecs_task:2" "arn:aws:ecs:us-east-1:012345678910:task-definition/test_ecs_task:2"
) )
response = client.describe_task_definition(
taskDefinition="test_ecs_task:1", include=["TAGS"]
)
response["tags"].should.equal([{"key": "Name", "value": "test_ecs_task"}])
@mock_ecs @mock_ecs
def test_deregister_task_definition(): def test_deregister_task_definition():
@ -512,6 +518,7 @@ def test_describe_services():
serviceName="test_ecs_service1", serviceName="test_ecs_service1",
taskDefinition="test_ecs_task", taskDefinition="test_ecs_task",
desiredCount=2, desiredCount=2,
tags=[{"key": "Name", "value": "test_ecs_service1"}],
) )
_ = client.create_service( _ = client.create_service(
cluster="test_ecs_cluster", cluster="test_ecs_cluster",
@ -554,6 +561,18 @@ def test_describe_services():
datetime.now() datetime.now()
- response["services"][0]["deployments"][0]["updatedAt"].replace(tzinfo=None) - response["services"][0]["deployments"][0]["updatedAt"].replace(tzinfo=None)
).seconds.should.be.within(0, 10) ).seconds.should.be.within(0, 10)
response = client.describe_services(
cluster="test_ecs_cluster",
services=[
"test_ecs_service1",
"arn:aws:ecs:us-east-1:012345678910:service/test_ecs_service2",
],
include=["TAGS"],
)
response["services"][0]["tags"].should.equal(
[{"key": "Name", "value": "test_ecs_service1"}]
)
response["services"][1]["tags"].should.equal([])
@mock_ecs @mock_ecs