Server IP : 195.201.23.43 / Your IP : 3.142.131.16 Web Server : Apache System : Linux webserver2.vercom.be 5.4.0-192-generic #212-Ubuntu SMP Fri Jul 5 09:47:39 UTC 2024 x86_64 User : kdecoratie ( 1041) PHP Version : 7.1.33-63+ubuntu20.04.1+deb.sury.org+1 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals, MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /lib/python3/dist-packages/awscli/ |
Upload File : |
# Copyright 2013 Amazon.com, Inc. or its affiliates. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"). You # may not use this file except in compliance with the License. A copy of # the License is located at # # http://aws.amazon.com/apache2.0/ # # or in the "license" file accompanying this file. This file is # distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF # ANY KIND, either express or implied. See the License for the specific # language governing permissions and limitations under the License. import logging LOG = logging.getLogger(__name__) class BaseOperationError(Exception): MSG_TEMPLATE = ("A {error_type} error ({error_code}) occurred " "when calling the {operation_name} operation: " "{error_message}") def __init__(self, error_code, error_message, error_type, operation_name, http_status_code): msg = self.MSG_TEMPLATE.format( error_code=error_code, error_message=error_message, error_type=error_type, operation_name=operation_name) super(BaseOperationError, self).__init__(msg) self.error_code = error_code self.error_message = error_message self.error_type = error_type self.operation_name = operation_name self.http_status_code = http_status_code class ClientError(BaseOperationError): pass class ServerError(BaseOperationError): pass class ErrorHandler(object): """ This class is responsible for handling any HTTP errors that occur when a service operation is called. It is registered for the ``after-call`` event and will have the opportunity to inspect all operation calls. If the HTTP response contains an error ``status_code`` an appropriate error message will be printed and the handler will short-circuit all further processing by exiting with an appropriate error code. """ def __call__(self, http_response, parsed, model, **kwargs): LOG.debug('HTTP Response Code: %d', http_response.status_code) error_type = None error_class = None if http_response.status_code >= 500: error_type = 'server' error_class = ServerError elif http_response.status_code >= 400 or http_response.status_code == 301: error_type = 'client' error_class = ClientError if error_class is not None: code, message = self._get_error_code_and_message(parsed) raise error_class( error_code=code, error_message=message, error_type=error_type, operation_name=model.name, http_status_code=http_response.status_code) def _get_error_code_and_message(self, response): code = 'Unknown' message = 'Unknown' if 'Error' in response: error = response['Error'] return error.get('Code', code), error.get('Message', message) return (code, message)Private