Commit 2be8feeb by Bruce Pennypacker

Changed behavior of deregister. If an instance is not found in the ELB then…

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.
parent 632eb183
...@@ -129,18 +129,20 @@ class ElbManager: ...@@ -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
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment