diff options
author | Andrew Dolgov <[email protected]> | 2022-11-23 21:14:33 +0300 |
---|---|---|
committer | Andrew Dolgov <[email protected]> | 2022-11-23 21:14:33 +0300 |
commit | 0c8af4992cb0f7589dcafaad65ada12753c64594 (patch) | |
tree | 18e83d068c3e7dd2499331de977782b382279396 /vendor/aws/aws-sdk-php/src/Exception |
initial
Diffstat (limited to 'vendor/aws/aws-sdk-php/src/Exception')
15 files changed, 513 insertions, 0 deletions
diff --git a/vendor/aws/aws-sdk-php/src/Exception/AwsException.php b/vendor/aws/aws-sdk-php/src/Exception/AwsException.php new file mode 100644 index 0000000..2873d29 --- /dev/null +++ b/vendor/aws/aws-sdk-php/src/Exception/AwsException.php @@ -0,0 +1,270 @@ +<?php +namespace Aws\Exception; + +use Aws\Api\Shape; +use Aws\CommandInterface; +use Aws\HasDataTrait; +use Aws\HasMonitoringEventsTrait; +use Aws\MonitoringEventsInterface; +use Aws\ResponseContainerInterface; +use Aws\ResultInterface; +use JmesPath\Env as JmesPath; +use Psr\Http\Message\ResponseInterface; +use Psr\Http\Message\RequestInterface; + +/** + * Represents an AWS exception that is thrown when a command fails. + */ +class AwsException extends \RuntimeException implements + MonitoringEventsInterface, + ResponseContainerInterface, + \ArrayAccess +{ + use HasDataTrait; + use HasMonitoringEventsTrait; + + /** @var ResponseInterface */ + private $response; + private $request; + private $result; + private $command; + private $requestId; + private $errorType; + private $errorCode; + private $errorShape; + private $connectionError; + private $transferInfo; + private $errorMessage; + private $maxRetriesExceeded; + + + /** + * @param string $message Exception message + * @param CommandInterface $command + * @param array $context Exception context + * @param \Exception $previous Previous exception (if any) + */ + public function __construct( + $message, + CommandInterface $command, + array $context = [], + \Exception $previous = null + ) { + $this->data = isset($context['body']) ? $context['body'] : []; + $this->command = $command; + $this->response = isset($context['response']) ? $context['response'] : null; + $this->request = isset($context['request']) ? $context['request'] : null; + $this->requestId = isset($context['request_id']) + ? $context['request_id'] + : null; + $this->errorType = isset($context['type']) ? $context['type'] : null; + $this->errorCode = isset($context['code']) ? $context['code'] : null; + $this->errorShape = isset($context['error_shape']) ? $context['error_shape'] : null; + $this->connectionError = !empty($context['connection_error']); + $this->result = isset($context['result']) ? $context['result'] : null; + $this->transferInfo = isset($context['transfer_stats']) + ? $context['transfer_stats'] + : []; + $this->errorMessage = isset($context['message']) + ? $context['message'] + : null; + $this->monitoringEvents = []; + $this->maxRetriesExceeded = false; + parent::__construct($message, 0, $previous); + } + + public function __toString() + { + if (!$this->getPrevious()) { + return parent::__toString(); + } + + // PHP strangely shows the innermost exception first before the outer + // exception message. It also has a default character limit for + // exception message strings such that the "next" exception (this one) + // might not even get shown, causing developers to attempt to catch + // the inner exception instead of the actual exception because they + // can't see the outer exception's __toString output. + return sprintf( + "exception '%s' with message '%s'\n\n%s", + get_class($this), + $this->getMessage(), + parent::__toString() + ); + } + + /** + * Get the command that was executed. + * + * @return CommandInterface + */ + public function getCommand() + { + return $this->command; + } + + /** + * Get the concise error message if any. + * + * @return string|null + */ + public function getAwsErrorMessage() + { + return $this->errorMessage; + } + + /** + * Get the sent HTTP request if any. + * + * @return RequestInterface|null + */ + public function getRequest() + { + return $this->request; + } + + /** + * Get the received HTTP response if any. + * + * @return ResponseInterface|null + */ + public function getResponse() + { + return $this->response; + } + + /** + * Get the result of the exception if available + * + * @return ResultInterface|null + */ + public function getResult() + { + return $this->result; + } + + /** + * Returns true if this is a connection error. + * + * @return bool + */ + public function isConnectionError() + { + return $this->connectionError; + } + + /** + * If available, gets the HTTP status code of the corresponding response + * + * @return int|null + */ + public function getStatusCode() + { + return $this->response ? $this->response->getStatusCode() : null; + } + + /** + * Get the request ID of the error. This value is only present if a + * response was received and is not present in the event of a networking + * error. + * + * @return string|null Returns null if no response was received + */ + public function getAwsRequestId() + { + return $this->requestId; + } + + /** + * Get the AWS error type. + * + * @return string|null Returns null if no response was received + */ + public function getAwsErrorType() + { + return $this->errorType; + } + + /** + * Get the AWS error code. + * + * @return string|null Returns null if no response was received + */ + public function getAwsErrorCode() + { + return $this->errorCode; + } + + /** + * Get the AWS error shape. + * + * @return Shape|null Returns null if no response was received + */ + public function getAwsErrorShape() + { + return $this->errorShape; + } + + /** + * Get all transfer information as an associative array if no $name + * argument is supplied, or gets a specific transfer statistic if + * a $name attribute is supplied (e.g., 'retries_attempted'). + * + * @param string $name Name of the transfer stat to retrieve + * + * @return mixed|null|array + */ + public function getTransferInfo($name = null) + { + if (!$name) { + return $this->transferInfo; + } + + return isset($this->transferInfo[$name]) + ? $this->transferInfo[$name] + : null; + } + + /** + * Replace the transfer information associated with an exception. + * + * @param array $info + */ + public function setTransferInfo(array $info) + { + $this->transferInfo = $info; + } + + /** + * Returns whether the max number of retries is exceeded. + * + * @return bool + */ + public function isMaxRetriesExceeded() + { + return $this->maxRetriesExceeded; + } + + /** + * Sets the flag for max number of retries exceeded. + */ + public function setMaxRetriesExceeded() + { + $this->maxRetriesExceeded = true; + } + + public function hasKey($name) + { + return isset($this->data[$name]); + } + + public function get($key) + { + return $this[$key]; + } + + public function search($expression) + { + return JmesPath::search($expression, $this->toArray()); + } +} diff --git a/vendor/aws/aws-sdk-php/src/Exception/CommonRuntimeException.php b/vendor/aws/aws-sdk-php/src/Exception/CommonRuntimeException.php new file mode 100644 index 0000000..d17cd3a --- /dev/null +++ b/vendor/aws/aws-sdk-php/src/Exception/CommonRuntimeException.php @@ -0,0 +1,7 @@ +<?php +namespace Aws\Exception; + +class CommonRuntimeException extends \RuntimeException +{ + +} diff --git a/vendor/aws/aws-sdk-php/src/Exception/CouldNotCreateChecksumException.php b/vendor/aws/aws-sdk-php/src/Exception/CouldNotCreateChecksumException.php new file mode 100644 index 0000000..5c5f80e --- /dev/null +++ b/vendor/aws/aws-sdk-php/src/Exception/CouldNotCreateChecksumException.php @@ -0,0 +1,25 @@ +<?php +namespace Aws\Exception; + +use Aws\HasMonitoringEventsTrait; +use Aws\MonitoringEventsInterface; + +class CouldNotCreateChecksumException extends \RuntimeException implements + MonitoringEventsInterface +{ + use HasMonitoringEventsTrait; + + public function __construct($algorithm, \Exception $previous = null) + { + $prefix = $algorithm === 'md5' ? "An" : "A"; + parent::__construct("{$prefix} {$algorithm} checksum could not be " + . "calculated for the provided upload body, because it was not " + . "seekable. To prevent this error you can either 1) include the " + . "ContentMD5 or ContentSHA256 parameters with your request, 2) " + . "use a seekable stream for the body, or 3) wrap the non-seekable " + . "stream in a GuzzleHttp\\Psr7\\CachingStream object. You " + . "should be careful though and remember that the CachingStream " + . "utilizes PHP temp streams. This means that the stream will be " + . "temporarily stored on the local disk.", 0, $previous); + } +} diff --git a/vendor/aws/aws-sdk-php/src/Exception/CredentialsException.php b/vendor/aws/aws-sdk-php/src/Exception/CredentialsException.php new file mode 100644 index 0000000..0801b62 --- /dev/null +++ b/vendor/aws/aws-sdk-php/src/Exception/CredentialsException.php @@ -0,0 +1,11 @@ +<?php +namespace Aws\Exception; + +use Aws\HasMonitoringEventsTrait; +use Aws\MonitoringEventsInterface; + +class CredentialsException extends \RuntimeException implements + MonitoringEventsInterface +{ + use HasMonitoringEventsTrait; +} diff --git a/vendor/aws/aws-sdk-php/src/Exception/CryptoException.php b/vendor/aws/aws-sdk-php/src/Exception/CryptoException.php new file mode 100644 index 0000000..7cd773b --- /dev/null +++ b/vendor/aws/aws-sdk-php/src/Exception/CryptoException.php @@ -0,0 +1,11 @@ +<?php +namespace Aws\Exception; + +/** + * This class represents exceptions related to logic surrounding client-side + * encryption usage. + */ +class CryptoException extends \RuntimeException +{ + +} diff --git a/vendor/aws/aws-sdk-php/src/Exception/CryptoPolyfillException.php b/vendor/aws/aws-sdk-php/src/Exception/CryptoPolyfillException.php new file mode 100644 index 0000000..4c7f44b --- /dev/null +++ b/vendor/aws/aws-sdk-php/src/Exception/CryptoPolyfillException.php @@ -0,0 +1,11 @@ +<?php +namespace Aws\Exception; + +/** + * Class CryptoPolyfillException + * @package Aws\Exception + */ +class CryptoPolyfillException extends \RuntimeException +{ + +} diff --git a/vendor/aws/aws-sdk-php/src/Exception/EventStreamDataException.php b/vendor/aws/aws-sdk-php/src/Exception/EventStreamDataException.php new file mode 100644 index 0000000..4078595 --- /dev/null +++ b/vendor/aws/aws-sdk-php/src/Exception/EventStreamDataException.php @@ -0,0 +1,38 @@ +<?php +namespace Aws\Exception; + +/** + * Represents an exception that was supplied via an EventStream. + */ +class EventStreamDataException extends \RuntimeException +{ + private $errorCode; + private $errorMessage; + + public function __construct($code, $message) + { + $this->errorCode = $code; + $this->errorMessage = $message; + parent::__construct($message); + } + + /** + * Get the AWS error code. + * + * @return string|null Returns null if no response was received + */ + public function getAwsErrorCode() + { + return $this->errorCode; + } + + /** + * Get the concise error message if any. + * + * @return string|null + */ + public function getAwsErrorMessage() + { + return $this->errorMessage; + } +} diff --git a/vendor/aws/aws-sdk-php/src/Exception/IncalculablePayloadException.php b/vendor/aws/aws-sdk-php/src/Exception/IncalculablePayloadException.php new file mode 100644 index 0000000..a64e742 --- /dev/null +++ b/vendor/aws/aws-sdk-php/src/Exception/IncalculablePayloadException.php @@ -0,0 +1,11 @@ +<?php +namespace Aws\Exception; + +use Aws\HasMonitoringEventsTrait; +use Aws\MonitoringEventsInterface; + +class IncalculablePayloadException extends \RuntimeException implements + MonitoringEventsInterface +{ + use HasMonitoringEventsTrait; +} diff --git a/vendor/aws/aws-sdk-php/src/Exception/InvalidJsonException.php b/vendor/aws/aws-sdk-php/src/Exception/InvalidJsonException.php new file mode 100644 index 0000000..421b73e --- /dev/null +++ b/vendor/aws/aws-sdk-php/src/Exception/InvalidJsonException.php @@ -0,0 +1,11 @@ +<?php +namespace Aws\Exception; + +use Aws\HasMonitoringEventsTrait; +use Aws\MonitoringEventsInterface; + +class InvalidJsonException extends \RuntimeException implements + MonitoringEventsInterface +{ + use HasMonitoringEventsTrait; +} diff --git a/vendor/aws/aws-sdk-php/src/Exception/InvalidRegionException.php b/vendor/aws/aws-sdk-php/src/Exception/InvalidRegionException.php new file mode 100644 index 0000000..0e3cd36 --- /dev/null +++ b/vendor/aws/aws-sdk-php/src/Exception/InvalidRegionException.php @@ -0,0 +1,11 @@ +<?php +namespace Aws\Exception; + +use Aws\HasMonitoringEventsTrait; +use Aws\MonitoringEventsInterface; + +class InvalidRegionException extends \RuntimeException implements + MonitoringEventsInterface +{ + use HasMonitoringEventsTrait; +} diff --git a/vendor/aws/aws-sdk-php/src/Exception/MultipartUploadException.php b/vendor/aws/aws-sdk-php/src/Exception/MultipartUploadException.php new file mode 100644 index 0000000..74e4ea2 --- /dev/null +++ b/vendor/aws/aws-sdk-php/src/Exception/MultipartUploadException.php @@ -0,0 +1,63 @@ +<?php +namespace Aws\Exception; + +use Aws\HasMonitoringEventsTrait; +use Aws\MonitoringEventsInterface; +use Aws\Multipart\UploadState; + +class MultipartUploadException extends \RuntimeException implements + MonitoringEventsInterface +{ + use HasMonitoringEventsTrait; + + /** @var UploadState State of the erroneous transfer */ + private $state; + + /** + * @param UploadState $state Upload state at time of the exception. + * @param \Exception|array $prev Exception being thrown. + */ + public function __construct(UploadState $state, $prev = null) { + $msg = 'An exception occurred while performing a multipart upload'; + + if (is_array($prev)) { + $msg = strtr($msg, ['performing' => 'uploading parts to']); + $msg .= ". The following parts had errors:\n"; + /** @var $error AwsException */ + foreach ($prev as $part => $error) { + $msg .= "- Part {$part}: " . $error->getMessage(). "\n"; + } + } elseif ($prev instanceof AwsException) { + switch ($prev->getCommand()->getName()) { + case 'CreateMultipartUpload': + case 'InitiateMultipartUpload': + $action = 'initiating'; + break; + case 'CompleteMultipartUpload': + $action = 'completing'; + break; + } + if (isset($action)) { + $msg = strtr($msg, ['performing' => $action]); + } + $msg .= ": {$prev->getMessage()}"; + } + + if (!$prev instanceof \Exception) { + $prev = null; + } + + parent::__construct($msg, 0, $prev); + $this->state = $state; + } + + /** + * Get the state of the transfer + * + * @return UploadState + */ + public function getState() + { + return $this->state; + } +} diff --git a/vendor/aws/aws-sdk-php/src/Exception/TokenException.php b/vendor/aws/aws-sdk-php/src/Exception/TokenException.php new file mode 100644 index 0000000..f669601 --- /dev/null +++ b/vendor/aws/aws-sdk-php/src/Exception/TokenException.php @@ -0,0 +1,11 @@ +<?php +namespace Aws\Exception; + +use Aws\HasMonitoringEventsTrait; +use Aws\MonitoringEventsInterface; + +class TokenException extends \RuntimeException implements + MonitoringEventsInterface +{ + use HasMonitoringEventsTrait; +} diff --git a/vendor/aws/aws-sdk-php/src/Exception/UnresolvedApiException.php b/vendor/aws/aws-sdk-php/src/Exception/UnresolvedApiException.php new file mode 100644 index 0000000..e204571 --- /dev/null +++ b/vendor/aws/aws-sdk-php/src/Exception/UnresolvedApiException.php @@ -0,0 +1,11 @@ +<?php +namespace Aws\Exception; + +use Aws\HasMonitoringEventsTrait; +use Aws\MonitoringEventsInterface; + +class UnresolvedApiException extends \RuntimeException implements + MonitoringEventsInterface +{ + use HasMonitoringEventsTrait; +} diff --git a/vendor/aws/aws-sdk-php/src/Exception/UnresolvedEndpointException.php b/vendor/aws/aws-sdk-php/src/Exception/UnresolvedEndpointException.php new file mode 100644 index 0000000..77d7419 --- /dev/null +++ b/vendor/aws/aws-sdk-php/src/Exception/UnresolvedEndpointException.php @@ -0,0 +1,11 @@ +<?php +namespace Aws\Exception; + +use Aws\HasMonitoringEventsTrait; +use Aws\MonitoringEventsInterface; + +class UnresolvedEndpointException extends \RuntimeException implements + MonitoringEventsInterface +{ + use HasMonitoringEventsTrait; +} diff --git a/vendor/aws/aws-sdk-php/src/Exception/UnresolvedSignatureException.php b/vendor/aws/aws-sdk-php/src/Exception/UnresolvedSignatureException.php new file mode 100644 index 0000000..a04674c --- /dev/null +++ b/vendor/aws/aws-sdk-php/src/Exception/UnresolvedSignatureException.php @@ -0,0 +1,11 @@ +<?php +namespace Aws\Exception; + +use Aws\HasMonitoringEventsTrait; +use Aws\MonitoringEventsInterface; + +class UnresolvedSignatureException extends \RuntimeException implements + MonitoringEventsInterface +{ + use HasMonitoringEventsTrait; +} |