Fix get_elb_list function when looking up from ELB #41
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
the
get_elb_list
function no longer works properly for retrieving a list of ELBs the instance is currently registered to directly (not in an auto scaling group). The underlying issue was thatget_instance_health_elb
always returnedOutOfService
rather than a non-zero exit code when the instance was not registered to the load balancer, because the API returnsOutOfService
with the description"Instance is not currently registered with the LoadBalancer.
" (Perhaps this used to return an error but was changed in the API more recently?)This PR rewrites this function to return the list of load balancers which have the instance in question in their
Instances
array, rather than queryingget_instance_health_elb
for each load balancer individually. This also speeds up the function (only requires a single AWS API call versus a separate API call per load balancer).I used
grep
andawk
instead of the equivalentJMESPath
filter expression because old versions of jmespath (my use case isv0.2.1
from the Ubuntu Trusty package) do not support these advanced expressions.