Libraries common throughout Cinder or just ones that haven’t been categorized very well yet.
cinder.context
Module¶RequestContext: context for requests that persist through all of cinder.
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.
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.
cinder.exception
Module¶Cinder base exception handling.
Includes decorator for re-raising Cinder-type exceptions.
SHOULD include dedicated exception logging.
APIException
(message=None, **kwargs)Bases: cinder.exception.CinderException
message
= u’Error while requesting %(service)s API.’APITimeout
(message=None, **kwargs)Bases: cinder.exception.APIException
message
= u’Timeout while requesting %(service)s API.’AdminRequired
(message=None, **kwargs)Bases: cinder.exception.NotAuthorized
message
= u’User does not have admin privileges’AttachmentSpecsNotFound
(message=None, **kwargs)Bases: cinder.exception.NotFound
message
= u’Attachment %(attachment_id)s has no key %(specs_key)s.’BackupDriverException
(message=None, **kwargs)Bases: cinder.exception.CinderException
message
= u’Backup driver reported an error: %(message)s’BackupFailedToGetVolumeBackend
(message=None, **kwargs)Bases: cinder.exception.NotFound
message
= u’Failed to identify volume backend.’BackupInvalidCephArgs
(message=None, **kwargs)Bases: cinder.exception.BackupDriverException
message
= u’Invalid Ceph args provided for backup rbd operation’BackupLimitExceeded
(message=None, **kwargs)Bases: cinder.exception.QuotaError
message
= u’Maximum number of backups allowed (%(allowed)d) exceeded’BackupMetadataNotFound
(message=None, **kwargs)Bases: cinder.exception.NotFound
message
= u’Backup %(backup_id)s has no metadata with key %(metadata_key)s.’BackupMetadataUnsupportedVersion
(message=None, **kwargs)Bases: cinder.exception.BackupDriverException
message
= u’Unsupported backup metadata version requested’BackupNotFound
(message=None, **kwargs)Bases: cinder.exception.NotFound
message
= u’Backup %(backup_id)s could not be found.’BackupOperationError
(message=None, **kwargs)Bases: cinder.exception.Invalid
message
= u’An error has occurred during backup operation’BackupRBDOperationFailed
(message=None, **kwargs)Bases: cinder.exception.BackupDriverException
message
= u’Backup RBD operation failed’BackupVerifyUnsupportedDriver
(message=None, **kwargs)Bases: cinder.exception.BackupDriverException
message
= u’Unsupported backup verify driver’BadHTTPResponseStatus
(message=None, **kwargs)Bases: cinder.exception.VolumeDriverException
message
= u’Bad HTTP response status %(status)s’BadResetResourceStatus
(message=None, **kwargs)Bases: cinder.exception.CinderException
message
= u’Bad reset resource status : %(message)s’BrocadeZoningCliException
(message=None, **kwargs)Bases: cinder.exception.CinderException
message
= u’Brocade Fibre Channel Zoning CLI error: %(reason)s’BrocadeZoningHttpException
(message=None, **kwargs)Bases: cinder.exception.CinderException
message
= u’Brocade Fibre Channel Zoning HTTP error: %(reason)s’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.”CgSnapshotNotFound
(message=None, **kwargs)Bases: cinder.exception.NotFound
message
= u’CgSnapshot %(cgsnapshot_id)s could not be found.’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
= 500headers
= {}message
= u’An unknown exception occurred.’safe
= FalseCiscoZoningCliException
(message=None, **kwargs)Bases: cinder.exception.CinderException
message
= u’Cisco Fibre Channel Zoning CLI error: %(reason)s’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.’ClusterExists
(message=None, **kwargs)Bases: cinder.exception.Duplicate
message
= u’Cluster %(name)s already exists.’ClusterHasHosts
(message=None, **kwargs)Bases: cinder.exception.Invalid
message
= u’Cluster %(id)s still has hosts.’ClusterNotFound
(message=None, **kwargs)Bases: cinder.exception.NotFound
message
= u’Cluster %(id)s could not be found.’CohoException
(message=None, **kwargs)Bases: cinder.exception.VolumeDriverException
message
= u’Coho Data Cinder driver failure: %(message)s’ConfigNotFound
(message=None, **kwargs)Bases: cinder.exception.NotFound
message
= u’Could not find config at %(path)s’ConsistencyGroupNotFound
(message=None, **kwargs)Bases: cinder.exception.NotFound
message
= u’ConsistencyGroup %(consistencygroup_id)s could not be found.’ConvertedException
(code=500, title=”, explanation=”)Bases: webob.exc.WSGIHTTPException
DateraAPIException
(message=None, **kwargs)Bases: cinder.exception.VolumeBackendAPIException
message
= u’Bad response from Datera API’DellDriverRetryableException
(message=None, **kwargs)Bases: cinder.exception.VolumeBackendAPIException
message
= u’Retryable Dell Exception encountered’DellDriverUnknownSpec
(message=None, **kwargs)Bases: cinder.exception.VolumeDriverException
message
= u’Dell driver failure: %(reason)s’DeviceUnavailable
(message=None, **kwargs)Bases: cinder.exception.Invalid
message
= u’The device in the path %(path)s is unavailable: %(reason)s’DotHillAuthenticationError
(message=None, **kwargs)Bases: cinder.exception.VolumeDriverException
message
= ‘%(message)s’DotHillConnectionError
(message=None, **kwargs)Bases: cinder.exception.VolumeDriverException
message
= ‘%(message)s’DotHillDriverNotSupported
(message=None, **kwargs)Bases: cinder.exception.VolumeDriverException
message
= u’The Dot Hill driver is no longer supported.’DotHillInvalidBackend
(message=None, **kwargs)Bases: cinder.exception.VolumeDriverException
message
= u”Backend doesn’t exist (%(backend)s)”DotHillNotEnoughSpace
(message=None, **kwargs)Bases: cinder.exception.VolumeDriverException
message
= u’Not enough space on backend (%(backend)s)’DotHillNotTargetPortal
(message=None, **kwargs)Bases: cinder.exception.VolumeDriverException
message
= u’No active iSCSI portals with supplied iSCSI IPs’DotHillRequestError
(message=None, **kwargs)Bases: cinder.exception.VolumeDriverException
message
= ‘%(message)s’DriverNotInitialized
(message=None, **kwargs)Bases: cinder.exception.CinderException
message
= u’Volume driver not ready.’Duplicate
(message=None, **kwargs)DuplicateSfVolumeNames
(message=None, **kwargs)Bases: cinder.exception.Duplicate
message
= u’Detected more than one volume with name %(vol_name)s’EMCSPUnavailableException
(message=None, **kwargs)Bases: cinder.exception.EMCVnxCLICmdError
message
= u’EMC VNX Cinder Driver SPUnavailableException: %(cmd)s (Return Code: %(rc)s) (Output: %(out)s).’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).’EncryptedBackupOperationFailed
(message=None, **kwargs)Bases: cinder.exception.BackupDriverException
message
= u’Backup operation of an encrypted volume failed.’Error
Bases: exceptions.Exception
ErrorInFetchingConfiguration
(message=None, **kwargs)Bases: cinder.exception.VolumeDriverException
message
= u”Error in fetching configuration for ‘%(persona)s’”ErrorInHyperScaleVersion
(message=None, **kwargs)Bases: cinder.exception.VolumeDriverException
message
= u”Error in getting HyperScale version ‘%(cmd_error)s’”ErrorInParsingArguments
(message=None, **kwargs)Bases: cinder.exception.VolumeDriverException
message
= u’Error in parsing message arguments : Invalid Payload’ErrorInSendingMsg
(message=None, **kwargs)Bases: cinder.exception.VolumeDriverException
message
= u”Error in sending message ‘%(cmd_error)s’”EvaluatorParseException
Bases: exceptions.Exception
message
= u’Error during evaluator parsing: %(reason)s’ExportFailure
(message=None, **kwargs)Bases: cinder.exception.Invalid
message
= u’Failed to export for volume: %(reason)s’ExtendVolumeError
(message=None, **kwargs)Bases: cinder.exception.CinderException
message
= u’Error extending volume: %(reason)s’FCSanLookupServiceException
(message=None, **kwargs)Bases: cinder.exception.CinderException
message
= u’Fibre Channel SAN Lookup failure: %(reason)s’FCZoneDriverException
(message=None, **kwargs)Bases: cinder.exception.CinderException
message
= u’Fibre Channel Zone operation failed: %(reason)s’FailedCmdWithDump
(message=None, **kwargs)Bases: cinder.exception.VolumeDriverException
message
= u’Operation failed with status=%(status)s. Full dump: %(data)s’FileNotFound
(message=None, **kwargs)Bases: cinder.exception.NotFound
message
= u’File %(file_path)s could not be found.’GCSApiFailure
(message=None, **kwargs)Bases: cinder.exception.BackupDriverException
message
= u’Google Cloud Storage api failure: %(reason)s’GCSConnectionFailure
(message=None, **kwargs)Bases: cinder.exception.BackupDriverException
message
= u’Google Cloud Storage connection failure: %(reason)s’GCSOAuth2Failure
(message=None, **kwargs)Bases: cinder.exception.BackupDriverException
message
= u’Google Cloud Storage oauth2 failure: %(reason)s’GPFSDriverUnsupportedOperation
(message=None, **kwargs)Bases: cinder.exception.VolumeBackendAPIException
message
= u’GPFS driver unsupported operation: %(msg)s’GlanceConnectionFailed
(message=None, **kwargs)Bases: cinder.exception.CinderException
message
= u’Connection to glance failed: %(reason)s’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’GlanceMetadataNotFound
(message=None, **kwargs)Bases: cinder.exception.NotFound
message
= u’Glance metadata for volume/snapshot %(id)s cannot be found.’GroupLimitExceeded
(message=None, **kwargs)Bases: cinder.exception.QuotaError
message
= u’Maximum number of groups allowed (%(allowed)d) exceeded’GroupNotFound
(message=None, **kwargs)Bases: cinder.exception.NotFound
message
= u’Group %(group_id)s could not be found.’GroupSnapshotNotFound
(message=None, **kwargs)Bases: cinder.exception.NotFound
message
= u’GroupSnapshot %(group_snapshot_id)s could not be found.’GroupTypeAccessExists
(message=None, **kwargs)Bases: cinder.exception.Duplicate
message
= u’Group type access for %(group_type_id)s / %(project_id)s combination already exists.’GroupTypeAccessNotFound
(message=None, **kwargs)Bases: cinder.exception.NotFound
message
= u’Group type access not found for %(group_type_id)s / %(project_id)s combination.’GroupTypeCreateFailed
(message=None, **kwargs)Bases: cinder.exception.CinderException
message
= u’Cannot create group_type with name %(name)s and specs %(group_specs)s’GroupTypeEncryptionExists
(message=None, **kwargs)Bases: cinder.exception.Invalid
message
= u’Group type encryption for type %(type_id)s already exists.’GroupTypeEncryptionNotFound
(message=None, **kwargs)Bases: cinder.exception.NotFound
message
= u’Group type encryption for type %(type_id)s does not exist.’GroupTypeExists
(message=None, **kwargs)Bases: cinder.exception.Duplicate
message
= u’Group Type %(id)s already exists.’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.’GroupTypeNotFound
(message=None, **kwargs)Bases: cinder.exception.NotFound
message
= u’Group type %(group_type_id)s could not be found.’GroupTypeNotFoundByName
(message=None, **kwargs)Bases: cinder.exception.GroupTypeNotFound
message
= u’Group type with name %(group_type_name)s could not be found.’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.’GroupTypeUpdateFailed
(message=None, **kwargs)Bases: cinder.exception.CinderException
message
= u’Cannot update group_type %(id)s’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.’HBSDBusy
(message=None, **kwargs)Bases: cinder.exception.HBSDError
message
= ‘Device or resource is busy.’HBSDCmdError
(message=None, ret=None, err=None)Bases: cinder.exception.HBSDError
HBSDError
(message=None, **kwargs)Bases: cinder.exception.VolumeDriverException
message
= u’HBSD error occurs.’HBSDNotFound
(message=None, **kwargs)Bases: cinder.exception.NotFound
message
= u’Storage resource could not be found.’HBSDVolumeIsBusy
(message=None, **kwargs)Bases: cinder.exception.VolumeIsBusy
message
= u’Volume %(volume_name)s is busy.’HNASConnError
(message=None, **kwargs)Bases: cinder.exception.VolumeDriverException
message
= ‘%(message)s’HostNotFound
(message=None, **kwargs)Bases: cinder.exception.NotFound
message
= u’Host %(host)s could not be found.’ISCSITargetAttachFailed
(message=None, **kwargs)Bases: cinder.exception.CinderException
message
= u’Failed to attach iSCSI target for volume %(volume_id)s.’ISCSITargetCreateFailed
(message=None, **kwargs)Bases: cinder.exception.CinderException
message
= u’Failed to create iscsi target for volume %(volume_id)s.’ISCSITargetDetachFailed
(message=None, **kwargs)Bases: cinder.exception.CinderException
message
= u’Failed to detach iSCSI target for volume %(volume_id)s.’ISCSITargetHelperCommandFailed
(message=None, **kwargs)Bases: cinder.exception.CinderException
message
= ‘%(error_message)s’ISCSITargetNotFoundForVolume
(message=None, **kwargs)Bases: cinder.exception.NotFound
message
= u’No target id found for volume %(volume_id)s.’ISCSITargetRemoveFailed
(message=None, **kwargs)Bases: cinder.exception.CinderException
message
= u’Failed to remove iscsi target for volume %(volume_id)s.’ImageCopyFailure
(message=None, **kwargs)Bases: cinder.exception.Invalid
message
= u’Failed to copy image to volume: %(reason)s’ImageDownloadFailed
(message=None, **kwargs)Bases: cinder.exception.CinderException
message
= u’Failed to download image %(image_href)s, reason: %(reason)s’ImageLimitExceeded
(message=None, **kwargs)Bases: cinder.exception.QuotaError
message
= u’Image quota exceeded’ImageNotAuthorized
(message=None, **kwargs)Bases: cinder.exception.CinderException
message
= u’Not authorized for image %(image_id)s.’ImageNotFound
(message=None, **kwargs)Bases: cinder.exception.NotFound
message
= u’Image %(image_id)s could not be found.’ImageTooBig
(message=None, **kwargs)Bases: cinder.exception.Invalid
message
= u’Image %(image_id)s size exceeded available disk space: %(reason)s’ImageUnacceptable
(message=None, **kwargs)Bases: cinder.exception.Invalid
message
= u’Image %(image_id)s is unacceptable: %(reason)s’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)’Invalid
(message=None, **kwargs)Bases: cinder.exception.CinderException
code
= 400message
= u’Unacceptable parameters.’Invalid3PARDomain
(message=None, **kwargs)Bases: cinder.exception.VolumeDriverException
message
= u’Invalid 3PAR Domain: %(err)s’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.’InvalidAttachment
(message=None, **kwargs)Bases: cinder.exception.Invalid
message
= u’Invalid attachment: %(reason)s’InvalidAuthKey
(message=None, **kwargs)Bases: cinder.exception.Invalid
message
= u’Invalid auth key: %(reason)s’InvalidAvailabilityZone
(message=None, **kwargs)Bases: cinder.exception.Invalid
message
= u”Availability zone ‘%(az)s’ is invalid.”InvalidBackup
(message=None, **kwargs)Bases: cinder.exception.Invalid
message
= u’Invalid backup: %(reason)s’InvalidCgSnapshot
(message=None, **kwargs)Bases: cinder.exception.Invalid
message
= u’Invalid CgSnapshot: %(reason)s’InvalidConfigurationValue
(message=None, **kwargs)Bases: cinder.exception.Invalid
message
= u’Value “%(value)s” is not valid for configuration option “%(option)s”’InvalidConnectorException
(message=None, **kwargs)Bases: cinder.exception.VolumeDriverException
message
= u”Connector doesn’t have required information: %(missing)s”InvalidConsistencyGroup
(message=None, **kwargs)Bases: cinder.exception.Invalid
message
= u’Invalid ConsistencyGroup: %(reason)s’InvalidContentType
(message=None, **kwargs)Bases: cinder.exception.Invalid
message
= u’Invalid content type %(content_type)s.’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.’InvalidGroup
(message=None, **kwargs)Bases: cinder.exception.Invalid
message
= u’Invalid Group: %(reason)s’InvalidGroupSnapshot
(message=None, **kwargs)Bases: cinder.exception.Invalid
message
= u’Invalid GroupSnapshot: %(reason)s’InvalidGroupSnapshotStatus
(message=None, **kwargs)Bases: cinder.exception.Invalid
message
= u’Invalid GroupSnapshot Status: %(reason)s’InvalidGroupStatus
(message=None, **kwargs)Bases: cinder.exception.Invalid
message
= u’Invalid Group Status: %(reason)s’InvalidGroupType
(message=None, **kwargs)Bases: cinder.exception.Invalid
message
= u’Invalid group type: %(reason)s’InvalidHost
(message=None, **kwargs)Bases: cinder.exception.Invalid
message
= u’Invalid host: %(reason)s’InvalidImageRef
(message=None, **kwargs)Bases: cinder.exception.Invalid
message
= u’Invalid image href %(image_href)s.’InvalidInput
(message=None, **kwargs)Bases: cinder.exception.Invalid
message
= u’Invalid input received: %(reason)s’InvalidMetadataType
(message=None, **kwargs)Bases: cinder.exception.Invalid
message
= u’The type of metadata: %(metadata_type)s for volume/snapshot %(id)s is invalid.’InvalidNestedQuotaSetup
(message=None, **kwargs)Bases: cinder.exception.CinderException
message
= u’Project quotas are not properly setup for nested quotas: %(reason)s.’InvalidParameterValue
(message=None, **kwargs)Bases: cinder.exception.Invalid
message
= ‘%(err)s’InvalidQoSSpecs
(message=None, **kwargs)Bases: cinder.exception.Invalid
message
= u’Invalid qos specs: %(reason)s’InvalidQuotaValue
(message=None, **kwargs)Bases: cinder.exception.Invalid
message
= u’Change would make usage less than 0 for the following resources: %(unders)s’InvalidReplicationTarget
(message=None, **kwargs)Bases: cinder.exception.Invalid
message
= u’Invalid Replication Target: %(reason)s’InvalidReservationExpiration
(message=None, **kwargs)Bases: cinder.exception.Invalid
message
= u’Invalid reservation expiration %(expire)s.’InvalidResults
(message=None, **kwargs)Bases: cinder.exception.Invalid
message
= u’The results are invalid.’InvalidSnapshot
(message=None, **kwargs)Bases: cinder.exception.Invalid
message
= u’Invalid snapshot: %(reason)s’InvalidUUID
(message=None, **kwargs)Bases: cinder.exception.Invalid
message
= u’Expected a UUID but received %(uuid)s.’InvalidVolume
(message=None, **kwargs)Bases: cinder.exception.Invalid
message
= u’Invalid volume: %(reason)s’InvalidVolumeAttachMode
(message=None, **kwargs)Bases: cinder.exception.Invalid
message
= u”Invalid attaching mode ‘%(mode)s’ for volume %(volume_id)s.”InvalidVolumeMetadata
(message=None, **kwargs)Bases: cinder.exception.Invalid
message
= u’Invalid metadata: %(reason)s’InvalidVolumeMetadataSize
(message=None, **kwargs)Bases: cinder.exception.Invalid
message
= u’Invalid metadata size: %(reason)s’InvalidVolumeType
(message=None, **kwargs)Bases: cinder.exception.Invalid
message
= u’Invalid volume type: %(reason)s’KaminarioCinderDriverException
(message=None, **kwargs)Bases: cinder.exception.VolumeDriverException
message
= u’KaminarioCinderDriver failure: %(reason)s’KaminarioRetryableException
(message=None, **kwargs)Bases: cinder.exception.VolumeDriverException
message
= u’Kaminario retryable exception: %(reason)s’KeyManagerError
(message=None, **kwargs)Bases: cinder.exception.CinderException
message
= u’key manager error: %(reason)s’LockCreationFailed
(message=None, **kwargs)Bases: cinder.exception.CinderException
message
= u’Unable to create lock. Coordination backend not started.’LockingFailed
(message=None, **kwargs)Bases: cinder.exception.CinderException
message
= u’Lock acquisition failed.’MalformedRequestBody
(message=None, **kwargs)Bases: cinder.exception.CinderException
message
= u’Malformed message body: %(reason)s’MalformedResponse
(message=None, **kwargs)Bases: cinder.exception.VolumeDriverException
message
= u’Malformed response to command %(cmd)s: %(reason)s’ManageExistingAlreadyManaged
(message=None, **kwargs)Bases: cinder.exception.CinderException
message
= u’Unable to manage existing volume. Volume %(volume_ref)s already managed.’ManageExistingInvalidReference
(message=None, **kwargs)Bases: cinder.exception.CinderException
message
= u’Manage existing volume failed due to invalid backend reference %(existing_ref)s: %(reason)s’ManageExistingVolumeTypeMismatch
(message=None, **kwargs)Bases: cinder.exception.CinderException
message
= u’Manage existing volume failed due to volume type mismatch: %(reason)s’MessageNotFound
(message=None, **kwargs)Bases: cinder.exception.NotFound
message
= u’Message %(message_id)s could not be found.’MetadataAbsent
(message=None, **kwargs)Bases: cinder.exception.CinderException
message
= u’There is no metadata in DB object.’MetadataCopyFailure
(message=None, **kwargs)Bases: cinder.exception.Invalid
message
= u’Failed to copy metadata to volume: %(reason)s’MetadataCreateFailure
(message=None, **kwargs)Bases: cinder.exception.Invalid
message
= u’Failed to create metadata for volume: %(reason)s’MetadataUpdateFailure
(message=None, **kwargs)Bases: cinder.exception.Invalid
message
= u’Failed to update metadata for volume: %(reason)s’MissingRequired
(message=None, **kwargs)Bases: cinder.exception.Invalid
message
= u”Missing required element ‘%(element)s’ in request body.”NetAppDriverException
(message=None, **kwargs)Bases: cinder.exception.VolumeDriverException
message
= u’NetApp Cinder Driver exception.’NexentaException
(message=None, **kwargs)Bases: cinder.exception.VolumeDriverException
message
= ‘%(message)s’NfsException
(message=None, **kwargs)Bases: cinder.exception.RemoteFSException
message
= u’Unknown NFS exception’NfsNoSharesMounted
(message=None, **kwargs)Bases: cinder.exception.RemoteFSNoSharesMounted
message
= u’No mounted NFS shares found’NfsNoSuitableShareFound
(message=None, **kwargs)Bases: cinder.exception.RemoteFSNoSuitableShareFound
message
= u’There is no share which can host %(volume_size)sG’NoMoreTargets
(message=None, **kwargs)Bases: cinder.exception.CinderException
No more available targets.
NoValidBackend
(message=None, **kwargs)Bases: cinder.exception.CinderException
message
= u’No valid backend was found. %(reason)s’NotAuthorized
(message=None, **kwargs)Bases: cinder.exception.CinderException
code
= 403message
= u’Not authorized.’NotFound
(message=None, **kwargs)Bases: cinder.exception.CinderException
code
= 404message
= u’Resource could not be found.’safe
= TrueNotSupportedOperation
(message=None, **kwargs)Bases: cinder.exception.Invalid
code
= 405message
= u’Operation not supported: %(operation)s.’OverQuota
(message=None, **kwargs)Bases: cinder.exception.CinderException
message
= u’Quota exceeded for resources: %(overs)s’ParameterNotFound
(message=None, **kwargs)Bases: cinder.exception.NotFound
message
= u’Could not find parameter %(param)s’PolicyNotAuthorized
(message=None, **kwargs)Bases: cinder.exception.NotAuthorized
message
= u”Policy doesn’t allow %(action)s to be performed.”ProgrammingError
(message=None, **kwargs)Bases: cinder.exception.CinderException
message
= u’Programming error in Cinder: %(reason)s’ProjectQuotaNotFound
(message=None, **kwargs)Bases: cinder.exception.QuotaNotFound
message
= u’Quota for project %(project_id)s could not be found.’PureDriverException
(message=None, **kwargs)Bases: cinder.exception.VolumeDriverException
message
= u’Pure Storage Cinder driver failure: %(reason)s’PureRetryableException
(message=None, **kwargs)Bases: cinder.exception.VolumeBackendAPIException
message
= u’Retryable Pure Storage Exception encountered’QoSSpecsAssociateFailed
(message=None, **kwargs)Bases: cinder.exception.CinderException
message
= u’Failed to associate qos_specs: %(specs_id)s with type %(type_id)s.’QoSSpecsCreateFailed
(message=None, **kwargs)Bases: cinder.exception.CinderException
message
= u’Failed to create qos_specs: %(name)s with specs %(qos_specs)s.’QoSSpecsDisassociateFailed
(message=None, **kwargs)Bases: cinder.exception.CinderException
message
= u’Failed to disassociate qos_specs: %(specs_id)s with type %(type_id)s.’QoSSpecsExists
(message=None, **kwargs)Bases: cinder.exception.Duplicate
message
= u’QoS Specs %(specs_id)s already exists.’QoSSpecsInUse
(message=None, **kwargs)Bases: cinder.exception.CinderException
message
= u’QoS Specs %(specs_id)s is still associated with entities.’QoSSpecsKeyNotFound
(message=None, **kwargs)Bases: cinder.exception.NotFound
message
= u’QoS spec %(specs_id)s has no spec with key %(specs_key)s.’QoSSpecsNotFound
(message=None, **kwargs)Bases: cinder.exception.NotFound
message
= u’No such QoS spec %(specs_id)s.’QoSSpecsUpdateFailed
(message=None, **kwargs)Bases: cinder.exception.CinderException
message
= u’Failed to update qos_specs: %(specs_id)s with specs %(qos_specs)s.’QuotaClassNotFound
(message=None, **kwargs)Bases: cinder.exception.QuotaNotFound
message
= u’Quota class %(class_name)s could not be found.’QuotaError
(message=None, **kwargs)Bases: cinder.exception.CinderException
code
= 413headers
= {‘Retry-After’: ‘0’}message
= u’Quota exceeded: code=%(code)s’safe
= TrueQuotaNotFound
(message=None, **kwargs)Bases: cinder.exception.NotFound
message
= u’Quota could not be found’QuotaResourceUnknown
(message=None, **kwargs)Bases: cinder.exception.QuotaNotFound
message
= u’Unknown quota resources %(unknown)s.’QuotaUsageNotFound
(message=None, **kwargs)Bases: cinder.exception.QuotaNotFound
message
= u’Quota usage for project %(project_id)s could not be found.’RPCTimeout
(message=None, **kwargs)Bases: cinder.exception.CinderException
code
= 502message
= u’Timeout while requesting capabilities from backend %(service)s.’RdxAPICommandException
(message=None, **kwargs)Bases: cinder.exception.VolumeDriverException
message
= u’Reduxio API Command Exception’RdxAPIConnectionException
(message=None, **kwargs)Bases: cinder.exception.VolumeDriverException
message
= u’Reduxio API Connection Exception’RemoteFSConcurrentRequest
(message=None, **kwargs)Bases: cinder.exception.RemoteFSException
message
= u’A concurrent, possibly contradictory, request has been made.’RemoteFSException
(message=None, **kwargs)Bases: cinder.exception.VolumeDriverException
message
= u’Unknown RemoteFS exception’RemoteFSNoSharesMounted
(message=None, **kwargs)Bases: cinder.exception.RemoteFSException
message
= u’No mounted shares found’RemoteFSNoSuitableShareFound
(message=None, **kwargs)Bases: cinder.exception.RemoteFSException
message
= u’There is no share which can host %(volume_size)sG’RemoveExportException
(message=None, **kwargs)Bases: cinder.exception.VolumeDriverException
message
= u’Failed to remove export for volume %(volume)s: %(reason)s’ReplicationError
(message=None, **kwargs)Bases: cinder.exception.CinderException
message
= u’Volume %(volume_id)s replication error: %(reason)s’ReplicationGroupError
(message=None, **kwargs)Bases: cinder.exception.CinderException
message
= u’Group %(group_id)s replication error: %(reason)s.’ReplicationNotFound
(message=None, **kwargs)Bases: cinder.exception.NotFound
message
= u’Volume replication for %(volume_id)s could not be found.’ReservationNotFound
(message=None, **kwargs)Bases: cinder.exception.QuotaNotFound
message
= u’Quota reservation %(uuid)s could not be found.’SSHInjectionThreat
(message=None, **kwargs)Bases: cinder.exception.CinderException
message
= u’SSH command injection detected: %(command)s’SchedulerHostFilterNotFound
(message=None, **kwargs)Bases: cinder.exception.NotFound
message
= u’Scheduler Host Filter %(filter_name)s could not be found.’SchedulerHostWeigherNotFound
(message=None, **kwargs)Bases: cinder.exception.NotFound
message
= u’Scheduler Host Weigher %(weigher_name)s could not be found.’ServerNotFound
(message=None, **kwargs)Bases: cinder.exception.NotFound
message
= u’Instance %(uuid)s could not be found.’ServiceNotFound
(message=None, **kwargs)Bases: cinder.exception.NotFound
ServiceTooOld
(message=None, **kwargs)Bases: cinder.exception.Invalid
message
= u’Service is too old to fulfil this request.’ServiceUnavailable
(message=None, **kwargs)Bases: cinder.exception.Invalid
message
= u’Service is unavailable at this time.’SheepdogCmdError
(message=None, **kwargs)Bases: cinder.exception.SheepdogError
message
= u’(Command: %(cmd)s) (Return Code: %(exit_code)s) (Stdout: %(stdout)s) (Stderr: %(stderr)s)’SheepdogError
(message=None, **kwargs)Bases: cinder.exception.VolumeBackendAPIException
message
= u’An error has occurred in SheepdogDriver. (Reason: %(reason)s)’SmbfsException
(message=None, **kwargs)Bases: cinder.exception.RemoteFSException
message
= u’Unknown SMBFS exception.’SmbfsNoSharesMounted
(message=None, **kwargs)Bases: cinder.exception.RemoteFSNoSharesMounted
message
= u’No mounted SMBFS shares found.’SmbfsNoSuitableShareFound
(message=None, **kwargs)Bases: cinder.exception.RemoteFSNoSuitableShareFound
message
= u’There is no share which can host %(volume_size)sG.’SnapshotIsBusy
(message=None, **kwargs)Bases: cinder.exception.CinderException
message
= u’deleting snapshot %(snapshot_name)s that has dependent volumes’SnapshotLimitExceeded
(message=None, **kwargs)Bases: cinder.exception.QuotaError
message
= u’Maximum number of snapshots allowed (%(allowed)d) exceeded’SnapshotMetadataNotFound
(message=None, **kwargs)Bases: cinder.exception.NotFound
message
= u’Snapshot %(snapshot_id)s has no metadata with key %(metadata_key)s.’SnapshotNotFound
(message=None, **kwargs)Bases: cinder.exception.NotFound
message
= u’Snapshot %(snapshot_id)s could not be found.’SnapshotUnavailable
(message=None, **kwargs)Bases: cinder.exception.VolumeBackendAPIException
message
= u’The snapshot is unavailable: %(data)s’SolidFireAPIDataException
(message=None, **kwargs)Bases: cinder.exception.SolidFireAPIException
message
= u’Error in SolidFire API response: data=%(data)s’SolidFireAPIException
(message=None, **kwargs)Bases: cinder.exception.VolumeBackendAPIException
message
= u’Bad response from SolidFire API’SolidFireAccountNotFound
(message=None, **kwargs)Bases: cinder.exception.SolidFireDriverException
message
= u’Unable to locate account %(account_name)s on Solidfire device’SolidFireDriverException
(message=None, **kwargs)Bases: cinder.exception.VolumeDriverException
message
= u’SolidFire Cinder Driver exception’SolidFireRetryableException
(message=None, **kwargs)Bases: cinder.exception.VolumeBackendAPIException
message
= u’Retryable SolidFire Exception encountered’SwiftConnectionFailed
(message=None, **kwargs)Bases: cinder.exception.BackupDriverException
message
= u’Connection to swift failed: %(reason)s’SynoAPIHTTPError
(message=None, **kwargs)Bases: cinder.exception.VolumeDriverException
message
= u’HTTP exit code: [%(code)s]’SynoAuthError
(message=None, **kwargs)Bases: cinder.exception.VolumeDriverException
message
= u’Synology driver authentication failed: %(reason)s.’SynoLUNNotExist
(message=None, **kwargs)Bases: cinder.exception.VolumeDriverException
message
= u’LUN not found by UUID: %(uuid)s.’TegileAPIException
(message=None, **kwargs)Bases: cinder.exception.VolumeBackendAPIException
message
= u’Unexpected response from Tegile IntelliFlash API’TransferNotFound
(message=None, **kwargs)Bases: cinder.exception.NotFound
message
= u’Transfer %(transfer_id)s could not be found.’UnableToExecuteHyperScaleCmd
(message=None, **kwargs)Bases: cinder.exception.VolumeDriverException
message
= u”Failed HyperScale command for ‘%(message)s’”UnableToFailOver
(message=None, **kwargs)Bases: cinder.exception.CinderException
message
= u’Unable to failover to replication target: %(reason)s).’UnableToProcessHyperScaleCmdOutput
(message=None, **kwargs)Bases: cinder.exception.VolumeDriverException
message
= u”Failed processing command output ‘%(cmd_out)s’ for HyperScale command”UnavailableDuringUpgrade
(message=None, **kwargs)Bases: cinder.exception.Invalid
message
= u’Cannot perform %(action)s during system upgrade.’UnexpectedOverQuota
(message=None, **kwargs)Bases: cinder.exception.QuotaError
message
= u’Unexpected over quota on %(name)s.’UnknownCmd
(message=None, **kwargs)Bases: cinder.exception.VolumeDriverException
message
= u’Unknown or unsupported command %(cmd)s’VSPBusy
(message=None, **kwargs)Bases: cinder.exception.VSPError
message
= u’Device or resource is busy.’VSPError
(message=None, **kwargs)Bases: cinder.exception.VolumeDriverException
message
= u’VSP error occurred. %(message)s’VSPNotSupported
(message=None, **kwargs)Bases: cinder.exception.VSPError
message
= u’The function on the storage is not supported.’ValidationError
(message=None, **kwargs)Bases: cinder.exception.Invalid
message
= ‘%(detail)s’VersionNotFoundForAPIMethod
(message=None, **kwargs)Bases: cinder.exception.Invalid
message
= u’API version %(version)s is not supported on this method.’ViolinBackendErr
(message=None, **kwargs)Bases: cinder.exception.VolumeBackendAPIException
message
= u’Backend reports: %(message)s’ViolinBackendErrExists
(message=None, **kwargs)Bases: cinder.exception.VolumeBackendAPIException
message
= u’Backend reports: item already exists’ViolinBackendErrNotFound
(message=None, **kwargs)Bases: cinder.exception.NotFound
message
= u’Backend reports: item not found’ViolinInvalidBackendConfig
(message=None, **kwargs)Bases: cinder.exception.VolumeDriverException
message
= u’Volume backend config is invalid: %(reason)s’ViolinRequestRetryTimeout
(message=None, **kwargs)Bases: cinder.exception.VolumeDriverException
message
= u’Backend service retry timeout hit: %(timeout)s sec’ViolinResourceNotFound
(message=None, **kwargs)Bases: cinder.exception.NotFound
message
= u’Backend reports: %(message)s’VolumeAdminMetadataNotFound
(message=None, **kwargs)Bases: cinder.exception.NotFound
message
= u’Volume %(volume_id)s has no administration metadata with key %(metadata_key)s.’VolumeAttached
(message=None, **kwargs)Bases: cinder.exception.Invalid
message
= u’Volume %(volume_id)s is still attached, detach volume first.’VolumeAttachmentNotFound
(message=None, **kwargs)Bases: cinder.exception.NotFound
message
= u’Volume attachment could not be found with filter: %(filter)s.’VolumeBackendAPIException
(message=None, **kwargs)Bases: cinder.exception.CinderException
message
= u’Bad or unexpected response from the storage volume backend API: %(data)s’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.’VolumeDeviceNotFound
(message=None, **kwargs)Bases: cinder.exception.CinderException
message
= u’Volume device not found at %(device)s.’VolumeDriverException
(message=None, **kwargs)Bases: cinder.exception.CinderException
message
= u’Volume driver reported an error: %(message)s’VolumeGroupCreationFailed
(message=None, **kwargs)Bases: cinder.exception.CinderException
message
= u’Failed to create Volume Group: %(vg_name)s’VolumeGroupNotFound
(message=None, **kwargs)Bases: cinder.exception.CinderException
message
= u’Unable to find Volume Group: %(vg_name)s’VolumeIsBusy
(message=None, **kwargs)Bases: cinder.exception.CinderException
message
= u’deleting volume %(volume_name)s that has snapshot’VolumeLimitExceeded
(message=None, **kwargs)Bases: cinder.exception.QuotaError
message
= u”Maximum number of volumes allowed (%(allowed)d) exceeded for quota ‘%(name)s’.”VolumeMetadataBackupExists
(message=None, **kwargs)Bases: cinder.exception.BackupDriverException
message
= u’Metadata backup already exists for this volume’VolumeMetadataNotFound
(message=None, **kwargs)Bases: cinder.exception.NotFound
message
= u’Volume %(volume_id)s has no metadata with key %(metadata_key)s.’VolumeMigrationFailed
(message=None, **kwargs)Bases: cinder.exception.CinderException
message
= u’Volume migration failed: %(reason)s’VolumeNotDeactivated
(message=None, **kwargs)Bases: cinder.exception.CinderException
message
= u’Volume %(name)s was not deactivated in time.’VolumeNotFound
(message=None, **kwargs)Bases: cinder.exception.NotFound
message
= u’Volume %(volume_id)s could not be found.’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.’VolumeSizeExceedsLimit
(message=None, **kwargs)Bases: cinder.exception.QuotaError
message
= u’Requested volume size %(size)dG is larger than maximum allowed limit %(limit)dG.’VolumeSnapshotNotFound
(message=None, **kwargs)Bases: cinder.exception.NotFound
message
= u’No snapshots found for volume %(volume_id)s.’VolumeTypeAccessExists
(message=None, **kwargs)Bases: cinder.exception.Duplicate
message
= u’Volume type access for %(volume_type_id)s / %(project_id)s combination already exists.’VolumeTypeAccessNotFound
(message=None, **kwargs)Bases: cinder.exception.NotFound
message
= u’Volume type access not found for %(volume_type_id)s / %(project_id)s combination.’VolumeTypeCreateFailed
(message=None, **kwargs)Bases: cinder.exception.CinderException
message
= u’Cannot create volume_type with name %(name)s and specs %(extra_specs)s’VolumeTypeEncryptionExists
(message=None, **kwargs)Bases: cinder.exception.Invalid
message
= u’Volume type encryption for type %(type_id)s already exists.’VolumeTypeEncryptionNotFound
(message=None, **kwargs)Bases: cinder.exception.NotFound
message
= u’Volume type encryption for type %(type_id)s does not exist.’VolumeTypeExists
(message=None, **kwargs)Bases: cinder.exception.Duplicate
message
= u’Volume Type %(id)s already exists.’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.’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.’VolumeTypeNotFound
(message=None, **kwargs)Bases: cinder.exception.NotFound
message
= u’Volume type %(volume_type_id)s could not be found.’VolumeTypeNotFoundByName
(message=None, **kwargs)Bases: cinder.exception.VolumeTypeNotFound
message
= u’Volume type with name %(volume_type_name)s could not be found.’VolumeTypeUpdateFailed
(message=None, **kwargs)Bases: cinder.exception.CinderException
message
= u’Cannot update volume_type %(id)s’VzStorageException
(message=None, **kwargs)Bases: cinder.exception.RemoteFSException
message
= u’Unknown Virtuozzo Storage exception’VzStorageNoSharesMounted
(message=None, **kwargs)Bases: cinder.exception.RemoteFSNoSharesMounted
message
= u’No mounted Virtuozzo Storage shares found’VzStorageNoSuitableShareFound
(message=None, **kwargs)Bases: cinder.exception.RemoteFSNoSuitableShareFound
message
= u’There is no share which can host %(volume_size)sG’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.’WorkerExists
(message=None, **kwargs)Bases: cinder.exception.Duplicate
message
= u’Worker for %(type)s %(id)s already exists.’WorkerNotFound
(message=None, **kwargs)Bases: cinder.exception.NotFound
message
= u’Worker with %s could not be found.’XIODriverException
(message=None, **kwargs)Bases: cinder.exception.VolumeDriverException
message
= u’X-IO Volume Driver exception!’XtremIOAlreadyMappedError
(message=None, **kwargs)Bases: cinder.exception.VolumeDriverException
message
= u’Volume to Initiator Group mapping already exists’XtremIOArrayBusy
(message=None, **kwargs)Bases: cinder.exception.VolumeDriverException
message
= u’System is busy, retry operation.’XtremIOSnapshotsLimitExceeded
(message=None, **kwargs)Bases: cinder.exception.VolumeDriverException
message
= u’Exceeded the limit of snapshots per volume’ZadaraAttachmentsNotFound
(message=None, **kwargs)Bases: cinder.exception.NotFound
message
= u’Failed to retrieve attachments for volume %(name)s’ZadaraInvalidAttachmentInfo
(message=None, **kwargs)Bases: cinder.exception.Invalid
message
= u’Invalid attachment info for volume %(name)s: %(reason)s’ZadaraServerCreateFailure
(message=None, **kwargs)Bases: cinder.exception.VolumeDriverException
message
= u’Unable to create server object for initiator %(name)s’ZadaraServerNotFound
(message=None, **kwargs)Bases: cinder.exception.NotFound
message
= u’Unable to find server object for initiator %(name)s’ZadaraVPSANoActiveController
(message=None, **kwargs)Bases: cinder.exception.VolumeDriverException
message
= u’Unable to find any active VPSA controller’ZadaraVolumeNotFound
(message=None, **kwargs)Bases: cinder.exception.VolumeDriverException
message
= ‘%(reason)s’ZoneManagerException
(message=None, **kwargs)Bases: cinder.exception.CinderException
message
= u’Fibre Channel connection control failure: %(reason)s’ZoneManagerNotInitialized
(message=None, **kwargs)Bases: cinder.exception.CinderException
message
= u’Fibre Channel Zone Manager not initialized’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.
cinder.rpc
Module¶init
(conf)cleanup
()set_defaults
(control_exchange)add_extra_exmods
(*args)clear_extra_exmods
()get_allowed_exmods
()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)cinder.test
Module¶Base classes for our unit tests.
Allows overriding of CONF for use of fakes, and some black magic for inline callbacks.
Database
(db_api, db_migrate, sql_connection)Bases: fixtures.fixture.Fixture
setUp
()ModelsObjectComparatorMixin
Bases: object
RPCAPITestCase
(*args, **kwargs)Bases: cinder.test.TestCase
, cinder.test.ModelsObjectComparatorMixin
setUp
()TestCase
(*args, **kwargs)Bases: testtools.testcase.TestCase
Test case base class for all unit tests.
MOCK_TOOZ
= TrueMOCK_WORKER
= TruePOLICY_PATH
= ‘cinder/tests/unit/policy.json’RESOURCE_FILTER_PATH
= ‘etc/cinder/resource_filters.json’assertTrue
(x, *args, **kwargs)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)TestingException
Bases: exceptions.Exception
cinder.utils
Module¶Utilities and helper functions.
ComparableMixin
Bases: object
DO_NOTHING
Class that literrally does nothing.
We inherit from str in case it’s called with json.dumps.
DoNothing
Bases: str
Class that literrally does nothing.
We inherit from str in case it’s called with json.dumps.
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):
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: |
|
---|
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: |
|
---|
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: |
|
---|---|
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: |
|
---|
convert_str
(text)Convert to native string.
Convert bytes and Unicode strings to native strings:
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, default=False)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_log_levels
(prefix)get_log_method
(level_string)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.
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 are as follows. (See cinder.openstack.common.notifier.api.notify_decorator)
Parameters: |
|
---|
notifications_enabled
(conf)Check if oslo notifications are enabled.
paths_normcase_equal
(path_a, path_b)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: |
|
---|
sanitize_hostname
(hostname)Return a hostname which conforms to RFC-952 and RFC-1123 specs.
service_expired_time
(with_timezone=False)set_log_levels
(prefix, level_string)setup_tracing
(trace_flags)Set global variables for each trace flag.
Sets variables TRACE_METHOD and TRACE_API, which represent whether to log methods or 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: |
|
---|---|
Returns: | integer |
walk_class_hierarchy
(clazz, encountered=None)Walk class hierarchy, yielding most derived classes first.
cinder.wsgi
Module¶conf_fixture
Module¶set_defaults
(conf)test_rpc
Module¶FakeAPI
Bases: cinder.rpc.RPCAPI
BINARY
= ‘cinder-scheduler’RPC_API_VERSION
= ‘1.5’TOPIC
= ‘cinder-scheduler-topic’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)Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.