Source code for arango.exceptions

from typing import Optional

from arango.request import Request
from arango.response import Response


[docs] class ArangoError(Exception): """Base class for all exceptions in python-arango."""
[docs] class ArangoClientError(ArangoError): """Base class for errors originating from python-arango client. :param msg: Error message. :type msg: str :cvar source: Source of the error (always set to "client"). :vartype source: str :ivar message: Error message. :vartype message: str """ source = "client" def __init__(self, msg: str) -> None: super().__init__(msg) self.message = msg self.error_message = None self.error_code = None self.url = None self.response = None self.request = None self.http_method = None self.http_code = None self.http_headers = None
[docs] class ArangoServerError(ArangoError): """Base class for errors originating from ArangoDB server. :param resp: HTTP response. :type resp: arango.response.Response :param msg: Error message override. :type msg: str :cvar source: Source of the error (always set to "server"). :vartype source: str :ivar message: Exception message. :vartype message: str :ivar url: API URL. :vartype url: str :ivar response: HTTP response object. :vartype response: arango.response.Response :ivar request: HTTP request object. :vartype request: arango.request.Request :ivar http_method: HTTP method in lowercase (e.g. "post"). :vartype http_method: str :ivar http_code: HTTP status code. :vartype http_code: int :ivar http_headers: Response headers. :vartype http_headers: dict :ivar error_code: Error code from ArangoDB server. :vartype error_code: int :ivar error_message: Raw error message from ArangoDB server. :vartype error_message: str """ source = "server" def __init__( self, resp: Response, request: Request, msg: Optional[str] = None ) -> None: msg = msg or resp.error_message or resp.status_text self.error_message = resp.error_message self.error_code = resp.error_code if self.error_code is not None: msg = f"[HTTP {resp.status_code}][ERR {self.error_code}] {msg}" else: msg = f"[HTTP {resp.status_code}] {msg}" self.error_code = resp.status_code super().__init__(msg) self.message = msg self.url = resp.url self.response = resp self.request = request self.http_method = resp.method self.http_code = resp.status_code self.http_headers = resp.headers
################## # AQL Exceptions # ##################
[docs] class AQLQueryListError(ArangoServerError): """Failed to retrieve running AQL queries."""
[docs] class AQLQueryExplainError(ArangoServerError): """Failed to parse and explain query."""
[docs] class AQLQueryValidateError(ArangoServerError): """Failed to parse and validate query."""
[docs] class AQLQueryExecuteError(ArangoServerError): """Failed to execute query."""
[docs] class AQLQueryKillError(ArangoServerError): """Failed to kill the query."""
[docs] class AQLQueryClearError(ArangoServerError): """Failed to clear slow AQL queries."""
[docs] class AQLQueryTrackingGetError(ArangoServerError): """Failed to retrieve AQL tracking properties."""
[docs] class AQLQueryTrackingSetError(ArangoServerError): """Failed to configure AQL tracking properties."""
[docs] class AQLCachePropertiesError(ArangoServerError): """Failed to retrieve query cache properties."""
[docs] class AQLCacheConfigureError(ArangoServerError): """Failed to configure query cache properties."""
[docs] class AQLCacheEntriesError(ArangoServerError): """Failed to retrieve AQL cache entries."""
[docs] class AQLCacheClearError(ArangoServerError): """Failed to clear the query cache."""
[docs] class AQLFunctionListError(ArangoServerError): """Failed to retrieve AQL user functions."""
[docs] class AQLFunctionCreateError(ArangoServerError): """Failed to create AQL user function."""
[docs] class AQLFunctionDeleteError(ArangoServerError): """Failed to delete AQL user function."""
[docs] class AQLQueryRulesGetError(ArangoServerError): """Failed to retrieve AQL query rules."""
############################## # Async Execution Exceptions # ##############################
[docs] class AsyncExecuteError(ArangoServerError): """Failed to execute async API request."""
[docs] class AsyncJobListError(ArangoServerError): """Failed to retrieve async jobs."""
[docs] class AsyncJobCancelError(ArangoServerError): """Failed to cancel async job."""
[docs] class AsyncJobStatusError(ArangoServerError): """Failed to retrieve async job status."""
[docs] class AsyncJobResultError(ArangoServerError): """Failed to retrieve async job result."""
[docs] class AsyncJobClearError(ArangoServerError): """Failed to clear async job results."""
############################## # Backup Exceptions # ##############################
[docs] class BackupCreateError(ArangoServerError): """Failed to create a backup."""
[docs] class BackupDeleteError(ArangoServerError): """Failed to delete a backup."""
[docs] class BackupDownloadError(ArangoServerError): """Failed to download a backup from remote repository."""
[docs] class BackupGetError(ArangoServerError): """Failed to retrieve backup details."""
[docs] class BackupRestoreError(ArangoServerError): """Failed to restore from backup."""
[docs] class BackupUploadError(ArangoServerError): """Failed to upload a backup to remote repository."""
############################## # Batch Execution Exceptions # ##############################
[docs] class BatchStateError(ArangoClientError): """The batch object was in a bad state."""
[docs] class BatchJobResultError(ArangoClientError): """Failed to retrieve batch job result."""
[docs] class BatchExecuteError(ArangoServerError): """Failed to execute batch API request."""
######################################### # Overload Control Execution Exceptions # #########################################
[docs] class OverloadControlExecutorError(ArangoServerError): """Failed to execute overload controlled API request."""
######################### # Collection Exceptions # #########################
[docs] class CollectionListError(ArangoServerError): """Failed to retrieve collections."""
[docs] class CollectionInformationError(ArangoServerError): """Failed to retrieve collection information."""
[docs] class CollectionPropertiesError(ArangoServerError): """Failed to retrieve collection properties."""
[docs] class CollectionConfigureError(ArangoServerError): """Failed to configure collection properties."""
[docs] class CollectionShardsError(ArangoServerError): """Failed to retrieve collection shards."""
[docs] class CollectionStatisticsError(ArangoServerError): """Failed to retrieve collection statistics."""
[docs] class CollectionRevisionError(ArangoServerError): """Failed to retrieve collection revision."""
[docs] class CollectionChecksumError(ArangoServerError): """Failed to retrieve collection checksum."""
[docs] class CollectionCompactError(ArangoServerError): """Failed to compact collection."""
[docs] class CollectionCreateError(ArangoServerError): """Failed to create collection."""
[docs] class CollectionDeleteError(ArangoServerError): """Failed to delete collection."""
[docs] class CollectionRenameError(ArangoServerError): """Failed to rename collection."""
[docs] class CollectionTruncateError(ArangoServerError): """Failed to truncate collection."""
[docs] class CollectionLoadError(ArangoServerError): """Failed to load collection."""
[docs] class CollectionUnloadError(ArangoServerError): """Failed to unload collection."""
[docs] class CollectionRecalculateCountError(ArangoServerError): """Failed to recalculate document count."""
[docs] class CollectionResponsibleShardError(ArangoServerError): """Failed to retrieve responsible shard."""
##################### # Cursor Exceptions # #####################
[docs] class CursorStateError(ArangoClientError): """The cursor object was in a bad state."""
[docs] class CursorCountError(ArangoClientError, TypeError): """The cursor count was not enabled."""
[docs] class CursorEmptyError(ArangoClientError): """The current batch in cursor was empty."""
[docs] class CursorNextError(ArangoServerError): """Failed to retrieve the next result batch from server."""
[docs] class CursorCloseError(ArangoServerError): """Failed to delete the cursor result from server."""
####################### # Database Exceptions # #######################
[docs] class DatabaseListError(ArangoServerError): """Failed to retrieve databases."""
[docs] class DatabasePropertiesError(ArangoServerError): """Failed to retrieve database properties."""
[docs] class DatabaseCreateError(ArangoServerError): """Failed to create database."""
[docs] class DatabaseDeleteError(ArangoServerError): """Failed to delete database."""
[docs] class DatabaseSupportInfoError(ArangoServerError): """Failed to retrieve support info for deployment."""
[docs] class DatabaseCompactError(ArangoServerError): """Failed to compact databases."""
####################### # Document Exceptions # #######################
[docs] class DocumentParseError(ArangoClientError): """Failed to parse document input."""
[docs] class DocumentCountError(ArangoServerError): """Failed to retrieve document count."""
[docs] class DocumentInError(ArangoServerError): """Failed to check whether document exists."""
[docs] class DocumentGetError(ArangoServerError): """Failed to retrieve document."""
[docs] class DocumentKeysError(ArangoServerError): """Failed to retrieve document keys."""
[docs] class DocumentIDsError(ArangoServerError): """Failed to retrieve document IDs."""
[docs] class DocumentInsertError(ArangoServerError): """Failed to insert document."""
[docs] class DocumentReplaceError(ArangoServerError): """Failed to replace document."""
[docs] class DocumentUpdateError(ArangoServerError): """Failed to update document."""
[docs] class DocumentDeleteError(ArangoServerError): """Failed to delete document."""
[docs] class DocumentRevisionError(ArangoServerError): """The expected and actual document revisions mismatched."""
################### # Foxx Exceptions # ###################
[docs] class FoxxServiceListError(ArangoServerError): """Failed to retrieve Foxx services."""
[docs] class FoxxServiceGetError(ArangoServerError): """Failed to retrieve Foxx service metadata."""
[docs] class FoxxServiceCreateError(ArangoServerError): """Failed to create Foxx service."""
[docs] class FoxxServiceUpdateError(ArangoServerError): """Failed to update Foxx service."""
[docs] class FoxxServiceReplaceError(ArangoServerError): """Failed to replace Foxx service."""
[docs] class FoxxServiceDeleteError(ArangoServerError): """Failed to delete Foxx services."""
[docs] class FoxxConfigGetError(ArangoServerError): """Failed to retrieve Foxx service configuration."""
[docs] class FoxxConfigUpdateError(ArangoServerError): """Failed to update Foxx service configuration."""
[docs] class FoxxConfigReplaceError(ArangoServerError): """Failed to replace Foxx service configuration."""
[docs] class FoxxDependencyGetError(ArangoServerError): """Failed to retrieve Foxx service dependencies."""
[docs] class FoxxDependencyUpdateError(ArangoServerError): """Failed to update Foxx service dependencies."""
[docs] class FoxxDependencyReplaceError(ArangoServerError): """Failed to replace Foxx service dependencies."""
[docs] class FoxxScriptListError(ArangoServerError): """Failed to retrieve Foxx service scripts."""
[docs] class FoxxScriptRunError(ArangoServerError): """Failed to run Foxx service script."""
[docs] class FoxxTestRunError(ArangoServerError): """Failed to run Foxx service tests."""
[docs] class FoxxDevModeEnableError(ArangoServerError): """Failed to enable development mode for Foxx service."""
[docs] class FoxxDevModeDisableError(ArangoServerError): """Failed to disable development mode for Foxx service."""
[docs] class FoxxReadmeGetError(ArangoServerError): """Failed to retrieve Foxx service readme."""
[docs] class FoxxSwaggerGetError(ArangoServerError): """Failed to retrieve Foxx service swagger."""
[docs] class FoxxDownloadError(ArangoServerError): """Failed to download Foxx service bundle."""
[docs] class FoxxCommitError(ArangoServerError): """Failed to commit local Foxx service state."""
#################### # Graph Exceptions # ####################
[docs] class GraphListError(ArangoServerError): """Failed to retrieve graphs."""
[docs] class GraphCreateError(ArangoServerError): """Failed to create the graph."""
[docs] class GraphDeleteError(ArangoServerError): """Failed to delete the graph."""
[docs] class GraphPropertiesError(ArangoServerError): """Failed to retrieve graph properties."""
[docs] class GraphTraverseError(ArangoServerError): """Failed to execute graph traversal."""
[docs] class VertexCollectionListError(ArangoServerError): """Failed to retrieve vertex collections."""
[docs] class VertexCollectionCreateError(ArangoServerError): """Failed to create vertex collection."""
[docs] class VertexCollectionDeleteError(ArangoServerError): """Failed to delete vertex collection."""
[docs] class EdgeDefinitionListError(ArangoServerError): """Failed to retrieve edge definitions."""
[docs] class EdgeDefinitionCreateError(ArangoServerError): """Failed to create edge definition."""
[docs] class EdgeDefinitionReplaceError(ArangoServerError): """Failed to replace edge definition."""
[docs] class EdgeDefinitionDeleteError(ArangoServerError): """Failed to delete edge definition."""
[docs] class EdgeListError(ArangoServerError): """Failed to retrieve edges coming in and out of a vertex."""
#################### # Index Exceptions # ####################
[docs] class IndexListError(ArangoServerError): """Failed to retrieve collection indexes."""
[docs] class IndexCreateError(ArangoServerError): """Failed to create collection index."""
[docs] class IndexGetError(ArangoServerError): """Failed to retrieve collection index."""
[docs] class IndexMissingError(ArangoClientError): """Failed to find collection index."""
[docs] class IndexDeleteError(ArangoServerError): """Failed to delete collection index."""
[docs] class IndexLoadError(ArangoServerError): """Failed to load indexes into memory."""
##################### # Pregel Exceptions # #####################
[docs] class PregelJobCreateError(ArangoServerError): """Failed to create Pregel job."""
[docs] class PregelJobGetError(ArangoServerError): """Failed to retrieve Pregel job details."""
[docs] class PregelJobDeleteError(ArangoServerError): """Failed to delete Pregel job."""
##################### # Server Exceptions # #####################
[docs] class ServerConnectionError(ArangoServerError): """Failed to connect to ArangoDB server."""
[docs] class ServerEngineError(ArangoServerError): """Failed to retrieve database engine."""
[docs] class ServerVersionError(ArangoServerError): """Failed to retrieve server version."""
[docs] class ServerDetailsError(ArangoServerError): """Failed to retrieve server details."""
[docs] class ServerLicenseGetError(ArangoServerError): """Failed to retrieve server license."""
[docs] class ServerLicenseSetError(ArangoServerError): """Failed to set server license."""
[docs] class ServerStatusError(ArangoServerError): """Failed to retrieve server status."""
[docs] class ServerTimeError(ArangoServerError): """Failed to retrieve server system time."""
[docs] class ServerEchoError(ArangoServerError): """Failed to retrieve details on last request."""
[docs] class ServerShutdownError(ArangoServerError): """Failed to initiate shutdown sequence."""
[docs] class ServerShutdownProgressError(ArangoServerError): """Failed to retrieve soft shutdown progress."""
[docs] class ServerRunTestsError(ArangoServerError): """Failed to execute server tests."""
[docs] class ServerRequiredDBVersionError(ArangoServerError): """Failed to retrieve server target version."""
[docs] class ServerReadLogError(ArangoServerError): """Failed to retrieve global log."""
[docs] class ServerLogLevelError(ArangoServerError): """Failed to retrieve server log levels."""
[docs] class ServerLogSettingError(ArangoServerError): """Failed to retrieve server log settings."""
[docs] class ServerLogLevelSetError(ArangoServerError): """Failed to set server log levels."""
[docs] class ServerLogSettingSetError(ArangoServerError): """Failed to set server log settings."""
[docs] class ServerReloadRoutingError(ArangoServerError): """Failed to reload routing details."""
[docs] class ServerStatisticsError(ArangoServerError): """Failed to retrieve server statistics."""
[docs] class ServerMetricsError(ArangoServerError): """Failed to retrieve server metrics."""
[docs] class ServerRoleError(ArangoServerError): """Failed to retrieve server role."""
[docs] class ServerModeError(ArangoServerError): """Failed to retrieve server mode."""
[docs] class ServerModeSetError(ArangoServerError): """Failed to set server mode."""
[docs] class ServerTLSError(ArangoServerError): """Failed to retrieve TLS data."""
[docs] class ServerTLSReloadError(ArangoServerError): """Failed to reload TLS."""
[docs] class ServerEncryptionError(ArangoServerError): """Failed to reload user-defined encryption keys."""
[docs] class ServerCurrentOptionsGetError(ArangoServerError): """Failed to retrieve currently-set server options."""
[docs] class ServerAvailableOptionsGetError(ArangoServerError): """Failed to retrieve available server options."""
[docs] class ServerExecuteError(ArangoServerError): """Failed to execute raw JavaScript command."""
##################### # Task Exceptions # #####################
[docs] class TaskListError(ArangoServerError): """Failed to retrieve server tasks."""
[docs] class TaskGetError(ArangoServerError): """Failed to retrieve server task details."""
[docs] class TaskCreateError(ArangoServerError): """Failed to create server task."""
[docs] class TaskDeleteError(ArangoServerError): """Failed to delete server task."""
########################## # Transaction Exceptions # ##########################
[docs] class TransactionExecuteError(ArangoServerError): """Failed to execute raw transaction."""
[docs] class TransactionInitError(ArangoServerError): """Failed to initialize transaction."""
[docs] class TransactionStatusError(ArangoServerError): """Failed to retrieve transaction status."""
[docs] class TransactionCommitError(ArangoServerError): """Failed to commit transaction."""
[docs] class TransactionAbortError(ArangoServerError): """Failed to abort transaction."""
[docs] class TransactionFetchError(ArangoServerError): """Failed to fetch existing transaction."""
[docs] class TransactionListError(ArangoServerError): """Failed to retrieve transactions."""
################### # User Exceptions # ###################
[docs] class UserListError(ArangoServerError): """Failed to retrieve users."""
[docs] class UserGetError(ArangoServerError): """Failed to retrieve user details."""
[docs] class UserCreateError(ArangoServerError): """Failed to create user."""
[docs] class UserUpdateError(ArangoServerError): """Failed to update user."""
[docs] class UserReplaceError(ArangoServerError): """Failed to replace user."""
[docs] class UserDeleteError(ArangoServerError): """Failed to delete user."""
################### # View Exceptions # ###################
[docs] class ViewListError(ArangoServerError): """Failed to retrieve views."""
[docs] class ViewGetError(ArangoServerError): """Failed to retrieve view details."""
[docs] class ViewCreateError(ArangoServerError): """Failed to create view."""
[docs] class ViewUpdateError(ArangoServerError): """Failed to update view."""
[docs] class ViewReplaceError(ArangoServerError): """Failed to replace view."""
[docs] class ViewDeleteError(ArangoServerError): """Failed to delete view."""
[docs] class ViewRenameError(ArangoServerError): """Failed to rename view."""
####################### # Analyzer Exceptions # #######################
[docs] class AnalyzerListError(ArangoServerError): """Failed to retrieve analyzers."""
[docs] class AnalyzerGetError(ArangoServerError): """Failed to retrieve analyzer details."""
[docs] class AnalyzerCreateError(ArangoServerError): """Failed to create analyzer."""
[docs] class AnalyzerDeleteError(ArangoServerError): """Failed to delete analyzer."""
######################### # Permission Exceptions # #########################
[docs] class PermissionListError(ArangoServerError): """Failed to list user permissions."""
[docs] class PermissionGetError(ArangoServerError): """Failed to retrieve user permission."""
[docs] class PermissionUpdateError(ArangoServerError): """Failed to update user permission."""
[docs] class PermissionResetError(ArangoServerError): """Failed to reset user permission."""
################## # WAL Exceptions # ##################
[docs] class WALPropertiesError(ArangoServerError): """Failed to retrieve WAL properties."""
[docs] class WALConfigureError(ArangoServerError): """Failed to configure WAL properties."""
[docs] class WALTransactionListError(ArangoServerError): """Failed to retrieve running WAL transactions."""
[docs] class WALFlushError(ArangoServerError): """Failed to flush WAL."""
[docs] class WALTickRangesError(ArangoServerError): """Failed to return WAL tick ranges."""
[docs] class WALLastTickError(ArangoServerError): """Failed to return WAL tick ranges."""
[docs] class WALTailError(ArangoServerError): """Failed to return WAL tick ranges."""
########################## # Replication Exceptions # ##########################
[docs] class ReplicationInventoryError(ArangoServerError): """Failed to retrieve inventory of collection and indexes."""
[docs] class ReplicationDumpBatchCreateError(ArangoServerError): """Failed to create dump batch."""
[docs] class ReplicationDumpBatchDeleteError(ArangoServerError): """Failed to delete a dump batch."""
[docs] class ReplicationDumpBatchExtendError(ArangoServerError): """Failed to extend a dump batch."""
[docs] class ReplicationDumpError(ArangoServerError): """Failed to retrieve collection content."""
[docs] class ReplicationSyncError(ArangoServerError): """Failed to synchronize data from remote."""
[docs] class ReplicationClusterInventoryError(ArangoServerError): """Failed to retrieve overview of collection and indexes in a cluster."""
[docs] class ReplicationLoggerStateError(ArangoServerError): """Failed to retrieve logger state."""
[docs] class ReplicationLoggerFirstTickError(ArangoServerError): """Failed to retrieve logger first tick."""
[docs] class ReplicationApplierConfigError(ArangoServerError): """Failed to retrieve replication applier configuration."""
[docs] class ReplicationApplierConfigSetError(ArangoServerError): """Failed to update replication applier configuration."""
[docs] class ReplicationApplierStartError(ArangoServerError): """Failed to start replication applier."""
[docs] class ReplicationApplierStopError(ArangoServerError): """Failed to stop replication applier."""
[docs] class ReplicationApplierStateError(ArangoServerError): """Failed to retrieve replication applier state."""
[docs] class ReplicationMakeSlaveError(ArangoServerError): """Failed to change role to slave."""
[docs] class ReplicationServerIDError(ArangoServerError): """Failed to retrieve server ID."""
###################### # Cluster Exceptions # ######################
[docs] class ClusterHealthError(ArangoServerError): """Failed to retrieve DBServer health."""
[docs] class ClusterServerIDError(ArangoServerError): """Failed to retrieve server ID."""
[docs] class ClusterServerRoleError(ArangoServerError): """Failed to retrieve server role in a cluster."""
[docs] class ClusterServerModeError(ArangoServerError): """Failed to retrieve server mode in a cluster."""
[docs] class ClusterServerStatisticsError(ArangoServerError): """Failed to retrieve DBServer statistics."""
[docs] class ClusterServerVersionError(ArangoServerError): """Failed to retrieve server node version."""
[docs] class ClusterServerEngineError(ArangoServerError): """Failed to retrieve server node engine."""
[docs] class ClusterMaintenanceModeError(ArangoServerError): """Failed to enable/disable cluster supervision maintenance mode."""
[docs] class ClusterEndpointsError(ArangoServerError): """Failed to retrieve cluster endpoints."""
[docs] class ClusterServerCountError(ArangoServerError): """Failed to retrieve cluster server count."""
[docs] class ClusterRebalanceError(ArangoServerError): """Failed to execute cluster re-balancing operation (load/set)."""
################## # JWT Exceptions # ##################
[docs] class JWTAuthError(ArangoServerError): """Failed to get a new JWT token from ArangoDB."""
[docs] class JWTSecretListError(ArangoServerError): """Failed to retrieve information on currently loaded JWT secrets."""
[docs] class JWTSecretReloadError(ArangoServerError): """Failed to reload JWT secrets."""
[docs] class JWTRefreshError(ArangoClientError): """Failed to refresh JWT token."""
[docs] class JWTExpiredError(ArangoClientError): """JWT token has expired."""