Merge pull request #2400 from acsbendi/elbv2-terminated-instance-target
Terminated EC2 instances are deregistered from ELBv2 target groups.
This commit is contained in:
commit
7c2d328724
3 changed files with 88 additions and 0 deletions
|
|
@ -6,6 +6,7 @@ from moto.core.responses import BaseResponse
|
|||
from moto.core.utils import camelcase_to_underscores
|
||||
from moto.ec2.utils import filters_from_querystring, \
|
||||
dict_from_querystring
|
||||
from moto.elbv2 import elbv2_backends
|
||||
|
||||
|
||||
class InstanceResponse(BaseResponse):
|
||||
|
|
@ -68,6 +69,7 @@ class InstanceResponse(BaseResponse):
|
|||
if self.is_not_dryrun('TerminateInstance'):
|
||||
instances = self.ec2_backend.terminate_instances(instance_ids)
|
||||
autoscaling_backends[self.region].notify_terminate_instances(instance_ids)
|
||||
elbv2_backends[self.region].notify_terminate_instances(instance_ids)
|
||||
template = self.response_template(EC2_TERMINATE_INSTANCES)
|
||||
return template.render(instances=instances)
|
||||
|
||||
|
|
|
|||
|
|
@ -110,6 +110,11 @@ class FakeTargetGroup(BaseModel):
|
|||
if not t:
|
||||
raise InvalidTargetError()
|
||||
|
||||
def deregister_terminated_instances(self, instance_ids):
|
||||
for target_id in list(self.targets.keys()):
|
||||
if target_id in instance_ids:
|
||||
del self.targets[target_id]
|
||||
|
||||
def add_tag(self, key, value):
|
||||
if len(self.tags) >= 10 and key not in self.tags:
|
||||
raise TooManyTagsError()
|
||||
|
|
@ -936,6 +941,10 @@ class ELBv2Backend(BaseBackend):
|
|||
return True
|
||||
return False
|
||||
|
||||
def notify_terminate_instances(self, instance_ids):
|
||||
for target_group in self.target_groups.values():
|
||||
target_group.deregister_terminated_instances(instance_ids)
|
||||
|
||||
|
||||
elbv2_backends = {}
|
||||
for region in ec2_backends.keys():
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue