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.

reviewable/pr18780/r1
Bruce Pennypacker 11 years ago
parent afd0e78f16
commit 733508d07f

@ -129,18 +129,20 @@ class ElbManager:
for lb in self.lbs: for lb in self.lbs:
initial_state = self._get_instance_health(lb) if wait else None initial_state = self._get_instance_health(lb) if wait else None
if initial_state is None:
if initial_state and initial_state.state == 'InService': # The instance isn't registered with this ELB so just
lb.deregister_instances([self.instance_id]) # return unchanged
else:
return 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: if wait:
self._await_elb_instance_state(lb, 'OutOfService', initial_state, timeout) 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): def register(self, wait, enable_availability_zone, timeout):
"""Register the instance for all ELBs and wait for the ELB """Register the instance for all ELBs and wait for the ELB

Loading…
Cancel
Save