]> review.fuel-infra Code Review - openstack-build/cinder-build.git/log
openstack-build/cinder-build.git
9 years agoFix HDS HNAS driver logging password as plain text
Tiago Pasqualini [Wed, 2 Sep 2015 17:58:03 +0000 (14:58 -0300)]
Fix HDS HNAS driver logging password as plain text

HDS HNAS driver logs every command that is sent to HNAS. Some
commands need the HNAS password, so the driver ends up logging
this password as plain text. This patch changes these commands
syntax so that oslo_utils.strutils.mask_password can successfully
mask this password.

Change-Id: I720701d8ee2b944ad498917f668160894f1f07cc
Closes-Bug: #1491524

9 years agoMerge "Fix url in API response to get original"
Jenkins [Mon, 31 Aug 2015 12:36:30 +0000 (12:36 +0000)]
Merge "Fix url in API response to get original"

9 years agoMerge "Clean up line continuation in Storwize driver"
Jenkins [Sun, 30 Aug 2015 14:19:37 +0000 (14:19 +0000)]
Merge "Clean up line continuation in Storwize driver"

9 years agoMerge "Enhance deletion efficiency when backup init host"
Jenkins [Sun, 30 Aug 2015 12:57:46 +0000 (12:57 +0000)]
Merge "Enhance deletion efficiency when backup init host"

9 years agoMerge "Add the ability to update type public status"
Jenkins [Sun, 30 Aug 2015 09:19:27 +0000 (09:19 +0000)]
Merge "Add the ability to update type public status"

9 years agoMerge "Validate filters in snapshot*, backup* in db.api"
Jenkins [Sat, 29 Aug 2015 23:56:56 +0000 (23:56 +0000)]
Merge "Validate filters in snapshot*, backup* in db.api"

9 years agoMerge "get_replication_updates call to driver is wrong"
Jenkins [Sat, 29 Aug 2015 23:56:46 +0000 (23:56 +0000)]
Merge "get_replication_updates call to driver is wrong"

9 years agoMerge "Volume status management during migration"
Jenkins [Sat, 29 Aug 2015 21:55:01 +0000 (21:55 +0000)]
Merge "Volume status management during migration"

9 years agoMerge "Dell SC: init_volume stale volume info fix"
Jenkins [Sat, 29 Aug 2015 18:28:40 +0000 (18:28 +0000)]
Merge "Dell SC: init_volume stale volume info fix"

9 years agoMerge "Efficient volume copy for generic volume migration"
Jenkins [Sat, 29 Aug 2015 16:19:23 +0000 (16:19 +0000)]
Merge "Efficient volume copy for generic volume migration"

9 years agoMerge "Adds framework for get_capabilities() feature"
Jenkins [Sat, 29 Aug 2015 16:19:12 +0000 (16:19 +0000)]
Merge "Adds framework for get_capabilities() feature"

9 years agoMerge "Cinder Nested Quota Driver"
Jenkins [Sat, 29 Aug 2015 16:18:41 +0000 (16:18 +0000)]
Merge "Cinder Nested Quota Driver"

9 years agoMerge "Add retries to delete a volume in the RBD driver"
Jenkins [Sat, 29 Aug 2015 16:18:30 +0000 (16:18 +0000)]
Merge "Add retries to delete a volume in the RBD driver"

9 years agoMerge "Update volume status AFTER terminate_connection is done"
Jenkins [Sat, 29 Aug 2015 02:43:57 +0000 (02:43 +0000)]
Merge "Update volume status AFTER terminate_connection is done"

9 years agoMerge "Prevent that all backup objects are deleted"
Jenkins [Sat, 29 Aug 2015 02:43:40 +0000 (02:43 +0000)]
Merge "Prevent that all backup objects are deleted"

9 years agoMerge "Sheepdog: improve create and delete operation"
Jenkins [Sat, 29 Aug 2015 02:42:28 +0000 (02:42 +0000)]
Merge "Sheepdog: improve create and delete operation"

9 years agoMerge "Sheepdog: Add class for dog command executor"
Jenkins [Sat, 29 Aug 2015 02:41:24 +0000 (02:41 +0000)]
Merge "Sheepdog: Add class for dog command executor"

9 years agoMerge "Allow CG without snapshot to be deleted"
Jenkins [Sat, 29 Aug 2015 02:41:14 +0000 (02:41 +0000)]
Merge "Allow CG without snapshot to be deleted"

9 years agoMerge "Local cache feature of Oracle ZFSSA drivers"
Jenkins [Fri, 28 Aug 2015 23:26:39 +0000 (23:26 +0000)]
Merge "Local cache feature of Oracle ZFSSA drivers"

9 years agoMerge "Add manage/unmanage volume support for Nimble"
Jenkins [Fri, 28 Aug 2015 23:24:49 +0000 (23:24 +0000)]
Merge "Add manage/unmanage volume support for Nimble"

9 years agoMerge "LeftHand: Adding Consistency Group Support"
Jenkins [Fri, 28 Aug 2015 23:17:31 +0000 (23:17 +0000)]
Merge "LeftHand: Adding Consistency Group Support"

9 years agoMerge "Imported Translations from Transifex"
Jenkins [Fri, 28 Aug 2015 23:13:47 +0000 (23:13 +0000)]
Merge "Imported Translations from Transifex"

9 years agoMerge "Rework Scality SOFS driver to use RemoteFS class"
Jenkins [Fri, 28 Aug 2015 22:51:22 +0000 (22:51 +0000)]
Merge "Rework Scality SOFS driver to use RemoteFS class"

9 years agoget_replication_updates call to driver is wrong
John Griffith [Fri, 28 Aug 2015 15:19:34 +0000 (09:19 -0600)]
get_replication_updates call to driver is wrong

The call to driver.get_replication_updates in manager.py
omitted the context argument from the call.

This fixes that by adding the context argument to the call.

Change-Id: I1e59e4a7e64fee8f26ac27a3eb79683d7bccdce4
Closes-Bug: #1489931

9 years agoMerge "Skip intermittent VMDK tests"
Jenkins [Fri, 28 Aug 2015 19:38:32 +0000 (19:38 +0000)]
Merge "Skip intermittent VMDK tests"

9 years agoMerge "Fix volume copy for 'virtual' volumes in DotHill"
Jenkins [Fri, 28 Aug 2015 16:40:46 +0000 (16:40 +0000)]
Merge "Fix volume copy for 'virtual' volumes in DotHill"

9 years agoFix url in API response to get original
Takeaki Matsumoto [Tue, 25 Aug 2015 07:47:01 +0000 (16:47 +0900)]
Fix url in API response to get original

This changes the url in the API response to get the original value of
redirection if the header 'X-Forwarded-Host' exists.

Change-Id: I10877522db5df66d14c01487de6297f1336cecaf
Closes-Bug: 1488373

9 years agoEfficient volume copy for generic volume migration
Mitsuhiro Tanino [Mon, 27 Jul 2015 03:15:58 +0000 (23:15 -0400)]
Efficient volume copy for generic volume migration

Currently Cinder uses dd command for data copy of volume migration,
but the copy always copy full blocks even if the source data contains
many null and zero blocks. The dd command has an option conv=sparse
to skip null or zero blocks for more efficient data copy.

However, if the destination volume is not zero cleared beforehand,
we should copy full block from source to dest volume to cleanup dest
volume in order to avoid security issue.
If the volume pre-initilization(zero cleared) is ensured beforehand,
we can skip copy of null and zero blocks to destination volume by
using sparse copy.

In order to use this option properly, we have to check
sparse_copy_volume capability for destination backend driver via
RPC API before volume copy.

This patch also adds sparse_copy_volume capability flag into volume
stats of LVM and NFS drivers to enable efficient copy for these
backends.

Implements: blueprint efficient-volume-copy-for-cinder-assisted-migration
Change-Id: Ic343860d37276907724fce3a9c0f7c9d034c4aaa

9 years agoMerge "Add unit test for backup get_all"
Jenkins [Fri, 28 Aug 2015 09:43:47 +0000 (09:43 +0000)]
Merge "Add unit test for backup get_all"

9 years agoMerge "Incremental backup improvements for L"
Jenkins [Fri, 28 Aug 2015 02:10:21 +0000 (02:10 +0000)]
Merge "Incremental backup improvements for L"

9 years agoVolume status management during migration
Vincent Hou [Thu, 28 May 2015 03:18:09 +0000 (11:18 +0800)]
Volume status management during migration

This patch proposes a new implementation for the status and
the migration_status for volumes.

* The initial migration_status is None, meaning no migration has been
done; Migration_status 'error' means the previous migration failed.
Migration_status 'success' means the previous migration succeeded.

* If the key 'lock_volume' is set to True from the request, the volume
status should be set to 'maintenance' during migration and goes
back to its original status after migration. Otherwise, if the
key 'lock_volume' is set to False, the volume status will remain the
same as its original status. The default value for lock_volume is
False and it applies to the available volume.

* From the REST's perspectives, all the create, update and delete
actions are not allowed if the volume is in 'maintenance', because
it means the volume is out of service. If it is not in maintenance
mode, the migration can be interrupted if other requests are
issued, e.g. attach. For the termination of migration, another
patch will target to resolve it.

DocImpact
APIImpact The key 'lock_volume' has been added into the API,
telling the volume to change the status to 'maintenance' or not.
The migration_status has been added into results returned
from volume list command, if the request is from an admin.

Change-Id: Ia86421f2d6fce61dcfeb073f8e7b9c9dde517373
Partial-implements: blueprint migration-improvement

9 years agoMerge "Extend unit tests for backup get_all"
Jenkins [Fri, 28 Aug 2015 01:05:59 +0000 (01:05 +0000)]
Merge "Extend unit tests for backup get_all"

9 years agoClean up line continuation in Storwize driver
Jacob Gregor [Thu, 27 Aug 2015 21:40:30 +0000 (16:40 -0500)]
Clean up line continuation in Storwize driver

There are multiple places in the Storwize driver where '\' is used
for line  continuation. This patch replaces '\' with '()' to make
the code consistent.

Change-Id: Ic64f0562f1e25e499c4fecd366998e31e8ebee7a

9 years agoLeftHand: Adding Consistency Group Support
Alex O'Rourke [Thu, 6 Aug 2015 16:21:58 +0000 (09:21 -0700)]
LeftHand: Adding Consistency Group Support

Adds support for Consistency Groups to the HP LeftHand driver

create_consistencygroup_from_src will not be implemented until
the newest version of the LeftHand API is released

Implements: blueprint hp-lefthand-add-consistency-groups
Change-Id: Id86e86f9bee4e5ce80d739a586037c989e73e379

9 years agoSkip intermittent VMDK tests
Jon Bernard [Thu, 27 Aug 2015 20:03:57 +0000 (16:03 -0400)]
Skip intermittent VMDK tests

The test 'test_create_backing_from_stream_optimized_file' is failing
intermittently in the gate, which causes delays in the review process of
other patches.  Given the proximity to feature freeze, I think it's
appropriate to temporarily disable these tests until a proper solution
can be found.

Change-Id: I056b64ad09bb4eb921638e2a664eda2c97daa42d
Partial-Bug: #1488690

9 years agoRework Scality SOFS driver to use RemoteFS class
Jordan Pittier [Fri, 17 Jul 2015 09:48:23 +0000 (11:48 +0200)]
Rework Scality SOFS driver to use RemoteFS class

This change is big but the logic is simple. The previous version of
this driver reimplemented most of what is now in the RemoteFS base
class. SOFS stands for Scale Out FileSystem and is based on FUSE, so
it's only natural to leverage the RemoteFS class.

Change-Id: I26935061e860a477f98a61a935e67281a3a6f48e

9 years agoAdds framework for get_capabilities() feature
Mitsuhiro Tanino [Mon, 13 Jul 2015 15:17:00 +0000 (11:17 -0400)]
Adds framework for get_capabilities() feature

This patch adds a base framework of capabilities reporting
feature. The get_capabilities RPC API returns dictionary
which is consisted of two parts.

First part includes static backend capabilities which are
obtained by get_volume_stats(). Second part is properties
which includes parameters correspond to extra specs.
This properties part is consisted of cinder standard
capabilities and vendor unique properties. These properties
are created via these two methods.

* _init_standard_capabilities()
* _init_vendor_properties()

Since _init_standard_capabilities() only exposes cinder
standard capabilities into the properties dictionary,
each backend driver needs to expose their own properties
by overriding _init_vendor_properties().

ex. capabilities
{
   'host_name': 'block1',
   'volume_backend_name': 'lvm',
   'pool_name': 'pool',
   'driver_version': '2.0.0',
   'storage_protocol': 'iSCSI',
   'properties:' {
        'thin_provisioning': {
            'title': 'Thin Provisioning',
            'description': 'Sets thin provisioning.',
            'type': 'boolean'},
        'compression': {
            'title': 'Compression',
            'description': 'Enables compression.',
            'type': 'boolean'},
        'qos': {
            'title': 'QoS',
            'description': 'Enables QoS.',
            'type': 'boolean'},
        'replication': {
            'title': 'Replication',
            'description': 'Enables replication.',
            'type': 'boolean'},
        'vendor:compression_type': {
            'title': 'Compression type',
            'description': 'Specifies compression type.',
            'type': 'string',
            'enum': ["lossy", "lossless", "special"]},
        'vendor:minIOPS': {
            'title': 'Minimum IOPS QoS',
            'description': 'Sets minimum IOPS if QoS is enabled.',
            'type': 'integer',
            'minimum': 10,
            'default': 100},
   }
}

DocImpact
Implements: blueprint get-volume-type-extra-specs
Change-Id: I7a019f0296511bfda5b373e508071853d85e2376

9 years agoAdd retries to delete a volume in the RBD driver
Yuriy Nesenenko [Thu, 27 Aug 2015 14:39:10 +0000 (17:39 +0300)]
Add retries to delete a volume in the RBD driver

This patch adds retries to delete a volume. After N tries of a
volume deletion failed we raise VolumeIsBusy exception.

Change-Id: I9499be0c5985f9e8a3e55d1c9add01ad5cd11789

9 years agoMerge "Port test_nfs to Python 3"
Jenkins [Thu, 27 Aug 2015 16:14:20 +0000 (16:14 +0000)]
Merge "Port test_nfs to Python 3"

9 years agoDell SC: init_volume stale volume info fix
Tom Swanson [Tue, 25 Aug 2015 20:13:31 +0000 (15:13 -0500)]
Dell SC: init_volume stale volume info fix

In init_volume the volume information becomes stale after the volume
is mapped to a server.  The volume should be updated before being sent
to unmap.

The unmap function was testing for the volume being active.  This
should not be required.  It is unlikely an inactive volume will have
mappings but not impossible.  This check has been removed.

Removed LOG.error from _find_mapping_profiles as the API returning
an error is fine if the volume is inactive.  Plus we were not failing
on it.  The LOG.debug is sufficient.

Change-Id: I3ff8447360cea134e1008fa8db5cd912aa5effd3

9 years agoValidate filters in snapshot*, backup* in db.api
Michal Dulko [Wed, 26 Aug 2015 12:10:00 +0000 (14:10 +0200)]
Validate filters in snapshot*, backup* in db.api

In db.sqlalchemy.api methods filters passed from c-api are applied
directly to the DB query. From all snapshot_get_all* methods filter
validation was done only for snapshot_get_all method. Backup methods
are missing the validation completely. This is causing an exception
about unknown DB column and returns 500 HTTP error when calling API
with an incorrect filter from an admin context (without admin context
filters are validated on an c-api level). This commit adds such
validation to snapshot_get_by_host, snapshot_get_all_by_project and
backup_get_all* methods to prevent such failures. Regression unit tests
are also added.

APIImpact
Closes-Bug: 1469678
Change-Id: I3a9dc6a430f2a149073592487437721a39f0afc5

9 years agoMerge "Implement function to manage/unmanage snapshots"
Jenkins [Thu, 27 Aug 2015 14:47:59 +0000 (14:47 +0000)]
Merge "Implement function to manage/unmanage snapshots"

9 years agoFix volume copy for 'virtual' volumes in DotHill
nikeshm [Thu, 27 Aug 2015 09:59:02 +0000 (15:29 +0530)]
Fix volume copy for 'virtual' volumes in DotHill

Dot Hill volumes allocated from virtual storage pools require
different handling than volumes allocated from vdisks when
cloning volumes or snapshots.

This change ensures that the correct API calls are used based on
the dothill_backend_type property declared in the cinder.conf.

Change-Id: If2ac15d1d6426948ff439815e85411fbbb95215b
Closes-Bug: #1489303
Co-Authored-By: Chris Maio <chris.maio@dothill.com>
Co-Authored-By: Lakshman <lakshminarayanat@vedams.com>
9 years agoMerge "Remove unused dependency discover."
Jenkins [Thu, 27 Aug 2015 12:39:29 +0000 (12:39 +0000)]
Merge "Remove unused dependency discover."

9 years agoMerge "adds user_id to check_is_admin"
Jenkins [Thu, 27 Aug 2015 11:36:00 +0000 (11:36 +0000)]
Merge "adds user_id to check_is_admin"

9 years agoMerge "Replace urllib.unquote with urllib.parse.unquote"
Jenkins [Thu, 27 Aug 2015 09:35:25 +0000 (09:35 +0000)]
Merge "Replace urllib.unquote with urllib.parse.unquote"

9 years agoMerge "Update NetApp Drivers to use netapp_lib"
Jenkins [Thu, 27 Aug 2015 09:30:42 +0000 (09:30 +0000)]
Merge "Update NetApp Drivers to use netapp_lib"

9 years agoImported Translations from Transifex
OpenStack Proposal Bot [Thu, 27 Aug 2015 06:19:38 +0000 (06:19 +0000)]
Imported Translations from Transifex

For more information about this automatic import see:
https://wiki.openstack.org/wiki/Translations/Infrastructure

Change-Id: I1a5b97ef7e7a80044a74529ac61d4a6091b25d96

9 years agoMerge "Add Cinder API wsgi application"
Jenkins [Thu, 27 Aug 2015 02:29:12 +0000 (02:29 +0000)]
Merge "Add Cinder API wsgi application"

9 years agoMerge "Nested Quota Driver: Get Project Hierarchy"
Jenkins [Thu, 27 Aug 2015 01:13:43 +0000 (01:13 +0000)]
Merge "Nested Quota Driver: Get Project Hierarchy"

9 years agoMerge "Filter out extra-specs from type get for non-admin"
Jenkins [Thu, 27 Aug 2015 00:25:42 +0000 (00:25 +0000)]
Merge "Filter out extra-specs from type get for non-admin"

9 years agoMerge "Parameter osapi_max_limit is always used by default"
Jenkins [Thu, 27 Aug 2015 00:09:07 +0000 (00:09 +0000)]
Merge "Parameter osapi_max_limit is always used by default"

9 years agoMerge "Add pagination to snapshots"
Jenkins [Wed, 26 Aug 2015 22:08:00 +0000 (22:08 +0000)]
Merge "Add pagination to snapshots"

9 years agoCinder Nested Quota Driver
Vilobh Meshram [Fri, 24 Jul 2015 04:09:02 +0000 (21:09 -0700)]
Cinder Nested Quota Driver

Cinder Nested Quota Driver patch adds hierarchical support. Quota
API's now can also handle hierarchical projects.

For the first pass only a user with admin role in a parent project
will be able to update and delete its children quotas.

Even after these changes are made, the existing DbQuotaDriver
functionalities will remain unchanged. The same driver will be able to
handle flat projects as well as hierarchical projects.

Co-Authored-By: Erickson Santos <erickson@lsd.ufcg.edu.br>
Change-Id: Ie669d7d74d40c0ff1f1e54f673e7f3ae96b3b950
Implements: bp cinder-nested-quota-driver

9 years agoAdd manage/unmanage volume support for Nimble
Sonia Ghanekar [Wed, 26 Aug 2015 17:08:53 +0000 (10:08 -0700)]
Add manage/unmanage volume support for Nimble

This patch adds support for volume manage/unmanage for a Nimble
ISCSI driver. It uses an additional field 'agent-type' on the
backend for distinguishing volumes managed by the Nimble driver.
While managing an existing volume it sets the agent-type to
Openstack and while unmanaging sets it back to None.

Since this field was not used in the earlier versions, in order
to be backward compatible, during the initialization of the driver,
the 'agent-type' is updated to Openstack for all the existing
Nimble volumes.

Implements: blueprint nimble-add-volume-manage-unmanage-support
Change-Id: Ia960f2a2911288409977324cfc287c216b60b589

9 years agoMerge "TemporaryImages to inspect image before conversion"
Jenkins [Wed, 26 Aug 2015 16:12:08 +0000 (16:12 +0000)]
Merge "TemporaryImages to inspect image before conversion"

9 years agoMerge "Dont eager load volume type specs on volume list"
Jenkins [Wed, 26 Aug 2015 16:02:45 +0000 (16:02 +0000)]
Merge "Dont eager load volume type specs on volume list"

9 years agoMerge "Cleaning up CONF.register_opts() in compute/__init__.py"
Jenkins [Wed, 26 Aug 2015 16:02:23 +0000 (16:02 +0000)]
Merge "Cleaning up CONF.register_opts() in compute/__init__.py"

9 years agoLocal cache feature of Oracle ZFSSA drivers
diem_tran [Wed, 12 Aug 2015 19:27:10 +0000 (15:27 -0400)]
Local cache feature of Oracle ZFSSA drivers

The feature enables ZFSSA drivers to create and reuse cache volumes
on ZFSSA backends. It takes advantage of ZFSSA snapshot and clone,
which can be created almost instantly from an existing volume.

Cache volumes will be removed if it has no clone. Custom schemas
and WebDAV properties are used to store cache volumes' properties.

DocImpact
Change-Id: I06b21a3f760abf540246971c00d923eda8fe57e3
Implements: blueprint oracle-zfssa-local-cache

9 years agoMerge "Fix backup list all_tenants=0 filtering for admin"
Jenkins [Wed, 26 Aug 2015 12:46:55 +0000 (12:46 +0000)]
Merge "Fix backup list all_tenants=0 filtering for admin"

9 years agoMerge "Fix nimble storage volume stats reporting"
Jenkins [Wed, 26 Aug 2015 12:32:21 +0000 (12:32 +0000)]
Merge "Fix nimble storage volume stats reporting"

9 years agoMerge "Add more Rally scenarios to run"
Jenkins [Wed, 26 Aug 2015 11:21:23 +0000 (11:21 +0000)]
Merge "Add more Rally scenarios to run"

9 years agoReplace urllib.unquote with urllib.parse.unquote
Vipin Balachandran [Wed, 26 Aug 2015 10:42:53 +0000 (16:12 +0530)]
Replace urllib.unquote with urllib.parse.unquote

This patch replaces urllib.unquote with urllib.parse.unquote
in the vmdk driver.

Commit d08c7ffe52e3ee211e425c363200998704726e58 replaced
urllib and urllib2 with six.moves.urllib and changed urllib.
unquote to urllib.parse.unquote but missed one call site
in the vmdk driver since the code which introduced it was
under review at the same time. Due to this, if we set an
optional parameter 'vmware_cluster_name', the driver init
will fail with AttributeError.

This patch also adds a unit test which would have caught
this error during gate check.

Change-Id: I310456f5d677c6e100a91efc6228c533cb5bf208
Closes-Bug: #1488916

9 years agoRemove unused dependency discover.
Robert Collins [Wed, 26 Aug 2015 09:08:23 +0000 (21:08 +1200)]
Remove unused dependency discover.

Change-Id: I271fe5958411f20f24eecebdfc9af2be238aa9e6

9 years agoUpdate volume status AFTER terminate_connection is done
Zhiteng Huang [Tue, 7 Jul 2015 08:31:32 +0000 (16:31 +0800)]
Update volume status AFTER terminate_connection is done

Current volume API terminate_connection() updates volume's status in
DB before volume driver finishes terminate_connection().  In cases
where volume driver needs some time complete terminate_connection(),
it means volume becomes 'available' before volume driver done cleaning
up.  This fix changes the order of 'unreserve_volume' (updating DB)
and driver's terminate_connection to make sure when volume is marked
'available' the client has done cleaning connection.

Note that terminate_connection volume RPC API is a synchronized call,
but volume manager/driver doesn't return any value to caller.  What's
more, when volume API extension calls volume terminate_connection API,
it doesn't expect return values, so this change removes unnecessary
return values from volume API.

Closes-bug: #1488857

Change-Id: If79f7ce9a7d238b41be4c6befa0f3cac30ab06a3

9 years agoMerge "Add https options and minor code changes"
Jenkins [Wed, 26 Aug 2015 07:36:43 +0000 (07:36 +0000)]
Merge "Add https options and minor code changes"

9 years agoAdd unit test for backup get_all
Vipin Balachandran [Wed, 26 Aug 2015 07:26:14 +0000 (12:56 +0530)]
Add unit test for backup get_all

This patch adds a missing unit test for backup get_all to test
the case where the option 'all_tenants' is true and the context
is non-admin.

Change-Id: I282641c45871c980588240a64be45409de4835d0

9 years agoIncremental backup improvements for L
wanghao [Thu, 4 Jun 2015 09:50:12 +0000 (17:50 +0800)]
Incremental backup improvements for L

1. Add 'is_incremental=True' and 'has_dependent_backups=True/False' to
response body of querying.
2. Add parent_id to notification system.

Since we need to get volume has_dependent_backups value when querying
volume detail list, to reduce the performance impact, add index to
parent_id column in backup table.

APIImpact

When showing backup detail it will return additional info
"is_incremental": True/False and "has_dependent_backups": True/False

DocImpact
Change-Id: Id2fbf5616ba7bea847cf0443006800db89dd7c35
Implements:  blueprint cinder-incremental-backup-improvements-for-l

9 years agoSheepdog: improve create and delete operation
Teruaki Ishizaki [Tue, 30 Jun 2015 06:38:46 +0000 (15:38 +0900)]
Sheepdog: improve create and delete operation

This patch changes create_volume and delete_volume to use
SheepdogClient Class method for detailed Error logs.

SheepdogClient Class methods are implemented to enable
fine grained Error handling.

So, the administrators are enabled to do error recovery
more easily using those logs.

Change-Id: I54d320475c143c5f96d70abd7314320ef79f55bf
Depends-On: I738c23b9213ebd781ab399a3198551c8b8dfe382

9 years agoImplement function to manage/unmanage snapshots
wanghao [Wed, 31 Dec 2014 04:06:53 +0000 (12:06 +0800)]
Implement function to manage/unmanage snapshots

1. Add snapshots manage action in contrib api and unmanage
action in API extension.
2. Implement manage_existing_snapshot in manager and flow
to import existing snapshots.
3. Add manage/unmanage support in the LVM driver

Implements: blueprint support-import-export-snapshots
DocImpact
APIImpact
Similar to volume manage/unmanage.
Change-Id: Ib6cf8392b0bc99f803316991f31a75788677e9cf

9 years agoSheepdog: Add class for dog command executor
Teruaki Ishizaki [Tue, 23 Jun 2015 07:54:42 +0000 (16:54 +0900)]
Sheepdog: Add class for dog command executor

This patch adds SheepdogClient Class for executing
Sheepdog management command 'dog'.

In addition, we have implemented check_for_setup_error
with the Class's method.

Change-Id: I738c23b9213ebd781ab399a3198551c8b8dfe382
Depends-On: I8f6a82b046cfd1268092cc79111b9faedafe3c8b

9 years agoMerge "Assisted volume migration for Oracle ZFSSA drivers"
Jenkins [Wed, 26 Aug 2015 06:06:47 +0000 (06:06 +0000)]
Merge "Assisted volume migration for Oracle ZFSSA drivers"

9 years agoDont eager load volume type specs on volume list
Cory Stone [Wed, 26 Aug 2015 00:05:36 +0000 (19:05 -0500)]
Dont eager load volume type specs on volume list

Some drivers need extra specs loaded on create and the session could be
closed by the time they access them. However for a volume list, eager
loading these attributes causes a severe performance penalty.

Move the eager load to the single volume get case.

Change-Id: I6fbf5508684a01a7df7930d4f1b4a47adeefe521
Closes-Bug: 1486289

9 years agoFilter out extra-specs from type get for non-admin
John Griffith [Wed, 19 Aug 2015 17:42:40 +0000 (17:42 +0000)]
Filter out extra-specs from type get for non-admin

Currently when a get_volume type call is made to the
db api, we don't check context and auto-fill the
extra-specs info for that type.

Extra specs are intended to be admin only info, but anybody
that calls the API directly to list or get volume-types is
also given this info which is not intended.

This patch just adds a context check to the db api's
private extra-specs builder method.  In the case of
non-admin, we just skip adding the extra-specs.

Change-Id: Ia46695a6c890c06d94e6903ed9c54794107fa132
Closes-Bug: #1351971
Closes-Bug: #1475285

9 years agoPrevent that all backup objects are deleted
Masaki Kanno [Tue, 25 Aug 2015 23:56:55 +0000 (08:56 +0900)]
Prevent that all backup objects are deleted

All backup objects of a project are deleted by this bug. The issue occurs
when Swift is a backend. The below is reproduction steps of the issue.

Step 1: Create a backup from a volume.
The creation of the backup may fail by some kind of causes. If the case is
a failure in put_container() in ChunkedBackupDriver._create_container(),
backup objects of the volume are not stored in Swift because 'volumebackups'
container is not created. In the case, the following information is recorded
in Cinder DB.

  backup.status           : 'error'
  backup.container        : 'volumebackups'
  backup.service_metadata : None

Step 2: Investigate and solve causes in which put_container() failed.

Step 3: Create another backup from a volume.
When the creation of the backup succeeded, 'volumebackups' container is
created in Swift, then backup objects of the volume are stored into the
container.

Step 4: Delete the backup created in step 1.
Only a record of the backup in Cinder DB should be deleted because the
backup objects were not stored in Swift. However, the backup objects created
in step 3 also are deleted by the bug.
Usually SwiftBackupDrier.get_container_entries() lists only object names of
the backup. However, when backup.service_metadata of the backup is None,
SwiftBackupDriver.get_container_entries() lists all object names in
'volumebackups' container. As a result, all the backup objects in the
container are deleted.

This fix prevents that all the backup objects are deleted.
When a backup is deleted, deletion of the backup objects by delete_object()
is not executed if backup.service_metadata of the backup is None.

Change-Id: I6c1c57c1397b336c12cc49159cecd17b55577f6c
Closes-Bug: #1463341

9 years agoAdd pagination to snapshots
Gorka Eguileor [Fri, 31 Jul 2015 18:07:30 +0000 (20:07 +0200)]
Add pagination to snapshots

Currently snapshot list does not provide pagination like volume does.

This patch adds pagination for snapshots in the same way that volume
does, using marker, limit, sort_keys and sort_dirs.

DocImpact
APIImpact: Use marker, limit, sort_keys and sort_dirs
Implements: snapshots-and-bakcup-support-pagination-query
Implements: blueprint extend-limit-implementations
Change-Id: I21edac6d29abf7fc2f446111a7d6888db9ab6eba

9 years agoParameter osapi_max_limit is always used by default
Yuriy Nesenenko [Tue, 25 Aug 2015 10:55:56 +0000 (13:55 +0300)]
Parameter osapi_max_limit is always used by default

Default value max_limit is initialized before a value is read from
the config file. Default parameter values are always evaluated when
the “def” statement they belong to is executed. So parameter
osapi_max_limit is always used by default even it's set in the
configuration file.

Change-Id: I1414667d30e98b56c5eb1b09b802bab823b37e2d
Closes-Bug: #1487510

9 years agoUpdate NetApp Drivers to use netapp_lib
Goutham Pacha Ravi [Thu, 13 Aug 2015 07:47:53 +0000 (03:47 -0400)]
Update NetApp Drivers to use netapp_lib

Like other vendors, NetApp has published a storage controller
client library to PyPI for use by its OpenStack drivers. This
patch updates the NetApp Cinder drivers to use the new library.

The new library, when downloaded from PyPI, provides the REST
and ZAPI interface code that the driver references.
This code was previously part of the driver code tree in
Cinder: netapp/dataontap/client/api.py and netapp/eseries/client.py.
This patchset removes the relevant code from these files
and also modifies the unit tests to work in the absence
of the new library.

Implements: blueprint netapp-use-pypi-client-library

Change-Id: If51c13ade0497c8e89b044bebb393b52da62029a

9 years agoExtend unit tests for backup get_all
Eric Harney [Tue, 25 Aug 2015 17:54:29 +0000 (13:54 -0400)]
Extend unit tests for backup get_all

With ddt we can easily unit test the range of
expected inputs for these calls.

Change-Id: I6f2783dfec9aaae46a77f946f5ac8f99a698a2c8

9 years agoFix nimble storage volume stats reporting
Jesse Keating [Tue, 25 Aug 2015 15:33:32 +0000 (08:33 -0700)]
Fix nimble storage volume stats reporting

Capacity now needs to be reported in a pool, to support pool-aware
scheduling which was introduced in the Juno development cycle.

Change-Id: I1a3ea2c75bc0296868e281a3fbfb6636ab0f0e3e

9 years agoTemporaryImages to inspect image before conversion
Tomoki Sekiyama [Fri, 14 Aug 2015 18:13:10 +0000 (14:13 -0400)]
TemporaryImages to inspect image before conversion

This intruduces TemporaryImages utility class which enables
download images to temporary file for inspection before they are
used for format conversion. Using this utility, we can get image
information such as virtual size, which is required to implement
image cache, before calling fetch_to_raw() etc., without
downloading the image twice nor changing APIs of image_utils.

Change-Id: I6c2d48bca60e5b9e1615bbe10602d925ae6d75ff
Partially-implements: blueprint image-volume-cache

9 years agoEfficient image transfer for Glance cinder store
Tomoki Sekiyama [Fri, 8 May 2015 23:52:19 +0000 (19:52 -0400)]
Efficient image transfer for Glance cinder store

This adds an implementation of clone_image which offloads
the image copy when the image is stored in Glance Cinder store.
It uses "create_clone_volume" method to create a new volume
from an image that is placed on a cinder volume.

To enable this feature, glance_api_version in cinder.conf must be
set to 2, and allowed_direct_url_schemes must contain 'cinder'.
In glance-api.conf, show_multiple_locations must be set to True.
Also the Cinder store must be enabled.

In addition, if image_upload_use_cinder_backend is set to True,
upload-to-image in raw format will create a cloned volume and
register its location to the image service.
If image_upload_use_internal_tenant is set to True, the image
volume is stored in the internal tenant. Otherwise it is placed
in the current context's tenant.

This also changes LVM driver implementation to enable
image upload. Especially for thin LVM, it modifies
create_cloned_volume method to create thin snapshot LV.
Note that the thin snapshot LV can be treated as the normal
LVs; it can be read/written and can survive after the parent
volume is deleted.

Only raw format image is supported. Otherwise, normal image
upload/download method is used.

Currently Glance Cinder store does not support upload and
download, so the image created by this feature cannot be used
by other projects than Cinder. Patches to provide access to
images stored on Cinder are proposed here:
  glance-specs: https://review.openstack.org/183363
  glance patch(adding rootwrap): https://review.openstack.org/186201
  glance_store patch: https://review.openstack.org/166414

Note that this change works even without Glance patches.

Change-Id: I2cb68749f194d0cd597b7258a317afb982236aea
Implements: blueprint clone-image-in-glance-cinder-backend
DocImpact

9 years agoMerge "Move import and export backup metadata to object"
Jenkins [Tue, 25 Aug 2015 13:09:05 +0000 (13:09 +0000)]
Merge "Move import and export backup metadata to object"

9 years agoadds user_id to check_is_admin
Brent Roskos [Sun, 16 Aug 2015 12:41:48 +0000 (08:41 -0400)]
adds user_id to check_is_admin

A small tactical update to allow cinder to consider user_id
when checking for admin.

This is needed in the field until the larger changes around
admin scoping are completed. Checking for role only is not
sufficient in a multi-domain configuration.

juno-backport-potential
kilo-backport-potential

closes-bug: 968696

Change-Id: I0cb99186bd833c4c32964490c4bc6da9ad42d320

9 years agoFix backup list all_tenants=0 filtering for admin
Gorka Eguileor [Tue, 18 Aug 2015 09:29:15 +0000 (11:29 +0200)]
Fix backup list all_tenants=0 filtering for admin

When a user with admin role lists backups specifying all_tenants=0 in
the request, it will not behave as expected, it will return backups for
all tenants just as if all_tenants=1 had been specified.

This patch fixes this issue and will only return all tenants in backup
listings if all_tenants is set to a value meaning True (1, true, yes,
y).

Change-Id: Ia74bc258a86f6dc48483dfe17bf5a312aec4058d
Closes-Bug: #1485900

9 years agoAdd Cinder API wsgi application
Anton Arefiev [Fri, 10 Jul 2015 13:44:59 +0000 (16:44 +0300)]
Add Cinder API wsgi application

This change adds cinder API application, so cinder API can be run
under wsgi server(Apache, Nginx, etc). Eventlet will still be used
by default.

Cinder API with eventlet as a webserver and wsgi application
managing has some cons:

* Cinder API is deployed in other way as a common web application.
Apache/Nginx is generally used web servers for REST API application.

* Cinder API is run as a separate service. It means that cloud
operators need to configure some software to monitor that the API
is running.

* Apache/Nginx works better under the real heavy load than eventlet.

To use c-api deployment under Apache in devstack assign
devstack var CINDER_USE_MOD_WSGI="True".
Related changes in devstack:
 https://review.openstack.org/#/c/204643/

Cinder documentation on how deploy cinder API under Apache:
 https://review.openstack.org/#/c/207020/

Patch for Infra to make it tested:
 https://review.openstack.org/#/c/208498/

DocImpact
Implements: blueprint: non-eventlet-wsgi-app

Change-Id: If877d700b0efaa5406efa8f8f17c5816928e83ce

9 years agoMerge "Cinder replication V2"
Jenkins [Tue, 25 Aug 2015 08:31:52 +0000 (08:31 +0000)]
Merge "Cinder replication V2"

9 years agoMerge "Add volume retype support for Huawei driver"
Jenkins [Tue, 25 Aug 2015 08:31:41 +0000 (08:31 +0000)]
Merge "Add volume retype support for Huawei driver"

9 years agoMerge "Port 3PAR drivers to use ABCMeta driver model"
Jenkins [Tue, 25 Aug 2015 01:58:55 +0000 (01:58 +0000)]
Merge "Port 3PAR drivers to use ABCMeta driver model"

9 years agoCinder replication V2
John Griffith [Thu, 9 Jul 2015 21:11:54 +0000 (21:11 +0000)]
Cinder replication V2

This adds a scaled back replication implementation
that leaves the bulk of the work up to the driver.
We just provide basic admin API methods to do things
like enable/disable and fail-over.  Set up and
specification of replication targets for a specific
back end are now intended to be part of the cinder.conf
in the driver section itself.

Replication targets are configured via the cinder.conf
file in their associated driver section.  See the devref
doc included in this commit for details on the format.

The next step in configuration is to create a volume-type
with replication info in the extra-specs.
    extra-specs = replication=enable, volume_backend_name=foo

This instructs the driver to utilize replication, default is
up to the driver but would suggest single way rep and in the case
of multiple targets, driver could choose or have a default.

If the back end doesn't report replication=enabled in it's stats
updates the scheduler will fail to place the volume due to invalid
host, or no hosts available.

Vendors can easily modify extra-specs or their own config settings
to modify this behavior, any vendor-unique adaptation can be
provided through the use of scoped keys.  Suggested examples
will be published in docs.

See doc/source/devref/replication.rst for more info

Implements BP: replication-v2
DocImpact

Change-Id: I406390e4d5f3c9947df1c4f2de68821e0fd7f75b

9 years agoMerge "Dell SC: Added logging for the find_wwns functions"
Jenkins [Mon, 24 Aug 2015 20:34:14 +0000 (20:34 +0000)]
Merge "Dell SC: Added logging for the find_wwns functions"

9 years agoAssisted volume migration for Oracle ZFSSA drivers
kedar-vidvans [Fri, 7 Aug 2015 21:23:46 +0000 (17:23 -0400)]
Assisted volume migration for Oracle ZFSSA drivers

The Oracle ZFSSA drivers will migrate the volume directly from the
source host to the destination host if both hosts are configured
with Oracle ZFSSA. This type of volume migration will bypass the
cinder host and will directly transfer the volume to the destination
backend.

The ZFSSA iSCSI driver will use zfssa's remote replication service
to move the the volume to the destination zfssa.

Implements: blueprint oracle-zfssa-volume-migration
Change-Id: I4de8108e3c6c0969c83e87eac139f04b4fe8c7ac

9 years agoAdd https options and minor code changes
nikeshm [Fri, 21 Aug 2015 20:39:51 +0000 (02:09 +0530)]
Add https options and minor code changes

Adds https options x_verify_certificate and x_verify_certificate_path
in DotHill and rebranded drivers.

Minor cosmetic changes like replacing 'realstor' with 'virtual'
and 'wbi' with 'api'. Adding default value for 'x_backend_type'
and 'x_api_protocol' options. Minor code optimization for
finding array iSCSI addresses.

Here 'x' stands for dothill or hpmsa or lenovo.

DocImpact
Change-Id: I7a5924bbd56053aee6d652842b48e913c54ae7dd
Closes-Bug: #1486160
Co-Authored-By: Lakshman <lakshminarayanat@vedams.com>
Co-Authored-By: Chris Maio <chris.maio@dothill.com>
9 years agoMerge "Fix bad except clauses order"
Jenkins [Mon, 24 Aug 2015 16:30:10 +0000 (16:30 +0000)]
Merge "Fix bad except clauses order"

9 years agoMerge "Add version columns to services table"
Jenkins [Mon, 24 Aug 2015 15:53:40 +0000 (15:53 +0000)]
Merge "Add version columns to services table"

9 years agoMerge "Fix URLs to admin-guide-cloud"
Jenkins [Mon, 24 Aug 2015 15:50:46 +0000 (15:50 +0000)]
Merge "Fix URLs to admin-guide-cloud"

9 years agoMerge "Add backup/restore methods to Sheepdog driver"
Jenkins [Mon, 24 Aug 2015 15:16:20 +0000 (15:16 +0000)]
Merge "Add backup/restore methods to Sheepdog driver"

9 years agoFix bad except clauses order
masahiro ikeda [Fri, 21 Aug 2015 05:31:24 +0000 (14:31 +0900)]
Fix bad except clauses order

In wbem_request() method, 'socket.error' superclass of exception
class ' socket.sslerror' has already been caught.

Moved the except 'socket.sslerror' block up above 'socket.error'
so that if there is any error due to ssl it is caught correctly.

Closes-Bug: #1487320

Change-Id: I1de1642e47fc7ba39e6666fca1aa6e8d0dde57d7

9 years agoAdd volume retype support for Huawei driver
zhongjun [Tue, 14 Jul 2015 10:06:51 +0000 (18:06 +0800)]
Add volume retype support for Huawei driver

Add retype volume function for Huawei driver, including
SmartQos, SmartTier, SmartPartition and SmartCache,
SmartThin/Thick.

This commit adds the following qualified extra-specs:
  * capabilities:smarttier='<is> True'
    smarttier:policy='X'(X:0,1,2,3)"(default value is 1)
  * capabilities:smartpartition='<is> True'
    smartpartition:partitionname=test_partition_name
  * capabilities:smartcache='<is> True'
    smartcache:cachename=test_cache_name
  * capabilities:thin_provisioning='<is> True'
  * capabilities:thick_provisioning='<is> True'

Implements: blueprint huawei-driver-support-retype
Change-Id: I6bd1d39aca5a368594ca39c75c86eaf6ab20b00c

9 years agoFix URLs to admin-guide-cloud
Andreas Jaeger [Sun, 23 Aug 2015 08:48:20 +0000 (10:48 +0200)]
Fix URLs to admin-guide-cloud

The content of the admin-guide-cloud has been changed and thus URLs are
moved. Replace outdated URLs with current ones.

The reorg of admin-guide-cloud was done as part of
http://specs.openstack.org/openstack/docs-specs/specs/liberty/reorganise-user-guides.html.

Implements blueprint reorganise-user-guides

Change-Id: I6f980021824e57df973e62d6023b27feb0fa703b