Inconsistencies in the command line syntax between Storwize/SVC
models and firmware versions caused driver failures. This patch
makes commands compatible to fix driver crashes on the V3700 and
controllers with firmware version 6.3.
ID was being printed as %d instead of %s, causing tests to fail. This
error was previously undetected.
In addition, NetApp tests are failing due to a bug in the suds
package, which is no longer actively maintained. This patch adds skips
to the problematic tests, which should be removed once the issue is
resolved.
The code tested by test_preattach_status_volume was moved, and the
test no longer tested anything relevant (i.e., instead of checking
that the volume is 'attached', the test was changed to test for
'available' since the attach code was moved). This patch, therefore,
deletes that test.
Further, test_run_attach_detach_volume called database functions for
attaching and detaching. This patch changes those calls to call
higher-level functions which in turn call the database functions. This
gives better code coverage and gives the tests more meaning.
Don't see any reason to construct a list for request_spec['volume_id'].
And it indeed causes problems when the scheduler receives a reschedule
request with such a request_spec.
Stephen Mulcahy [Thu, 4 Apr 2013 16:10:16 +0000 (16:10 +0000)]
Allow deletion of backups where the service is None
If a backup is created while both cinder-backup and rabbitmq
are not running, backup records are created in the database with a
service entry of None.
There is no actual backup data created on the service, since the service
isn't running. This fix allows removal of these records without an error
when a delete backup request is received.
This fix also ensures backup status is set to error in the event of
an exception during a delete.
zhangchao010 [Tue, 26 Mar 2013 14:10:19 +0000 (22:10 +0800)]
Change format of some judgments
Because "not volume" will be True if volume id is 0.It can not
distinguish 0 from None.The same to some other judgments where
variable value may be 0.
This patch also does the following changes:
Deletes check storagepool in function _check_conf_file and adds
check default iscsi target IP in function initialize_connection.
Moves create host group from do_setup to initialize_connection.
Changes _get_login_info to be _update_login_info.
Removing this enables use with sqlalchemy 0.8.0
The deprecation is described upstream at:
http://docs.sqlalchemy.org/en/latest/changelog/changelog_08.html#change-ad44af79c886d1bb283042deb64f9cbe
Larry Matter [Thu, 28 Mar 2013 23:29:38 +0000 (16:29 -0700)]
REST session validity not checked in get_volume_info
The fix for bug 1157242 introduced a new bug in Coraid cinder driver
_get_volume_info that the login session is not checked for
validity/timeout. This change addressesthat issue for all
methods in the CoraidRESTClient class.
Cory Stone [Mon, 25 Mar 2013 20:09:37 +0000 (15:09 -0500)]
Add the volume and snapshot gigabytes together.
The quota sync functions were not working correctly for both
snapshots and volumes regarding gigabytes. Each would report
their own count as the total gigabytes.
Now the gigabytes sync is separate from the volume and snapshot
count syncs.
John Griffith [Sun, 24 Mar 2013 20:49:46 +0000 (20:49 +0000)]
Fixed shared gigabytes quota resource.
The shared gigabytes resource between volumes and snapshots wasn't
working properly. The issue was that on update/sync the action item
(volumes or snapshots) would update the resource usages based only on
it's own particular item.
This patch fixes that, and makes the total gigabytes truly shared
between volumesa and snapshots.
Add support to the CoraidDriver to specify a subgroup (with admin
privileges).
Coraid storage orchestration allows you to allocate portions of your
SAN to specific users/groups.
The driver should support this and not assume logging in
as "admin" (equiv to "root").
Will add another parameter to cinder.conf, "coraid_group",
and if present, the driver will authenticate using the specified group
as well as the already available coraid_user parameter.
Yug Suo [Mon, 11 Mar 2013 08:30:07 +0000 (16:30 +0800)]
Fix quota updating when admin deletes common user's volume
Add 'project_id=None' optional argument in QUOTAS related methods.
There are two problems when admin deletes volumes of common user
before fixing this bug:
Firstly, It will get tenant quotas using context.project_id which
results in getting admin's quotas not common user's.
Secondly, It will also get wrong quota usages using context.project_id
when updating common user's quota_usages.
So we could pass into QUOTAS related methods an optional argument to
specify the tenant ID to be affected. And if it's not set, then we
default to drawing the tenant ID from the context.
john-griffith [Sat, 23 Mar 2013 00:01:02 +0000 (18:01 -0600)]
Last driver sync for Folsom and Grizzly
This is the last of the updates that I've been putting
off while trying to handle the core items in Cinder.
This change fixes the ctxt ordering error in volume_types
and also fixes and also changes the internal SolidFire
metadata storage to a single dict instead of a dict of dicts.
This patch exposes a more acurate exception message
when a user has created a manual host entry on a
3PAR system that is in an incorrect 3PAR domain than
the domain that is configured for the 3PAR driver.
The bug complained that it couldn't find a VLUN, when the
actual problem was the host existed in the wrong 3PAR domain.
john-griffith [Thu, 21 Mar 2013 15:48:03 +0000 (09:48 -0600)]
Snapshot reservation sync calls wrong resource.
The snapshot reservations code isn't calling the
correct resource on sync (it's calling volumes). There's
also some problems with the logic being used on the delete/clean up
that are fixed here as well.
Xing Yang [Thu, 21 Mar 2013 04:36:03 +0000 (00:36 -0400)]
Fixed attach volume for EMC SMI-S iSCSI driver
This problem was encountered during Grizzly RC1 testing. The driver
didn't find the correct target IQN. As a result, Nova couldn't find
the matching path in /dev/disk/by-path and therefore detached the volume.
Avishay Traeger [Thu, 21 Mar 2013 13:08:04 +0000 (15:08 +0200)]
Clean up started volume services in tests.
The test_preattach_status_volume test was failing due to state left by
another test. The interim solution was to skip the aforementioned test.
I tracked down the problem to 4 tests in test_admin_actions.py that
call self.start_service('volume', host='test'), and don't stop the
service. Stopping it in all 4 tests solves the problem.
HOWEVER, I don't know why these started services caused this particular
test to fail. I am still working to figure that out, but maybe someone
has an idea.
In cinder/volume/drivers/coraid.py, _login method, if login is
unsuccessful, we try to get the message from an undefined
object "response". Instead we should be getting it from "reply".
Fei Long Wang [Thu, 14 Mar 2013 06:35:10 +0000 (14:35 +0800)]
Fixes Cinder REST API /volumes issue
Issue #1
Once GET variable 'offset' is specified, the API /volume will get an empty
output.
Issue #2
Should validate the GET variable 'limit' before query database to get a
consistent message with Cinder REST API v1.
By current implement, error message is as below if the variable 'limit'
is invalid:
--------------------------------------------------------------------------
{"computeFault": {"message": "The server has either erred or is incapable
of performing the requested operation.", "code": 500}}
After this change, the new message is as below:
--------------------------------------------------------------------------
{"badRequest": {"message": "limit param must be an integer", "code": 400}}
Update Cinder's latest copy of OSLO grizzly stable
This patch updates all the files from oslo under
stable/grizzly but policy.py. policy.py is a high risk
change at this date and it has lots of changes since the
last time we updated it.
john-griffith [Wed, 20 Mar 2013 18:24:36 +0000 (12:24 -0600)]
Speedup solidfire unit tests
The SolidFire driver has a sleep that's used in a retry loop. This
sleep was being called every iteration of the loop though
(instead of just when the call failed).
This made SolidFire the slowest test in the unit tests, and obviously
it's just stupid anyway. So this change fixes that and only performs
the sleep if the call actually failed.