Add ECS Descriptors (#772)
* Add support for "DescribeServices" in ecs mock * Add support for "DescribeTaskDefinition" in ecs * Let ecs responses handle baseobject for services
This commit is contained in:
parent
05c6fc6738
commit
17584e9aa4
3 changed files with 152 additions and 0 deletions
|
|
@ -217,6 +217,20 @@ class EC2ContainerServiceBackend(BaseBackend):
|
|||
task_arns.extend([task_definition.arn for task_definition in task_definition_list])
|
||||
return task_arns
|
||||
|
||||
def describe_task_definition(self, task_definition_str):
|
||||
task_definition_name = task_definition_str.split('/')[-1]
|
||||
if ':' in task_definition_name:
|
||||
family, revision = task_definition_name.split(':')
|
||||
revision = int(revision)
|
||||
else:
|
||||
family = task_definition_name
|
||||
revision = len(self.task_definitions.get(family, []))
|
||||
|
||||
if family in self.task_definitions and 0 < revision <= len(self.task_definitions[family]):
|
||||
return self.task_definitions[family][revision-1]
|
||||
else:
|
||||
raise Exception("{0} is not a task_definition".format(task_definition_name))
|
||||
|
||||
def deregister_task_definition(self, task_definition_str):
|
||||
task_definition_name = task_definition_str.split('/')[-1]
|
||||
family, revision = task_definition_name.split(':')
|
||||
|
|
@ -347,6 +361,15 @@ class EC2ContainerServiceBackend(BaseBackend):
|
|||
service_arns.append(self.services[key].arn)
|
||||
return sorted(service_arns)
|
||||
|
||||
def describe_services(self, cluster_str, service_names):
|
||||
cluster_name = cluster_str.split('/')[-1]
|
||||
services = []
|
||||
for service_name in service_names:
|
||||
cluster_service_pair = '{0}:{1}'.format(cluster_name, service_name)
|
||||
if cluster_service_pair in self.services:
|
||||
services.append(self.services[cluster_service_pair])
|
||||
return services
|
||||
|
||||
def update_service(self, cluster_str, service_name, task_definition_str, desired_count):
|
||||
cluster_name = cluster_str.split('/')[-1]
|
||||
cluster_service_pair = '{0}:{1}'.format(cluster_name, service_name)
|
||||
|
|
|
|||
|
|
@ -70,6 +70,13 @@ class EC2ContainerServiceResponse(BaseResponse):
|
|||
#'nextToken': str(uuid.uuid1())
|
||||
})
|
||||
|
||||
def describe_task_definition(self):
|
||||
task_definition_str = self._get_param('taskDefinition')
|
||||
task_definition = self.ecs_backend.describe_task_definition(task_definition_str)
|
||||
return json.dumps({
|
||||
'taskDefinition': task_definition.response_object
|
||||
})
|
||||
|
||||
def deregister_task_definition(self):
|
||||
task_definition_str = self._get_param('taskDefinition')
|
||||
task_definition = self.ecs_backend.deregister_task_definition(task_definition_str)
|
||||
|
|
@ -152,6 +159,15 @@ class EC2ContainerServiceResponse(BaseResponse):
|
|||
# 'nextToken': str(uuid.uuid1())
|
||||
})
|
||||
|
||||
def describe_services(self):
|
||||
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': []
|
||||
})
|
||||
|
||||
def update_service(self):
|
||||
cluster_str = self._get_param('cluster')
|
||||
service_name = self._get_param('service')
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue