Changed behavior of deregister. If an instance is not found in the ELB then simply return 'changed=false'. Otherwise always remove the instance from the ELB no matter what state its currently in.
This commit is contained in:
parent
afd0e78f16
commit
733508d07f
1 changed files with 10 additions and 8 deletions
|
@ -129,18 +129,20 @@ class ElbManager:
|
|||
|
||||
for lb in self.lbs:
|
||||
initial_state = self._get_instance_health(lb) if wait else None
|
||||
|
||||
if initial_state and initial_state.state == 'InService':
|
||||
lb.deregister_instances([self.instance_id])
|
||||
else:
|
||||
if initial_state is None:
|
||||
# The instance isn't registered with this ELB so just
|
||||
# return unchanged
|
||||
return
|
||||
|
||||
lb.deregister_instances([self.instance_id])
|
||||
|
||||
# The ELB is changing state in some way. Either an instance that's
|
||||
# InService is moving to OutOfService, or an instance that's
|
||||
# already OutOfService is being deregistered.
|
||||
self.changed = True
|
||||
|
||||
if wait:
|
||||
self._await_elb_instance_state(lb, 'OutOfService', initial_state, timeout)
|
||||
else:
|
||||
# We cannot assume no change was made if we don't wait
|
||||
# to find out
|
||||
self.changed = True
|
||||
|
||||
def register(self, wait, enable_availability_zone, timeout):
|
||||
"""Register the instance for all ELBs and wait for the ELB
|
||||
|
|
Loading…
Reference in a new issue