Use event.listen() instead of deprecated listeners kwarg

Fixes bug 1031405

The listeners kwarg is deprecated in SQLAlchemy 0.7.0. Since 0.7.3 is
the minimum required version of SQLAlchemy, use the new event.listen()
API instead.

Change-Id: I1b851e197c04b131ae96e814780b04e6dcdeeb1a
Remove unused exceptions from cinder/exception.py

find cinder/ -type f -name "*pyc" -exec rm {} \;
exceptions=`cat cinder/exception.py| grep -E '^class' |\
 awk {'print $2'} | awk -F '(' {'print $1'}`
for exc in $exceptions
do
    i=`find cinder/ -type f -exec grep -R $exc {} \; |wc -l`
    if [ $i -eq 1 ]
    then
        echo $exc
    fi
done

First removed exceptions:

DecryptionFailure
ImagePaginationFailed
VirtualInterfaceCreateException
VirtualInterfaceMacAddressException
MelangeConnectionFailed
VolumeUnattached
InvalidKeypair
InvalidSignature
InvalidInstanceType
InvalidIpProtocol
InvalidCidr
InvalidAggregateAction
InvalidGroup
InstanceInvalidState
InstanceNotRunning
InstanceNotSuspended
InstanceNotInRescueMode
InstanceSuspendFailure
InstanceResumeFailure
InstanceRebootFailure
InstanceTerminationFailure
VolumeServiceUnavailable
UnableToMigrateToSelf
DestinationHostUnavailable
SourceHostUnavailable
InvalidHypervisorType
DestinationHypervisorTooOld
DestinationDiskExists
InvalidDevicePath
DeviceIsBusy
InvalidCPUInfo
InvalidIpAddressError
InvalidVLANTag
InvalidVLANPortGroup
InvalidDiskFormat
InstanceUnacceptable
FlagNotSet
NoVolumeTypesFound
VolumeDriverNotFound
ListingImageRefsNotSupported
KernelNotFoundForImage
ProjectNotFound
ProjectMembershipNotFound
UserRoleNotFound
StorageRepositoryNotFound
DatastoreNotFound
FixedIpNotFoundForAddress
FixedIpNotFoundForInstance
FixedIpNotFoundForNetworkHost
FixedIpNotFoundForSpecificInstance
FixedIpNotFoundForHost
FixedIpAlreadyInUse
FixedIpInvalid
NoMoreFixedIps
NoFixedIpsDefined
FloatingIpDNSExists
FloatingIpNotFoundForAddress
FloatingIpNotFoundForHost
NoMoreFloatingIps
FloatingIpAssociated
FloatingIpNotAssociated
NoFloatingIpsDefined
NoFloatingIpInterface
KeypairNotFound
CertificateNotFound
AuthTokenNotFound
AccessKeyNotFound
SecurityGroupNotFoundForProject
SecurityGroupNotFoundForRule
SecurityGroupExistsForInstance
SecurityGroupNotExistsForInstance
NoInstanceTypesFound
InstanceTypeNotFoundByName
FlavorNotFound
CellNotFound
SchedulerHostFilterNotFound
SchedulerCostFunctionNotFound
SchedulerWeightFlagNotFound
InstanceMetadataNotFound
InstanceTypeExtraSpecsNotFound
LDAPUserNotFound
LDAPGroupNotFound
LDAPGroupMembershipNotFound
NoFilesFound
SwitchNotFoundForNetworkAdapter
NetworkAdapterNotFound
GlobalRoleNotAllowed
ImageRotationNotAllowed
RotationRequiredForBackup
LDAPUserExists
LDAPGroupExists
LDAPMembershipExists
ProjectExists
InstanceExists
InstanceTypeExists
InvalidSharedStorage
CannotResizeToSameSize
ImageTooLarge
ZoneRequestError
InstanceTypeMemoryTooSmall
InstanceTypeDiskTooSmall
InsufficientFreeMemory
CouldNotFetchMetrics
AggregateError
AggregateNotFound
AggregateNameExists
AggregateHostNotFound
AggregateMetadataNotFound
AggregateHostConflict
AggregateHostExists
InstanceTypeCreateFailed
SolidFireAPIStatusException
DuplicateVlan
InvalidInstanceIDMalformed
CouldNotFetchImage

Search again, Second removed exceptions:

UserNotFound
FixedIpNotFoundForNetwork
FloatingIpNotFound
SecurityGroupNotFound
InstanceTypeNotFound
LDAPObjectNotFound
UserExists

Search again, Third removed exceptions:

FixedIpNotFound

Change-Id: I028122c6132340b2fef2c144da787b7c4efddccf
Make glance image service check base exception classes

Fixes bug 1039675

glanceclient can raise HTTPNotFound (as well as NotFound) it appears,
but glance image service is only converting NotFound ->
InstanceNotFound.  Same applies to 'Forbidden' and other exceptions.

This patch converts 'exc_type is NotFound'-like checks to use
'isinstance' instead, which will cover HTTPNotFound, etc.

Also add missing glance/image tests that weren't in Cinder

Change-Id: I8787598daccf401a26d9397946ecd55f89ff62b3
Add 'detaching' to volume status

Fixes bug #1004382

When attach a volume , the volume status is "available -> attaching ->
in-use", But when detaching a volume , the volume status is "in-use ->
available". So We need 'detaching' volume status, it make the change of
state of the volume more clearly.

Change-Id: Idf8c38413135bf8e8cd025f11937f8c7250557c1
Fix PEP8 issues.

Fix some pep8 issues in doc/ext/cinder_todo.py make the code looks pretty.

Change-Id: I137c8bf5af30eb54a44cbff7f1fbc35bc2c3ed9e
Remove unused flags

* region_list
* aws_access_key_id
* aws_secret_access_key
* osapi_scheme
* osapi_path
* metadata_host
* metadata_port
* default_project
* default_image
* default_instance_type
* vpn_image_id
* vpn_key_suffix
* auth_token_ttl
* bandwith_poll_interval
* start_guests_on_host_boot
* resume_guests_state_on_host_boot
* default_ephemeral_format
* use_ipv6
* allow_resize_to_same_host
* zombie_instance_updated_at_window
* isolated_images
* isolated_hosts

Change-Id: Ia3d5ac7d7c983845b5411e2fc1f49eb579e3280f
Remove unused return values and commented out code from NFS driver

bug 1037622

Change-Id: Idea3005ad94fd6bfc76fd0f3969ee78e3031767e
Merge "Remove unused exceptions from cinder/exception.py"
Merge "Remove unused return values and commented out code from NFS driver"
Merge "Add 'detaching' to volume status"
Merge "Fix PEP8 issues."
Implement volume quota support in Cinder

parital fix for bug 1023311
  * To use needs cinderclient https://review.openstack.org/#/c/11509/
  * Updates quota classes with changes in Nova
  * Adds needed quota related DB tables
  * Updates test_quota to reflect changes in Nova
  * Adds absolute limits and empty rate limit functions
  * Updates test/integration/test_volume to make it work w/ above changes

Change-Id: I221c7a9dc51a2bb9bf7228c056f63ba9546cf5f9
Spelling: Persistant=>Persistent

Change-Id: Id8e1bef634fe66e06624b5b3bcd82f59735d76e3
Fix creation of iscsi targets

Previously when creating iscsi volumes, we were using

tgt-admin -e -c <config file> --update volume-id

Unfortunately the side affect of this is that tgt-admin
removed other volumes that weren't connected to an iscsi
connector. Which is obvlously not what we want.

In order to fix this we create the targets.conf for the
volume but we call tgt-admin --update icssi qualified name.

We're dropping the use of iscsi_targets table when using TgtAdm.
Compatability for other target admin types is maintained.

Fixes LP: #1038062

Change-Id: I9060a43208df5b79e9b17dadcab8bc0a8eeef55e
Signed-off-by: Chuck Short <chuck.short@canonical.com>
Make size optional when creating a volume from a snap

Changing the size of a volume when cloning a snapshot doesn't
make a great deal of sense *and isn't part of the ec2 api).

This patch makes the field optional, defaulting to the same
size as the snapshot (and therefore the origination volume).

Change-Id: I3fea7fe1c0415d10e549c66a242cf2a336a7204e
Add cinder- prefix to all binaries.

Renames clear_rabbit_queues and volume-usuage-audit binaries
so that they are prefixed with 'cinder-'.

As part of this change the clear_rabbit_queues binary was changed
to use dashes instead of underscores for consistency with the rest
of the cinder binaries.

Fixes LP Bug #1044386.

Change-Id: I7692a543cc67af2d342a64b84626de38c0a64f81
Removed unnecessary call to ensure_export

Removed the extra call to 'ensure_export' from '_copy_image_to_volume' while
creating a volume from an image.

Fixes LP: #1044399

Change-Id: I189a4cb66b965367289c2f677147ee085e431190
Merge "Make glance image service check base exception classes"
Merge "Add cinder- prefix to all binaries."
Merge "Fix creation of iscsi targets"