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.
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.
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.
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}}
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.
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.
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".
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.
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.
Zhiteng Huang [Wed, 13 Mar 2013 05:58:27 +0000 (13:58 +0800)]
Pull Oslo log fix to enable root logger initialization
Previous log module in Oslo doesn't initialize root logger, which results
in lacking of log message for non-openstack library (such as stevedore).
This patch pull latest log module from Oslo, which has recently merged a
change to enable root logger initialization.
Notice that this change also includes one log modules fix in Oslo which
'unignore' log_format setting. As a result, one may experience log format
change when using devstack. To get old log format back, simply assign
a NULL string (aka nothing) to 'log_format' configure option in cinder.conf.
For example, just append cinder.conf with one new line 'log_format = '.
Dan Prince [Tue, 19 Mar 2013 23:37:47 +0000 (19:37 -0400)]
Updates to OSAPI sizelimit middleware.
Updates the OSAPI sizelimit middleware so that we use avoid calling
len on a request body which could cause a really large request
to get buffered into memory.
Also updates the middleware to return HTTP 413 which is a more
correct error code in this case (previously it returned just 400).
Matthew Treinish [Wed, 13 Mar 2013 17:28:10 +0000 (13:28 -0400)]
Switch all uses of 422 response code to 400.
The 422 response is normally only for WebDAV, and these types of
errors should normally return a 400 code, HTTPBadRequest. This
commit goes through all the remaining 422 codes and changes them
to 400 responses.
The patch fixes issues when desassigning target to initiators
in the terminate_connection method. The method now takes
the right parameter coming from provider location.
zhangchao010 [Fri, 15 Mar 2013 15:14:39 +0000 (23:14 +0800)]
Use self.configuration to support the multi-backend case
Use self.configuration instead of using FLAGS directly to make
the driver work in a multi backend environment.
And remove three repeated lines:en = out.split('\r\n')
Kurt Martin [Fri, 15 Mar 2013 21:40:10 +0000 (14:40 -0700)]
Fix typo in persona valid values
The 3PAR drivers have a persona extra spec that has a valid
values with a typo in it. The value '11 - VMWare' should be
"11 - VMware', note the lower case 'w'.
Eric Harney [Mon, 18 Mar 2013 16:21:40 +0000 (12:21 -0400)]
Allow snapshot_delete for NFS/GlusterFS drivers
RemoteFsDriver should allow snapshot_delete, since snapshot_create
for NFS and GlusterFS volumes will create a snapshot in the error
state which cannot be deleted afterward.
snapshot_delete() should allow this to be removed rather than
throwing NotImplementedError.
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.
This fixes a problem with the 3par drivers where creating
a 3par host was failing but there was no message. The driver
would fail to find the host after the creation failed and the
log entry would show that the host didn't exist. The real
error was failing to create the host.
Avishay Traeger [Thu, 14 Mar 2013 11:44:19 +0000 (13:44 +0200)]
Fix ISCSIDriver rescan.
Cinder fails to rescan iSCSI targets after running copy_image_to_volume
or copy_volume_to_image with the generic iSCSI implementation, due to
a missing comma.
Avishay Traeger [Tue, 5 Mar 2013 09:23:01 +0000 (11:23 +0200)]
Storwize/SVC driver fix for multibackend scenario.
In order for the Filter scheduler to be used to it's full advantage
Cinder drivers need to move away from using FLAGS directly and switch
to appending their specific options to self.configuration.
zhangchao010 [Mon, 4 Mar 2013 16:07:41 +0000 (00:07 +0800)]
Fix bugs for Huawei driver
This fixes two bugs for Huawei iscsi driver.
(1)If firstly we map LUN 1(just not LUN 0) to host,we can also
find LUN 0 mapped,whose device path is '-'.Then we will failed
to map a real LUN 0.So,we avoid mapping LUN 0 to host by setting
every volume's host LUN ID larger than 0,instead of generating it
automatically.
(2)Check valid size of resource pools when creating snapshot and
make sure it larger than 1 GB.
Avishay Traeger [Thu, 7 Mar 2013 17:18:54 +0000 (19:18 +0200)]
Do not use prefix to lookup host in Storwize/SVC.
Currently, the Storwize/SVC driver creates a host name prefix for host
objects on the back-end, and uses that to look up hosts. However, if a
host was already created with a different name (for example, manually
by an admin), the host creation operation will fail, as a host with
that connection information already exists. Instead, we look up a host
based on available connection information.
Michael J Fork [Fri, 8 Mar 2013 05:59:23 +0000 (05:59 +0000)]
Update oslo rpc libraries
Update oslo rpc libraries to capture changes, primarly motivated
by secret=True flag on password config options. Skipping broken,
invalid test case while working on correct fix.
This patch fixes a few issues with the LH driver.
1) attach wasn't working because there was no host
created.
2) get_volume_stats didn't exist.
3) fixed the unit tests to work with the new config
access.
Dan Prince [Thu, 7 Mar 2013 18:07:56 +0000 (13:07 -0500)]
Update tox.ini to support RHEL 6.x.
In order to support running unit tests on RHEL 6.x we need to patch
eventlet with contrib/redhat-eventlet.patch. We already
have support for this in the tools/install_venv_common.py but we
need to make a couple changes to allow tox to consume this:
1) Sync in the latest intall_venv_common.py from oslo. This changes
patch to use the -N option (ignore already applied patches) and
makes it safe to call the patching function more than once.
2) Add a new patch_tox_venv.py script in tools.
3) Update tox.ini to call patch_tox_venv.py before it runs tests and
coverage.
NOTE: This will hopefully go away eventually once this patch lands:
Zhiteng Huang [Fri, 8 Mar 2013 08:54:03 +0000 (16:54 +0800)]
Pull newly merged Olso update for 'is' operator
A recent update to common/scheduler/filters/extra_specs_ops.py in
Oslo added new 'is' operator to allow Boolean check. The original
commit message was:
"Boolean values for capabilities don't work because extra_specs are
all converted to unicode. The scheduler will then check, for example,
if the boolean 'True' is equal to the unicode string 'True', and will
always return False. This patch allows admins to specify '<is> True'
in extra_specs, which will compare successfully to boolean True."
Notice extra_specs_ops now relies on strutils from Olso, so this
change pull strutils from Oslo as well.
Monty Taylor [Mon, 11 Feb 2013 19:57:27 +0000 (13:57 -0600)]
Use nose and openstack nose plugin.
It's a little silly since we're working on removing nose for testr,
but it turns out that the old test run wrapper was in use here, which was
causing all sorts of havoc.
The 3PAR drivers weren't updated when the multi backend
patch landed on G3 day. This patch implements the new config
mechanism to accessing FLAGS, so that it works when an admin
has multiple drivers active.
Xing Yang [Sun, 3 Mar 2013 05:06:29 +0000 (00:06 -0500)]
Fixed copy image to volume and clone volume.
This patch fixed the following issues in EMC driver found during G3 testing:
1. VNX array has two storage processors and it is doing load balancing when
attaching a LUN to a host. The storage processor used to attach a LUN to a
host is different from the one discovered by the driver sometimes, causing
Copy Image to Volume to fail.
2. The clone relationship is removed after a volume is successfully
cloned. However, this happens too soon sometimes before the cloned volume
is fully synced with the source volume. The fix is to wait until it is
fully synced.