Enable ec2_utils to stop retrying to get ec2 metadata Signed-off-by: David Sloboda Reviewed-by: Laurence Rochfort diff -ruN a/cloudinit/sources/helpers/openstack.py b/cloudinit/sources/helpers/openstack.py --- a/cloudinit/sources/helpers/openstack.py 2018-04-02 12:51:20.053828637 -0700 +++ b/cloudinit/sources/helpers/openstack.py 2018-04-02 12:33:20.000000000 -0700 @@ -464,6 +464,16 @@ return results +def should_retry_cb(_request_args, cause): + try: + code = int(cause.code) + if code >= 400: + return False + except (TypeError, ValueError): + # Older versions of requests didn't have a code. + pass + return True + class MetadataReader(BaseReader): def __init__(self, base_url, ssl_details=None, timeout=5, retries=5): @@ -489,16 +499,6 @@ return self._versions def _path_read(self, path, decode=False): - def should_retry_cb(_request_args, cause): - try: - code = int(cause.code) - if code >= 400: - return False - except (TypeError, ValueError): - # Older versions of requests didn't have a code. - pass - return True - response = url_helper.readurl( path, retries=self.retries, @@ -519,6 +519,7 @@ ssl_details=self.ssl_details, timeout=self.timeout, retries=self.retries, + exception_cb=should_retry_cb, )