Dan Prince [Wed, 5 Sep 2012 17:20:54 +0000 (13:20 -0400)]
Remove null_kernel option.
This option was only used in the image/fake.py class. In this patch
I've updated the fake to use an inline 'nokernel' string instead of
this option which we don't make use of in the runtime Cinder code.
Dan Prince [Fri, 31 Aug 2012 13:56:50 +0000 (09:56 -0400)]
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.
Chuck Short [Tue, 28 Aug 2012 20:06:25 +0000 (15:06 -0500)]
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.
John Griffith [Thu, 16 Aug 2012 21:52:52 +0000 (15:52 -0600)]
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
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.
Rongze Zhu [Thu, 23 Aug 2012 03:00:08 +0000 (03:00 +0000)]
Typo fix in cinder: existant => existent
Impact:
* locale message in cinder/locale/*/LC_MESSAGES/nova.po
* locale message in cinder/locale/nova.po
* Test function names
* Test strings and comments
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
Clark Boylan [Tue, 21 Aug 2012 21:08:57 +0000 (14:08 -0700)]
Add nosehtmloutput as a test dependency.
Adding nosehtmloutput as a test dependency allows nose to output its
results to an html file. This will be used by Jenkins to save logs
on a different server.
John Griffith [Tue, 21 Aug 2012 20:00:18 +0000 (14:00 -0600)]
Migrate volume related quota info in db migration
* Fixes bug 1039615
* Now that quotas are back we need to handle migration
of volume related quota data in the cinder-manage migrate helper
* Only resource types transferred are volumes and gigabytes
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.
RongzeZhu [Fri, 17 Aug 2012 14:24:43 +0000 (22:24 +0800)]
Remove logging in volume tests
Fixes bug #932137
Usage of logging seems to be limited to the check_for_export() tests and
should be to cleanup. check_for_export() raises an exception if there's
a problem and it does nothing if it succeeds. The tests should just
check whether an exception was raised.
Cory Stone [Fri, 17 Aug 2012 14:18:52 +0000 (09:18 -0500)]
Call driver for attach/detach_volume.
The volume driver may want to know which guest is going to be
attached to a volume. The manager now calls down into the driver
on attach_volume and detach_volume.
Josh Durgin [Tue, 14 Aug 2012 19:27:48 +0000 (12:27 -0700)]
add ability to clone images
Given the backend location from Glance, drivers can determine
whether they can clone or otherwise efficiently create a volume
from the image without downloading all the data from Glance.
For now implement cloning for the RBD driver. There's already a
Glance backend that stores images as RBD snapshots, so they're
ready to be cloned into volumes. Fall back to copying all the
data if cloning is not possible.
John Griffith [Tue, 14 Aug 2012 00:35:35 +0000 (18:35 -0600)]
Update SolidFire volume driver
Implements blueprint update-solidfire-driver
* Updates driver to reflect changes in the release version of SF API
* Modify SF naming scheme
* Implement snapshot functionality
* Implement setting qos on create via metadata
* Update/Add tests
Thierry Carrez [Wed, 8 Aug 2012 15:49:44 +0000 (17:49 +0200)]
Add proper support for deprecation messages
Add support for warning once about deprecated options. Use that in
the rootwrap options deprecation message, and move it to run_as_root
so that the deprecated message is emitted once and only if used.
Adopt the nova idiom of internal exceptions mapped to their
corresponding HTTP reponse code in the FaultWrapper middleware,
and also inclusion of their detail message if declared safe for
external exposure.
Josh Durgin [Tue, 14 Aug 2012 19:26:19 +0000 (12:26 -0700)]
add get_location method for images
This is useful for determining whether the backend storage for the
image in Glance is the same as the storage used in a volume driver.
The direct_url is only available in the v2 images API, so add a
version parameter to each request. As more parts of the v2 API are
used, this parameter will become more useful.
Josh Durgin [Mon, 13 Aug 2012 22:13:06 +0000 (15:13 -0700)]
rbd: implement create_volume_from_snapshot
In an upcoming release, rbd will support creating volumes from
snapshots ('cloning'). To clone a snapshot, it must first be
'protected', which means it cannot be deleted until it is unprotected.
A snapshot can only be unprotected if no clones depend on it. Thus,
translate a failure to unprotect into a SnapshotIsBusy exception.
Also check for remaining snapshots before deleting a volume,
and raise VolumeIsBusy if any exist. While we're here, tidy up
the shell arguments to be more readable.
This is backwards compatible since it does not use the new features
unless they are available in the installed version of rbd.
Josh Durgin [Mon, 13 Aug 2012 17:42:27 +0000 (10:42 -0700)]
Fix check_for_export() in non-exporting drivers
This overrides the default check_for_export so that drivers that don't
need to export block devices on the host like Sheepdog and RBD don't
raise a NotImplemented exception when this is called.
Reported-by: Mark Moseley <moseleymark@gmail.com> Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
Change-Id: Icf72f51904e7bdc368bfaf0a91dd0433ce3b1cf6
Avishay Traeger [Sun, 12 Aug 2012 11:55:04 +0000 (14:55 +0300)]
Driver for IBM XIV storage.
Volume driver for IBM XIV storage systems, along with unit tests. The
driver imports the xiv_openstack_box class, which is a closed-source
proxy available separately to IBM XIV customers.
Avishay Traeger [Sun, 12 Aug 2012 08:31:26 +0000 (11:31 +0300)]
storwize-svc: improved test coverage and fixes.
Added test cases to cover more error paths, now providing 97% test
coverage of the storwize-svc driver. Some tests uncovered bugs in the
driver, which are fixed by this patch. In addition, there are some
fixes to the code included which address comments from the submission
of this driver to nova-volume and sync the two versions.
Dan Prince [Tue, 7 Aug 2012 20:25:52 +0000 (16:25 -0400)]
Create unique volumes_dir for testing.
Updates test_volume.py so that we create a uniq volumes_dir for testing.
This avoids polluting the source tree with fake volume UUID's when running
tests.
There are two availability_zone related config options now:
node_availability_zone and storage_availability_zone
While volume API uses node_availability_zone, the scheduler uses
the other, which causes failure in scheduler when these two options
have different values.
This patch removes 'node_availability_zone' so that end user
can specify 'availability zone' when create volumes using
Simple scheduler.
Ronen Kat [Mon, 6 Aug 2012 07:11:10 +0000 (10:11 +0300)]
Use volume driver specific execeptions.
Change generic use of exception.Error in the cinder/volume directory
to specific exceptions. The exceptions used in this patch are:
exception.VolumeBackendAPIException
exception.InvalidInput
exception.InvalidVolume
exceptio.VolumeAtatched
Patch includes updates to the appropriate tests as well.