Common and Misc Libraries¶
Libraries common throughout Cinder or just ones that haven’t been categorized very well yet.
The cinder.context
Module¶
RequestContext: context for requests that persist through all of cinder.
-
class
RequestContext
(user_id=None, project_id=None, is_admin=None, read_deleted='no', project_name=None, remote_address=None, timestamp=None, quota_class=None, service_catalog=None, **kwargs) Bases:
oslo_context.context.RequestContext
Security context and request information.
Represents the user taking a given action within the system.
-
deepcopy
()
-
elevated
(read_deleted=None, overwrite=False) Return a version of this context with admin flag set.
-
classmethod
from_dict
(values)
-
project_id
-
read_deleted
-
to_dict
()
-
to_policy_values
()
-
user_id
-
-
get_admin_context
(read_deleted='no')
-
get_internal_tenant_context
() Build and return the Cinder internal tenant context object
This request context will only work for internal Cinder operations. It will not be able to make requests to remote services. To do so it will need to use the keystone client to get an auth_token.
The cinder.exception
Module¶
Cinder base exception handling.
Includes decorator for re-raising Cinder-type exceptions.
SHOULD include dedicated exception logging.
-
exception
APIException
(message=None, **kwargs) Bases:
cinder.exception.CinderException
-
message
= u'Error while requesting %(service)s API.'
-
-
exception
APITimeout
(message=None, **kwargs) Bases:
cinder.exception.APIException
-
message
= u'Timeout while requesting %(service)s API.'
-
-
exception
AdminRequired
(message=None, **kwargs) Bases:
cinder.exception.NotAuthorized
-
message
= u'User does not have admin privileges'
-
-
exception
AttachmentSpecsNotFound
(message=None, **kwargs) Bases:
cinder.exception.NotFound
-
message
= u'Attachment %(attachment_id)s has no key %(specs_key)s.'
-
-
exception
BackupDriverException
(message=None, **kwargs) Bases:
cinder.exception.CinderException
-
message
= u'Backup driver reported an error: %(message)s'
-
-
exception
BackupFailedToGetVolumeBackend
(message=None, **kwargs) Bases:
cinder.exception.NotFound
-
message
= u'Failed to identify volume backend.'
-
-
exception
BackupInvalidCephArgs
(message=None, **kwargs) Bases:
cinder.exception.BackupDriverException
-
message
= u'Invalid Ceph args provided for backup rbd operation'
-
-
exception
BackupLimitExceeded
(message=None, **kwargs) Bases:
cinder.exception.QuotaError
-
message
= u'Maximum number of backups allowed (%(allowed)d) exceeded'
-
-
exception
BackupMetadataUnsupportedVersion
(message=None, **kwargs) Bases:
cinder.exception.BackupDriverException
-
message
= u'Unsupported backup metadata version requested'
-
-
exception
BackupNotFound
(message=None, **kwargs) Bases:
cinder.exception.NotFound
-
message
= u'Backup %(backup_id)s could not be found.'
-
-
exception
BackupOperationError
(message=None, **kwargs) Bases:
cinder.exception.Invalid
-
message
= u'An error has occurred during backup operation'
-
-
exception
BackupRBDOperationFailed
(message=None, **kwargs) Bases:
cinder.exception.BackupDriverException
-
message
= u'Backup RBD operation failed'
-
-
exception
BackupVerifyUnsupportedDriver
(message=None, **kwargs) Bases:
cinder.exception.BackupDriverException
-
message
= u'Unsupported backup verify driver'
-
-
exception
BadHTTPResponseStatus
(message=None, **kwargs) Bases:
cinder.exception.VolumeDriverException
-
message
= u'Bad HTTP response status %(status)s'
-
-
exception
BrocadeZoningCliException
(message=None, **kwargs) Bases:
cinder.exception.CinderException
-
message
= u'Brocade Fibre Channel Zoning CLI error: %(reason)s'
-
-
exception
BrocadeZoningHttpException
(message=None, **kwargs) Bases:
cinder.exception.CinderException
-
message
= u'Brocade Fibre Channel Zoning HTTP error: %(reason)s'
-
-
exception
CappedVersionUnknown
(message=None, **kwargs) Bases:
cinder.exception.CinderException
-
message
= u"Unrecoverable Error: Versioned Objects in DB are capped to unknown version %(version)s. Most likely your environment contains only new services and you're trying to start an older one. Use `cinder-manage service list` to check that and upgrade this service."
-
-
exception
CgSnapshotNotFound
(message=None, **kwargs) Bases:
cinder.exception.NotFound
-
message
= u'CgSnapshot %(cgsnapshot_id)s could not be found.'
-
-
exception
CinderException
(message=None, **kwargs) Bases:
exceptions.Exception
Base Cinder Exception
To correctly use this class, inherit from it and define a ‘message’ property. That message will get printf’d with the keyword arguments provided to the constructor.
-
code
= 500
-
headers
= {}
-
message
= u'An unknown exception occurred.'
-
safe
= False
-
-
exception
CiscoZoningCliException
(message=None, **kwargs) Bases:
cinder.exception.CinderException
-
message
= u'Cisco Fibre Channel Zoning CLI error: %(reason)s'
-
-
exception
CleanableInUse
(message=None, **kwargs) Bases:
cinder.exception.Invalid
-
message
= u'%(type)s with id %(id)s is already being cleaned up or another host has taken over it.'
-
-
exception
ClusterExists
(message=None, **kwargs) Bases:
cinder.exception.Duplicate
-
message
= u'Cluster %(name)s already exists.'
-
-
exception
ClusterHasHosts
(message=None, **kwargs) Bases:
cinder.exception.Invalid
-
message
= u'Cluster %(id)s still has hosts.'
-
-
exception
ClusterNotFound
(message=None, **kwargs) Bases:
cinder.exception.NotFound
-
message
= u'Cluster %(id)s could not be found.'
-
-
exception
CohoException
(message=None, **kwargs) Bases:
cinder.exception.VolumeDriverException
-
message
= u'Coho Data Cinder driver failure: %(message)s'
-
-
exception
ConfigNotFound
(message=None, **kwargs) Bases:
cinder.exception.NotFound
-
message
= u'Could not find config at %(path)s'
-
-
exception
ConsistencyGroupNotFound
(message=None, **kwargs) Bases:
cinder.exception.NotFound
-
message
= u'ConsistencyGroup %(consistencygroup_id)s could not be found.'
-
-
exception
ConvertedException
(code=500, title='', explanation='') Bases:
webob.exc.WSGIHTTPException
-
exception
DateraAPIException
(message=None, **kwargs) Bases:
cinder.exception.VolumeBackendAPIException
-
message
= u'Bad response from Datera API'
-
-
exception
DellDriverRetryableException
(message=None, **kwargs) Bases:
cinder.exception.VolumeBackendAPIException
-
message
= u'Retryable Dell Exception encountered'
-
-
exception
DellDriverUnknownSpec
(message=None, **kwargs) Bases:
cinder.exception.VolumeDriverException
-
message
= u'Dell driver failure: %(reason)s'
-
-
exception
DeviceUnavailable
(message=None, **kwargs) Bases:
cinder.exception.Invalid
-
message
= u'The device in the path %(path)s is unavailable: %(reason)s'
-
-
exception
DotHillAuthenticationError
(message=None, **kwargs) Bases:
cinder.exception.VolumeDriverException
-
message
= '%(message)s'
-
-
exception
DotHillConnectionError
(message=None, **kwargs) Bases:
cinder.exception.VolumeDriverException
-
message
= '%(message)s'
-
-
exception
DotHillInvalidBackend
(message=None, **kwargs) Bases:
cinder.exception.VolumeDriverException
-
message
= u"Backend doesn't exist (%(backend)s)"
-
-
exception
DotHillNotEnoughSpace
(message=None, **kwargs) Bases:
cinder.exception.VolumeDriverException
-
message
= u'Not enough space on backend (%(backend)s)'
-
-
exception
DotHillNotTargetPortal
(message=None, **kwargs) Bases:
cinder.exception.VolumeDriverException
-
message
= u'No active iSCSI portals with supplied iSCSI IPs'
-
-
exception
DotHillRequestError
(message=None, **kwargs) Bases:
cinder.exception.VolumeDriverException
-
message
= '%(message)s'
-
-
exception
DriverNotInitialized
(message=None, **kwargs) Bases:
cinder.exception.CinderException
-
message
= u'Volume driver not ready.'
-
-
exception
Duplicate
(message=None, **kwargs)
-
exception
DuplicateSfVolumeNames
(message=None, **kwargs) Bases:
cinder.exception.Duplicate
-
message
= u'Detected more than one volume with name %(vol_name)s'
-
-
exception
EMCSPUnavailableException
(message=None, **kwargs) Bases:
cinder.exception.EMCVnxCLICmdError
-
message
= u'EMC VNX Cinder Driver SPUnavailableException: %(cmd)s (Return Code: %(rc)s) (Output: %(out)s).'
-
-
exception
EMCVnxCLICmdError
(message=None, **kwargs) Bases:
cinder.exception.VolumeBackendAPIException
-
message
= u'EMC VNX Cinder Driver CLI exception: %(cmd)s (Return Code: %(rc)s) (Output: %(out)s).'
-
-
exception
EncryptedBackupOperationFailed
(message=None, **kwargs) Bases:
cinder.exception.BackupDriverException
-
message
= u'Backup operation of an encrypted volume failed.'
-
-
exception
Error
Bases:
exceptions.Exception
-
exception
EvaluatorParseException
Bases:
exceptions.Exception
-
message
= u'Error during evaluator parsing: %(reason)s'
-
-
exception
ExportFailure
(message=None, **kwargs) Bases:
cinder.exception.Invalid
-
message
= u'Failed to export for volume: %(reason)s'
-
-
exception
ExtendVolumeError
(message=None, **kwargs) Bases:
cinder.exception.CinderException
-
message
= u'Error extending volume: %(reason)s'
-
-
exception
FCSanLookupServiceException
(message=None, **kwargs) Bases:
cinder.exception.CinderException
-
message
= u'Fibre Channel SAN Lookup failure: %(reason)s'
-
-
exception
FCZoneDriverException
(message=None, **kwargs) Bases:
cinder.exception.CinderException
-
message
= u'Fibre Channel Zone operation failed: %(reason)s'
-
-
exception
FailedCmdWithDump
(message=None, **kwargs) Bases:
cinder.exception.VolumeDriverException
-
message
= u'Operation failed with status=%(status)s. Full dump: %(data)s'
-
-
exception
FileNotFound
(message=None, **kwargs) Bases:
cinder.exception.NotFound
-
message
= u'File %(file_path)s could not be found.'
-
-
exception
GCSApiFailure
(message=None, **kwargs) Bases:
cinder.exception.BackupDriverException
-
message
= u'Google Cloud Storage api failure: %(reason)s'
-
-
exception
GCSConnectionFailure
(message=None, **kwargs) Bases:
cinder.exception.BackupDriverException
-
message
= u'Google Cloud Storage connection failure: %(reason)s'
-
-
exception
GCSOAuth2Failure
(message=None, **kwargs) Bases:
cinder.exception.BackupDriverException
-
message
= u'Google Cloud Storage oauth2 failure: %(reason)s'
-
-
exception
GPFSDriverUnsupportedOperation
(message=None, **kwargs) Bases:
cinder.exception.VolumeBackendAPIException
-
message
= u'GPFS driver unsupported operation: %(msg)s'
-
-
exception
GlanceConnectionFailed
(message=None, **kwargs) Bases:
cinder.exception.CinderException
-
message
= u'Connection to glance failed: %(reason)s'
-
-
exception
GlanceMetadataExists
(message=None, **kwargs) Bases:
cinder.exception.Invalid
-
message
= u'Glance metadata cannot be updated, key %(key)s exists for volume id %(volume_id)s'
-
-
exception
GlanceMetadataNotFound
(message=None, **kwargs) Bases:
cinder.exception.NotFound
-
message
= u'Glance metadata for volume/snapshot %(id)s cannot be found.'
-
-
exception
GroupLimitExceeded
(message=None, **kwargs) Bases:
cinder.exception.QuotaError
-
message
= u'Maximum number of groups allowed (%(allowed)d) exceeded'
-
-
exception
GroupNotFound
(message=None, **kwargs) Bases:
cinder.exception.NotFound
-
message
= u'Group %(group_id)s could not be found.'
-
-
exception
GroupSnapshotNotFound
(message=None, **kwargs) Bases:
cinder.exception.NotFound
-
message
= u'GroupSnapshot %(group_snapshot_id)s could not be found.'
-
-
exception
GroupTypeAccessExists
(message=None, **kwargs) Bases:
cinder.exception.Duplicate
-
message
= u'Group type access for %(group_type_id)s / %(project_id)s combination already exists.'
-
-
exception
GroupTypeAccessNotFound
(message=None, **kwargs) Bases:
cinder.exception.NotFound
-
message
= u'Group type access not found for %(group_type_id)s / %(project_id)s combination.'
-
-
exception
GroupTypeCreateFailed
(message=None, **kwargs) Bases:
cinder.exception.CinderException
-
message
= u'Cannot create group_type with name %(name)s and specs %(group_specs)s'
-
-
exception
GroupTypeEncryptionExists
(message=None, **kwargs) Bases:
cinder.exception.Invalid
-
message
= u'Group type encryption for type %(type_id)s already exists.'
-
-
exception
GroupTypeEncryptionNotFound
(message=None, **kwargs) Bases:
cinder.exception.NotFound
-
message
= u'Group type encryption for type %(type_id)s does not exist.'
-
-
exception
GroupTypeExists
(message=None, **kwargs) Bases:
cinder.exception.Duplicate
-
message
= u'Group Type %(id)s already exists.'
-
-
exception
GroupTypeInUse
(message=None, **kwargs) Bases:
cinder.exception.CinderException
-
message
= u'Group Type %(group_type_id)s deletion is not allowed with groups present with the type.'
-
-
exception
GroupTypeNotFound
(message=None, **kwargs) Bases:
cinder.exception.NotFound
-
message
= u'Group type %(group_type_id)s could not be found.'
-
-
exception
GroupTypeNotFoundByName
(message=None, **kwargs) Bases:
cinder.exception.GroupTypeNotFound
-
message
= u'Group type with name %(group_type_name)s could not be found.'
-
-
exception
GroupTypeSpecsNotFound
(message=None, **kwargs) Bases:
cinder.exception.NotFound
-
message
= u'Group Type %(group_type_id)s has no specs with key %(group_specs_key)s.'
-
-
exception
GroupTypeUpdateFailed
(message=None, **kwargs) Bases:
cinder.exception.CinderException
-
message
= u'Cannot update group_type %(id)s'
-
-
exception
GroupVolumeTypeMappingExists
(message=None, **kwargs) Bases:
cinder.exception.Duplicate
-
message
= u'Group volume type mapping for %(group_id)s / %(volume_type_id)s combination already exists.'
-
-
exception
HBSDBusy
(message=None, **kwargs) Bases:
cinder.exception.HBSDError
-
message
= 'Device or resource is busy.'
-
-
exception
HBSDCmdError
(message=None, ret=None, err=None) Bases:
cinder.exception.HBSDError
-
exception
HBSDError
(message=None, **kwargs) Bases:
cinder.exception.VolumeDriverException
-
message
= u'HBSD error occurs.'
-
-
exception
HBSDNotFound
(message=None, **kwargs) Bases:
cinder.exception.NotFound
-
message
= u'Storage resource could not be found.'
-
-
exception
HBSDVolumeIsBusy
(message=None, **kwargs) Bases:
cinder.exception.VolumeIsBusy
-
message
= u'Volume %(volume_name)s is busy.'
-
-
exception
HNASConnError
(message=None, **kwargs) Bases:
cinder.exception.VolumeDriverException
-
message
= '%(message)s'
-
-
exception
HostNotFound
(message=None, **kwargs) Bases:
cinder.exception.NotFound
-
message
= u'Host %(host)s could not be found.'
-
-
exception
ISCSITargetAttachFailed
(message=None, **kwargs) Bases:
cinder.exception.CinderException
-
message
= u'Failed to attach iSCSI target for volume %(volume_id)s.'
-
-
exception
ISCSITargetCreateFailed
(message=None, **kwargs) Bases:
cinder.exception.CinderException
-
message
= u'Failed to create iscsi target for volume %(volume_id)s.'
-
-
exception
ISCSITargetDetachFailed
(message=None, **kwargs) Bases:
cinder.exception.CinderException
-
message
= u'Failed to detach iSCSI target for volume %(volume_id)s.'
-
-
exception
ISCSITargetHelperCommandFailed
(message=None, **kwargs) Bases:
cinder.exception.CinderException
-
message
= '%(error_message)s'
-
-
exception
ISCSITargetNotFoundForVolume
(message=None, **kwargs) Bases:
cinder.exception.NotFound
-
message
= u'No target id found for volume %(volume_id)s.'
-
-
exception
ISCSITargetRemoveFailed
(message=None, **kwargs) Bases:
cinder.exception.CinderException
-
message
= u'Failed to remove iscsi target for volume %(volume_id)s.'
-
-
exception
ImageCopyFailure
(message=None, **kwargs) Bases:
cinder.exception.Invalid
-
message
= u'Failed to copy image to volume: %(reason)s'
-
-
exception
ImageLimitExceeded
(message=None, **kwargs) Bases:
cinder.exception.QuotaError
-
message
= u'Image quota exceeded'
-
-
exception
ImageNotAuthorized
(message=None, **kwargs) Bases:
cinder.exception.CinderException
-
message
= u'Not authorized for image %(image_id)s.'
-
-
exception
ImageNotFound
(message=None, **kwargs) Bases:
cinder.exception.NotFound
-
message
= u'Image %(image_id)s could not be found.'
-
-
exception
ImageUnacceptable
(message=None, **kwargs) Bases:
cinder.exception.Invalid
-
message
= u'Image %(image_id)s is unacceptable: %(reason)s'
-
-
exception
InfortrendCliException
(message=None, **kwargs) Bases:
cinder.exception.VolumeDriverException
-
message
= u'Infortrend CLI exception: %(err)s Param: %(param)s (Return Code: %(rc)s) (Output: %(out)s)'
-
-
exception
Invalid
(message=None, **kwargs) Bases:
cinder.exception.CinderException
-
code
= 400
-
message
= u'Unacceptable parameters.'
-
-
exception
Invalid3PARDomain
(message=None, **kwargs) Bases:
cinder.exception.VolumeDriverException
-
message
= u'Invalid 3PAR Domain: %(err)s'
-
-
exception
InvalidAPIVersionString
(message=None, **kwargs) Bases:
cinder.exception.Invalid
-
message
= u'API Version String %(version)s is of invalid format. Must be of format MajorNum.MinorNum.'
-
-
exception
InvalidAttachment
(message=None, **kwargs) Bases:
cinder.exception.Invalid
-
message
= u'Invalid attachment: %(reason)s'
-
-
exception
InvalidAuthKey
(message=None, **kwargs) Bases:
cinder.exception.Invalid
-
message
= u'Invalid auth key: %(reason)s'
-
-
exception
InvalidBackup
(message=None, **kwargs) Bases:
cinder.exception.Invalid
-
message
= u'Invalid backup: %(reason)s'
-
-
exception
InvalidCgSnapshot
(message=None, **kwargs) Bases:
cinder.exception.Invalid
-
message
= u'Invalid CgSnapshot: %(reason)s'
-
-
exception
InvalidConfigurationValue
(message=None, **kwargs) Bases:
cinder.exception.Invalid
-
message
= u'Value "%(value)s" is not valid for configuration option "%(option)s"'
-
-
exception
InvalidConnectorException
(message=None, **kwargs) Bases:
cinder.exception.VolumeDriverException
-
message
= u"Connector doesn't have required information: %(missing)s"
-
-
exception
InvalidConsistencyGroup
(message=None, **kwargs) Bases:
cinder.exception.Invalid
-
message
= u'Invalid ConsistencyGroup: %(reason)s'
-
-
exception
InvalidContentType
(message=None, **kwargs) Bases:
cinder.exception.Invalid
-
message
= u'Invalid content type %(content_type)s.'
-
-
exception
InvalidGlobalAPIVersion
(message=None, **kwargs) Bases:
cinder.exception.Invalid
-
message
= u'Version %(req_ver)s is not supported by the API. Minimum is %(min_ver)s and maximum is %(max_ver)s.'
-
-
exception
InvalidGroup
(message=None, **kwargs) Bases:
cinder.exception.Invalid
-
message
= u'Invalid Group: %(reason)s'
-
-
exception
InvalidGroupSnapshot
(message=None, **kwargs) Bases:
cinder.exception.Invalid
-
message
= u'Invalid GroupSnapshot: %(reason)s'
-
-
exception
InvalidGroupSnapshotStatus
(message=None, **kwargs) Bases:
cinder.exception.Invalid
-
message
= u'Invalid GroupSnapshot Status: %(reason)s'
-
-
exception
InvalidGroupStatus
(message=None, **kwargs) Bases:
cinder.exception.Invalid
-
message
= u'Invalid Group Status: %(reason)s'
-
-
exception
InvalidGroupType
(message=None, **kwargs) Bases:
cinder.exception.Invalid
-
message
= u'Invalid group type: %(reason)s'
-
-
exception
InvalidHost
(message=None, **kwargs) Bases:
cinder.exception.Invalid
-
message
= u'Invalid host: %(reason)s'
-
-
exception
InvalidImageRef
(message=None, **kwargs) Bases:
cinder.exception.Invalid
-
message
= u'Invalid image href %(image_href)s.'
-
-
exception
InvalidInput
(message=None, **kwargs) Bases:
cinder.exception.Invalid
-
message
= u'Invalid input received: %(reason)s'
-
-
exception
InvalidMetadataType
(message=None, **kwargs) Bases:
cinder.exception.Invalid
-
message
= u'The type of metadata: %(metadata_type)s for volume/snapshot %(id)s is invalid.'
-
-
exception
InvalidNestedQuotaSetup
(message=None, **kwargs) Bases:
cinder.exception.CinderException
-
message
= u'Project quotas are not properly setup for nested quotas: %(reason)s.'
-
-
exception
InvalidParameterValue
(message=None, **kwargs) Bases:
cinder.exception.Invalid
-
message
= '%(err)s'
-
-
exception
InvalidQoSSpecs
(message=None, **kwargs) Bases:
cinder.exception.Invalid
-
message
= u'Invalid qos specs: %(reason)s'
-
-
exception
InvalidQuotaValue
(message=None, **kwargs) Bases:
cinder.exception.Invalid
-
message
= u'Change would make usage less than 0 for the following resources: %(unders)s'
-
-
exception
InvalidReplicationTarget
(message=None, **kwargs) Bases:
cinder.exception.Invalid
-
message
= u'Invalid Replication Target: %(reason)s'
-
-
exception
InvalidReservationExpiration
(message=None, **kwargs) Bases:
cinder.exception.Invalid
-
message
= u'Invalid reservation expiration %(expire)s.'
-
-
exception
InvalidResults
(message=None, **kwargs) Bases:
cinder.exception.Invalid
-
message
= u'The results are invalid.'
-
-
exception
InvalidSnapshot
(message=None, **kwargs) Bases:
cinder.exception.Invalid
-
message
= u'Invalid snapshot: %(reason)s'
-
-
exception
InvalidUUID
(message=None, **kwargs) Bases:
cinder.exception.Invalid
-
message
= u'Expected a uuid but received %(uuid)s.'
-
-
exception
InvalidVolume
(message=None, **kwargs) Bases:
cinder.exception.Invalid
-
message
= u'Invalid volume: %(reason)s'
-
-
exception
InvalidVolumeAttachMode
(message=None, **kwargs) Bases:
cinder.exception.Invalid
-
message
= u"Invalid attaching mode '%(mode)s' for volume %(volume_id)s."
-
-
exception
InvalidVolumeMetadata
(message=None, **kwargs) Bases:
cinder.exception.Invalid
-
message
= u'Invalid metadata: %(reason)s'
-
-
exception
InvalidVolumeMetadataSize
(message=None, **kwargs) Bases:
cinder.exception.Invalid
-
message
= u'Invalid metadata size: %(reason)s'
-
-
exception
InvalidVolumeType
(message=None, **kwargs) Bases:
cinder.exception.Invalid
-
message
= u'Invalid volume type: %(reason)s'
-
-
exception
KaminarioCinderDriverException
(message=None, **kwargs) Bases:
cinder.exception.VolumeDriverException
-
message
= u'KaminarioCinderDriver failure: %(reason)s'
-
-
exception
KaminarioRetryableException
(message=None, **kwargs) Bases:
cinder.exception.VolumeDriverException
-
message
= u'Kaminario retryable exception: %(reason)s'
-
-
exception
KeyManagerError
(message=None, **kwargs) Bases:
cinder.exception.CinderException
-
message
= u'key manager error: %(reason)s'
-
-
exception
LockCreationFailed
(message=None, **kwargs) Bases:
cinder.exception.CinderException
-
message
= u'Unable to create lock. Coordination backend not started.'
-
-
exception
LockingFailed
(message=None, **kwargs) Bases:
cinder.exception.CinderException
-
message
= u'Lock acquisition failed.'
-
-
exception
MalformedRequestBody
(message=None, **kwargs) Bases:
cinder.exception.CinderException
-
message
= u'Malformed message body: %(reason)s'
-
-
exception
MalformedResponse
(message=None, **kwargs) Bases:
cinder.exception.VolumeDriverException
-
message
= u'Malformed response to command %(cmd)s: %(reason)s'
-
-
exception
ManageExistingAlreadyManaged
(message=None, **kwargs) Bases:
cinder.exception.CinderException
-
message
= u'Unable to manage existing volume. Volume %(volume_ref)s already managed.'
-
-
exception
ManageExistingInvalidReference
(message=None, **kwargs) Bases:
cinder.exception.CinderException
-
message
= u'Manage existing volume failed due to invalid backend reference %(existing_ref)s: %(reason)s'
-
-
exception
ManageExistingVolumeTypeMismatch
(message=None, **kwargs) Bases:
cinder.exception.CinderException
-
message
= u'Manage existing volume failed due to volume type mismatch: %(reason)s'
-
-
exception
MessageNotFound
(message=None, **kwargs) Bases:
cinder.exception.NotFound
-
message
= u'Message %(message_id)s could not be found.'
-
-
exception
MetadataAbsent
(message=None, **kwargs) Bases:
cinder.exception.CinderException
-
message
= u'There is no metadata in DB object.'
-
-
exception
MetadataCopyFailure
(message=None, **kwargs) Bases:
cinder.exception.Invalid
-
message
= u'Failed to copy metadata to volume: %(reason)s'
-
-
exception
MetadataCreateFailure
(message=None, **kwargs) Bases:
cinder.exception.Invalid
-
message
= u'Failed to create metadata for volume: %(reason)s'
-
-
exception
MetadataUpdateFailure
(message=None, **kwargs) Bases:
cinder.exception.Invalid
-
message
= u'Failed to update metadata for volume: %(reason)s'
-
-
exception
MissingRequired
(message=None, **kwargs) Bases:
cinder.exception.Invalid
-
message
= u"Missing required element '%(element)s' in request body."
-
-
exception
NetAppDriverException
(message=None, **kwargs) Bases:
cinder.exception.VolumeDriverException
-
message
= u'NetApp Cinder Driver exception.'
-
-
exception
NexentaException
(message=None, **kwargs) Bases:
cinder.exception.VolumeDriverException
-
message
= '%(message)s'
-
-
exception
NfsException
(message=None, **kwargs) Bases:
cinder.exception.RemoteFSException
-
message
= u'Unknown NFS exception'
-
-
exception
NfsNoSharesMounted
(message=None, **kwargs) Bases:
cinder.exception.RemoteFSNoSharesMounted
-
message
= u'No mounted NFS shares found'
-
-
exception
NfsNoSuitableShareFound
(message=None, **kwargs) Bases:
cinder.exception.RemoteFSNoSuitableShareFound
-
message
= u'There is no share which can host %(volume_size)sG'
-
-
exception
NoMoreTargets
(message=None, **kwargs) Bases:
cinder.exception.CinderException
No more available targets.
-
exception
NoValidBackend
(message=None, **kwargs) Bases:
cinder.exception.CinderException
-
message
= u'No valid backend was found. %(reason)s'
-
-
exception
NotAuthorized
(message=None, **kwargs) Bases:
cinder.exception.CinderException
-
code
= 403
-
message
= u'Not authorized.'
-
-
exception
NotFound
(message=None, **kwargs) Bases:
cinder.exception.CinderException
-
code
= 404
-
message
= u'Resource could not be found.'
-
safe
= True
-
-
exception
NotSupportedOperation
(message=None, **kwargs) Bases:
cinder.exception.Invalid
-
code
= 405
-
message
= u'Operation not supported: %(operation)s.'
-
-
exception
OverQuota
(message=None, **kwargs) Bases:
cinder.exception.CinderException
-
message
= u'Quota exceeded for resources: %(overs)s'
-
-
exception
ParameterNotFound
(message=None, **kwargs) Bases:
cinder.exception.NotFound
-
message
= u'Could not find parameter %(param)s'
-
-
exception
PolicyNotAuthorized
(message=None, **kwargs) Bases:
cinder.exception.NotAuthorized
-
message
= u"Policy doesn't allow %(action)s to be performed."
-
-
exception
ProgrammingError
(message=None, **kwargs) Bases:
cinder.exception.CinderException
-
message
= u'Programming error in Cinder: %(reason)s'
-
-
exception
ProjectQuotaNotFound
(message=None, **kwargs) Bases:
cinder.exception.QuotaNotFound
-
message
= u'Quota for project %(project_id)s could not be found.'
-
-
exception
PureDriverException
(message=None, **kwargs) Bases:
cinder.exception.VolumeDriverException
-
message
= u'Pure Storage Cinder driver failure: %(reason)s'
-
-
exception
PureRetryableException
(message=None, **kwargs) Bases:
cinder.exception.VolumeBackendAPIException
-
message
= u'Retryable Pure Storage Exception encountered'
-
-
exception
QoSSpecsAssociateFailed
(message=None, **kwargs) Bases:
cinder.exception.CinderException
-
message
= u'Failed to associate qos_specs: %(specs_id)s with type %(type_id)s.'
-
-
exception
QoSSpecsCreateFailed
(message=None, **kwargs) Bases:
cinder.exception.CinderException
-
message
= u'Failed to create qos_specs: %(name)s with specs %(qos_specs)s.'
-
-
exception
QoSSpecsDisassociateFailed
(message=None, **kwargs) Bases:
cinder.exception.CinderException
-
message
= u'Failed to disassociate qos_specs: %(specs_id)s with type %(type_id)s.'
-
-
exception
QoSSpecsExists
(message=None, **kwargs) Bases:
cinder.exception.Duplicate
-
message
= u'QoS Specs %(specs_id)s already exists.'
-
-
exception
QoSSpecsInUse
(message=None, **kwargs) Bases:
cinder.exception.CinderException
-
message
= u'QoS Specs %(specs_id)s is still associated with entities.'
-
-
exception
QoSSpecsKeyNotFound
(message=None, **kwargs) Bases:
cinder.exception.NotFound
-
message
= u'QoS spec %(specs_id)s has no spec with key %(specs_key)s.'
-
-
exception
QoSSpecsNotFound
(message=None, **kwargs) Bases:
cinder.exception.NotFound
-
message
= u'No such QoS spec %(specs_id)s.'
-
-
exception
QoSSpecsUpdateFailed
(message=None, **kwargs) Bases:
cinder.exception.CinderException
-
message
= u'Failed to update qos_specs: %(specs_id)s with specs %(qos_specs)s.'
-
-
exception
QuotaClassNotFound
(message=None, **kwargs) Bases:
cinder.exception.QuotaNotFound
-
message
= u'Quota class %(class_name)s could not be found.'
-
-
exception
QuotaError
(message=None, **kwargs) Bases:
cinder.exception.CinderException
-
code
= 413
-
headers
= {'Retry-After': '0'}
-
message
= u'Quota exceeded: code=%(code)s'
-
safe
= True
-
-
exception
QuotaNotFound
(message=None, **kwargs) Bases:
cinder.exception.NotFound
-
message
= u'Quota could not be found'
-
-
exception
QuotaResourceUnknown
(message=None, **kwargs) Bases:
cinder.exception.QuotaNotFound
-
message
= u'Unknown quota resources %(unknown)s.'
-
-
exception
QuotaUsageNotFound
(message=None, **kwargs) Bases:
cinder.exception.QuotaNotFound
-
message
= u'Quota usage for project %(project_id)s could not be found.'
-
-
exception
RPCTimeout
(message=None, **kwargs) Bases:
cinder.exception.CinderException
-
code
= 502
-
message
= u'Timeout while requesting capabilities from backend %(service)s.'
-
-
exception
RdxAPICommandException
(message=None, **kwargs) Bases:
cinder.exception.VolumeDriverException
-
message
= u'Reduxio API Command Exception'
-
-
exception
RdxAPIConnectionException
(message=None, **kwargs) Bases:
cinder.exception.VolumeDriverException
-
message
= u'Reduxio API Connection Exception'
-
-
exception
RemoteFSConcurrentRequest
(message=None, **kwargs) Bases:
cinder.exception.RemoteFSException
-
message
= u'A concurrent, possibly contradictory, request has been made.'
-
-
exception
RemoteFSException
(message=None, **kwargs) Bases:
cinder.exception.VolumeDriverException
-
message
= u'Unknown RemoteFS exception'
-
-
exception
RemoteFSNoSharesMounted
(message=None, **kwargs) Bases:
cinder.exception.RemoteFSException
-
message
= u'No mounted shares found'
-
-
exception
RemoteFSNoSuitableShareFound
(message=None, **kwargs) Bases:
cinder.exception.RemoteFSException
-
message
= u'There is no share which can host %(volume_size)sG'
-
-
exception
RemoveExportException
(message=None, **kwargs) Bases:
cinder.exception.VolumeDriverException
-
message
= u'Failed to remove export for volume %(volume)s: %(reason)s'
-
-
exception
ReplicationError
(message=None, **kwargs) Bases:
cinder.exception.CinderException
-
message
= u'Volume %(volume_id)s replication error: %(reason)s'
-
-
exception
ReplicationNotFound
(message=None, **kwargs) Bases:
cinder.exception.NotFound
-
message
= u'Volume replication for %(volume_id)s could not be found.'
-
-
exception
ReservationNotFound
(message=None, **kwargs) Bases:
cinder.exception.QuotaNotFound
-
message
= u'Quota reservation %(uuid)s could not be found.'
-
-
exception
SSHInjectionThreat
(message=None, **kwargs) Bases:
cinder.exception.CinderException
-
message
= u'SSH command injection detected: %(command)s'
-
-
exception
SchedulerHostFilterNotFound
(message=None, **kwargs) Bases:
cinder.exception.NotFound
-
message
= u'Scheduler Host Filter %(filter_name)s could not be found.'
-
-
exception
SchedulerHostWeigherNotFound
(message=None, **kwargs) Bases:
cinder.exception.NotFound
-
message
= u'Scheduler Host Weigher %(weigher_name)s could not be found.'
-
-
exception
ServerNotFound
(message=None, **kwargs) Bases:
cinder.exception.NotFound
-
message
= u'Instance %(uuid)s could not be found.'
-
-
exception
ServiceNotFound
(message=None, **kwargs) Bases:
cinder.exception.NotFound
-
exception
ServiceTooOld
(message=None, **kwargs) Bases:
cinder.exception.Invalid
-
message
= u'Service is too old to fulfil this request.'
-
-
exception
ServiceUnavailable
(message=None, **kwargs) Bases:
cinder.exception.Invalid
-
message
= u'Service is unavailable at this time.'
-
-
exception
SheepdogCmdError
(message=None, **kwargs) Bases:
cinder.exception.SheepdogError
-
message
= u'(Command: %(cmd)s) (Return Code: %(exit_code)s) (Stdout: %(stdout)s) (Stderr: %(stderr)s)'
-
-
exception
SheepdogError
(message=None, **kwargs) Bases:
cinder.exception.VolumeBackendAPIException
-
message
= u'An error has occurred in SheepdogDriver. (Reason: %(reason)s)'
-
-
exception
SmbfsException
(message=None, **kwargs) Bases:
cinder.exception.RemoteFSException
-
message
= u'Unknown SMBFS exception.'
-
-
exception
SmbfsNoSharesMounted
(message=None, **kwargs) Bases:
cinder.exception.RemoteFSNoSharesMounted
-
message
= u'No mounted SMBFS shares found.'
-
-
exception
SmbfsNoSuitableShareFound
(message=None, **kwargs) Bases:
cinder.exception.RemoteFSNoSuitableShareFound
-
message
= u'There is no share which can host %(volume_size)sG.'
-
-
exception
SnapshotIsBusy
(message=None, **kwargs) Bases:
cinder.exception.CinderException
-
message
= u'deleting snapshot %(snapshot_name)s that has dependent volumes'
-
-
exception
SnapshotLimitExceeded
(message=None, **kwargs) Bases:
cinder.exception.QuotaError
-
message
= u'Maximum number of snapshots allowed (%(allowed)d) exceeded'
-
-
exception
SnapshotMetadataNotFound
(message=None, **kwargs) Bases:
cinder.exception.NotFound
-
message
= u'Snapshot %(snapshot_id)s has no metadata with key %(metadata_key)s.'
-
-
exception
SnapshotNotFound
(message=None, **kwargs) Bases:
cinder.exception.NotFound
-
message
= u'Snapshot %(snapshot_id)s could not be found.'
-
-
exception
SnapshotUnavailable
(message=None, **kwargs) Bases:
cinder.exception.VolumeBackendAPIException
-
message
= u'The snapshot is unavailable: %(data)s'
-
-
exception
SolidFireAPIDataException
(message=None, **kwargs) Bases:
cinder.exception.SolidFireAPIException
-
message
= u'Error in SolidFire API response: data=%(data)s'
-
-
exception
SolidFireAPIException
(message=None, **kwargs) Bases:
cinder.exception.VolumeBackendAPIException
-
message
= u'Bad response from SolidFire API'
-
-
exception
SolidFireAccountNotFound
(message=None, **kwargs) Bases:
cinder.exception.SolidFireDriverException
-
message
= u'Unable to locate account %(account_name)s on Solidfire device'
-
-
exception
SolidFireDriverException
(message=None, **kwargs) Bases:
cinder.exception.VolumeDriverException
-
message
= u'SolidFire Cinder Driver exception'
-
-
exception
SolidFireRetryableException
(message=None, **kwargs) Bases:
cinder.exception.VolumeBackendAPIException
-
message
= u'Retryable SolidFire Exception encountered'
-
-
exception
SwiftConnectionFailed
(message=None, **kwargs) Bases:
cinder.exception.BackupDriverException
-
message
= u'Connection to swift failed: %(reason)s'
-
-
exception
SynoAPIHTTPError
(message=None, **kwargs) Bases:
cinder.exception.VolumeDriverException
-
message
= u'HTTP exit code: [%(code)s]'
-
-
exception
SynoAuthError
(message=None, **kwargs) Bases:
cinder.exception.VolumeDriverException
-
message
= u'Synology driver authentication failed: %(reason)s.'
-
-
exception
SynoLUNNotExist
(message=None, **kwargs) Bases:
cinder.exception.VolumeDriverException
-
message
= u'LUN not found by UUID: %(uuid)s.'
-
-
exception
TegileAPIException
(message=None, **kwargs) Bases:
cinder.exception.VolumeBackendAPIException
-
message
= u'Unexpected response from Tegile IntelliFlash API'
-
-
exception
TransferNotFound
(message=None, **kwargs) Bases:
cinder.exception.NotFound
-
message
= u'Transfer %(transfer_id)s could not be found.'
-
-
exception
UnableToFailOver
(message=None, **kwargs) Bases:
cinder.exception.CinderException
-
message
= u'Unable to failover to replication target: %(reason)s).'
-
-
exception
UnavailableDuringUpgrade
(message=None, **kwargs) Bases:
cinder.exception.Invalid
-
message
= u'Cannot perform %(action)s during system upgrade.'
-
-
exception
UnexpectedOverQuota
(message=None, **kwargs) Bases:
cinder.exception.QuotaError
-
message
= u'Unexpected over quota on %(name)s.'
-
-
exception
UnknownCmd
(message=None, **kwargs) Bases:
cinder.exception.VolumeDriverException
-
message
= u'Unknown or unsupported command %(cmd)s'
-
-
exception
VSPBusy
(message=None, **kwargs) Bases:
cinder.exception.VSPError
-
message
= u'Device or resource is busy.'
-
-
exception
VSPError
(message=None, **kwargs) Bases:
cinder.exception.VolumeDriverException
-
message
= u'VSP error occurred. %(message)s'
-
-
exception
VSPNotSupported
(message=None, **kwargs) Bases:
cinder.exception.VSPError
-
message
= u'The function on the storage is not supported.'
-
-
exception
VersionNotFoundForAPIMethod
(message=None, **kwargs) Bases:
cinder.exception.Invalid
-
message
= u'API version %(version)s is not supported on this method.'
-
-
exception
ViolinBackendErr
(message=None, **kwargs) Bases:
cinder.exception.VolumeBackendAPIException
-
message
= u'Backend reports: %(message)s'
-
-
exception
ViolinBackendErrExists
(message=None, **kwargs) Bases:
cinder.exception.VolumeBackendAPIException
-
message
= u'Backend reports: item already exists'
-
-
exception
ViolinBackendErrNotFound
(message=None, **kwargs) Bases:
cinder.exception.NotFound
-
message
= u'Backend reports: item not found'
-
-
exception
ViolinInvalidBackendConfig
(message=None, **kwargs) Bases:
cinder.exception.VolumeDriverException
-
message
= u'Volume backend config is invalid: %(reason)s'
-
-
exception
ViolinRequestRetryTimeout
(message=None, **kwargs) Bases:
cinder.exception.VolumeDriverException
-
message
= u'Backend service retry timeout hit: %(timeout)s sec'
-
-
exception
ViolinResourceNotFound
(message=None, **kwargs) Bases:
cinder.exception.NotFound
-
message
= u'Backend reports: %(message)s'
-
-
exception
VolumeAdminMetadataNotFound
(message=None, **kwargs) Bases:
cinder.exception.NotFound
-
message
= u'Volume %(volume_id)s has no administration metadata with key %(metadata_key)s.'
-
-
exception
VolumeAttached
(message=None, **kwargs) Bases:
cinder.exception.Invalid
-
message
= u'Volume %(volume_id)s is still attached, detach volume first.'
-
-
exception
VolumeAttachmentNotFound
(message=None, **kwargs) Bases:
cinder.exception.NotFound
-
message
= u'Volume attachment could not be found with filter: %(filter)s .'
-
-
exception
VolumeBackendAPIException
(message=None, **kwargs) Bases:
cinder.exception.CinderException
-
message
= u'Bad or unexpected response from the storage volume backend API: %(data)s'
-
-
exception
VolumeBackupSizeExceedsAvailableQuota
(message=None, **kwargs) Bases:
cinder.exception.QuotaError
-
message
= u'Requested backup exceeds allowed Backup gigabytes quota. Requested %(requested)sG, quota is %(quota)sG and %(consumed)sG has been consumed.'
-
-
exception
VolumeDeviceNotFound
(message=None, **kwargs) Bases:
cinder.exception.CinderException
-
message
= u'Volume device not found at %(device)s.'
-
-
exception
VolumeDriverException
(message=None, **kwargs) Bases:
cinder.exception.CinderException
-
message
= u'Volume driver reported an error: %(message)s'
-
-
exception
VolumeGroupCreationFailed
(message=None, **kwargs) Bases:
cinder.exception.CinderException
-
message
= u'Failed to create Volume Group: %(vg_name)s'
-
-
exception
VolumeGroupNotFound
(message=None, **kwargs) Bases:
cinder.exception.CinderException
-
message
= u'Unable to find Volume Group: %(vg_name)s'
-
-
exception
VolumeIsBusy
(message=None, **kwargs) Bases:
cinder.exception.CinderException
-
message
= u'deleting volume %(volume_name)s that has snapshot'
-
-
exception
VolumeLimitExceeded
(message=None, **kwargs) Bases:
cinder.exception.QuotaError
-
message
= u"Maximum number of volumes allowed (%(allowed)d) exceeded for quota '%(name)s'."
-
-
exception
VolumeMetadataBackupExists
(message=None, **kwargs) Bases:
cinder.exception.BackupDriverException
-
message
= u'Metadata backup already exists for this volume'
-
-
exception
VolumeMetadataNotFound
(message=None, **kwargs) Bases:
cinder.exception.NotFound
-
message
= u'Volume %(volume_id)s has no metadata with key %(metadata_key)s.'
-
-
exception
VolumeMigrationFailed
(message=None, **kwargs) Bases:
cinder.exception.CinderException
-
message
= u'Volume migration failed: %(reason)s'
-
-
exception
VolumeNotDeactivated
(message=None, **kwargs) Bases:
cinder.exception.CinderException
-
message
= u'Volume %(name)s was not deactivated in time.'
-
-
exception
VolumeNotFound
(message=None, **kwargs) Bases:
cinder.exception.NotFound
-
message
= u'Volume %(volume_id)s could not be found.'
-
-
exception
VolumeSizeExceedsAvailableQuota
(message=None, **kwargs) Bases:
cinder.exception.QuotaError
-
message
= u'Requested volume or snapshot exceeds allowed %(name)s quota. Requested %(requested)sG, quota is %(quota)sG and %(consumed)sG has been consumed.'
-
-
exception
VolumeSizeExceedsLimit
(message=None, **kwargs) Bases:
cinder.exception.QuotaError
-
message
= u'Requested volume size %(size)dG is larger than maximum allowed limit %(limit)dG.'
-
-
exception
VolumeTypeAccessExists
(message=None, **kwargs) Bases:
cinder.exception.Duplicate
-
message
= u'Volume type access for %(volume_type_id)s / %(project_id)s combination already exists.'
-
-
exception
VolumeTypeAccessNotFound
(message=None, **kwargs) Bases:
cinder.exception.NotFound
-
message
= u'Volume type access not found for %(volume_type_id)s / %(project_id)s combination.'
-
-
exception
VolumeTypeCreateFailed
(message=None, **kwargs) Bases:
cinder.exception.CinderException
-
message
= u'Cannot create volume_type with name %(name)s and specs %(extra_specs)s'
-
-
exception
VolumeTypeEncryptionExists
(message=None, **kwargs) Bases:
cinder.exception.Invalid
-
message
= u'Volume type encryption for type %(type_id)s already exists.'
-
-
exception
VolumeTypeEncryptionNotFound
(message=None, **kwargs) Bases:
cinder.exception.NotFound
-
message
= u'Volume type encryption for type %(type_id)s does not exist.'
-
-
exception
VolumeTypeExists
(message=None, **kwargs) Bases:
cinder.exception.Duplicate
-
message
= u'Volume Type %(id)s already exists.'
-
-
exception
VolumeTypeExtraSpecsNotFound
(message=None, **kwargs) Bases:
cinder.exception.NotFound
-
message
= u'Volume Type %(volume_type_id)s has no extra specs with key %(extra_specs_key)s.'
-
-
exception
VolumeTypeInUse
(message=None, **kwargs) Bases:
cinder.exception.CinderException
-
message
= u'Volume Type %(volume_type_id)s deletion is not allowed with volumes present with the type.'
-
-
exception
VolumeTypeNotFound
(message=None, **kwargs) Bases:
cinder.exception.NotFound
-
message
= u'Volume type %(volume_type_id)s could not be found.'
-
-
exception
VolumeTypeNotFoundByName
(message=None, **kwargs) Bases:
cinder.exception.VolumeTypeNotFound
-
message
= u'Volume type with name %(volume_type_name)s could not be found.'
-
-
exception
VolumeTypeUpdateFailed
(message=None, **kwargs) Bases:
cinder.exception.CinderException
-
message
= u'Cannot update volume_type %(id)s'
-
-
exception
VzStorageException
(message=None, **kwargs) Bases:
cinder.exception.RemoteFSException
-
message
= u'Unknown Virtuozzo Storage exception'
-
-
exception
VzStorageNoSharesMounted
(message=None, **kwargs) Bases:
cinder.exception.RemoteFSNoSharesMounted
-
message
= u'No mounted Virtuozzo Storage shares found'
-
-
exception
VzStorageNoSuitableShareFound
(message=None, **kwargs) Bases:
cinder.exception.RemoteFSNoSuitableShareFound
-
message
= u'There is no share which can host %(volume_size)sG'
-
-
exception
WebDAVClientError
(message=None, **kwargs) Bases:
cinder.exception.VolumeDriverException
-
message
= u'The WebDAV request failed. Reason: %(msg)s, Return code/reason: %(code)s, Source Volume: %(src)s, Destination Volume: %(dst)s, Method: %(method)s.'
-
-
exception
WorkerExists
(message=None, **kwargs) Bases:
cinder.exception.Duplicate
-
message
= u'Worker for %(type)s %(id)s already exists.'
-
-
exception
WorkerNotFound
(message=None, **kwargs) Bases:
cinder.exception.NotFound
-
message
= u'Worker with %s could not be found.'
-
-
exception
XIODriverException
(message=None, **kwargs) Bases:
cinder.exception.VolumeDriverException
-
message
= u'X-IO Volume Driver exception!'
-
-
exception
XtremIOAlreadyMappedError
(message=None, **kwargs) Bases:
cinder.exception.VolumeDriverException
-
message
= u'Volume to Initiator Group mapping already exists'
-
-
exception
XtremIOArrayBusy
(message=None, **kwargs) Bases:
cinder.exception.VolumeDriverException
-
message
= u'System is busy, retry operation.'
-
-
exception
XtremIOSnapshotsLimitExceeded
(message=None, **kwargs) Bases:
cinder.exception.VolumeDriverException
-
message
= u'Exceeded the limit of snapshots per volume'
-
-
exception
ZadaraAttachmentsNotFound
(message=None, **kwargs) Bases:
cinder.exception.NotFound
-
message
= u'Failed to retrieve attachments for volume %(name)s'
-
-
exception
ZadaraInvalidAttachmentInfo
(message=None, **kwargs) Bases:
cinder.exception.Invalid
-
message
= u'Invalid attachment info for volume %(name)s: %(reason)s'
-
-
exception
ZadaraServerCreateFailure
(message=None, **kwargs) Bases:
cinder.exception.VolumeDriverException
-
message
= u'Unable to create server object for initiator %(name)s'
-
-
exception
ZadaraServerNotFound
(message=None, **kwargs) Bases:
cinder.exception.NotFound
-
message
= u'Unable to find server object for initiator %(name)s'
-
-
exception
ZadaraVPSANoActiveController
(message=None, **kwargs) Bases:
cinder.exception.VolumeDriverException
-
message
= u'Unable to find any active VPSA controller'
-
-
exception
ZadaraVolumeNotFound
(message=None, **kwargs) Bases:
cinder.exception.VolumeDriverException
-
message
= '%(reason)s'
-
-
exception
ZoneManagerException
(message=None, **kwargs) Bases:
cinder.exception.CinderException
-
message
= u'Fibre Channel connection control failure: %(reason)s'
-
-
exception
ZoneManagerNotInitialized
(message=None, **kwargs) Bases:
cinder.exception.CinderException
-
message
= u'Fibre Channel Zone Manager not initialized'
-
The cinder.common.config
Module¶
Command-line flag library.
Emulates gflags by wrapping cfg.ConfigOpts.
The idea is to move fully to cfg eventually, and this wrapper is a stepping stone.
-
set_middleware_defaults
() Update default configuration options for oslo.middleware.
The cinder.rpc
Module¶
-
init
(conf)
-
cleanup
()
-
set_defaults
(control_exchange)
-
add_extra_exmods
(*args)
-
clear_extra_exmods
()
-
get_allowed_exmods
()
-
class
RequestContextSerializer
(base) Bases:
oslo_messaging.serializer.Serializer
-
deserialize_context
(context)
-
deserialize_entity
(context, entity)
-
serialize_context
(context)
-
serialize_entity
(context, entity)
-
-
get_client
(target, version_cap=None, serializer=None)
-
get_server
(target, endpoints, serializer=None)
-
get_notifier
(*args, **kwargs)
The cinder.test
Module¶
Base classes for our unit tests.
Allows overriding of CONF for use of fakes, and some black magic for inline callbacks.
-
class
Database
(db_api, db_migrate, sql_connection) Bases:
fixtures.fixture.Fixture
-
setUp
()
-
-
class
ModelsObjectComparatorMixin
Bases:
object
-
class
RPCAPITestCase
(*args, **kwargs) Bases:
cinder.test.TestCase
,cinder.test.ModelsObjectComparatorMixin
-
setUp
()
-
-
class
TestCase
(*args, **kwargs) Bases:
testtools.testcase.TestCase
Test case base class for all unit tests.
-
MOCK_WORKER
= True
-
POLICY_PATH
= 'cinder/tests/unit/policy.json'
-
assert_notify_called
(mock_notify, calls)
-
flags
(**kw) Override CONF variables for a test.
-
mock_object
(obj, attr_name, *args, **kwargs) Use python mock to mock an object attribute
Mocks the specified objects attribute with the given value. Automatically performs ‘addCleanup’ for the mock.
-
override_config
(name, override, group=None) Cleanly override CONF variables.
-
patch
(path, *args, **kwargs) Use python mock to mock a path with automatic cleanup.
-
setUp
() Run before each test method to initialize test environment.
-
start_service
(name, host=None, **kwargs)
-
-
exception
TestingException
Bases:
exceptions.Exception
The cinder.utils
Module¶
Utilities and helper functions.
-
class
ComparableMixin
Bases:
object
-
DO_NOTHING
Class that literrally does nothing.
We inherit from str in case it’s called with json.dumps.
-
class
DoNothing
Bases:
str
Class that literrally does nothing.
We inherit from str in case it’s called with json.dumps.
-
class
TraceWrapperMetaclass
Bases:
type
Metaclass that wraps all methods of a class with trace_method.
This metaclass will cause every function inside of the class to be decorated with the trace_method decorator.
To use the metaclass you define a class like so: @six.add_metaclass(utils.TraceWrapperMetaclass) class MyClass(object):
-
class
TraceWrapperWithABCMetaclass
Bases:
abc.ABCMeta
,cinder.utils.TraceWrapperMetaclass
Metaclass that wraps all methods of a class with trace.
-
add_visible_admin_metadata
(volume) Add user-visible admin metadata to regular metadata.
Extracts the admin metadata keys that are to be made visible to non-administrators, and adds them to the regular metadata structure for the passed-in volume.
-
as_int
(obj, quiet=True)
-
brick_attach_volume_encryptor
(context, attach_info, encryption) Attach encryption layer.
-
brick_detach_volume_encryptor
(attach_info, encryption) Detach encryption layer.
-
brick_get_connector
(protocol, driver=None, use_multipath=False, device_scan_attempts=3, *args, **kwargs) Wrapper to get a brick connector object.
This automatically populates the required protocol as well as the root_helper needed to execute commands.
-
brick_get_connector_properties
(multipath=False, enforce_multipath=False) Wrapper to automatically set root_helper in brick calls.
Parameters: - multipath – A boolean indicating whether the connector can support multipath.
- enforce_multipath – If True, it raises exception when multipath=True is specified but multipathd is not running. If False, it falls back to multipath=False when multipathd is not running.
-
brick_get_encryptor
(connection_info, *args, **kwargs) Wrapper to get a brick encryptor object.
-
build_or_str
(elements, str_format=None) Builds a string of elements joined by ‘or’.
Will join strings with the ‘or’ word and if a str_format is provided it will be used to format the resulted joined string. If there are no elements an empty string will be returned.
Parameters: - elements (String or iterable of strings.) – Elements we want to join.
- str_format (String.) – String to use to format the response.
-
calculate_virtual_free_capacity
(total_capacity, free_capacity, provisioned_capacity, thin_provisioning_support, max_over_subscription_ratio, reserved_percentage, thin) Calculate the virtual free capacity based on thin provisioning support.
Parameters: - total_capacity – total_capacity_gb of a host_state or pool.
- free_capacity – free_capacity_gb of a host_state or pool.
- provisioned_capacity – provisioned_capacity_gb of a host_state or pool.
- thin_provisioning_support – thin_provisioning_support of a host_state or a pool.
- max_over_subscription_ratio – max_over_subscription_ratio of a host_state or a pool
- reserved_percentage – reserved_percentage of a host_state or a pool.
- thin – whether volume to be provisioned is thin
Returns: the calculated virtual free capacity.
-
check_exclusive_options
(**kwargs) Checks that only one of the provided options is actually not-none.
Iterates over all the kwargs passed in and checks that only one of said arguments is not-none, if more than one is not-none then an exception will be raised with the names of those arguments who were not-none.
-
check_metadata_properties
(metadata=None) Checks that the volume metadata properties are valid.
-
check_ssh_injection
(cmd_list)
-
check_string_length
(value, name, min_length=0, max_length=None, allow_all_spaces=True) Check the length of specified string.
Parameters: - value – the value of the string
- name – the name of the string
- min_length – the min_length of the string
- max_length – the max_length of the string
-
convert_str
(text) Convert to native string.
Convert bytes and Unicode strings to native strings:
- convert to bytes on Python 2: encode Unicode using encodeutils.safe_encode()
- convert to Unicode on Python 3: decode bytes from UTF-8
-
execute
(*cmd, **kwargs) Convenience wrapper around oslo’s execute() method.
-
get_blkdev_major_minor
(path, lookup_for_file=True) Get ‘major:minor’ number of block device.
Get the device’s ‘major:minor’ number of a block device to control I/O ratelimit of the specified path. If lookup_for_file is True and the path is a regular file, lookup a disk device which the file lies on and returns the result for the device.
-
get_bool_param
(param_string, params)
-
get_file_gid
(path) This primarily exists to make unit testing easier.
-
get_file_mode
(path) This primarily exists to make unit testing easier.
-
get_file_size
(path) Returns the file size.
-
get_root_helper
()
-
if_notifications_enabled
(f) Calls decorated method only if notifications are enabled.
-
is_blk_device
(dev)
-
is_none_string
(val) Check if a string represents a None value.
-
last_completed_audit_period
(unit=None) This method gives you the most recently completed audit period.
- arguments:
- units: string, one of ‘hour’, ‘day’, ‘month’, ‘year’
- Periods normally begin at the beginning (UTC) of the period unit (So a ‘day’ period begins at midnight UTC, a ‘month’ unit on the 1st, a ‘year’ on Jan, 1) unit string may be appended with an optional offset like so: 'day@18‘ This will begin the period at 18:00 UTC. 'month@15‘ starts a monthly period on the 15th, and year@3 begins a yearly one on March 1st.
- returns: 2 tuple of datetimes (begin, end)
- The begin timestamp of this audit period is the same as the end of the previous.
-
log_unsupported_driver_warning
(driver) Annoy the log about unsupported drivers.
-
make_dev_path
(dev, partition=None, base='/dev') Return a path to a particular device.
>>> make_dev_path('xvdc') /dev/xvdc
>>> make_dev_path('xvdc', 1) /dev/xvdc1
-
monkey_patch
() Patches decorators for all functions in a specified module.
If the CONF.monkey_patch set as True, this function patches a decorator for all functions in specified modules.
You can set decorators for each modules using CONF.monkey_patch_modules. The format is “Module path:Decorator function”. Example: ‘cinder.api.ec2.cloud:’ cinder.openstack.common.notifier.api.notify_decorator’
Parameters of the decorator is as follows. (See cinder.openstack.common.notifier.api.notify_decorator)
Parameters: - name – name of the function
- function – object of the function
-
notifications_enabled
(conf) Check if oslo notifications are enabled.
-
read_file_as_root
(file_path) Secure helper to read file as root.
-
remove_invalid_filter_options
(context, filters, allowed_search_options) Remove search options that are not valid for non-admin API/context.
-
require_driver_initialized
(driver) Verifies if driver is initialized
If the driver is not initialized, an exception will be raised.
Params driver: The driver instance. Raises: exception.DriverNotInitialized
-
resolve_hostname
(hostname) Resolves host name to IP address.
Resolves a host name (my.data.point.com) to an IP address (10.12.143.11). This routine also works if the data passed in hostname is already an IP. In this case, the same IP address will be returned.
Parameters: hostname – Host name to resolve. Returns: IP Address for Host name.
-
retry
(exceptions, interval=1, retries=3, backoff_rate=2, wait_random=False)
-
robust_file_write
(directory, filename, data) Robust file write.
Use “write to temp file and rename” model for writing the persistence file.
Parameters: - directory – Target directory to create a file.
- filename – File name to store specified data.
- data – String data.
-
sanitize_hostname
(hostname) Return a hostname which conforms to RFC-952 and RFC-1123 specs.
-
service_expired_time
(with_timezone=False)
-
setup_tracing
(trace_flags) Set global variables for each trace flag.
Sets variables TRACE_METHOD and TRACE_API, which represent whether to log method and api traces.
Parameters: trace_flags – a list of strings
-
tempdir
(*args, **kwds)
-
temporary_chown
(*args, **kwds) Temporarily chown a path.
Params owner_uid: UID of temporary owner (defaults to current user)
-
trace
(f) Trace calls to the decorated function.
This decorator should always be defined as the outermost decorator so it is defined last. This is important so it does not interfere with other decorators.
Using this decorator on a function will cause its execution to be logged at DEBUG level with arguments, return values, and exceptions.
Returns: a function decorator
-
trace_api
(f) Decorates a function if TRACE_API is true.
-
trace_method
(f) Decorates a function if TRACE_METHOD is true.
-
validate_dictionary_string_length
(specs) Check the length of each key and value of dictionary.
-
validate_integer
(value, name, min_value=None, max_value=None) Make sure that value is a valid integer, potentially within range.
Parameters: - value – the value of the integer
- name – the name of the integer
- min_length – the min_length of the integer
- max_length – the max_length of the integer
Returns: integer
-
walk_class_hierarchy
(clazz, encountered=None) Walk class hierarchy, yielding most derived classes first.
The cinder.wsgi
Module¶
Tests¶
The conf_fixture
Module¶
-
set_defaults
(conf)
The test_rpc
Module¶
-
class
FakeAPI
Bases:
cinder.rpc.RPCAPI
-
BINARY
= 'cinder-scheduler'
-
RPC_API_VERSION
= '1.5'
-
TOPIC
= 'cinder-scheduler-topic'
-
-
class
RPCAPITestCase
(*args, **kwargs) Bases:
cinder.test.TestCase
Tests RPCAPI mixin aggregating stuff related to RPC compatibility.
-
setUp
()
-
test_init
(*args, **keywargs)
-
test_init_cached_caps
(*args, **keywargs)
-
test_init_no_notifications_1___
() Test short-circuiting notifications with default and noop driver.
-
test_init_no_notifications_2___noop__
() Test short-circuiting notifications with default and noop driver.
-
test_init_no_notifications_3___noop____noop__
() Test short-circuiting notifications with default and noop driver.
-
test_init_none_caps
(*args, **keywargs) Test that with no service latest versions are selected.
-
test_init_notifications
(*args, **keywargs)
-