Volume driver for IBM Storwize and SVC storage systems, along with unit
tests and updated sample config file. The unit tests include a
Storwize/SVC management simulator to allow for testing without
controller hardware. Also added a new exception for volume drivers.
Port recent nova-rootwrap changes to cinder-rootwrap, including:
* Move filter definition from Python module to configuration files
* Fix tests execution on Fedora (bug 1027814)
* Remove executable bit on cinder/rootwrap files
This certainly needs a matching change to devstack to pass gating.
Pep8 test reports issue on openstack-common modules, which would
fail CI test. Pep8 test should skip openstack-common and assuming
they are problem-free code. Even it's not, bug/fix should go to
openstack-common first, then resync back to Cinder. Therefore,
Cinder should skip pep8 test for openstack-common code.
Russell Bryant [Tue, 1 May 2012 21:31:26 +0000 (17:31 -0400)]
Use save_and_reraise_exception() from common.
This patch common.excutils from openstack-common, which includes
save_and_reraise_exception(). The patch also converts the code
base to use it from there instead of cinder.utils and then removes
it from cinder.utils.
The initial motivation for this was removing another cinder dependency
from cinder.rpc so that it can eventually be moved to openstack-common.
Russell Bryant [Fri, 1 Jun 2012 18:42:32 +0000 (14:42 -0400)]
Use openstack.common.cfg.CONF.
Part of blueprint common-rpc.
This patch makes the rpc code use the global config object from
openstack-common. Based on some recent discussions on the mailing list,
this may not be the final way configuration handling is done here, but
it is certainly better than the register_opts() hack that is removed by
this patch.
Russell Bryant [Sun, 27 May 2012 00:42:09 +0000 (20:42 -0400)]
Remove cinder.log usage from cinder.rpc.
Part of blueprint common-rpc.
This patch removes the usage of cinder.log from cinder.rpc. This is
necessary before cinder.rpc can be moved to openstack-common. The rpc
logging was not using any of the extra features provided in cinder.log as
far as I can tell, so the changes are very simple.
This is the final dependency. After this change, the rpc code
can be moved to openstack-common without any changes.
Russell Bryant [Wed, 16 May 2012 20:40:05 +0000 (16:40 -0400)]
Add version to scheduler rpc API.
Part of blueprint versioned-rpc-apis.
One side effect of this change was that cinder.scheduler.api was removed
in favor of cinder.scheduler.rpcapi. In this case, the api was just a
direct wrapper around rpc usage. For other APIs, I've been following
the pattern that the rpcapi module provides the rpc client wrapper, and
if any other client-side logic is needed, that's where an api module is
used.
This change pulls in the latest version of the cfg module from
openstack-common includes some formatting changes, spelling fixes,
support for bol/eol spaces in values and support for deprecated
options.
Russell Bryant [Tue, 17 Jul 2012 04:10:29 +0000 (05:10 +0100)]
Make use of openstack.common.jsonutils.
This patch imports jsonutils from openstack-common. It removes the
equivalent code from cinder.utils and then converts the code base to use
jsonutils. The primary motivator for this change was to remove the rest
of the dependencies from cinder.rpc on cinder.utils.
- Alphabetize imports in openstack/common/cfg.py
- make reset() clear defaults and overrides
- automatically create option groups
- allow options to be marked as required
- use a list comprehension instead of map()
Change-Id: Ie17fe855a75b5021b031902aa86031d8ddc06dfd
Reviewed-on: https://review.openstack.org/9867
Approved: James E. Blair <corvus@inaugust.com> Reviewed-by: James E. Blair <corvus@inaugust.com> Tested-by: James E. Blair <corvus@inaugust.com>
Johannes Erdfelt pointed out that impl_qpid wasn't acking messages that
it received. This turned out to be a nasty oversight, resulting in
unbounded message queue growth inside of the python-qpid library. This
fixes it.
Russell Bryant [Tue, 29 May 2012 20:35:35 +0000 (16:35 -0400)]
Move queue_get_for() from db to rpc.
Part of blueprint common-rpc.
The function queue_get_for() is a utility function used by various
consumers of the rpc API. This function lived in the db API, but never
ended up using anything from the database. This patch moves it into the
rpc API so that it can be used by other users of rpc once it moves into
openstack-common.
Russell Bryant [Mon, 7 May 2012 18:10:29 +0000 (14:10 -0400)]
Add base support for rpc API versioning.
Part of blueprint versioned-rpc-apis.
This commit includes the base support for versioned RPC APIs. It
introduces the RpcProxy and RpcDispatcher classes that have common code
for handling versioning on the client and server sides, respectively.
RPC APIs will be converted one at a time using this infrastructure.
Russell Bryant [Wed, 2 May 2012 16:14:56 +0000 (12:14 -0400)]
Make kombu support optional for running unit tests.
Fix bug 838386.
Previously, the unit tests required kombu to be installed to run. This
patch makes it so the unit tests will still complete successfully, even
if kombu is not installed.
Russell Bryant [Tue, 15 May 2012 18:43:18 +0000 (14:43 -0400)]
Stop using cinder.exception from cinder.rpc.
This patch is a part of continuing to remove dependencies from cinder.rpc
on the rest of cinder. One RPC related exception was defined in
cinder.exception, so that was moved to cinder.rpc.common where the rest of
them live. These exceptions were changed to no longer use CinderException
as their base. Instead, there is a new RPCException base.
One other change that should be reviewed closely is the removal of using
cinder.exception.wrap_exception() in cinder.rpc.amqp. As far as I can tell,
this didn't actually do anything since nothing was being passed in to
wrap_exception().
Mark McLoughlin [Mon, 16 Jul 2012 20:30:15 +0000 (21:30 +0100)]
Remove 'cinder-manage config convert'
This convers the old flagfile style config files into the the
new .ini style config files. Since Cinder is new and it's first
release will only support .ini style files there's no need for
such a command.
* New ConfigOpts.find_file() for locating conf files
* Support for directory source of config files
* Provide file extension when when looking for files
* Some refactoring of the cfg cache
* Add caching to openstack.common.cfg
This patch is part of effort to get Cinder to use openstack-common
package. This part is to replace time related functions in utils.py
with 'timeutils' module.
John Griffith [Thu, 12 Jul 2012 15:01:14 +0000 (09:01 -0600)]
Do not duplicate nova docs in cinder
* This modifies the index.rst file to give interim info about cinder
* We were regenerating the nova docs copied over which was bad!
* Fixes bug 1022315
John Griffith [Sat, 7 Jul 2012 00:28:53 +0000 (18:28 -0600)]
Remove unused db api methods
* Implements cinder blueprint remove-extra-dbapi-methods
* Related to cinder initial-db-cleanup:
Remove db api methods associated with removed tables
Modify/Remove tests associated with removed tables
Remove non-existing db API calls from volume/api
John Griffith [Tue, 3 Jul 2012 22:40:15 +0000 (16:40 -0600)]
Create single initial Cinder DB migration file
* Implements blueprint initial-db-cleanup
* Sets initial migration
* Removes unused tables that were brought in from nova
* Condenses db migrations into the single initial migration/creation
* Add explicit mysql set InnoDB in UTF8 loop
* Folow up patches include:
* Remove unused db API calls
* Fix/Remove affected tests
Updated HpSanISCSIDriver to use initialize/terminate methods.
This is based on Nirmal Ranganathan's patch for Nova-volume, which
added a new key 'host' for initialize/terminate volume connection
information in nova to fix bug 992729.
HpSanISCSIDriver should adopt the change in order to work properly.
Also added missing unit tests for the HpSanISCSIDriver.
Clark Boylan [Mon, 2 Jul 2012 21:17:31 +0000 (14:17 -0700)]
Move nova-manage.rst to cinder-manage.rst.
Cinder docs were not building because sphinx was looking for
cinder-manage.rst which did not exist. The file was simply misnamed
and renaming it to cinder-manage.rst allows the docs to build.
John Griffith [Wed, 13 Jun 2012 18:38:35 +0000 (12:38 -0600)]
Add action extensions to support nova integration.
* Adds VolumeActions extension to support key functions
described in blueprint volume-decoupling
* Adds snapshot translations to APIs
* Should be back in sync with 7992
* blueprint compat-extensions
* sleepsonthefloor: Moved added snapshot attributes to extension, added tests
* sleepsonthefloor: Lock pep8==1.1 in tox.ini
Monty Taylor [Mon, 21 May 2012 18:40:18 +0000 (14:40 -0400)]
Fix up coverage and jenkins test running.
The docs job wasn't working because of an un-renamed file.
Coverage wasn't running in jenkins with the xml output file.
Remove the .cache.bundle support that we're moving away from.