(self, full_url, headers, timeout)
| 2976 | raise |
| 2977 | |
| 2978 | def _get_response(self, full_url, headers, timeout): |
| 2979 | try: |
| 2980 | AWSRequest = botocore.awsrequest.AWSRequest |
| 2981 | request = AWSRequest(method='GET', url=full_url, headers=headers) |
| 2982 | response = self._session.send(request.prepare()) |
| 2983 | response_text = response.content.decode('utf-8') |
| 2984 | if response.status_code != 200: |
| 2985 | raise MetadataRetrievalError( |
| 2986 | error_msg=( |
| 2987 | f"Received non 200 response {response.status_code} " |
| 2988 | f"from container metadata: {response_text}" |
| 2989 | ) |
| 2990 | ) |
| 2991 | try: |
| 2992 | return json.loads(response_text) |
| 2993 | except ValueError: |
| 2994 | error_msg = "Unable to parse JSON returned from container metadata services" |
| 2995 | logger.debug('%s:%s', error_msg, response_text) |
| 2996 | raise MetadataRetrievalError(error_msg=error_msg) |
| 2997 | except RETRYABLE_HTTP_ERRORS as e: |
| 2998 | error_msg = ( |
| 2999 | "Received error when attempting to retrieve " |
| 3000 | f"container metadata: {e}" |
| 3001 | ) |
| 3002 | raise MetadataRetrievalError(error_msg=error_msg) |
| 3003 | |
| 3004 | def full_url(self, relative_uri): |
| 3005 | return f'http://{self.IP_ADDRESS}{relative_uri}' |
no test coverage detected