Add support for the force argument for ecs.delete_service (#3631)

This argument allows you to delete a service even when its DesiredCount is non-zero.

https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/ecs.html#ECS.Client.delete_service
This commit is contained in:
William Richard 2021-01-31 05:09:52 -05:00 committed by GitHub
commit 5c4b68c5ea
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 51 additions and 3 deletions

View file

@ -1147,14 +1147,14 @@ class EC2ContainerServiceBackend(BaseBackend):
else:
raise ServiceNotFoundException
def delete_service(self, cluster_name, service_name):
def delete_service(self, cluster_name, service_name, force):
cluster_service_pair = "{0}:{1}".format(cluster_name, service_name)
if cluster_name not in self.clusters:
raise ClusterNotFoundException
if cluster_service_pair in self.services:
service = self.services[cluster_service_pair]
if service.desired_count > 0:
if service.desired_count > 0 and not force:
raise InvalidParameterException(
"The service cannot be stopped while it is scaled above 0."
)

View file

@ -226,7 +226,8 @@ class EC2ContainerServiceResponse(BaseResponse):
def delete_service(self):
service_name = self._get_param("service")
cluster_name = self._get_param("cluster", "default")
service = self.ecs_backend.delete_service(cluster_name, service_name)
force = self._get_param("force", False)
service = self.ecs_backend.delete_service(cluster_name, service_name, force)
return json.dumps({"service": service.response_object})
def register_container_instance(self):