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):
task_definition_str = self._get_param("taskDefinition")
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):
task_definition_str = self._get_param("taskDefinition")
@ -191,13 +194,16 @@ class EC2ContainerServiceResponse(BaseResponse):
cluster_str = self._get_param("cluster")
service_names = self._get_param("services")
services = self.ecs_backend.describe_services(cluster_str, service_names)
return json.dumps(
{
"services": [service.response_object for service in services],
"failures": [],
}
)
resp = {
"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):
cluster_str = self._get_param("cluster")

View File

@ -254,6 +254,7 @@ def test_describe_task_definition():
"logConfiguration": {"logDriver": "json-file"},
}
],
tags=[{"key": "Name", "value": "test_ecs_task"}],
)
_ = client.register_task_definition(
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"
)
response = client.describe_task_definition(
taskDefinition="test_ecs_task:1", include=["TAGS"]
)
response["tags"].should.equal([{"key": "Name", "value": "test_ecs_task"}])
@mock_ecs
def test_deregister_task_definition():
@ -512,6 +518,7 @@ def test_describe_services():
serviceName="test_ecs_service1",
taskDefinition="test_ecs_task",
desiredCount=2,
tags=[{"key": "Name", "value": "test_ecs_service1"}],
)
_ = client.create_service(
cluster="test_ecs_cluster",
@ -554,6 +561,18 @@ def test_describe_services():
datetime.now()
- response["services"][0]["deployments"][0]["updatedAt"].replace(tzinfo=None)
).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