(self, full_url, extra_headers=None)
| 2954 | return self._retrieve_credentials(full_url) |
| 2955 | |
| 2956 | def _retrieve_credentials(self, full_url, extra_headers=None): |
| 2957 | headers = {'Accept': 'application/json'} |
| 2958 | if extra_headers is not None: |
| 2959 | headers.update(extra_headers) |
| 2960 | attempts = 0 |
| 2961 | while True: |
| 2962 | try: |
| 2963 | return self._get_response( |
| 2964 | full_url, headers, self.TIMEOUT_SECONDS |
| 2965 | ) |
| 2966 | except MetadataRetrievalError as e: |
| 2967 | logger.debug( |
| 2968 | "Received error when attempting to retrieve " |
| 2969 | "container metadata: %s", |
| 2970 | e, |
| 2971 | exc_info=True, |
| 2972 | ) |
| 2973 | self._sleep(self.SLEEP_TIME) |
| 2974 | attempts += 1 |
| 2975 | if attempts >= self.RETRY_ATTEMPTS: |
| 2976 | raise |
| 2977 | |
| 2978 | def _get_response(self, full_url, headers, timeout): |
| 2979 | try: |
no test coverage detected