Update git submodules
* Update cinder from branch 'master' - Merge "Fix CI failed: test_get_volume_filter_options_using_config" - Fix CI failed: test_get_volume_filter_options_using_config Recently, CI failed(py27, py35 and other unit tests) due to test_get_volume_filter_options_using_config case. In patch[1], we remove deprecated query_volume_filters config option, but the test case is fixed by a wrong way. The ``CONF.resource_query_filters_file`` is a **json path**, but NOT a **json str**, if we want to overwrite it, we should overwrite the _FILTERS_COLLECTION.[2] Unfortunately, if we have already called the _initialize_filters in other case (before this case), this error will not be exposed. So, we didn't find this error occurring in first-CI. This patch try to fix this issue. Co-Authored-By: wanghao <sxmatch1986@gmail.com> Closes-bug: #1809647 [1] https://review.openstack.org/#/c/620632/ [2] https://review.openstack.org/#/c/620632/2/cinder/api/common.py@356 Change-Id: I190cc67a001ffce2a533480e6e39e26cd3f981df - Merge "[Doc] Fix status and parameters of vol connection api" - Merge "Extract copy_image_to_volume into volume utils" - Merge "Remove umount from volume.filters" - Merge "Ignore migration 127 error on MariaDB" - Remove umount from volume.filters Use umount to umount volumes via oslo.privsep. Change-Id: I83972fbfaf0842800c65ed8c391e2089de9807fe Signed-off-by: Chuck Short <chucks@redhat.com> - Merge "Correct the use of assertTrue" - Ignore migration 127 error on MariaDB Older MariaDB, and InnoDB with 4K page sizes [1], don't support a text fields to have more than 767 bytes, which means that we cannot extend the quota_usage _resource to 300 characters on migration 127. Since this migration is to cover a corner case, we ignore the exception during the migration if we are on a MySQL DB engine. [1]: https://mariadb.com/kb/en/library/innodb-limitations/#page-sizes Closes-Bug: #1808598 Change-Id: Id990b98f0ac7aaedf48a77ebee2b083fcbdaaee7 - Merge "Move tgt targets to privsep" - Merge "Handle image download and conversion errors" - Merge "Allow to use _max qos option together with per_gb" - Merge "Cleanup code duplication in cinder.cmd.backup module" - Merge "VMAX Driver - Place volume in SG as part of unmanage volume" - Merge "Rename BackupNFSSwiftBasedTestCase" - Merge "Doc: Remove unnecessary note" - Merge "PowerMax driver doc - clarifying SE and Unisphere support" - Merge "api-ref: add missing volumes_links in list-volume interfaces" - Merge "Remove deprecated query_volume_filters config option" - Merge "Add user_id in backup list and show API" - Allow to use _max qos option together with per_gb With this patch it'll become possible to limit max performance of volume even when qos is set per_gb. As a result operator will be able to set min and max options, with per gb increment, until the max value. Change-Id: I3c6c9e1c50100cfa56dcadf6445729484cdd616d - Merge "Add policy test for TENANT_ATTRIBUTE_POLICY" - Merge "Retry on DBDeadLock affecting worker updates" - Merge "Add missing ws seperator between words" - Merge "NetApp SolidFire: Revert volume to snapshot" - Merge "[api-ref] Fix the value of project_id" - Merge "Block broken requests 2.20.0" - Merge "Revert "Synchronize all LVM operations"" - Merge "Fix _per_gb_min usage with _per_gb" - Correct the use of assertTrue If the first argument of assertTrue is True, the assertion will always pass. This patch fixes this which makes the comment gievn for the code reasonable. Change-Id: Ief4643a18c64854989e03441145c5a723684f067 - Revert "Synchronize all LVM operations" This reverts commit 206f980cc2f09610ffb86cfc7728222fd39eee4f. This was part of troubleshooting long LVM operations. The hope is https://review.openstack.org/#/c/625269/ actually fixes the issue since this change, at least by itself, still had failing runs due to lvchange operations taking longer than 60 seconds. Change-Id: I9c3dee2ba94c3779ff43db578c59448acbcf6653 - Fix _per_gb_min usage with _per_gb As _per_gb_min was a text, it was in many cases larger, than _per_gb value. So, situations, when big drives were attached with min iops are now excluded. Change-Id: Ie24e5a85b54e4734c9b96987cc8ec497aa0ac435 - Merge "Fix A/A 'resource_backend' when scheduling volumes" - Merge "Automate generation of api-ref samples" - Merge "Set message property in ImageDownloadFailed" - Merge "Synchronize all LVM operations" - Merge "Add secret=true to fixed_key configuration parameter" - Set message property in ImageDownloadFailed Set the correct property, "message". Looks like "_msg_fmt" may have been erroneously carried over from some other project (Ironic?) Change-Id: I2aa56da73660794c6dedcbb8a66e84bcec511a9c Closes-Bug: #1808443 Related-Bug: #1799221 - Fix A/A 'resource_backend' when scheduling volumes Fix an issue with the 'resource_backend' included in the scheduler spec for creating a volume associated with another volume, snapshot, or group/cg. When running A/A, the 'resource_backend' must reference the cluster, not the host. Enhance the unit tests that cover this area. This includes fixing the 'expected_spec' so it copies a dictionary rather than referencing it, so that external changes to the dictionary don't inadvertently update the unit test's expected results. Closes-Bug: #1808343 Change-Id: I7d414844d094945b55a094a8426687595f22de28 - Handle image download and conversion errors Provide message when there is not enough space for image conversion With rbd as cinder backend, when creating volume from image, two steps follow to create the volume: 1. image is downloaded to image_conversion_dir 2. image is converted to raw in the same location If no space left in image_conversion_dir happened in step1, function fetch() in image_utils.py will catch this (IOError with e.errno == errno.ENOSPC), and exception.ImageTooBig will be re-raised. If happened in step 2, no "space" specific message will be logged in current code. This patch provided the space specific log to indicate no space. Change-Id: I56057475cf55e4be77bbd1dfeabf2bf20d3e1311 Co-authored-by: Irina Mihai <irina.mihai@windriver.com> Signed-off-by: Liang Fang <liang.a.fang@intel.com> - Merge "VMware: Check empty provider location" - Synchronize all LVM operations This makes us synchronize/serialize all of our external calls to LVM operations in an attempt to avoid contention of LVM's own locking scheme, as well as avoid potentially overlapping operations that may be flushing large amounts of data to disk. Related-Bug: #1739482 Related-Bug: #1763712 Change-Id: Idb4053685486f2163e7cb135cd579eba5d78f369 - Merge "An alternate way to fix retype notifier test case" - Rename BackupNFSSwiftBasedTestCase These tests are just for the NFS backup driver and aren't related to Swift. Change-Id: I5a289a897d93e1c498281fd8c4fac15c6dcbd2c4 - Merge "Tintri: Inherit tests from BaseDriverTestCase" - Add user_id in backup list and show API Add ``user_id`` to response body of list backup with detail and show backup detail APIs. In this way, you can get the ``user_id`` in backup list or show response, make the admin/user easy to manage backup file. Blueprint: add-user-id-attribute-to-backup-response Change-Id: I3ffb544ef3ee65276cee8b1e870d524fd0e57085 - Merge "Increase the length of resource property in quota_usages" - Merge "Simplify hostname lookup" - Merge "Make policy config docs consistent" - Merge "Drop simplejson usage" - Merge "VMAX Driver - Fix for invalid device id length" - Merge "VMAX Driver - VMAX OS Upgrade Bug" - Merge "Remove Babel from requirements" - Make policy config docs consistent The RST file introducing the sample policy file in the docs directory has gotten out of sync with etc/cinder/README-policy.generate.md Change-Id: Ic43c631bb7af0b4d888e539d4ca50e379f693b3c Partial-bug: #1805550 - Revert "Ceph driver should respect the `--incremental` option for backups" This reverts commit 797c5aa78574a29a9a0bf7dd1b8adb47554b42c2. That patch doesn't really fix the Ceph full backup issue. When doing a non incremental Ceph to Ceph backup, instead of doing a full backup that is ussable by the incremental feature, it creates a full backup as if it where a backup from a non Ceph volume, which then cannot be used by the incremental feature. Change-Id: I73a40babf5cb13956e44d4caef3d0ff7ef698048 - Merge "Ensure image utils don't block greenthreads" - Merge "VMAX driver - allow for a clean system with no initiator groups" - Merge "Revert "Move check_encryption_provider to volume utils"" - Merge "Remove out-of-date configurations in setup.cfg" - Merge "Remove DeprecationWarning of "decodestring()"" - Merge "Tests : notifier problem with backup" - Revert "Move check_encryption_provider to volume utils" Closes-Bug: #1807446 This reverts commit f02232599a05d8ca5bc788cf00d8e0c9d73db7e9. Change-Id: Ifb9a07b97d2625a6bf6c81bf667897bbc0e27cf7 - VMAX Driver - VMAX OS Upgrade Bug Workload support was dropped in ucode 5978. If a VMAX All Flash array is upgraded to 5978 or greater and existing volume types leveraged workload e.g. DSS, DSS_REP, OLTP and OLTP_REP, attaching and detaching will no longer work and the volume type will be unusable. Change-Id: I0ad0c530c93a9494e1a3048e557360b38c4a125b Closes-Bug: #1790141 - Merge "Huawei: Simplify wait_for_condition calls" - PowerMax driver doc - clarifying SE and Unisphere support Clarifying Solutions Enabler and Unisphere for PowerMax support. Change-Id: I2bfcfa4b42b7148ba202b2015aafd41afae081e5 - Merge "Follow Up: Generalizing is_replicated_str to is_boolean_str" - Merge "Fix: storage_pools key in Huawei Driver" - Doc: Remove unnecessary note Cinder v1 API is removed and hence the note on the docs seems unnecessary. This patch removes it. Change-Id: I509a757a189c4f44c35623cabf83b93eaa34d483 - Extract copy_image_to_volume into volume utils The "_copy_image_to_volume" method is a common function to copy image to volume. This also can be used by re-image interface, this patch extract them into volume utils. part of blueprint: add-volume-re-image-api Change-Id: I89471fd2737d0b21ce029a6ad7ed43a6e8bf4810 - Merge "Check Volume Status on attahcment create/update" - Merge "api-ref: fix succeed code and add field for update-backup" - Merge "Ceph driver should respect the `--incremental` option for backups" - Ensure image utils don't block greenthreads When doing image operations in Cinder we may start getting errors on RabbitMQ and DB connections, which result in the volume service appearing as down to the scheduler. This is caused by file I/O operations, that in some cases block greenthreads, preventing switching to another greenthread on I/O as they should. This results in many different errors, so this patch makes sure that image operations (fetch, put, verify image, ...) that could prevent greenthread switching are executed in native threads. Closes-Bug: #1801958 Change-Id: I8a8fbf96875319a7e5ca167fcd2bca45f57649c8 - Automate generation of api-ref samples This patch adds the following functionality: 1) Base framework for test cases 2) Volume type tests Change-Id: I0e51bcc8c634923ca6fcff99a9f40b786933caa5 Partially-Implements: blueprint generating-sample-files - Add policy test for TENANT_ATTRIBUTE_POLICY Add policy test for TENANT_ATTRIBUTE_POLICY, and remove it from test policy file, the default of TENANT_ATTRIBUTE_POLICY is 'RULE_ADMIN_OR_OWNER', that means only admin and owner are authorized to show 'tenant_id'. This is one of the serious patches of policy-in-code test, see more information on [1] and [2]. [1] 530fb9319ce21b7ff99e55f095c04f13f0785842 [2] f207bac80924ffaf6d4c2a500c295d0e2e71966e Change-Id: Ibc674d05eb391e2bc83bfc83bfdce99e5e692ab5 - Imported Translations from Zanata For more information about this automatic import see: https://docs.openstack.org/i18n/latest/reviewing-translation-import.html Change-Id: I6512335dc5f537eb8d363a9f5730a3c06aa75877 - Add missing ws seperator between words This is to add missing ws seperator between words, usually in log messages. Change-Id: I3d0ffb5a32397998de1e66b823141cb0cc7d039c - Merge "Change openstack-dev to openstack-discuss" - Merge "Make lower constraints CI works well" - Tests : notifier problem with backup There appears to be a race condition while sending notifications to ceilometer with rpc. the backup.createprogress notification seems to be leaking which appears to be the main cause of the failures. This patch addresses the issue. Change-Id: I460a270eba61cdca131717f7dfe726841a509378 Closes-Bug: #1803648 - Change openstack-dev to openstack-discuss Mailinglists have been updated. Openstack-discuss replaces openstack-dev. Change-Id: I555ab27581fb8ca3ee864b576a1e64c0159c1b3f - Add secret=true to fixed_key configuration parameter Add secret=true to fixed_key configuration parameter as that value shouldn't be logged. Change-Id: I21e1246769213fb7b9e283c0ed3a369cbe780650 Closes-Bug: #1806473 - Merge "Add policy test for volume GET_ALL_POLICY" - Merge "Add policy test for volume:force_delete" - Merge "Simplify the policy test case" - Merge "Stop cleaning images to be deleted in remotefs driver" - Cleanup code duplication in cinder.cmd.backup module Change-Id: I758d0cf04e434a82beca8637cbe7e18bfdc02fb2 - Check Volume Status on attahcment create/update Currently the new Attachment calls in Cinder aren't checking the status of the volume when create or update is called. This isn't good because it can mask problems with attach processes on the volume. This patch adds an explicit check of the volume status in both attachment_create and attachment_update, and if the volume status is in any error state, the call will result in an InvalidVolume exception. This is an API change to fix a bug, and is not microversioned. Closes-Bug: #1805762 Change-Id: I9b32c4db93879dda6490b244643de1a18bddbbf5 - Stop cleaning images to be deleted in remotefs driver Add '-d' flag to qemu-img commit operations during snapshot deletion in remotefs driver. Change-Id: I66396fb7e2616be734b7c8f73b87c650b1e603bf Closes-Bug: #1805853 - Retry on DBDeadLock affecting worker updates Some updates on the workers table are prone to race conditions, leading to DB deadlocks. For example, when creating a large amount of volumes simultaneously, some of them may hang in "Creating" state due to this issue. We'll perform some retries when db deadlocks occur. Change-Id: Iae211acd619070405f84a84ea58e88723a5e9f9b Closes-Bug: #1789106 - Remove deprecated query_volume_filters config option query_volume_filters was deprecated in Pike with Icee6c22621489f93614f4adf071329d8d2115637 and it should be safe to remove it now. Change-Id: Icd311db7f88c3c274d9a362eb96519e46c7e4d17 - Correct default policy file Since Queens, the default policy file is policy.yaml, but the code is still looking for policy.json. This patch corrects the location and includes a release note. Change-Id: I997109d6bd1adbcbf72c056f78f1e01547d0fcbd Closes-bug: #1805550 - Merge "doc: Change variable name DEFAULT_API_VERSION to _MIN_API_VERSION" - VMAX Driver - Place volume in SG as part of unmanage volume A cinder unmanage operation using the VMAX driver doesn't place the volume in any storage group on the array. This leads to querying information about the volume very difficult. The volume being unmanaged should be placed in some storage group as part of the unmanage operation Change-Id: I4fd5370005848205e1bbc9d58d8452f38719dac8 Closes-bug: 1792888 - PowerMax driver doc - removing support for VMAX2 Removing support for VMAX2 in current matrix. Support for VMAX2 ended in Newton. Change-Id: I9fa7250a35dee201d43060d85d9c2d2ee936b001 - Ceph driver should respect the `--incremental` option for backups Volume backup service with Ceph driver should respect the `--incremental` option for backups. In this way we can keep consistency between backups. If the incremental flag is not specified then a new full backup will always be created, allowing for subsequent deletion of older incremental backups. Change-Id: I47f936e538810fcea8bffea0cf5c6065f6a3aa98 Closes-Bug: #1790713 Signed-off-by: Laura Sofia Enriquez <lsofia.enriquez@gmail.com> - Merge "Set right attach mode after migration" - Merge "api-ref: Adding backup create response example" - Merge "add missing comma" - Merge "[Trivial] Replace 'action' with 'command' in cinder-status doc" - VMware: Check empty provider location Adding a check for empty provider location before proceeding with volume delete. Change-Id: I4173a9d72894f4b6593a6aaf9f071a3cda7e6fef - [Doc] Fix status and parameters of vol connection api The response 'status' of initialize connection is 200, and the "connector" parameter is required in initialize/terminate connection API request. This patch try to fix these wrong content. Change-Id: I9d8c7c951b03f10fa29e3b3cc107a17e37b0e2bc - Imported Translations from Zanata For more information about this automatic import see: https://docs.openstack.org/i18n/latest/reviewing-translation-import.html Change-Id: I466330d2b364f269e02fd714d925127a7a115120 - An alternate way to fix retype notifier test case When we do backup for a volume, the backup notification is called periodically, but if we do other operations (like retype operation) in parallel, there is a possible to record the "volume.retype" and "backup.createprogress". This patch try to mock the send notification methods to ensure this doesn't happen. Cloeses-Bug: #1803648 Co-Authored-By: Rajat Dhasmana <rajatdhasmana@gmail.com> Change-Id: I4c44cdd6a4a11a3b7b5c57ff5aac19a8d01ef124 - Merge "lvm: Avoid premature calls to terminate_connection for muiltiattach vols" - Merge "api-ref: volume summary is available from v3.12" - Merge "api-ref: document encryption type provider choices" - Merge "api-ref: fix response code and data type for volume interfaces" - api-ref: document encryption type provider choices This updates the encrypted volume type provider parameter descriptions for the create and update requests to note the two choices of 'luks' and 'plain'. Since we don't want those choices in the response parameter descriptions, the parameters have to be broken down a bit in the parameters.yaml file to be request/response and optional/required. There are currently other supported values for the encryption type provider, including the legacy classpath values, but we want people using the non-legacy values so only luks and plain are documented here, and luks is marked as the recommended choice over plain (dm-crypt). Change-Id: I496d30ecf6390f51cdd8e547b7345b3da30e92de Closes-Bug: #1803513 - Imported Translations from Zanata For more information about this automatic import see: https://docs.openstack.org/i18n/latest/reviewing-translation-import.html Change-Id: I7775eb4b563b1cfa15e5392aefc93ec065d44130 - api-ref: volume summary is available from v3.12 GET volumes/summary is introduced to Cinder from V3.12, so this to add the comment for it. Change-Id: I7211ba4355fe9a10203e01436e571f41f8040adc - Revert "Remove mount from volume.filters" This reverts commit ca81be15a834269c6ee72bb19c2de42704ccf315. The mount command is used by the NFS driver, via os-brick. Change-Id: Ie9e1142b1412cc7bd1bdc75c6a8765a2cf308461 - doc: Change variable name DEFAULT_API_VERSION to _MIN_API_VERSION The DEFAULT_API_VERSION variable doesn't exist in the specified file. As stated in [1], _MIN_API_VERSION is used as the default api version if no version is specified. [1] https://github.com/openstack/cinder/blob/master/cinder/api/openstack/api_version_request.py#L133-L136 Change-Id: I6ecd0b2993c00c3abea98afc5be63bc8dc78624e - Merge "Update docs landing page to follow guideline" - Block broken requests 2.20.0 Change-Id: I2889804a19499e1238b9b8cec9ebaea2c037d7d7 Related-Bug: 1800985 Depends-On: https://review.openstack.org/617296 - [api-ref] Fix the value of project_id Change-Id: Ic48601e0279495920e57be9854b34ab7bbe94e8e - NetApp SolidFire: Revert volume to snapshot This implements the optimized version of revert_to_snapshot function on NetApp SolidFire driver. Change-Id: Id5e907aeabe9415a7342999bb00227ed8881d60a Implements: blueprint netapp-solidfire-revert-to-snapshot - lvm: Avoid premature calls to terminate_connection for muiltiattach vols Previously the LVM volume driver would always call termiante_connection on the configured target driver regardless of of the associated volume being attached to multiple instances on the same host. This isn't an issue for the tgt target driver used by upstream CI as this call is a noop but does cause the lioadm driver to prematurely remove specific host ACLs for volumes that are still being used. This change introduces a simple check to ensure that the target driver is only called when a single attachment remains that is in turn using the connector provided by the caller. Finally as a result of this bugfix the changes introduced by I84f607de13bc17b00609ad37121d8678f7f4a920 to disable the multiattach feature when using the lioadm target driver are removed. Closes-bug: #1786327 Change-Id: Ib5aa1b7578f7d3200185566ff5f8634dd519d020 - api-ref: fix succeed code and add field for update-backup https://developer.openstack.org/api-ref/block-storage/v3/index.html?expanded=update-a-backup-detail#update-a-backup 1. metadata is present in the response example of "Update a backup", but is missing from the response parameters. 2. succeed code of update-backup is 200, not 202 Change-Id: I5c6098b1950b361a38d4a2b3a928344a277a3ed0 - api-ref: add missing volumes_links in list-volume interfaces https://developer.openstack.org/api-ref/block-storage/v3/index.html?expanded=list-accessible-volumes-detail#list-accessible-volumes https://developer.openstack.org/api-ref/block-storage/v3/index.html?expanded=#list-accessible-volumes-with-details volumes_links is in the response body of list-volume and list-volume-with-details when pagination is used. So it should be an optional parameter. Change-Id: If61797f9a5cb5c522ed62886f4114d43e7cbbdef - Merge "Add test coverage to manage existing flow" - Merge "Improve/Clean api-ref parameters" - api-ref: Adding backup create response example The backup create response json file exists but isn't linked with the api-ref guide. This patch adds the link to it. Change-Id: Ib26670803ed57a23f282ac8f679db6e4957e8cc7 - Add policy test for volume GET_ALL_POLICY Add policy test for volume GET_ALL_POLICY, and remove it from test policy file. This is one of the serious patches of policy-in-code test, see more information on [1] and [2]. [1] 530fb9319ce21b7ff99e55f095c04f13f0785842 [2] f207bac80924ffaf6d4c2a500c295d0e2e71966e Change-Id: Id391454fe1e9cc574ea2c996ffeed32e928af397 - Imported Translations from Zanata For more information about this automatic import see: https://docs.openstack.org/i18n/latest/reviewing-translation-import.html Change-Id: Iebbb0c26b9b64719c2ed9aff0f89bfced0131a17 - Set right attach mode after migration When migrating attached volumes we are assuming they are always in "rw" mode, which means that a "ro" attached volume will end up as "rw" after a migration. Closes-Bug: #1802155 Change-Id: I374df5d294587e0e91a10525b08ea1a5911c35a1 - Merge "Imported Translations from Zanata" - Merge "Fix a typo in multiattach doc" - Make lower constraints CI works well The actual target of openstack-tox-lower-constraints is using the lower version package to run unit test. But in current Cinder CI,there was a hard code to specify the upper-constraints.txt, that means we install the package in upper-constraints.txt, but the lower-constraints.txt doesn't work well. This patch try to fix this error, move the hard code to 'deps'. We also refresh the lower-constraints.txt and requirements.txt to make CI works well: 1. Add libxml2-dev, libxslt-devel, libxslt1-dev to bindep.txt to make lxml can be built successfully, like what we do in other project. [0] 2. Upgrade oslo.messaging to 6.4.0 to avoid "ACCESS_REFUSED - Login was refused using authentication mechanism AMQPLAIN." error. 3. Upgrade oslo.utils to 3.34.0 to add a new method escape_ipv6 [1] to oslo_utils.netutils, which is needed by [2]. 4. Upgrade keystoneauth1 to 3.7.0 to fix "no such option split_loggers in group [service_user]" [3] [0] https://github.com/openstack/nova/blob/bb3ded3/bindep.txt#L17-L19 [1] https://review.openstack.org/#/c/495166/ [2] https://github.com/openstack/cinder/blob/fe421fe/cinder/volume/drivers/netapp/utils.py#L172 [3] https://review.openstack.org/#/c/578008/ Change-Id: Ide84d49c283c0ad179a5cfdb0392d34ee73d97ea Closes-bug: #1801239 - api-ref: fix response code and data type for volume interfaces 1. https://developer.openstack.org/api-ref/block-storage/v3/?expanded=get-volumes-summary-detail#get-volumes-summary total_count in "Get volumes summary" should be integer 2. https://developer.openstack.org/api-ref/block-storage/v3/index.html#create-metadata-for-volume Response code for "Create metadata for volume" interface should be 200. Change-Id: If278e939a9a580329e24709877c13ed4e70d6180 - Imported Translations from Zanata For more information about this automatic import see: https://docs.openstack.org/i18n/latest/reviewing-translation-import.html Change-Id: I6c4ddce3945ab07e0c52688c550eaa755b1d9a69 - Improve/Clean api-ref parameters The parameters with name like example_1, example_2 ... etc. cause confusion while updating the api-ref docs like the examples below: https://review.openstack.org/#/c/609639/ https://review.openstack.org/#/c/609611/ This patch does the following changes : 1) Replace numbering in the parameter with relevant names 2) Clean up unused parameters Change-Id: I35b343bf068281d729576e5ecc209bda60c28680 - [Trivial Fix] Correct spelling error of "bandwidth" Small modification to correct spelling mistake. Change-Id: Ic66736418de460c6e71b764322276019296aefe7 - Add test coverage to manage existing flow We're almost missing unit tests for manage_existing functionality. The cinder.volume.flows.manager.manage_existing module has only ~37% of coverage, manage_existing_snapshot 61%. cinder.volume.flows.api.manage_existing also has ~58%. Change-Id: I28c1d70e5a53d7420e3eb52573d1d6fff474b635 Partial-Bug: #1599140 - VMAX driver - allow for a clean system with no initiator groups Currenty not allowing for a system with no initiator groups so in this empty list case an unhandled exception is thrown. Change-Id: I7fdfb71ce34aeebdaf23718727a938e9c450f615 Closes-Bug: #1800005 - Drop simplejson usage simplejson was mainly needed before the json standard library supported everything we need. This was when we supported Python versions earlier than 2.7. The standard library for all Python versions we now support is good enough and we should clean up unnecessary third party libs. Change-Id: I866445ffba9633db1de5ba615dcc19450f5d02e7 Signed-off-by: Sean McGinnis <sean.mcginnis@gmail.com> - Remove Babel from requirements Change-Id: Ieccb6b987ef23272c8e943e7af3549cefab47263 Signed-off-by: Sean McGinnis <sean.mcginnis@gmail.com> - Update docs landing page to follow guideline During the rocky cycle, there was a docs-spec approved [0] with the goal of having a recommended consistent documentation landing page for all projects. This updates our docs landing page to follow the structure described in that recommendation. [0] http://specs.openstack.org/openstack/docs-specs/specs/rocky/front-page-template.html Change-Id: I0f31c59e6b39ab8d9c0009f72967c793dadbed64 - Merge "api-ref: Change extensions updated type to updated_at" - Merge "Remove source_replica info from api-ref" - Merge "Fix CLI output examples" - Increase the length of resource property in quota_usages When updating the volume type, the length of the name is checked to be 0-255. If the user input length is 255 characters (e.g. volume_type_name='X*255'), when synchronizing the quota resource, the resource name needs to be updated to the form of 'resource + volume_type_name' in quota_usages [1], because the resource attribute in the DB is set to 'String(255)', the length limit is exceeded. Therefore, the resource column attribute in the quota_usages database table needs to be changed from 'String(255)' to 'String(300)'. [1]https://github.com/openstack/cinder/blob/master/cinder/db/sqlalchemy/api.py#L352 Closes-Bug: #1798327 Closes-Bug: #1608849 Change-Id: I6c30a6be750f6b9ecff7399dbb0aea66cdc097da - Merge "Fix non iSCSI attach serialization" - Remove DeprecationWarning of "decodestring()" When running "tox -e py35", it shows: DeprecationWarning: decodestring() is a deprecated alias, use decodebytes() This patch helps to remove this deprecation warning by replacing "base64.decodestring" with "oslo_serialization.base64.decode_as_bytes". The same has been done for nova: https://review.openstack.org/#/c/610401/ Change-Id: Ib3f7fc4392ca53e92ee2e421b95874dc97f04e5f - VMAX Driver - Fix for invalid device id length The external reference supplied while managing an existing device should be of exactly 5 digits as device ids on the VMAX array are of exactly 5 digits. The VMAX driver should perform a check and throw appropriate error. Change-Id: I06cc3e107a5b07f8f00e9a9a025a0152199092df Closes-bug: 1792889 - Remove out-of-date configurations in setup.cfg We add the oslo_messaging.notify.drivers configuration in [1] for backwards compat with Havana notification_driver configuration values, and add the oslo_middleware configuration in [2] for backwards compatibility with Juno middleware configurations. But now these configuration is already out-of-date and useless, so we remove these configurations in this patch. [1] bcd9f363ff8a10ff30795c54f471a8c6d76450fe [2] c4897471777949983912676ad46ad99c42ed2b22 Change-Id: I92792a98bb21e2759549949333dba82df4345c01 - Merge "Remove setup.py check from pep8 job" - Add policy test for volume:force_delete Add policy test for volume:force_delete, and remove it from test policy file. This is one of the serious patches of policy-in-code test, see more information on [1] and [2]. [1] 530fb9319ce21b7ff99e55f095c04f13f0785842 [2] f207bac80924ffaf6d4c2a500c295d0e2e71966e Change-Id: I5a72e5ac05601cf084a9da00c4fe04b2752fed67 - add missing comma Change-Id: I66462d7e0d1a87fe248e7ec8c26c58a736aa0d63 - Simplify the policy test case In this patch, we extract _get_request_response method and common var for policy test case, and make test case simple, it's better for us to write follow policy test case. Change-Id: Id125a0b03d2ffadc19876fb9c6b891146266ad74 - Merge "Raise the ImageTooBig exception when found it" - Merge "Ds8k: Mock evenlet.sleep calls" - Merge "Update backup flow for CephBackupDriver" - Merge "cinder-manage online_data_migrations fixes" - Fix a typo in multiattach doc Fixing a minor typo in multiattach docs Change-Id: I4ac6269c11051fb9b30c598585bdf1fe6c1a41f2 - Merge "fix misspelling of available" - Merge "Restructure Huawei driver" - Merge "Handle drivers that do not support list manageable" - Merge "[Trivial] Fix typo in comment in delete_volume" - Merge "Remove deprecated HPE Lefthand config opts" - Merge "Ensure VNX unit tests don't sleep" - Merge "Remove deprecated iSCSI target config opts" - Merge "Increment versioning with pbr instruction" - Merge "Remove volume:get policy from test policy file" - Remove setup.py check from pep8 job Using "python setup.py check -r -s" method of checking the package has been deprecated with the new recommendation to build the sdist and wheel, then running "twine check" against the output. Luckily, there is already a job that covers this that only runs when the README, setup.py, or setup.cfg files change, making running this in the pep8 job redundant. This covered by the test-release-openstack-python3 that is defined in the publish-to-pypi-python3 template. More details can be found in this mailing list post: http://lists.openstack.org/pipermail/openstack-dev/2018-October/136136.html Change-Id: Ia981b27852b9061c8a406e68388c60595aa528f8 Signed-off-by: Sean McGinnis <sean.mcginnis@gmail.com> - Merge "Move sphinx-feature-classification to docs reqs" - [Trivial] Fix typo in comment in delete_volume Change-Id: I0c1367f541e38e1853bb9b3dda6260add27f09f6 - Merge "Handle rbd.OSError on broken RBD image" - Update backup flow for CephBackupDriver Following the latest documentation, we should configure class for backup_driver[1]. [1] https://docs.openstack.org/cinder/latest/configuration/block-storage/backup/ceph-backup-driver.html Change-Id: I10f8eaa51d059e65ddff959b81f09cb90a065fdd - Imported Translations from Zanata For more information about this automatic import see: https://docs.openstack.org/i18n/latest/reviewing-translation-import.html Change-Id: I804984acb158d38bb0d79ddd5cf4018bdabc3312 - Merge "Update sphinx extension logging" - Merge "Set user message on volume create failure" - Handle rbd.OSError on broken RBD image With Rocky, cinder-volume began to fail again with another error type. This patch adds rbd.OSError type for exception block of _get_usage_info method. Change-Id: I93b8afeddae18d098fe926a3219811cc8c8d9b63 Closes-Bug: 1698786 - Merge "Imported Translations from Zanata" - Merge "Forbidden to revert volume to a different size snapshot" - Merge "Update unit test debug instructions" - Merge "hpe 3par driver initialization failure" - Merge "Handling unexpected python error "NoneType object is not iterable"" - Merge "Add column only when it doesn't exist" - Fix non iSCSI attach serialization When the shared_targets concept was introduced it defaulted to True for any driver not reporting that capability. This meant that the attachment of all volumes would be serialized even if they have no concept of a "shared target". This is caused because that feature was intended for iSCSI connections, but was applied to all connection types, introducing an unnecessary bottleneck on drivers like RBD or FC. This patch makes sure to check that the storage_protocol is also iSCSI. Closes-Bug: #1800136 Change-Id: I2805e8acf560cb941ddd3454477d89fe5a13d37f - Merge "Replace openSUSE experimental check with newer version" - Set user message on volume create failure This patch is to log user message when volume creation fails. This is only for _create_raw_volume, and other patches will be submitted for _create_from_snapshot etc. Change-Id: I9ba87863623a9c5806e93b69e1992cabce2f13b9 Partial-Bug: #1799159 - Imported Translations from Zanata For more information about this automatic import see: https://docs.openstack.org/i18n/latest/reviewing-translation-import.html Change-Id: If691126ff6e20e28384766305a8c9d07d8333d78 - Merge "[minifix] Update reno formatting on Quobyte driver defaults change" - Merge "api-ref: Fix namespace parameter for backend capabilities" - Merge "Remove scsi_id from rootwrap filter" - Merge "Remove mount from volume.filters" - Merge "Remove touch command from volume.filters" - Merge "api-ref: add missing fields in volume group types" - Merge "DS8K: correct the usage for ssl method(SSLContext.wrap_socket)" - Raise the ImageTooBig exception when found it We add the image too big error message in [1], but when we call the driver.copy_image_to_volume, if the image too big is not re-raise. So, we need raise the ImageTooBig exception when driver.copy_image_to_volume is failed due to too big image, otherwise the NOT_ENOUGH_SPACE_FOR_IMAGE message will not be recorded in [2]. [1] https://review.openstack.org/#/c/481107/ [2] https://github.com/openstack/cinder/blob/f67180d/cinder/volume/flows/manager/create_volume.py#L773-L778 Change-Id: I69767bcafe229b21d4381a704294f64b46a664d4 Closes-bug: #1798088 - Merge "PY3: Ensure rados.Object.read/write use byte data" - Move tgt targets to privsep Convert usage of tgt-admin and tgtadm to use privsep rather than the rootwrap wrapper. Change-Id: Ibdb94fc3aebb01fee6e2e76adeaa5d34a4af8753 Signed-off-by: Chuck Short <chucks@redhat.com> - hpe 3par driver initialization failure do_setup call fails if the stats passed has the missing array_id, in such cases it should use the client login to fetch the array_id information. Change-Id: I36d75fbe18770d6e3ae03c05d5392f8141082a0f Closes-bug: #1790005 - Merge "api-ref: cleanup status conditions for backup/restore APIs" - Merge "Drop drv_cfg from rootwrap filters" - api-ref: cleanup status conditions for backup/restore APIs The description for the backups API in both the v2 and v3 reference had a generic statement that only available volumes can be backed up and restored, which is misleading since it is possible to backup an in-use volume if the force parameter is used. This change drops the generic statement from the high-level description and opts for per-API descriptions about the status preconditions for backup and restore operations. The v3 restore reference already mentioned the status precondition so the only change to that is fixing the bullet list formatting. Change-Id: Ib6c61af9ced2527884569fa15a848a215dd985b8 Closes-Bug: #1799499 - PY3: Ensure rados.Object.read/write use byte data rados.Object.write(string_to_write) [1] and rados.Ioctx.write(data) [2] expect to write byte data for the above named arguments. rados.Object.read() returns that data. Ensure that the json_meta argument passed to rados.Object.write() in VolumeMetadataBackup.set() is encoded as a UTF-8 bytes object and decoded after rados.Object.read(). Also update the corresponding unit tests to ensure that metadata dictionaries are JSON serialized, encoded, and decoded similar to how the actual code behaves. [3] [1] https://github.com/ceph/ceph/blob/v13.2.1/src/pybind/rados/rados.pyx#L3984 [2] https://github.com/ceph/ceph/blob/v13.2.1/src/pybind/rados/rados.pyx#L2641 [3] https://bugs.launchpad.net/cinder/+bug/1798917/comments/4 Change-Id: Idb225b5c84be3beac0c272ed4b8d69ebb04c5858 Closes-Bug: #1798917 - Merge "Fix multiattach set to false after retype" - Merge "Fix wrong uuid recognized when create group" - Merge "Fix unexpected behavior in _clone_image_volume" - Forbidden to revert volume to a different size snapshot As mentioned from original design: "As we support extend volumes at present, we could meet the case that snapshot is smaller than volume when reverting to snapshot and it's obviously safe to revert in that case. But we will still restrict to revert the volume which current volume size is equal to snapshot, cause we don't support shrink volume yet (that ability will be used in the generic method, if the driver don't support revert to snapshot)." So, we need add a size check before we revert a volume to a snapshot. If the volume size is not equal to its latest snapshot size, it will be raise a HTTPBadRequest(400). Change-Id: Ib3cc95a10870822b9f597d66007699fb40908b61 Closes-bug: #1798503 - [Trivial] Replace 'action' with 'command' in cinder-status doc Addressing pending comments on commit I2e532d313d12e60848b17e869882e52ec456929b. Change-Id: I0b4c7a273d0de17955dba04df6c7aabf42028a06 - Fix unexpected behavior in _clone_image_volume Current, if we upload a snapshot-volume to image, then create a new volume from this image, this new volume is created from original snapshot rather than snapshot-volume. That means if we already make some data change on a snapshot-volume, then we export this snapshot-volume to image, this image will lose all change data. This patch try to fix this, we skip the "snapshot_id" and "source_volid" when we create tmp image volume. Closes-bug: 1795098 Change-Id: Icf0dadc1ce4d008ff437ca5dcde1817d2e560e44 - Remove scsi_id from rootwrap filter Remove scsi_id from rootwrap filter no longer being used. Change-Id: I1a3e527765c23a4b64a6493913f99e15ea25a7d4 Signed-off-by: Chuck Short <chucks@redhat.com> - Remove mount from volume.filters Remove the mount command from volume.filters it is not being used anywhere. Change-Id: Iafdb783deb769cdee4028e42ec62027c8b2951d1 Signed-off-by: Chuck Short <chucks@redhat.com> - Drop drv_cfg from rootwrap filters Drop "drv_cfg" from rootwrap filters its not being used anywhere. Change-Id: I10d58665d12565036d6a0dbb90743903071b3bd7 Signed-off-by: Chuck Short <chucks@redhat.com> - Remove touch command from volume.filters Move touch to privsep and remove it from volume.filters. Change-Id: I169b45f1176537448871cf23b6362c7ffbb16fff Signed-off-by: Chuck Short <chucks@redhat.com> - cinder-manage online_data_migrations fixes Addresses some issues with this command: 1) When used without the --max-count option, the summary table will always show zero migrations run, because it only accounts for the last batch, and the loop only exits when the last batch does no work. 2) "remaining" counts cannot be accurate, given the way migrations are implemented, because the "found" count refers to the number of rows that exist in the database, not the number that still need the migration applied. 3) In the case where no migrations are successful, but some raise exceptions, the command was exiting with status zero, which usually indicates "success". This can cause issues that cause migration failures to go unnoticed, especially when automated. 4) When exceptions do occur, a minimally useful message is output, and no detail about the exception is available to the user. The exception detail should be logged. 5) Inaccuracies in the documentation - "--max_number" should be "--max-count", and stale references to the "--ignore_state" option, which was removed in [1] The solution for (3) introduces a new exit status, 2. See release note for details. These changes are aligned with equivalents [2][3] for the nova-manage command, except for the calculation of "Total Needed" - nova seems to interpret the "found" count differently/inconsistently. [1] https://review.openstack.org/510201 [2] https://review.openstack.org/605828 [3] https://review.openstack.org/608091 Change-Id: I878480eb2359625cde839b073230844acc645cba Closes-Bug: #1794364 Closes-Bug: #1796192 - Handling unexpected python error "NoneType object is not iterable" The glance documentation states that None (empty image) is a valid return value. We have to handle this outcome. Adding error handling helps debugging this unhandled issue Change-Id: If7c22ac4516f8c2a6ccd8bf6b6ed98409312b138 Closes-Bug: #1798147 - api-ref: add missing fields in volume group types There are some fields missing in volume group types api ref, https://developer.openstack.org/api-ref/block-storage/v3/#list-group-types is_public and description are missing from the response and sample of "List group types". Change-Id: I47c3c8279d2026f04646ceba4bd31f23519fffad - Huawei: Simplify wait_for_condition calls This simplifies the logic for waiting for conditions to be met and prepares things for further updates to consuming code. Change-Id: I4155eee3ec5a2db9b810674c02f5e6c9261e17fd Signed-off-by: Sean McGinnis <sean.mcginnis@gmail.com> - Update sphinx extension logging Sphinx 1.6 deprecated using the application object to perform logging and it will be removed in the upcoming 2.0 release. This updates our extensions to use the recommended sphinx.util.logging instead. Change-Id: I3b44e096c62a081e195ea22bc953d1752d7ff4b7 Signed-off-by: Sean McGinnis <sean.mcginnis@gmail.com> - Restructure Huawei driver As part of further refactoring work, this pulls out common driver code into its own file to better organize the code. Change-Id: Ib5b52b638e27743d86106cc9859f8adeab2aab08 Signed-off-by: Sean McGinnis <sean.mcginnis@gmail.com> - DS8K: correct the usage for ssl method(SSLContext.wrap_socket) Since Python 3.2 and 2.7.9, it is recommended to use the SSLContext.wrap_socket() instead of wrap_socket(). So the patch https://review.openstack.org/#/c/591608/ help to optimize it. But the usage of SSLContext.wrap_socket() is wrong, it caused DS8K cinder driver can not be initialized, so this patch will correct it. Change-Id: Ia015f3b48796dec79dd68b8d393e920a03dfa585 Closes-Bug: 1797847 - Fix: storage_pools key in Huawei Driver The storage pools key is written as storage_pool while getting the info from conf. This patch renames the key to storage_pools. Co-authored-by: zengyingzhe <zengyingzhe@huawei.com> Change-Id: I2aacec36f4d6bb69e88abe14bea689cee6057d87 Closes-Bug: #1635500 - fix misspelling of available Change-Id: I35d8b9443326479844bfc675d847210a8e932a15 - Merge "Fix debug message for _copy_volume_data" - Fix debug message for _copy_volume_data Use the correct name of the method for a more clear log message. Change-Id: I7349518cd7a0cb4f4e35d94440dea1f7e3c2b416 - Merge "Remove WindowsDriver mapping" - Merge "Fix Dell EMC Xtremeio drivers report wrong value" - Merge "Allow using forward slashes in metadata" - Allow using forward slashes in metadata The recent changes introduced in Rocky disallowed the use of forward slashes inside metadata which has caused software that relies on metadata and uses those forward slashes stop functioning, a notable example would be the Kubernetes cloud provider. This patch allows the usage of a forward slash in the metadata as well as extra specs, it is relatively harmless, unbreaks downstream users and we already accept a range of symbols in there anyways. Change-Id: Ibe180949205ef6985dc5c19904c127cbca361d53 Closes-Bug: #1798798 - Merge "Extract volume image metadata into volume utils" - Merge "Extract _get_image_metadata into volume utils" - Merge "api-ref: fix some inconsistencies in snapshot API" - api-ref: fix some inconsistencies in snapshot API https://developer.openstack.org/api-ref/block-storage/v3/index.html#list-snapshots-and-details 1. updated_at is missing in the response fields of show-snapshot and list-snapshots 2. id's description is "The UUID of the volume transfer.", which is incorrect. 3. volume_id's description is "The UUID of the volume.", which is not very accurate. 4. os-extended-snapshot-attributes:progress is something like '100%', so it should be string, not integer 5. response fields of show-snapshot-metadata is incorrect. 6. metadata is missing in the response example of update-snapshot 7. snapshots_links is missing in the response of list-snapshot Change-Id: I0f6994c2d2dc27d3d594acdd460e27c338f86a2c - Merge "api-ref: Add response fields and response example for snapshot manage" - Merge "api_ref: total_capacity and free_capacity can be float" - Merge "api-ref: totalSnapshotsUsed in limits response should be integer" - Merge "Base framework for cinder-status upgrade check" - Base framework for cinder-status upgrade check This adds the cinder-status CLI for performing upgrade checks as part of the Stein cycle upgrade-checkers goal. It only includes a placeholder for actual checks. Follow up patches will need to be added for anything we identify as needing specific checking. Story: 2003657 Task: 26123 Change-Id: I2e532d313d12e60848b17e869882e52ec456929b Signed-off-by: Sean McGinnis <sean.mcginnis@gmail.com> - Merge "Cinder Backup: object_count value incorrect" - Imported Translations from Zanata For more information about this automatic import see: https://docs.openstack.org/i18n/latest/reviewing-translation-import.html Change-Id: I937db30dfd897773ababc7b55370727fa6568d17 - Merge "Fix for field type error" - Fix for field type error The data type of QuotaUsage.deleted is boolean, here assigned an integer to a boolean. Not good to assume 0 is the same as False. Similar sentence such as 'VolumeTypeProjects.deleted == 0' is correct because the type of VolumeTypeProjects.deleted is integer. Change-Id: Ia3f62c93dc2621474907906aeda0ddf1469d5c8f Signed-off-by: Liang Fang <liang.a.fang@intel.com> - Merge "Adding regression test for update_group" - Adding regression test for update_group Initially the issue was fixed here If74d23b9413209ee8db3c58fc71d215abeb580b2, but due to code changes, the same issue was repeated and fixed here, Ia43a6f2df7fd4066a0ed26450b26a1456d4cecfa. Addressing the comment on the latest fix, adding test case. Change-Id: I03d6214abf050e5f9a2cc5fa0772150bbbf8520e Related-Bug: #1645207 - Merge "Mark Veritas HyperScale Driver Unsupported" - Merge "VMAX: set faked max_oversubscription_ratio" - VMAX: set faked max_oversubscription_ratio FakeConfiguration is used in VMAX tests. Without a valueset for max_oversubscription_ratio, this results in test failures with the error: "TypeError: float() argument must be a string or a number, not 'NoneType'" This adds a default value for this config option in the fake config. Change-Id: Ia0b9772823fe9d093cfafe3ee241aad5b21fc3fd Signed-off-by: Sean McGinnis <sean.mcginnis@gmail.com> - Merge "Rename cinder.privsep.utils to cinder.privsep.path" - Rename cinder.privsep.utils to cinder.privsep.path Rename file to path because most of these functions in the file have to do with filesystem paths and the like. Change-Id: I709d8f8722c6a477e50d0ee7fd9a368a16fe9cca Signed-off-by: Chuck Short <chucks@redhat.com> - Merge "Move cinder-manage page to cli doc subtree" - Move cinder-manage page to cli doc subtree Since we have a CLI reference and specific doc subtree the cinder-manage docs should live there. This moves the cinder-manage page from man/ to cli/ and adds a redirect link. Change-Id: If99416e8a382d2a6571412742276dccc591d180c - Merge "Add test-requirements to pylint reqs" - Add test-requirements to pylint reqs Need this for ddt, mock, etc. pylint runs currently throw ImportErrors related to this. Change-Id: Ia906cd89acc9c12e4b731751763b4e9331aa80d2 - Merge "SF ensure the correct volume is deleted" - Merge "api-ref: remove created_at from response example of list-transfer" - Merge "api-ref: qos and extra_spec are optional in types view" - Merge "api-ref: Add response fields and response example for volume manage" - Imported Translations from Zanata For more information about this automatic import see: https://docs.openstack.org/i18n/latest/reviewing-translation-import.html Change-Id: I30fe71261e80593d626fb216485cf113fe9ab3e1 - Merge "NFS Backup: Avoid TypeError in os-brick when not configured" - Imported Translations from Zanata For more information about this automatic import see: https://docs.openstack.org/i18n/latest/reviewing-translation-import.html Change-Id: I964b9c1a4379d333a06ae2c699d1188e4ae2e4c3 - Merge "Use tempest-pg-full" - Increment versioning with pbr instruction With moving away from required milestone releases, the version numbers calculated by PBR on the master branch will not work for those testing upgrades from the last stable release. More details can be found in the mailing list post here: http://lists.openstack.org/pipermail/openstack-dev/2018-October/135706.html This is an empty commit that will cause PBR to increment its calculated version to get around this. PBR will see the following which will cause it to increment the version: Sem-Ver: feature Please merge this patch as soon as possible to support those testing upgrades. Change-Id: I898f327003c68ee6f66d1a70e1b25a49336424f1 Signed-off-by: Sean McGinnis <sean.mcginnis@gmail.com> - Mark Veritas HyperScale Driver Unsupported The Veritas HyperScale Driver 3rd Pary CI hasn't reported in 153 days. This does not meet the requirements for Cinder's 3rd Party CI requirements. As a result the driver is being marked unsupported in the Stein release and should be removed in the 'T' release if the problems are not resolved. Change-Id: I4e20cdc555e9fb53dbc831f4464ccf80d9f01e7b - Merge "Fix: UnboundLocalError variable referenced before assignment" - Cinder Backup: object_count value incorrect Whenever we create a backup, the object_count value doesn't match with the actual number of objects created. This patch addresses the change. Co-authored-by: wanghongxu <wang19930902@gmail.com> Change-Id: I972df393fe64ca55fcdaa629f03cfc10761f0f24 Closes-Bug: #1685731 - Extract volume image metadata into volume utils The "get_volume_image_metadata" method is a common function to get the volume image metadata, and "enable_bootable_flag" method is used to enable volume bootable flag. These are also can be used by re-image interface, this patch extract them into volume utils. Change-Id: I37af102c95023f7ad6d23c8aa93d63d8fe6f547d blueprint: add-volume-re-image-api - Extract _get_image_metadata into volume utils The "_get_image_metadata" method is a common function to check whether we can use this image to write a volume or not. These logic also can be used by re-image interface, this patch extract it into volume utils. Change-Id: Ie1b9fd8b4f335f0b660984ca1b3121b2f203704d blueprint: add-volume-re-image-api - Use tempest-pg-full The legacy job legacy-tempest-dsvm-neutron-pg-full is now named tempest-pg-full - using the new tempest and Zuul v3 frameworks. Change experimental job to use new job. Change-Id: I6110790aec1f532c930753f5955f2976db6703fb Depends-On: https://review.openstack.org/609530 - Remove the ITRI DISCO driver The ITRI DISCO driver was marked unsupported in the Rocky release. It hasn't reported on a patch in 74 days and hasn't successfully executed CI in 231 days. This falls well outside our CI requirements and therefore the driver is being removed. Change-Id: Iab4288983e8e13a3b9d59b30887d1934a2eb66c8 - NFS Backup: Avoid TypeError in os-brick when not configured If backup_share is not set, a TypeError is raised from os-brick, because this code is run before the config options are validated. Don't try to initialize the path if this is not set. Closes-Bug: #1797227 Change-Id: I96e104f0e0da0257c48bbaffc2b436f670ccdb76 - [minifix] Update reno formatting on Quobyte driver defaults change Corrects formatting as requested in comment of previous change I0ce20e109f126500462e6459794e993bbd579b58 . Change-Id: Ibf3faa12ef3964071b39fe38b2724162b3ddb770 - api-ref: totalSnapshotsUsed in limits response should be integer https://developer.openstack.org/api-ref/block-storage/v3/index.html#show-absolute-limits-for-project totalSnapshotsUsed in limits response should be integer, but not string. And totalSnapshotsUsed is also used in hosts response which is string, so this is to add a new parameter for totalSnapshotsUsed. Change-Id: I48f61f50defe9782d5a7afb7d7fa245f562785a0 - Add column only when it doesn't exist Add existence check before actually create the specific column. Closes-Bug: #1797286 Change-Id: I7ecd65b2da3700bb02fd12d9f700260f2b708f45 - Remove volume:get policy from test policy file There is a policy file maintained specifically for testing that overrides the default policies so that they are easier to test against. Ideally, we should make it so that it easier to test the default policies instead of overriding them since this would help us prevent regression when policies are change. An example of how to do this was implemented in the following patch: I88354ec57849e59764b1f5b0233be4fa1ef70c38 The more tests cases that are covered like that, the more policies we can remove from cinder/tests/unit/policy.json. Once that file is empty we should have satisfactory test coverage of the default policies that are maintained in code. Change-Id: Ia6c2e51fa88811e04f1c312f003b7b2524d90072 - Replace openSUSE experimental check with newer version We're migrating now to openSUSE 15.0 (yes, 15.0 is newer than 42.3), remove legacy job and replace with native Zuul v3 job running python3. Change-Id: If7e1b1108acb7a7f8b6b7524213ba5dae5560b53 Depends-On: https://review.openstack.org/609359 - Merge "Fix for cinder-manage db purge" - Merge "Get rid of keys() usage" - Fix for cinder-manage db purge When backend database is postgresql, "cinder-manage db purge" will throw an exception. The root cause is that "deleted" column in table quality_of_service_specs is of type boolean, but it is compared with an integer. In mysql, there's no such issue because boolean in mysql is tinyint(1). Some logs: DBAPIError exception wrapped from (psycopg2.ProgrammingError) operator does not exist: boolean = integer Closes-Bug: #1797048 Change-Id: I05b0edef4cc56518e99622599f01dbd6280a7f1b Signed-off-by: Liang Fang <liang.a.fang@intel.com> - Follow Up: Generalizing is_replicated_str to is_boolean_str Addressing the comment on the commit Ic6c19414738367aa794522aaa0c1a963abcac723, the method is_replicated_str consists the functionality of checking if the string is valid boolean type or not which is being used for purposes other than checking for replicated string. This patch generalizes the name of the method. Change-Id: Id299aeeea06a54d97fef2d8b0cabb83b7a518e19 - api-ref: Add response fields and response example for snapshot manage https://developer.openstack.org/api-ref/block-storage/v3/index.html#manage-an-existing-snapshot Response fields and response example are missing in the "Manage an existing snapshot" api ref, this is to add them. Change-Id: I5a3f397e1a4d7e38d35b707f3c164ef7522aea95 - Merge "Remove udevadm from rootwrap" - Merge "Add tests for multiattach check in cinder.objects" - Merge "API-REF:os-quota-sets v2 API reference has the wrong parameters" - Merge "api-ref: add missing response body for groups" - api-ref: remove created_at from response example of list-transfer created_at is only present in "List volume transfers and details", and not in "List volume transfers for a project". https://developer.openstack.org/api-ref/block-storage/v3/index.html#list-volume-transfers-for-a-project https://developer.openstack.org/api-ref/block-storage/v3/index.html#list-volume-transfers-and-details So created_at should be removed from the response example of "List volume transfers for a project". Change-Id: I52a81454a995920c1ba5534fea3d50f6c9986881 - Merge "Stop using deprecated rpc_backend option" - Merge "Remove the HGST Flash Storage Driver" - Merge "Fix doc output examples" - Merge "Don't quote {posargs} in tox.ini" - Handle drivers that do not support list manageable Listing manageable volumes and snapshots is not a required feature for drivers and not all of them support it. If a user attempts to list objects when using a backend that does not support it, they currently get a somewhat cryptic and internally-exposing error message: AttributeError: 'RBDDriver' object has no attribute 'get_manageable_snapshots' This updates the manager to better handle the case where a driver does not support listing volumes and snapshots. Closes-bug: #1796784 Change-Id: Ib6cdbe22ad22841c7a166f722eee981913396af4 Signed-off-by: Sean McGinnis <sean.mcginnis@gmail.com> - Fix doc output examples Update the response of openstack volume service list Change-Id: Ib5427827862c88bfe4b4cf7e649b7d60884337ca - Fix: UnboundLocalError variable referenced before assignment The variable used inside the try block is also used in the except block for logging volume id which errors out to UnboundLocalError: local variable 'add_vol_ref' referenced before assignment. This patch addresses the issue by using the volume id from the for loop. Change-Id: Ia43a6f2df7fd4066a0ed26450b26a1456d4cecfa Related-Bug: #1645207 - api-ref: Add response fields and response example for volume manage https://developer.openstack.org/api-ref/block-storage/v3/index.html#manage-an-existing-volume Response fields and response example are missing in the "Manage an existing volume" api ref, this is to add them. Change-Id: If624b672d1723a7226741da85802de87979f6c12 - Merge "Fix wrong NotFound in get_by_name_or_id" - api_ref: total_capacity and free_capacity can be float Some drivers will report total_capacity and free_capacity as float, so this is to change the data type description to include floating point. Change-Id: Icd206ba3733adf9543a9e1384ef7245e287ee858 - Stop using deprecated rpc_backend option oslo.messaging deprecated the rpc_backend option long ago, but it was still being used in cinder unit test configuration fixtures. oslo.messaging 9.0.0 finally removed that option, so now the tests are failing. This change replaces use of rpc_backend with the corresponding transport_url option that as recommended at: https://docs.openstack.org/oslo.messaging/latest/configuration/conffixture.html It also removes a redundant setUp() override. Change-Id: I7cc823e96da1fd38ba28650b72a358e792d7c892 Closes-Bug: #1796759 - Don't quote {posargs} in tox.ini Quotes around {posargs} cause the entire string to be combined into one arg that gets passed to stestr. This prevents passing multiple args (e.g. '--concurrency=16 some-regex') Change-Id: I8ce3c403904ea1c6990f88d52c1c1a068aaed75a - Imported Translations from Zanata For more information about this automatic import see: https://docs.openstack.org/i18n/latest/reviewing-translation-import.html Change-Id: If7e7030bb9073e92a2f8fc034c1dc6349fcada5f - api-ref: qos and extra_spec are optional in types view As Felipe commented in I7ef9b3ea989d65dbd6dfa291ab4752664ed5f935, extra_specs and qos_specs_id are only populated following policy authorization:e1d8ec8b26/cinder/api/v2/views/types.py (L31)
So this is to make them optional. Change-Id: I6f5103b7333b80b9651c279053dbdecd4574c18b - Fix wrong uuid recognized when create group We can't create a group with a uuid format name volume type, there is a uuid check in "volume_types_get_by_name_or_id()", and the uuid-like type name would be mistakenly recognized as a id, finally, it will use "get_volume_type"(by_id) to get volume type and cause a 404 error. So, this patch try to fix this error, if we can't find a type by uuid, we need call "_volume_type_get_by_name" to check again can we get this type by name. Change-Id: Id09230bffc0ad83093bb6254b2e09aca5d1c58b1 Closes-bug: #1794716 Related-bug: #1794237 - Merge "Remove sg_scan" - api-ref: Fix namespace parameter for backend capabilities This patch set corrects the namespace parameter for capabilities api-ref from namespace [0] to namespace_1 which is the correct one as it is both required and matches the following format in the view code [2]: The storage namespace, such as ``OS::Storage::Capabilities::foo``. [0]7f7716d584/api-ref/source/v3/parameters.yaml (L1945)
[1]7f7716d584/api-ref/source/v3/parameters.yaml (L1951)
[2]af41c04d0f/cinder/api/views/capabilities.py (L31)
Change-Id: I0557b32e7e3752e8fcde5dadd621c82fded1e755 - Merge "Imported Translations from Zanata" - Merge "Mark the Nexenta Edge driver unsupported" - Imported Translations from Zanata For more information about this automatic import see: https://docs.openstack.org/i18n/latest/reviewing-translation-import.html Change-Id: I56b4e73776a90f1aec27f366fbb34f4596f95787 - Merge "Mark the Tintri driver unsupported" - Merge "nimble storage: support for force detach" - SF ensure the correct volume is deleted When two management systems are available openstack/cinder and SolidFire-API/GUI a volume can be deleted though either interface. Thus if a volume is deleted through the SolidFire-interface and then again through the openstack/cinder interface it was possible to delete another volume. The original code made an incorrect assumption on all the possible values returned from a query to find the target volume. This could lead to deleting a volume that was not the target of the original delete command from openstack/cinder. The correction in the module _get_sfvol_by_cinder_vref validates that the returned object/volumes-id matchs the requested volume-id with a comparison of svol['volumeID'] to int(sf_vid) Closes-Bug: #1782373 Change-Id: I92a8e76c64c4e23dd185875e009132938ace5091 - Merge "Remove resolve_hostname" - Mark the Nexenta Edge driver unsupported The Nexenta Edge 3rd Party CI hasn't reported on successfully on a patch in over 4 months. This falls outside the CI requirements for Cinder so the driver is being marked unsupported. If the CI isn't fixed the driver will be removed in the 'T' release. Change-Id: If6d5f09865835e06b11961911246d72eac769a46 - Merge "Move check_encryption_provider to volume utils" - Mark the Tintri driver unsupported The Tintri 3rd Party CI system hasn't reported in almost 4 months. This doens't meet Cinder's 3rd Party CI requirements so the driver is being marked unsupported. It will be removed in the 'T' release if the problem isn't resolved. Change-Id: I8cf2bc860dceff1d4041ac02812beb688e6dee36 - Remove source_replica info from api-ref With the addition of schema validation and the release of cinderclient 4.0.0 we no longer accept source_replica as a volume creation parameter. This was part of the short lived replication v1 functionality that was removed several releases ago and never had support beyond one backend type for one or two releases and has had no affect for quite a while now. Change-Id: Idd848628759884c1e637ca17dc292f776e4adf47 Signed-off-by: Sean McGinnis <sean.mcginnis@gmail.com> - Remove sg_scan Brick was moved to os-brick so remove sg_scan from rootwrap and associated documentation. Change-Id: I56d67ebd24f3af74f26100b2d8fba3868b1acdbb Signed-off-by: Chuck Short <chucks@redhat.com> - Update unit test debug instructions Since we've moved to stestr, the test debugging instructions we had published in our documentation do not actually work anymore. This updates those instructions to show a couple possible methods that can be used to perform test debugging. Change-Id: I9946da0c0d9aa247ff820ee6c02e57bf86a2747d Signed-off-by: Sean McGinnis <sean.mcginnis@gmail.com> - Merge "Add 'volume_attachment' to volume expected attributes" - Merge "Remove cinder-tox-compliance job" - Merge "VMAX docs - Replace serial_number" - Merge "Add missing 'is_public' volume type parameter" - API-REF:os-quota-sets v2 API reference has the wrong parameters The request/response parameters for the v2 os-quota-sets API reference is copied from the compute API and is therefore wrong for the block storage API: https://developer.openstack.org/api-ref/block-storage/v2/#quota-sets-extension-os-quota-sets This patch replaces the wrong response with the correct parameters. Change-Id: I6df1d60843943c99505a735a6dec4f47270a1c2e Closes-Bug: #1794125 - VMAX docs - Replace serial_number Replace serial_number with generic number in metadata Change-Id: Ia23b8052777a1af9cc3bd515d60b2fc3f78dac8e - Remove the HGST Flash Storage Driver The HGST Flash Storage Suite Driver was marked unsupported in the Rocky release. Since being marked unsupported the 3rd Party CI still has not reported for 427 days. This does not meet Cinder's CI requirements so the driver is being removed. Change-Id: I91f511d0727da1bad77ee913afe0a0f137d289f8 - Add missing 'is_public' volume type parameter This adds the 'is_public' parameter to the api-ref for volume type details when listing all volume types. Change-Id: I23032d3d02fd0e9bc1d32b0ac5a1a111c5fc2a2c - Merge "Fujitsu DX: Add retries for busy error" - Merge "Fix wrong filter of backups in db api" - Merge "Fix pylint warning" - Merge "Changed default behaviour of nas_secure_file_* for Quobyte driver" - Merge "hosts api ref: all fields should be of type string" - Merge "api-ref: clarify volume_type param in volume create API" - Merge "api-ref: fix req/resp params for v3 os-quota-class-sets" - Merge "Remove systool from rootwrap" - Merge "api-ref: remove encryption from Show-an-encryption-type" - Merge "Raise HTTPUnsupportedMediaType when content type is unsupported" - Merge "VMAX Driver - Fix for manage volume if volume is part of SG" - nimble storage: support for force detach nimble storage driver doesn't handle force detach with empty connector information in terminate connection. The fix takes care of empty connectors and removing all ACL's on the volume if connector information is absent Change-Id: I74a5b48c414db2b5b9e27d986d776d7c2ae3f383 Closes-Bug: #1795070 Signed-off-by: Raunak Kumar <rkumar@nimblestorage.com> - Merge "Update Dell EMC Driver's multi-attach Support" - Merge "nimble storage: retype support" - Merge "VMAX Driver - Rollback for manage existing volume" - Merge "api-ref: total/free_capacity should be with postfix _gb" - Merge "NetApp SolidFire: Fix force_detach" - Merge "Fix DRBD volume driver creating a 2-volume resource" - Merge "api-ref: namespace in extensions is optional" - Merge "services api ref: fix field enum value and add missing field" - Merge "Use Tempest slow job to run all slow tests" - Merge "Enable split logging for cinder-keystoneclient interaction" - Merge "Add False check when do _retype_error" - Merge "Correct the link of 'OpenStack Documentation Contributor Guide'" - Merge "Xtremio: Remove unused constant" - Merge "Update auth_uri option to www_authenticate_uri" - Merge "Add delete snapshot preconditions" - nimble storage: retype support retype support between 2 nimble backends with and without migration - update the provider location for fetching the correct discovery ip for volume discovery - prevent failures on snap deletetion / offline as they could already be in those states Change-Id: If21bd6c6aa9cef45f57f32034e26502cd02743b2 Closes-Bug: #1790907 Signed-off-by: Raunak Kumar <rkumar@nimblestorage.com> - Use Tempest slow job to run all slow tests tempest-slow job run all the slow tests including API or scenario slow tests. By running this job will help to avoid any regressions across projects. This new job "tempest-slow" will run as voting on check pipeline and same job run on nova and neutron gate. Tempest also run "tempest-slow" as voting job. Detailed discussion on ML[2]. [1] http://git.openstack.org/cgit/openstack/tempest/tree/.zuul.yaml#n147 [2] http://lists.openstack.org/pipermail/openstack-dev/2018-May/130394.html Change-Id: Ifb982a464fdd8313c1172b9ada674c436d73fecc - api-ref: Change extensions updated type to updated_at This changes the updated type to be updated_at (the updated type is just a string whereas updated_at is iso-8601 formatted string). This change is consistent with: * examples for os-extensions in API docs [0] * Nova API docs for os-extensions [1] [0] https://developer.openstack.org/api-ref/block-storage/v3/index.html#id6 [1] https://developer.openstack.org/api-ref/compute/#id402 Change-Id: I806dbc66f35fd0d9209c25c35adc2d64f5b9f8ed - api-ref: remove encryption from Show-an-encryption-type https://developer.openstack.org/api-ref/block-storage/v3/index.html#show-an-encryption-type encryption is not a field in the response of "Show an encryption type", this is to remove it. Change-Id: Ie344e6f988cf71e97272910e84e0034ab8c317ff - hosts api ref: all fields should be of type string I512bfc97a1c3d4a508daf580d99fefe2a9ae4e13 tries to add schema validation for volume hosts, and there are some inconsistencies in api ref doc. https://developer.openstack.org/api-ref/block-storage/v3/index.html#show-host-details-for-a-project as the Response Example shows, all fields should be of type string, not integer. Change-Id: I8c6c50be45a1c923a8b7091d14cd5ae994d6e2cc - Remove systool from rootwrap Remove systool from rootrwrap its no longer being used. Change-Id: I3ef59743f2a240a0a15452d9532ca18cf0f4dcab Signed-off-by: Chuck Short <chucks@redhat.com> - Add tests for multiattach check in cinder.objects There doesn't exists a test for multiattach check in the cinder.tests.unit.objects.test_volume_types.TestVolumeType class. This patch adds the respective tests. Change-Id: Ic6c19414738367aa794522aaa0c1a963abcac723 - Merge "api-ref: add missing fields in volume types" - Merge "Clean up the deprecated description in doc" - Clean up the deprecated description in doc The nova-objectstore and nova-network is already deprecated. This patch remove these deprecated description. trivial_fix Change-Id: I2967e9f836c07d09749e4db023a2bbf1b5c91fe3 - Fix wrong NotFound in get_by_name_or_id When we create or retype a volume using the volume type which has a uuid format type name, the operation would be failed and raise a 404 error. There are a uuid check in "get_by_name_or_id()", and the uuid-like type name would be mistakenly recognized as a id, will use "get_volume_type"(by_id) to get volume type . So, this patch try to fix this error, if we can't find a type by uuid, we need call "get_volume_type_by_name" to check again if we can get this type by name. Co-Authored-By: Yikun Jiang <yikunkero@gmail.com> Closes-Bug: #1794237 Change-Id: I83f12a5b858aced117286e8d2dee717d14dbdba6 - api-ref: add missing response body for groups 1. https://developer.openstack.org/api-ref/block-storage/v3/#create-group "Create group" should have response body, like { "group": { "id": "2c311e17-9daa-4229-926a-cb9e233f06b0", "name": "tempest-GroupsTest-Group-938181552" } } 2. https://developer.openstack.org/api-ref/block-storage/v3/#create-group-from-source "Create group from source" should have response body, like { "group": { "id": "2c311e17-9daa-4229-926a-cb9e233f06b0", "name": "tempest-GroupsTest-Group-938181552" } } 3. https://developer.openstack.org/api-ref/block-storage/v3/#show-group-details group_type in "Show group details" or "List groups with details" or "Create group" should be an uuid string, not object. 4. group_snapshot_id and source_group_id should be optional in the response of "Show group details". Change-Id: Iea0c8f0f6fec1b8460c4ea53ed6468adbc31abf2 - Fix CLI output examples Update the response of openstack volume list and openstack availability zone list Change-Id: Iafdcb217221a7c2174091c675357769d5d998e29 - Merge "Add test case: create volume from source volume" - Fix multiattach set to false after retype The return value of get_by_name_or_id in the volume_types module returns a dictionary. During the function call to _is_multiattach, the getattr() returns {}(default value) because a dictionary is passed instead of an object. After importing the cinder.objects.volume_type module, the current function call to get_by_name_or_id() returns an object hence getattr() will return the appropriate extra_specs instead of the default value({}). Closes-Bug: 1790840 Change-Id: I869bc0c9b18887da1ea83f855d255557f0f3cba0 - Merge "Fix backup driver configuration examples in the documetation" - Merge "Adding variable for total gigabytes used by snapshot param" - Update Dell EMC Driver's multi-attach Support Updated Dell EMC SC driver for the multi-attach support. We will be enabling the multi-attach feature in the third-party CI as well. Change-Id: I113281fb636399318563241abcfa14da84808b9c - Fix backup driver configuration examples in the documetation Since iI3ada2dee1857074746b1893b82dd5f6641c6e579 is merged we must use class name for backup driver configuration instead of module name. Change-Id: Ia1388866107f79e31512fa2afd0ece0c2b279026 - api-ref: add missing fields in volume types There are some fields missing in volume types api ref, 1. https://developer.openstack.org/api-ref/block-storage/v3/index.html#show-volume-type-detail "os-volume-type-access:is_public" and "qos_specs_id" are missing from the response of "Show volume type detail". 2. https://developer.openstack.org/api-ref/block-storage/v3/index.html#update-a-volume-type "id" is missing from the response of "Updates a volume type." Change-Id: I5f24a344755124fbc429f43a6970be00592a8ef2 - api-ref: total/free_capacity should be with postfix _gb https://developer.openstack.org/api-ref/block-storage/v3/index.html#list-all-back-end-storage-pools free_capacity and total_capacity in "List all back-end storage pools" should be free_capacity_gb and total_capacity_gb Change-Id: Ic0690d12147fa63b903f3442eccde88c1d501711 - Merge "Exclude disabled API versions from listing" - api-ref: namespace in extensions is optional https://developer.openstack.org/api-ref/block-storage/v2/index.html#list-api-extensions namespace in the response of "List API extensions" should be optional. Change-Id: Ie2351adcb8f1c30c791de7463e3bedb86200c357 - Merge "Fix image volume cache max size and max count limits" - Fix pylint warning Multiple isinstance calls can be merged into one for better readability. Change-Id: Ib1a5c3e28acad1f9f13b981612422d9c4c2b4986 Signed-off-by: Chuck Short <chucks@redhat.com> - Exclude disabled API versions from listing The code for listing supported API versions would return a static list, whether those versions were enabled or not. This changes the logic to drop versions that are not enabled so we don't report back support for something that then would cause a failure if the user tried to use it. Closes-bug: #1788039 Change-Id: I52c1264b3b67a5c1ea00de1c0de5bea04c3096ee Co-Authored-By: iain MacDonnell <iain.macdonnell@oracle.com> Signed-off-by: Sean McGinnis <sean.mcginnis@gmail.com> - Merge "Remove unecessary pass" - Merge "Fix bug of renaming volume with same name" - Merge "Add comment to online data migration command" - Enable split logging for cinder-keystoneclient interaction To enable split logging functionality[1], 'split_loggers' conf option can be passed in below two ways: 1. As 'split_loggers' is already registred in [default] and [service_user] group of cinder.conf we can use it while creating keystoneclient. 2. Register 'split_loggers' conf option in keystonemiddleware[2] so that we can get it in [keystone_authtoken] group of cinder.conf and use it while creating keystoneclient. In this patch we are passing it from [service_user] group at the time of creating keystoneclient. [1]: https://review.openstack.org/#/c/505764/ [2]: https://review.openstack.org/#/c/578008/ Change-Id: Ic4972c6ebcac7115133ff7e906f756e68588a7b5 - Merge "ZFSSA iSCSI implement get_manageable_volumes()" - Merge "Fix some inconsistencies in qos-specs api ref" - Merge "Fix some inconsistencies in messages api ref" - Merge "Fix deprecation warnings" - Merge "Fix api-ref title levels and index" - Merge "Drop legacy backup service support" - Merge "Avoid using dict.get() in assertions" - Merge "api-ref: add docs for os-migrate_volume API" - Remove unecessary pass Remove unecessary "pass" where they are not needed. Change-Id: I200a3c0e40720cd53694ae157861d62dee42ab1f Signed-off-by: Chuck Short <chucks@redhat.com> - Merge "Add policy granularity to the encryption API" - Merge "api-ref: mark name as optional in volume create API" - Merge "ZFSSA handle manage nonexistent volume" - VMAX Driver - Fix for manage volume if volume is part of SG If the volume being managed is already a part of some FAST managed SG then the VMAX driver should move the volume from this SG to the default SG corresponding to the volume type. If the volume is part of multiple SGs then the manage operation should fail Change-Id: I3aeb6a815079cb3e637d3f559952f782974f07ed Closes-bug: 1792886 - Merge "Propose example volume protection tests" - api-ref: clarify volume_type param in volume create API The volume_type parameter to the volume create API can be either the volume type name or ID, the cinder-api will look it up either way. This wasn't obvious from the API reference and required digging into the code to figure it out. This change simply clarifies the usage in the API reference. Change-Id: Iae8c43374dee9767e17252279822ccd2121d8246 - api-ref: fix req/resp params for v3 os-quota-class-sets The volume-type parameter in the update quota class sets API reference was confusing. The volume_type is a namespace on quota class values for snapshots, volumes and gigabytes. The os-quota-sets API reference had this documented correctly, so the os-quota-sets parameter values are re-used here for os-quota-class-sets. Change-Id: I6e8993f909834797572ec4b911bf709c3701fff1 Closes-Bug: #1794120 - api-ref: mark name as optional in volume create API The "name" parameter to the volume create API is optional, this makes the docs reflect that. While in here, I've renamed volume_name_1 to volume_name_optional so the variable name is descriptive and dropped the redundant name_8 variable. Change-Id: Ice42f06112a268b229f770f34096de19eb3447b2 Closes-Bug: #1794115 - Fix DRBD volume driver creating a 2-volume resource When DBus runs into a timeout somewhere, the Cinder volume driver will erroneously create a resource with two volumes in it. Repeating the create volume operation will check for duplicate entry and will avoid creation of additional volume. Change-Id: I798487f0fda94da3247bf2c341b6a91a8a06d848 Closes-Bug: #1613690 - ZFSSA iSCSI implement get_manageable_volumes() Implement get_manageable_volumes() to augment existing implementation of volume manage/unmanage. Change-Id: I19d94c13288dd574f6eafaf3fb430c3452961ce5 Closes-Bug: #1793599 - Merge "Imported Translations from Zanata" - Get rid of keys() usage for x in some_dict.keys() can be written as for x in some_dict Change-Id: I9cdb3e6802fbf85fe49f3855ccc2a68ce5cc56c4 Signed-off-by: Chuck Short <chucks@redhat.com> - Merge "EMC ScaleIO driver does not honor create from snapshot volume size" - Merge "Update doc for get-pools API" - Merge "Remove auth_uri usage" - Merge "VMware: Fix revert-to-snapshot" - Merge "VMware: Remove member initialization in properties" - Merge "ZFSSA iSCSI driver doc fix - allow_rename auth/o" - Imported Translations from Zanata For more information about this automatic import see: https://docs.openstack.org/i18n/latest/reviewing-translation-import.html Change-Id: I69c242df3897c4093f333e106a0920e913a913b8 - Fix bug of renaming volume with same name If the volume is already in the pool, renaming causes exception. It failed because of ImageExists. Change-Id: I81951da141ed7948e48b92da718b3a0e9c12e859 Closes-Bug: #1792339 - Merge "Fix pylint warnings for "unnecessary not"" - Merge "Remove os-image-create API extension" - Merge "Dell PS Driver moves to maintenance mode" - Merge "trival: Fix some spacing issues" - Merge "Fix typo" - Merge "Add microversion history to api-ref" - Merge "[Optimize] Use OVO when retrieve volume object" - Merge "Remove aoe-revalidate, aoe-discover, aoe-flush" - Fix some inconsistencies in qos-specs api ref I433c78821185600a230803cddec54a5d264c2ca5 tries to add response schema validation for qos-specs interfaces, and there are some inconsistencies in api ref: 1. https://developer.openstack.org/api-ref/block-storage/v3/index.html#create-a-qos-specification Create a QoS specification has no response sample. 2. https://developer.openstack.org/api-ref/block-storage/v3/index.html#get-all-associations-for-a-qos-specification Get all associations for a QoS specification has incorrect response fields description and incorrect response sample. Change-Id: Ib5c9b3a15ee2ca40c19e7a530d1ff5351d3dcaf8 - Merge "Fix typos in volume api ref doc" - Propose example volume protection tests During the Stein PTG there was a session to discuss ways to make it easier to ensure we can change policies without breakages. Ideally, having a series of test classes than ensure the policy being using to protect an API is exercised using the oslo.context and olso.policy libraries. This commit attempts to build out a set of example test cases that can be used to increase test coverage in this area. Change-Id: I88354ec57849e59764b1f5b0233be4fa1ef70c38 - services api ref: fix field enum value and add missing field I62072573624c9e579a61affed6a7f8d57a6fdb6d tries to add schema validation for volume services, and there are some inconsistencies in the api ref doc. https://developer.openstack.org/api-ref/block-storage/v3/#list-all-cinder-services 1. As Response Example shows, status takes the value of enabled or disabled, not available/unavailable. 2. response may contain backend_state field which is optional. Change-Id: I2435e3dc7c704de158b479d2ea543409b7686a07 - ZFSSA iSCSI driver doc fix - allow_rename auth/o Volume manage/unmanage implementation requires allow_rename authorization. Update configuration doc to reflect this. Change-Id: Id83cf7d1cf62815794a804f765919839fa56296d Closes-Bug: #1793409 - ZFSSA handle manage nonexistent volume Fix handling of attempt to manage a volume (LUN) that doesn't exist on the ZFSSA backend. Change-Id: I9668667b98daeddc5beb12a0ba3e944d151fd42e Closes-Bug: #1793402 - Merge "ZFSSA volume driver REST client python3 fixes" - Adding variable for total gigabytes used by snapshot param Refering to the host details API doc https://developer.openstack.org/api-ref/block-storage/v3/index.html#show-host-details-for-a-project snapshot_count and total_snapshot_gb are two different values, but have been assigned the same variable as can be seen here, https://github.com/openstack/cinder/blob/master/api-ref/source/v3/hosts.inc This patch adds a new variable for total_snapshot_gb param. Change-Id: I5727df835456bfa0ca63e253ddc700182b7cd85c - [Optimize] Use OVO when retrieve volume object Use OVO instead of db object when collecting volume resource. Change-Id: I7645090cdb8c96468a8801a3ec5cb214eaca2e05 - Merge "VMAX Rocky doc - version information" - Add microversion history to api-ref This pulls in our microversion history document into the api-ref to make it easier for api consumers to discover the history of API changes. Change-Id: I9033a48e3f60199b60a904c8cf028f4a1e037ec3 Signed-off-by: Sean McGinnis <sean.mcginnis@gmail.com> - Dell PS Driver moves to maintenance mode We are moving Dell PS Driver to maintenance mode and will be removed from the tree in S release. Change-Id: Ic4fef5176766578d4f9e0fdc4e80a2dedfb242c4 - Remove udevadm from rootwrap Use oslo.privsep for udevadm Change-Id: Ib89354c9555c4b2c9f5a8331a788d7fe4ac46694 Signed-off-by: Chuck Short <chucks@redhat.com> - VMAX Rocky doc - version information Updating version information and adding supported features. Change-Id: Ib19433d7d694f70cf47f2e654d02c19fc89e8469 - Fix some inconsistencies in messages api ref I512bfc97a1c3d4a508daf580d99fefe2a9ae4e13 tries to add response schema validation for messages interfaces, and there are some inconsistencies in api ref: 1. delete message success code is 204, not 202 2. id is of the format uuid, which means string, not integer. Change-Id: I13280bf158f541ed0514930274df8c03a0f81c4c - Fix typos in volume api ref doc This is to fix typos in volume api ref doc. Change-Id: Ie861548a02ccdd6229edec682c3e4c2d6be084c7 - Remove aoe-revalidate, aoe-discover, aoe-flush Remove from rootwrap.d/volume.filters since they are not being used anywhere. Change-Id: I0cabd55bcef569212ac0e2c188051e62ee265c22 Signed-off-by: Charles Short <chucks@redhat.com> - Merge "3PAR: Update Storage Driver docs" - Merge "Move hscli to privsep" - VMAX Driver - Rollback for manage existing volume Implements rollback for manage existing volume for the scenario when the manage operation fails after the volume has been already renamed on the array Change-Id: I40f861819d8ce43a128d411ff58a1a703d8b1e0b Closes-bug: 1792884 - ZFSSA volume driver REST client python3 fixes 1) Although it's unlikely that non-ASCII characters would ever appear in API requests, encode/decode("utf-8") handles bytes vs. strings. 2) In python2, HTTPMessage.getheader() was equivalent to HTTPMessage.get(), but only the latter is available in python3. Change-Id: I3fce732e46ae3d16d753af053883520ee7b1f10a Closes-Bug: #1792839 - Fix image volume cache max size and max count limits Fix the code that enforces the image volume cache max size and max count limits so that each limit functions independently from the other. This fixes a bug where the code would function correctly when both were set to zero (unlimited) or when both limits were set (non-zero), but would misbehave when only one limit was set and the other unlimited. Closes-Bug: #1792944 Change-Id: I8b4843c2e9392139b42d6e2ebd2c5e1cd09d4c7a - Move hscli to privsep Move the hscli usage to privsep, this is basically a straight copy of the hsexecute function. Change-Id: I0a8f1502506b32fdd6599bc2d0c385ebeb968172 Signed-off-by: Chuck Short <chucks@redhat.com> - Imported Translations from Zanata For more information about this automatic import see: https://docs.openstack.org/i18n/latest/reviewing-translation-import.html Change-Id: I1dde495a79e6076aeaebf45661ac073c71c863cc - 3PAR: Update Storage Driver docs License will now come along with 3PAR Storage Change-Id: I0ba188de6a7c7b307a9795f1e631d78b8162dfe5 - Imported Translations from Zanata For more information about this automatic import see: https://docs.openstack.org/i18n/latest/reviewing-translation-import.html Change-Id: I79acd7b9339a67845245fadf8a82f6224fa6800d - Merge "Rename devstack-plugin-ceph jobs" - Merge "Update Zuul configuration" - Merge "Link to the in-tree driver support matrix from multiattach docs" - EMC ScaleIO driver does not honor create from snapshot volume size create_volume_from_snapshot can specify a volume size larger than the orginal snapshot. Current code does not appear to handle this size difference. This patch addresses the issue. Change-Id: Ifa247ef0eec00c23afe6f875107a06f756bc180e Closes-Bug: #1560649 - Link to the in-tree driver support matrix from multiattach docs The in-tree driver support matrix supersedes the potentially stale driver support matrix wiki, so this updates the admin docs for multiattach to point at the former rather than the latter. Change-Id: I7bf909e68eb14de4d56d4ab62e5e48abf3d40616 - Merge "Clean up bare raised pylint warning" - Imported Translations from Zanata For more information about this automatic import see: https://docs.openstack.org/i18n/latest/reviewing-translation-import.html Change-Id: I7714dd5f6b148a8473664d7a0499f52768528223 - Merge "add python 3.6 unit test job" - Merge "switch documentation job to new PTI" - Merge "api-ref: document no_snapshots default for volume transfer API" - Merge "Fix indentation in docs" - Merge "Modify Pure driver to configure PG/Pod names" - api-ref: document no_snapshots default for volume transfer API This documents the default value (False) for the no_snapshots parameter to the 3.55 volume transfer API and also fixes the no_snapshots value in the API sample to use proper json. Change-Id: I852a04c0b772de64fa82c9c1630dff8ba6454eeb - api-ref: add preconditions for volume transfer APIs This adds the simple pre-conditions for the volume transfer API (in its various forms) to the API reference. This came up during discussions about nova server instance ownership transfer and questioning whether or not in-use volumes could be transferred and finding the API did not mention that case at all. Change-Id: I0bd42dd6a0e291979fb37bcab3823dfde369e7a9 - Add comment to online data migration command One of the requirements of the online data migration command is that they must be able to be run without any Cinder service running in order to support a normal upgrade or a Fast-Forward upgrade. With the introduction of the shared_targets feature we added an online migration that requires the Cinder services to be running (it does RPC calls). To prevent this from happening again this patch adds a comment right above the online_migrations tupple as a reminder for reviewers. Change-Id: I911ddee5a62edc95bedbfd644804abd8b206e957 - Rename devstack-plugin-ceph jobs These jobs are in-repo now and renamed, follow renamed. Change-Id: I7441efa0e2814e2851409e6ad670f1c7d3f95622 Depends-On: https://review.openstack.org/543048 - Merge "Save the backup.service just before _run_backup" - Fix wrong filter of backups in db api The function _process_backups_filters aims to filter backups. So fix the model and metadata attribute. Change-Id: Ie6807745fa89731b9db3bc29da653db269219bce Closes-Bug: #1791003 - Fix indentation in docs Old indentation was wrongly formatted as quotation. Change-Id: Ia6b5d950fcc396d4d9ff16f1792341d1752da971 - Remove resolve_hostname Remove the resolve_hostname function since the resolve_hostname in cinder.utils does the exact same thing so we can reuse it. Change-Id: I3fcdaf8c9d91845bada9d2bff8967b04ab700992 Signed-off-by: Chuck Short <chucks@redhat.com> Signed-off-by: zhu.boxiang <zhu.boxiang@99cloud.net> - Imported Translations from Zanata For more information about this automatic import see: https://docs.openstack.org/i18n/latest/reviewing-translation-import.html Change-Id: Id504fd5290460343dd8082e8693fe731db3b06ee - Merge "Fix group availability zone-backend host mismatch" - Clean up bare raised pylint warning Clean up bare raises warning by linter, pylint complains about raising an exception specified and not in the context of an exception handler. Added an exception. Change-Id: I1d77c6ab9849510c45fdd99dd57b71bde9a57da6 Signed-off-by: Chuck Short <chucks@redhat.com> - Fix pylint warnings for "unnecessary not" Fix boolean expressions that creates an unnecessary negation. Change-Id: Ib17693a426107949488b920a19fa3d13398ee897 Signed-off-by: Chuck Short <chucks@redhat.com> - Merge "NetApp SolidFire: Fix CG snapshot deletion" - Update Zuul configuration Couple of cleanups: * Use openstack-lower-constraints-jobs template instead of individual jobs. * The repo has both openstack-python36-jobs and extra cinder-tox-py36 jobs, remove the cinder specific ones in benefit of the global one. * Replace job cinder-tox-functional-py36 with openstack-tox-functional-py36. * Separate job lines with empty line for better readability. * Remove extra branches lines, those are wrong - each branch has its own .zuul.yaml file. Change-Id: I6897cd0bb2386d31b8b17355cd88d9b42cf98fac - add python 3.6 unit test job This is a mechanically generated patch to add a unit test job running under Python 3.6 as part of the python3-first goal. See the python3-first goal document for details: https://governance.openstack.org/tc/goals/stein/python3-first.html Change-Id: Ic16433e6d23e81da7a944f2dde1befd2173aa4e6 Story: #2002586 Task: #24288 - switch documentation job to new PTI This is a mechanically generated patch to switch the documentation jobs to use the new PTI versions of the jobs as part of the python3-first goal. See the python3-first goal document for details: https://governance.openstack.org/tc/goals/stein/python3-first.html Change-Id: I2d820d07a51368cef1698d2207c6aad50e500ea7 Story: #2002586 Task: #24288 - import zuul job settings from project-config This is a mechanically generated patch to complete step 1 of moving the zuul job settings out of project-config and into each project repository. Because there will be a separate patch on each branch, the branch specifiers for branch-specific jobs have been removed. Because this patch is generated by a script, there may be some cosmetic changes to the layout of the YAML file(s) as the contents are normalized. See the python3-first goal document for details: https://governance.openstack.org/tc/goals/stein/python3-first.html Change-Id: I5239feb9ade5ff7530fd50e0f1125283a7acd9e4 Story: #2002586 Task: #24288 - Merge "Simplify running pylint" - Merge "Add retries to delete a volume in the Nimble Driver" - Merge "VMAX Driver - Initiator retrieval short hostname fix" - Ds8k: Mock evenlet.sleep calls Unnecessary sleeps during dsk8k unit test runs due to evenlet.sleep calls not being mocked. Don't do that. Change-Id: Iac4edfa3082b7833a7122d4626515bb4edb8bd6f Signed-off-by: Sean McGinnis <sean.mcginnis@gmail.com> - Fujitsu DX: Add retries for busy error Fujitsu ETERNUS CI sometimes failed because of retryable error. The example errors are below and these failure can be saved by retry: (1) xxx, EnumrateInstances, cannot connect to ETERNUS (2) 32786, The Logical Volume is in busy state (3) 32787, The device is in busy state Change-Id: Ie79091604cf316aabb9b0c3976f44501bd761aad Closes-Bug: #1560953 - Ensure VNX unit tests don't sleep Some VNX unit tests were taking over 30 seconds to complete due to some sleeps not being adjusted for test runs. To make sure all tests are protected from hitting these through unexpected paths, and to ensure consistency, this adds a base test class that the others inherit from. This makes sure the sleep values are always adjusted and provides a common place for things to be set up for all tests. Change-Id: I7721dd1078f260f820d5883022040d2eef9949bf Signed-off-by: Sean McGinnis <sean.mcginnis@gmail.com> - Simplify running pylint This commit does several things: - Setup and run pylint directly rather than running through a script. This allows the user to see what is happening while the user is running through pylint. - Allow the user to either run pylint on a particular changeset, or the entire cinder tree. - Allow the user to run on a particular changeset. Using like HEAD~1, etc. - Since the pylint gate check I disabled the tests that were reported by pylint. The thought here would be go through the failures and correct them. - Update pylint to 2.1.1. - Removed old pylintrc. Change-Id: I708c93843d991e8c0ac114b0b2d6ede373b96d0a Signed-off-by: Chuck Short <chucks@redhat.com> - Tintri: Inherit tests from BaseDriverTestCase The Tintri tests would fail when run alone using: tox -e py35 -- cinder.tests.unit.volume.drivers.test_tintri This fixes that by making sure things are properly initialized by inheriting from the BaseDriverTestCase instead of TestCase directly. Closes-bug: #1791089 Change-Id: I7057da284edec743243a54909d313aa2910d8d0d Signed-off-by: Sean McGinnis <sean.mcginnis@gmail.com> - Merge "fix misspelling of 'configuration'" - NetApp SolidFire: Fix CG snapshot deletion This adds a function missing on the driver that was making impossible to delete a consistency group snapshot. Change-Id: I4d6a4f5cf4f4f0f751e1378d3747d2aacc050d24 Closes-bug: #1788418 Closes-bug: #1777862 - Merge "Imported Translations from Zanata" - Merge "tintri: Remove _resolve_hostname" - Imported Translations from Zanata For more information about this automatic import see: https://docs.openstack.org/i18n/latest/reviewing-translation-import.html Change-Id: Iad112d1415f655ec9fe7fbfeb3cc9e84667fe393 - Modify Pure driver to configure PG/Pod names Add two config options to the Pure Storage driver to allow setting the names for replication PGs and Pods. This is beneficial in multi-backend scenarios so that each backend can use a different PG/Pod. It also allows for the use of existing PGs/Pods. These options should not be modified after volumes exist on a backend. Change-Id: Ie0dbf00fb2ecea3344e58d2b84fd4dfd6ae1daee - Move check_encryption_provider to volume utils Change-Id: Ia6c29848e5da12db782c0b91b64269ea461fcd6d - Merge "Move release note to the releasenotes/notes dir" - Imported Translations from Zanata For more information about this automatic import see: https://docs.openstack.org/i18n/latest/reviewing-translation-import.html Change-Id: I11caf728b41460fb336ba27ae589802a93549170 - Move release note to the releasenotes/notes dir This patch is just to move a newly added release note to the releasenotes/notes dir. Change-Id: Ic2d357ff5e19feb742d64b9258a5b55e688b3482 - NetApp SolidFire: Fix force_detach Fixes force_detach for SolidFire driver. Change-Id: Iaf8a3f0bed5af053d5ea7796d84d5d77f1608458 Closes-Bug: #1788458 - fix misspelling of 'configuration' Change-Id: Ieefa809a9241aa3bcfd9ffcb6bd44e726ddf5907 - Merge "Replace assertRaisesRegexp with assertRaisesRegex" - Remove deprecated HPE Lefthand config opts Several configuration options were renamed as part of the driver rename in the Mitaka release. This removes the deprecated_name for these options. Change-Id: I8bf5570960728b3bb65631ce02850c120af40577 Signed-off-by: Sean McGinnis <sean.mcginnis@gmail.com> - Merge "Adds more validations in create_snapshot" - VMware: Fix revert-to-snapshot Commit 46b8da35d79121df34ec9befd353c8c428be846b modified the method we use to query the backend volumes. But, revert-to-snapshot implementation which was in-progress when the above commit was merged missed that change. Fixing it by updating the query method call in revert_to_snapshot. Change-Id: I34cbd4420b43f52cd8d23833658f6386cb3e6437 Closes-bug: #1790008 - VMware: Remove member initialization in properties Currently we initialize few driver member variables in properties. When osprofiler is enabled, the driver class is inspected which results in the initialization of those variables. The same variables including session are re-initialized during driver setup. Removing variable initialization in properties to fix this. Change-Id: I071e55b0a86848250565ada3a22ce4225b266540 - Move sphinx-feature-classification to docs reqs This was added in the main requirements.txt, but it is not a requirement for running the service. This moves it to the docs/requirements.txt file so it is only installed for doc builds. Change-Id: I37026b9be913ccf157fce711f2d85fc05342e891 Signed-off-by: Sean McGinnis <sean.mcginnis@gmail.com> - Simplify hostname lookup When we are trying to resolve the hostname to an IP address we only care about the IP address so remove the rest of the unused variables. This popped up in a pylint run. Change-Id: I8e3b6cfd80be3d872f3bfc0ee5ac581fae5f45af Signed-off-by: Chuck Short <chucks@redhat.com> - Imported Translations from Zanata For more information about this automatic import see: https://docs.openstack.org/i18n/latest/reviewing-translation-import.html Change-Id: Ibccc44c63b58f81c00da1c9748f0143a62d1babd - tintri: Remove _resolve_hostname Remove the _resolve_hostname function since the resolve_hostname does the exact same thing so we can reuse it. Change-Id: If4974fdd084df1312ab51eea63b4880839729bdf Signed-off-by: Chuck Short <chucks@redhat.com> - Merge "Add retry to LVM deactivation" - Merge "Fix IPv6 for Cinder NetApp ONTAP drivers" - Merge "Imported Translations from Zanata" - Merge "3PAR: Added retries on volume deletion" - trival: Fix some spacing issues Fix some spacing issues uncovered by pylint. Change-Id: I2544a36cfbcaed7520a2d350898f2d6e3c7cc6ff Signed-off-by: Chuck Short <chucks@redhat.com> - Fix typo join() takes exactly one argument, 2 are passed. Change-Id: I57b29a91cedde9a59f861a7d037464fae10fee82 Signed-off-by: Chuck Short <chucks@redhat.com> - Update doc for get-pools API Update name description for get-pools API's document. Change-Id: I403c968e8b0a85d81dc8898153f18e418ca5d289 - Avoid using dict.get() in assertions The method dict.get(key) will return None in the following two cases: A. if there is no key in the dictionary. B. if the real value of the key is just None. The above two cases will results in passing the assertion which is not the expected behaviour of the test. Change-Id: I634dca85b378ea42bd2e49aeb12aadea59a929fd Related-Bug: #1613154 - Imported Translations from Zanata For more information about this automatic import see: https://docs.openstack.org/i18n/latest/reviewing-translation-import.html Change-Id: Ibed6197184c2aeac52601b9e6f70a7600fb0a81b - Remove auth_uri usage auth_uri in keystonemiddleware was deprecated and will be removed in Stein. This patch changed it to auth_url or www_authenticate_uri correctly Change-Id: I754f6b27b3ebb87d4479aa366c9ee04af34fcaab - Merge "Allow extension of volumes with snapshots for VZstorage driver" - Merge "SIO: Clean up padded volume comments" - 3PAR: Added retries on volume deletion online copy can be completed so the condition to find active task of online copy can be missed and this results in deleteVolume failure Added a retries to delete a volume Change-Id: I902896d4127c219aeea62a4c0994c6d5bb9e82f3 Closes-Bug: #1783934 - Merge "Dell EMC: Added excluded_domain_ips ListOpt to SC driver" - VMAX Driver - Initiator retrieval short hostname fix This submission fixes a timeout issue with initiator retrieval, the fix uses targeted extraction instead of list matching to increase performance. Short hostname retrieval for hostnames with 16 or characters has been fixed. Change-Id: I4eff572448c720746fbdd49caf3ae2dccfb3d352 Closes-Bug: #1783855 Closes-Bug: #1783867 - SIO: Clean up padded volume comments There were a couple of spots still referring specifically to thick provisioned volumes as being an issue without padding enabled. This is an issue regardless of provisioning type, so this cleans up those mentions. Change-Id: Ife3e6cabe9ce3ba2090fc23c02c4d40493586320 Signed-off-by: Sean McGinnis <sean.mcginnis@gmail.com> - Add test case: create volume from source volume This patch consider two situations to add test case: 1. Create volume from bootable source volume. 2. Create volume from non-bootable source volume. Change-Id: Icf250ece974a1794e9c8ce33ac71accc3652665b - Fix IPv6 for Cinder NetApp ONTAP drivers NetApp ONTAP driver currently have some issues with IPv6: - The URL is not properly formatted when using in management path - NFS driver breaks when handling IPv6 addresses - iSCSI driver creates a URL that is not properly formatted when using IPv6 addresses This patch fixes all issues related to IPv6 on NetApp ONTAP drivers. Closes-bug: 1788419 Closes-bug: 1788460 Change-Id: I6eeca47997c7134d6604874bea48eab7cab6c1a2 - Merge "Remove flashsystem_multipath_enabled opt" - Merge "Handle multiattach attribute when managing volumes" - Remove cinder-tox-compliance job Until we fix our driver inheritance model, this job is almost guaranteed to always pass. Rather than wasting gate resources for every patch, just remove the job from the zuul pipelines for now. It can still be run locally by calling `tox -e compliance`, so new driver developers, and probably driver reviewers, should still run this to make sure there is nothing missing, but that is unlikely if they follow driver conventions. Change-Id: I87e0de6fddad25931f71bfd7f32a218c0ed5aa98 Signed-off-by: Sean McGinnis <sean.mcginnis@gmail.com> - Correct the link of 'OpenStack Documentation Contributor Guide' Since Queens renamed from Contributor Guide to Documentation Contributor Guide to distinguish this document from the new document aimed at all new OpenStack contributors. So this patch correct the link. Refer to https://docs.openstack.org/releasenotes/openstack-manuals/queens Change-Id: Iee4b214f4d62f3ec6fcab38eccb89c387b1d6545 - Fixed invalid number of arguments bug in ScaleIO driver Change-Id: I6946f531e2bed4b3f7e4491ca26876dd68fd0fc8 Closes-Bug: #1789174 Signed-off-by: Matan Sabag <matan.sabag@emc.com> - Merge "LVM: Disable multiattach for LIO iSCSI target" - LVM: Disable multiattach for LIO iSCSI target Multiattach does not yet work with the LIO iSCSI target. Related-Bug: #1786327 Change-Id: I84f607de13bc17b00609ad37121d8678f7f4a920 - Replace assertRaisesRegexp with assertRaisesRegex This replaces the deprecated (in python 3.2) unittest.TestCase method assertRaisesRegexp() with assertRaisesRegex(). Change-Id: I257956c4e5ef42275ffafbb23e5ad08fcfd81070 Signed-off-by: Chuck Short <chucks@redhat.com> - Merge "VMAX doc - important known issue" - Fix deprecation warnings While running the unit tests, the following is captured by the stderr: DeprecationWarning: Property 'project_domain' has moved to 'project_domain_id' in version '2.6' and will be removed in version '3.0' Make sure we are using the right property. Change-Id: I4274bed6b25f04c8bf58cd9b4d1874bf71ec1b97 Signed-off-by: Chuck Short <chucks@redhat.com> - Merge "Remove deprecated sio_allow_non_padded_thick_volumes" - VMAX doc - important known issue A ucode upgrade on an VMAX All Flash will cause issues if workloads are leveraged. This known issue needs to be documented until a fix is merged. Change-Id: Iba8df9385b65f03c0ab9ea07a728e1ccd8e04e86 - Drop legacy backup service support Backup drivers were migrated from backup services around Havana with Ic3fca567111f4bd1b221689c73cd5c3bab4a777b. This removes support for still loading the old path names and cleans up a mapping dict that wasn't even being used anymore. Support for loading by class name and not module name was deprecated in queen with Id6bee9e7d0da8ead224a04f86fe79ddfb5b286cf. This removes that capability and requires that the backup driver class name is provided. Change-Id: I3ada2dee1857074746b1893b82dd5f6641c6e579 Signed-off-by: Sean McGinnis <sean.mcginnis@gmail.com> - Changed default behaviour of nas_secure_file_* for Quobyte driver The Quobyte driver now maps the 'auto' value for nas_secure_file_operations and nas_secure_file_permissions to false. This simplifies initial setup for new installations as the secure modes require additional configuration on Nova compute hosts. Change-Id: I0ce20e109f126500462e6459794e993bbd579b58 - Imported Translations from Zanata For more information about this automatic import see: https://docs.openstack.org/i18n/latest/reviewing-translation-import.html Change-Id: I5e73da78df5aa61996af3d2d4fb1b1a5fad31401 - api-ref: add docs for os-migrate_volume API Adds the v2 and v3 API reference documentation for the admin-only (by default) os-migrate_volume volume action API. The only major difference with the v3 API is the cluster parameter introduced in the 3.16 microversion. Change-Id: I70f6b2cc4d25ea155ce09ddeec26b995890a2db3 Partial-Bug: #1607539 - Merge "Make divisibility py3 compatible in DRBD driver" - Merge "Optimizing code (wrap_socket())" - Remove deprecated sio_allow_non_padded_thick_volumes This config option was deprecated in Rocky, but it actually wasn't even introduced until mid-Rocky, so it shouldn't have been deprecated and can now be removed. Change-Id: Ib9da3278334b9b64e7acc36772c5bae660e86a34 Signed-off-by: Sean McGinnis <sean.mcginnis@gmail.com> - Remove flashsystem_multipath_enabled opt This config option was deprecated in Mitaka and is now being removed. Change-Id: Iba7db13ca6877eebc2c7998c74086358e7b745e1 Signed-off-by: Sean McGinnis <sean.mcginnis@gmail.com> - Dell EMC: Added excluded_domain_ips ListOpt to SC driver Added an excluded_domain_ips option to the Dell EMC SC driver. This is identical to the excluded_domain_ip option only comma separated rather than multiple entry. This is concatenated with the excluded_domain_ip option. Change-Id: Ib3ab11e776970a850a96fd4e6907b4064396ec3f - Remove WindowsDriver mapping The WindowsDriver was renamed to WindowsISCSIDriver in change I3877491463dce3d46f7ac0e194ffdf46a0e7c84c to avoid confusion with the Windows SMB driver. It has now been two release cycles and the backward compatibility mapping can now be removed. Change-Id: I602cccac73b6dc8d0b0824a5dffb0373c151452e Signed-off-by: Sean McGinnis <sean.mcginnis@gmail.com> - Remove deprecated iSCSI target config opts The iSCSI target config options were deprecated in favor of more general target config options in the Queens release. This completes the removal of those options. Change-Id: Ic65eed63c1de4f4888d572dad5bf9e945bceb16b Signed-off-by: Sean McGinnis <sean.mcginnis@gmail.com> - Merge "Make solidfire code py3-compatible" - Imported Translations from Zanata For more information about this automatic import see: https://docs.openstack.org/i18n/latest/reviewing-translation-import.html Change-Id: I096e63768fa37b719215bc788416c1a90f87dc56 - Merge "LVM: Enhance option descriptions" - Merge "Adds Overlay Volumes Created from Snapshots to Quobyte" - Merge "ScaleIO: Deprecate sio_allow_non_padded_thick_volumes" - Remove os-image-create API extension This was a dummy extension and only used by the v1 API. This is now a standard part of the API and does not need any extra checks to see if it should be enabled or not. This removes the dummy extensions and checks in the code for its presence. Change-Id: Ia0a3fa41aa06fbbe9d2ed67a1273226ee47429f9 - Make divisibility py3 compatible in DRBD driver In python 2.x, int / int = int Eg: 3 / 2 = 1 But in python 3.x, int / int = float (if the result turns out to be a floating value) Eg: 3 / 2 = 1.5 This patch addresses the change. Change-Id: Ifa63b1b14bd9457ff0f76e729e3c1fd2ecdaee04 - Xtremio: Remove unused constant Change-Id: I464a65da098b001a394a72f493a61c1e3aaad6f2 - Raise HTTPUnsupportedMediaType when content type is unsupported Instead of 500 internal error, now cinder will raise HTTPUnsupportedMediaType when any unsupported content type is being used. Change-Id: I024769114caafe8d0e70babd93382702f45aafcc Closes-Bug: #1715094 - Add 'volume_attachment' to volume expected attributes 'volume_attachment' is a frequently used attribute when listing volumes inside or outside cinder, considering it already has been loaded from database [1], this patch adds it to volume's expected attributes to improve performance. [1]:0652085f23/cinder/db/sqlalchemy/api.py (L1926)
Change-Id: I3be3c99f9317726fa3182f750b27690da3cdab83 - Merge "Ceph backup: set close_fds on Popen" - ScaleIO: Deprecate sio_allow_non_padded_thick_volumes The config option sio_allow_non_padded_thick_volumes was added to allow sites to continue to have non-padded thick volumes after it was disabled by default due to security concerns. At the time it was only thought to be an issue with thick volumes, but has since been determined to also be an issue with thin. To address the concerns with thin, the general option sio_allow_non_padded__volumes was added, making the thick-only option redundant. This new option was added without the deprecation of the thick-only option to ease backporting to address the securty concern, but we now want to work towards removing the thick option so we can just have the one option for both provisioning types. Related-bug: #1784871 Change-Id: Iaf7173cbcd9fc0929dabe3b1cb2db4b47c8bf0bd Signed-off-by: Sean McGinnis <sean.mcginnis@gmail.com> - Make solidfire code py3-compatible The solidfire volume driver was using dict.iteritems, which has been removed in python 3 [1]. This replaces that usage with dict.items, which also works in python 2.7, as recommended. [1] https://wiki.python.org/moin/Python3.0#Built-In_Changes Change-Id: I905cb8ec9dbfb2e66de6e14eb3263e8245791e49 - Imported Translations from Zanata For more information about this automatic import see: https://docs.openstack.org/i18n/latest/reviewing-translation-import.html Change-Id: I2fc1b01b8c34edffd92c74c087b2beffa150819c - Merge "ScaleIO: Disable volume creation without padding" - Add api-ref for mv 3.55 volume transfer Adds the api-ref information for the the 3.55 version of the volume transfer API. Change-Id: Ib91c2f7018184821437da41bc0f7b0c0b2e69f0c Signed-off-by: Sean McGinnis <sean.mcginnis@gmail.com> - Fix support indicator for rbd extend attached The driver support matrix had an incorrect indicator for extended attached volumes. The function isn't currently implemented. This patch corrects the error. Change-Id: I0b6858c9c91d4e9a4e3d68669c006c4740086bae - Merge "Default functional tests to use v3 API" - Merge "Update document for metadata show API" - ScaleIO: Disable volume creation without padding Applying previous fix for thick volumes to thin volumes to disallow volume creation without zero padding unless enabled via config option. Change-Id: Ibaf6e9b67d252a5aae1b0f64ec632ec26789c389 Closes-Bug: #1784871 Signed-off-by: Matan Sabag <matan.sabag@emc.com> - Add policy granularity to the encryption API Add granularity to the volume_extension:volume_type_encryption policy with the addition of actions for create, get, update, and delete. To address backwards compatibility, the new rules added to the cinder/policies/volume_type.py policy file, default to the existing rule (volume_extension:volume_type_encryption). That way across upgrades this should ensure if an existing admin has customised the rule, it keeps working, but folks that know about the new setting can override the default rule. In addtion, a verify_deprecated_policy method is added to see if the old policy action is being configured instead of the new actions. This verify_deprecated_policy method is adapted from previous nova commit from this patch: https://review.openstack.org/#/c/449288 Change-Id: Iba58e785df934d1c4175c0877d266193ac0167b7 - Fix api-ref title levels and index We had a few instances where the title level used for calls in the api-ref was wrong, resulting in the api call being hidden inside the details of another title level. This fixes title levels to be consistent and adds a missing inclusion to the v2 index. Closes-bug: #1787203 Change-Id: I602250117dbf52f9e031e945040b45f089d8602e Signed-off-by: Sean McGinnis <sean.mcginnis@gmail.com> - Merge "NetApp SolidFire: Fix NetApp SolidFire SSL option" - Merge "Make code py3-compatible (global callable())" - Merge "VMAX driver - releasenote fix" - Merge "Fix XTREMIO driver name" - Fix XTREMIO driver name Change-Id: I8b08574b7e92b4809b0cf740be71ff94b9c342e1 - Add False check when do _retype_error Do a false check when the reservations is None or en empty list. Change-Id: I6d9be5254f301fa5a684143b86b15a196d9c4a97 - Add retry to LVM deactivation We are seeing occassional failures to deactivate logical volumes in tempest runs. We retry on the wait for the state change, but we if that doesn't succeed we just give up. This adds a retry to the whole deactivation process to see if requesting again has better luck deactivating the volume. Change-Id: I1f9546c39ea05abe524e6f38395754d331b201cd Signed-off-by: Sean McGinnis <sean.mcginnis@gmail.com> - Merge "[Docs] Update some links for Gerrit of Code Reviews" - [Docs] Update some links for Gerrit of Code Reviews Fix the same link issue of 'Development Workflow' and 'Gerrit Workflow Quick Reference'. Replace 'Gerrit Workflow Quick Reference' with 'Getting Started' to match the description. And add 'Quick Reference' and it's real link. Change-Id: Id1945123a510dd0db8ed375978d67a206f218537 - Merge "Add volume create schema enforcement unit tests" - Optimizing code (wrap_socket()) Since Python 3.2 and 2.7.9, it is recommended to use the SSLContext.wrap_socket() instead of wrap_socket(). The top-level function is limited and creates an insecure client socket without server name indication or hostname matching. Ref : https://docs.python.org/3/library/ssl.html#ssl.wrap_socket Change-Id: I29b00a640e45c98bf452fe2efda90c04e26b83e5 - Save the backup.service just before _run_backup When the judgement of self.is_working() is false, it means the backup service is not ready and the backup will be interrupted. We will not allow to delete this backup util the backup service is configured correctly and starts successfully. This patch fix this, if the backup service was not working or we just used a wrong backup service at that time, and now we want to cleanup the backups, it is OK to do backup delete. There is no need to do more! Change-Id: I7163f026a497db8876c495d15bef9c006eadd17b - Make code py3-compatible (global callable()) global function callable(f) is removed in python3. It can be replaced with isinstance(f, collections.Callable) This patch addresses the change. Ref : https://docs.python.org/3.1/whatsnew/3.0.html Change-Id: I47a50fffac14668f90aac043ee22a91bdb7dca41 - Update document for metadata show API Instead of "metadata", cinder will add "meta" into response body of show metadata API. Change-Id: Id39e3858f860e7f705d1c6ed44307d50fa8ff4b9 - Reserve 3 migrations for DB backports Reserve 3 migrations in case we need to backport changes to the stable/rocky branch. Since there have not been as many DB changes as the past, only reserving 3 instead of our conventional 5. Change-Id: I065b9445547f6e8e1d3732ffd76ca7ddcbc9cfc6 Signed-off-by: Sean McGinnis <sean.mcginnis@gmail.com> - Imported Translations from Zanata For more information about this automatic import see: https://docs.openstack.org/i18n/latest/reviewing-translation-import.html Change-Id: I2d5e703e462761a09406dd8eacdb6a11cd2376d5 - Merge "Remove the CoprHD driver" - Imported Translations from Zanata For more information about this automatic import see: https://docs.openstack.org/i18n/latest/reviewing-translation-import.html Change-Id: Ice8242f401ed4bfdda46fb8aae1f80f5116e8b56 - NetApp SolidFire: Fix NetApp SolidFire SSL option The driver.verify_ssl atribute is being defined before its usage in the _create_cluster_reference() causing the driver initialization to fail. Change-Id: Ic616bbcced22db6eb8c8946dec98aefd84b16c31 - Imported Translations from Zanata For more information about this automatic import see: https://docs.openstack.org/i18n/latest/reviewing-translation-import.html Change-Id: I0d773d2d476f29e1ea057e5dcc8248500f05596d - Merge "Update reno for stable/rocky" - Remove the CoprHD driver The CoprHD driver was marked unsupported in Rocky and the vendor has indicated that the driver is deprecated. Given the feedback I am removing the driver. Change-Id: I978315402edeb0c5dd6aee28315973fa502b0e20 - Merge "Note max API version for Rocky" - Update reno for stable/rocky Change-Id: Iaef8c0837ccf105dac012536d054115dba132d73 - Merge "Allow extra parameters in volume_type_encryption" - Imported Translations from Zanata For more information about this automatic import see: https://docs.openstack.org/i18n/latest/reviewing-translation-import.html Change-Id: I912b214b4510c4f8afe85091b250812bfba3de1a - Merge "Fix _attachment_reserve to not allow attaching an invalid status volume" - Merge "Add policy in code documentation for os-set_bootable API" - Fix _attachment_reserve to not allow attaching an invalid status volume It is currently possible to create a volume attachment for a server when the volume is in error status because of the override logic in the _attachment_reserve method. What results is that the volume attach operation fails in nova-compute which rolls back and deletes the volume attachment, which puts the volume into 'available' status because it no longer has any attachments, which in fact it should have never allowed the attachment create/reserve in the first place. This updates the override logic such that a volume without any attachments which is in an invalid status will result in an error being raised. Change-Id: Id9cf2f510684cd296ffbcaf53d11889cfe8973b9 Closes-Bug: #1785050 - Allow extra parameters in volume_type_encryption Change I6488cc89e60a31605ddf80c7aa56ddf4871d3c1a added schema validation for volume type encryption, but it locked things down in a non-backwards compatible way by not allowing extra parameters. This has caused problems for at least Horizon. If we are going change this to not be backwards compatible it should include a microversion bump and moving the endpoint out of contrib to a standard endpoint. To keep some schema validation at least, this just allows extra parameters so existing API consumers should be unaffected. We can address locking things down better in a future release when we have time to do it right. Closes-bug: #1783467 Closes-bug: #1786054 Change-Id: I45c254eca69471509e7ae4c957df51282e2d1776 Signed-off-by: Sean McGinnis <sean.mcginnis@gmail.com> - Merge "Add sphinx-feature-classification based support matrix" - Default functional tests to use v3 API Functional tests were still set to use 2.0. This updates it to use the v3.0 base version. Change-Id: I29b81bdad325e6ecf6a76c3813b4e9ba09dd0eb3 Signed-off-by: Sean McGinnis <sean.mcginnis@gmail.com> - Add retries to delete a volume in the Nimble Driver Retrying to delete a volume for N tries and if failed we raise NimbleAPIException. Change-Id: I937147b7a4caf8480a8b7429effa545cd8926a8d Related-Bug: #1413750 - Add volume create schema enforcement unit tests This increases test coverage with the volume create call to verify calls using microversions < 3.53 allow extra parameters to be passed and calls starting with microversion 3.53 will raise a schema validation error for unexpected values. Partial-bug: #1786054 Change-Id: Ib532eb9d4fe0bd597724b734d2e8a7c6daf7c4f1 Signed-off-by: Sean McGinnis <sean.mcginnis@gmail.com> - Fix one help description of rbd driver One symbol '-' of report_dynamic_total_capacity was removed by commit https://review.openstack.org/#/c/564068/. In fact, The last two symbols '-' are a pair of. Maybe the symbol '-' makes person confused, so that I replace '-' with '(' and ')'. Change-Id: I7da0f4715ba64e1384f7bf345ac850ca819555e7 - Merge "Fix typo on Storwize release note" - Merge "VMAX Driver - Fix for get-pools and returned Service Levels" - Merge "VMAX driver - minor metadata additions" - Merge "VMAX driver - replace 'data=' with 'message='" - Merge "Add policy check for type show and type list" - Merge "[Unity] Compressed volume support" - Merge "[XtremIO] Remove provisioning factor when reporting" - Merge "Infinidat: Get rid of pylint errors due to private lib" - Fix typo on Storwize release note Change-Id: I22da69b3952c50b01e67bbb5f93251bd71db7d92 - Merge "Enable running py36 unit tests" - Merge "Consume quota when importing backup resource" - Merge "Remove mox3" - Merge "IBM XIV: fix issues for replication" - Note max API version for Rocky We are now past feature freeze and should not have any more patches that increment microversions this cycle. Following the convention from past cycles, this marks the maximum API microversion for the Rocky release. Change-Id: Idb3de6a687264ed88d697e68127f8cc3a63ec567 Signed-off-by: Sean McGinnis <sean.mcginnis@gmail.com> - Merge "Fix none-ascii char in doc" - Merge "VMAX Docs - SSL Support Revision" - Merge "VMAX docs - Rocky features" - Merge "VMAX docs - Restructure of content" - Merge "solidfire: Enable SSL with requests" - Add sphinx-feature-classification based support matrix Cinder has always used a wiki page as the source of our support matrix. Unfortunately the wiki gives us no way to ensure that the information is accurate and makes it harder to track changes. Moving to using the sphinx-feature-classification library solves some of these problems. * It provides a programatic way to document driver support. * It allows us to ensure that documentation is updated with changes. * It will provide a snapshot of the state of driver support for a release at the time of release. This matrix will serve as the truth for Cinder's driver support. The existing wiki will be kept for historical purposes but I will make a pointer to this new documentation and indicate that no changes should be made to the wiki in the future. Change-Id: I7c1b7fb539a48ec3b79e86c44ffe2d3005aeba25 - VMAX driver - releasenote fix Moving and renaming release note for mulitple clone fix 578486 Change-Id: Ib25cf3b5e2640d64a79b8ee92db78224a66c76a1 - Merge "Solidfire: Avoid UnboundLocalError" - Merge "Correct volume-transfers API endpoint" - Merge "Improve messages api-ref description" - Solidfire: Avoid UnboundLocalError An UnboundLocalError occurs on "attach_info" if initialize_connection/_connect_device throws an exception here. Closes-Bug: #1785706 Change-Id: Id34d5b866e0d01caa5dbeee65fe038c9ae742c9c - Merge "3PAR: Update Storage Driver docs for Rocky release" - Merge "VMAX driver - pagination on get vols from SG list." - Merge "INFINIDAT: add host.created_by metadata key" - 3PAR: Update Storage Driver docs for Rocky release Change-Id: I03c05a4e84436c3ba6556f1f138c9d8bd8f2cd45 - VMAX Docs - SSL Support Revision This update to SSL Support section of the VMAX driver for Cinder will address changes made in used packages Requests and Certifi. Changes in behaviour of Requests mean that old documentation was no longer valid. Change-Id: I0a33cf68a7781e5fd12663c8a55d9b004e8eed51 - VMAX docs - Rocky features Rocky features: 1. Multi-attach Change-Id: If0b95037a12b0b093237cc92b5a99e2602f93ac1 - VMAX docs - Restructure of content Restructured to give a better flow to the content. Change-Id: Ied29f8f31e0a535b4338cce70b72c449f8c8ce34 - VMAX Driver - Fix for get-pools and returned Service Levels This code change corrects the issue with not all Service Levels being returned by 'cinder get-pools' command. Change-Id: I09724aef341b6fd75891b76bab97edd7d32af0a6 Closes-Bug: #1784856 - VMAX driver - minor metadata additions Adding metadata for delete operation and adding OpenStack display name to all operations. Change-Id: Ia21a2688fc4ec2d974d866703abef38ae25a0048 - VMAX driver - replace 'data=' with 'message=' Replace keyword 'data=' with 'message=' in VolumeBackendAPIException. Change-Id: I5650ad44d877113eba0e5d2500ef504625ac144f - VMAX driver - pagination on get vols from SG list. No pagination for listing volumes from storage group, if volumes exceed maxPageSize of 1000. Need to utilize 'to', 'from' and 'count' attributes of the rest call. Change-Id: I8123ef3823345a4092c20e5de546edb234df742a Closes-Bug: #1778954 - Merge "VMAX Driver - Fix for multiple clones failure" - Correct volume-transfers API endpoint Routing was set up to map to volume_transfers, but the cinder client and other places expected it to be volume-transfer. The - is more correct for API endpoints, and the client is currently in feature freeze, so easiest way to correct this for this new feature is to update the endpoint to the expected name. Change-Id: Ib0002c441a2e860e8b74a4d9e6df890b398210f4 Closes-bug: #1785325 Signed-off-by: Sean McGinnis <sean.mcginnis@gmail.com> - Improve messages api-ref description The description for the messages API was very terse. This adds some more details to provide some description of what the API is used for. Change-Id: If15400e9a538bf533e93f9693b6eddeb114fa7e5 Signed-off-by: Sean McGinnis <sean.mcginnis@gmail.com> - Merge "Add ability to specify minimum value when using capacity based QoS" - Add ability to specify minimum value when using capacity based QoS When using capacity based QoS, it is possible that a user provisions a volume that is very small but it unusable because of the very small calculated IOPs. This patch adds a few options to allow operators to allow for a minimum value of IOPs, where the greater of the calculated value and minimum is used as the QoS value. Change-Id: I0fac45847f991d1f81ddcdd8674f8634f1cc4943 - IBM XIV: fix issues for replication 1. A list has no next method which caused exception while get replication target, and update to be compatible with python2 and python3. 2. Get pool should consider whether it has failed over or not. Change-Id: Id192a4f2ba707c4b906a956435e5796001ea808a Closes-bugs: #1785177 - Fix none-ascii char in doc There exist some none-ascii chars in doc, which may cause trouble in displaying. Change-Id: Ic7ae90b6edb14ecad78b18e738c7e24f6466a500 - Merge "NetApp ONTAP: Fix driver force detach operations" - solidfire: Enable SSL with requests SSL requests are not being verified when contacting the REST API. Use the driver_ssl_cert_verify config option to turn on or off. Defaults to False. Change-Id: Ib64c86fa5e3791dfa5386b58b468a91f1a190de6 Signed-off-by: Chuck Short <chucks@redhat.com> - Merge "Fix remotefs driver report wrong value" - Merge "VSA: Concurrent request handling in attachment" - Merge "docs: Write high availability devref" - Merge "[doc] Use openstack client commands to replace cinder client" - Merge "NEC driver: Return non-random iscsi portal in initialize" - Merge "tintri: Enable SSL with requests" - Merge "Update volume create schema to allow 'null'" - VMAX Driver - Fix for multiple clones failure Fix to ensure that the snapvx snapshots are cleaned up periodically so that the max limit for snapvx snapshots is not hit while creating multiple clones of a single volume Change-Id: Idca6bb86fb0ee873093e4605b24fbc030b037854 Closes-bug: 1778947 - Fix indentation in docs cli/cli-manage-volumes.rst Current indentation is wrongly interpreted as quotation. Change-Id: I5061fcd2256c24814f0868370d07f8c6dd0ae8e3 - Merge "nimble: Fix missing ssl support" - VSA: Concurrent request handling in attachment Issue: VSA cannot have two server created with same host name, so when concurrent request tries to create server only one request succeed and subsequent request gets response of exception of already exists. This fix handle concurrent request and ensure only one request with same host name request server creation on VSA. Change-Id: I41815510f0e6bf865a46d1efd7b73f613ddbe736 Closes-Bug: #1779654 - Merge "XtremIO: support multiattach" - Merge "IBM XIV and DS8K: Update document for Rocky release:" - Merge "Update delete group snapshot API exception handling" - Merge "Set bootable when creating volume from snapshot" - NetApp ONTAP: Fix driver force detach operations Cinder API supports os-force_detach, which once invoked can call the driver finalize_connection passing a 'None' connector. When receiving this, the driver should handle this call by terminating every connection between the specified volume and any host it is mapped to. This patch fixes this behavior for NetApp ONTAP iSCSI and FC drivers. Change-Id: I7a6d3655cac173f2720a7f4ef87ce37ac4f022d7 Closes-bug: #1783582 - docs: Write high availability devref Adds contributor/developer reference for High Availability in Cinder. Not only related to Active-Active, but also to Active-Passive and concurrency in general. Change-Id: Idfb04652f148e1f820d76d62395fe7cfcb445057 - Consume quota when importing backup resource Now cinder will validate&consume backup quotas when importing new backup resource. Change-Id: I1825600dc6e01499c8fc4ede05400a180672e130 Closes-Bug:#1783525 - Update volume create schema to allow 'null' When creating a volume from a source snapshot, size is not a required parameter since it will be defaulted to the snapshot's original size. We set it as not required in 8152f6c0cc0950fba33a67e62bf37e9ded7e1424, but missed that the jsonschema validation also needed to be updated to allow for the empty value. Change-Id: I27b94c5579d5215fdd0fbd6c421aa5f6d9139bd8 Closes-bug: #1784821 Signed-off-by: Sean McGinnis <sean.mcginnis@gmail.com> - nimble: Fix missing ssl support The requests.get in the get_query method was always disabling the ssl certificate checck. Use the "nimble_verify_certificate" configuration option to allow the user to enable or disable it like the rest of the requests usage in the driver. Change-Id: If15948a19a0df2d57f2da84c0774bc4ceb1fff60 Signed-off-by: Chuck Short <chucks@redhat.com> - INFINIDAT: add host.created_by metadata key This patch adds the "host.created_by" metadata key. The metadata value indicates the name and version of the INFINIDAT tool which created the relevant system object. TrivialFix Change-Id: I0dfa32034c6b138ce8c757f196c27f90475be040 - Set bootable when creating volume from snapshot When creating a volume from a snapshot of a bootable volume the bootable setting is ignored. This changes the creation logic so when snapshot_id is not None, bootable can be set to be the same as the snapshot's source_volume. Change-Id: Ifca9ca04dfa8eca987dc44ec23cda5e0d431cba2 - Handle multiattach attribute when managing volumes This patch handles the multiattach attribute when managing existing volumes. Change-Id: Iade06a8b227f64f352719aaebfbeeb24e7fe9ea7 Closes-Bug:#1783790 - Update delete group snapshot API exception handling When a role doesn't have access to delete group snapshot API, the response code and exception that is returned is 400 BadRequest. This is incorrect as a 403 PolicyNotAuthorized should be thrown when a role doesn't have access to an API. The HTTPBadRequest exception is raised here [0] regardless of what the real exception is. [0] https://github.com/openstack/cinder/blob/master/cinder/api/v3/group_snapshots.py#L93 Change-Id: I4a24cd35bbbba42ec3e360ce65fe278edc20d4bb Closes-Bug: #1783640 - tintri: Enable SSL with requests SSL requests are not being verified when contacting the REST API. Use the driver_ssl_cert_verify config option to turn on or off. Defaults to False. Change-Id: I3a40a5865cfed8e29dd58d31d955840ec6370a69 Signed-off-by: Chuck Short <chucks@redhat.com> - Fix remotefs driver report wrong value allocated_capacity_gb should not be reported by drivers and let the manager handle this. provisioned_capacity_gb is reporting allocated physical space. Return provisioned. Change-Id: I7e1b8d5b399a8dd15bb0dee477090a45c2faa6fa Closes-Bug: #1746233 Signed-off-by: Kien Ha <kienha9922@gmail.com> - Merge "ActiveCluster support for Pure Storage drivers" - Merge "Revert "Use Tempest scenario job to run all scenario tests"" - IBM XIV and DS8K: Update document for Rocky release: Add detailed configuration information and feature user guide. Change-Id: Ie5a9753439b7d4d9959e1c59342ad76238276ba1 - Revert "Use Tempest scenario job to run all scenario tests" Let's revert the scenario job things till Rocky release and discussion in ML[1]. [1] http://lists.openstack.org/pipermail/openstack-dev/2018-May/130394.html This reverts commit 5408617a8313a464c98f2b304f3e8aa32ef0312b. Change-Id: I656aed531fdec9a8eb6c10915d736769a712e7d8 - Add release note for force delete MV fix Change Ida04fc8a7a7af541547ea196a3cbb5a287714eea fixed an issue where we were checking the wrong microversion for support of the force delete functionality. This adds a release note to call out that previously this call might have been working when using a lower microversion but will no longer be allowed. Related-bug: #1783028 Change-Id: I660c934da053b576f817cdd349949873b0c30193 Signed-off-by: Sean McGinnis <sean.mcginnis@gmail.com> - ActiveCluster support for Pure Storage drivers This adds sync-rep support for cheesecake api's via Pure's ActiveCluster feature leaning on stretched Pods. This is done by specifying the "type" of replication on "replication_device" options in cinder.conf to be 'sync'. With an optional 'uniform' boolean. One thing to note is that we needed to start using the provider_id field on volumes. With volumes in Purity Pods the names change, so our quick formula for name prediction goes out the window. Luckily there is already a field on the volume objects for this.. provider_id. Any volumes without one already set will get one updated when the driver starts up. Depends-On: https://review.openstack.org/#/c/571332/ Implements: blueprint pure-sync-rep Change-Id: I135d2e5aa8a0a82ddd212eb8eba393e2fbef73ca - Remove mox3 Drop mox3 from lower-constraints.txt. Change-Id: I835b6a1260f228ff14dc5339240654183c451f67 Signed-off-by: Chuck Short <chucks@redhat.com> - XtremIO: support multiattach - add multiattach to XtremIO driver capabilities. - add handling for volume attachment list and test - add release note Change-Id: I88fe943df753a97684077189c6a13dc1e290968d - Merge "Update "auth_url"" - NEC driver: Return non-random iscsi portal in initialize Returns same set of portals in initialize, this will suits for both single-path and multipath situations. Change-Id: Ifd241a9fa34957a3bfc8b3a768d18a781519eefe Closes-Bug: #1742587 - Merge "Fix some nits in transfer volume with snapshots" - Merge "Update microversion number with constants." - Merge "Don't require size when creating volume from snap" - Update microversion number with constants. Replace version numbers within constants in order to make it more readable. Change-Id: I4c84183ef51e7ff18f0c06cea1b3925acd7dd276 - Merge "Add keystoneauth options to list_opts" - Merge "Use Tempest scenario job to run all scenario tests" - [Unity] Compressed volume support Support operations are: Create/delete/clone/extend/attach/detach compressed volumes Change-Id: I43d840875ebb99744d23d87482603e34551c3882 Implements: blueprint unity-compressed-volume-support - Merge "VMware: set 'shared_targets' as False" - Merge "Update microversion for force delete volume parameter" - Merge "Dell EMC SC: Enabled multiattach in Storage Center Driver" - Merge "[doc]Modify failed hyperlinks" - Merge "INFINIDAT: validate_connector should validate by protocol" - Merge "Unity: add multiattach support" - Merge "DS8K: correct the behavior for retype method" - Merge "Update attachment create API document" - Don't require size when creating volume from snap Commit 48b8973aed73e9dc88288607aecc4da6a69d94ac made it required to provide a size when creating a volume, but when creating a volume from a snapshot it is not necessary. If size is provided, and larger than the snapshot size, that will be used, but otherwise it should default to just use the original snapshot size for the volume. Change-Id: Ia7056758bbb678f8c31ecd96863d0918eb91aa70 Signed-off-by: Sean McGinnis <sean.mcginnis@gmail.com> - Fix some nits in transfer volume with snapshots There were some nits left when we merged transfer-volume-with-snapshots. So this patch will update them all. 1.Add CleanUp in _create_volume and _create_transfer methods. 2.Change Log.warning to Log.error. Closes-Bug: #1783040 Change-Id: If0e246f839f268653feb1c4cecbc6a3537acde03 - Merge "Storwize:clone volume with iogrp value as expected" - Add keystoneauth options to list_opts The [service_user] group contains keystoneauth's session options as well. This patch add these options back to list_opts. Change-Id: I5a890c37b1bc23befb1f5792aa6129ca0c250917 - Update microversion for force delete volume parameter Force delete is introduced since 3.23, correct the mv used in API controller. Change-Id: Ida04fc8a7a7af541547ea196a3cbb5a287714eea Closes-Bug: #1783028 - VMware: set 'shared_targets' as False Commit 2fa6fdd7846df05c3d81e78c137ec2976499a7f9 added a flag 'shared_targets' to Volumes. This flag indicates whether or not Nova should lock the attach/detach resource with the 'service_uuid'. In the case of the vmdk driver this is not needed and results in degradation in performance. Change-Id: I2eeaf96fdd66137f7bbe7a991e8ad07a49d209e1 - INFINIDAT: validate_connector should validate by protocol The INFINIDAT driver inherits from SanISCSIDriver for iSCSI-specific members, but its validate_connector method checks for the 'initiator' property in 'connector', which is not always available when using the FC protocol. Since the INFINIDAT driver supports both protocols, the validate_connector method must be overridden to check for the correct property in 'connector'. This fixes an issue with IBM PowerVC. Change-Id: Ia537f617baf72480b9c4536bdb7bc017784955e8 - Merge "use restore_file instead of open volume when restoring" - Merge "Remove note about mox" - Merge "QNAP: Add support for QES 2.1.0" - Merge "Pure Storage FlashArray driver - enable multiattach support" - Merge "Non Windows per service lock for Backup service" - Merge "[doc] Use openstack client commands to replace cinder client" - Merge "NEC driver: loss of access after live-migration" - Merge "VMAX driver - Block revert to snapshot for replicated volumes" - Merge "Fix Port nvmet driver to use privsep" - Merge "VMAX driver - Add VMAX specific volume metadata to logs" - DS8K: correct the behavior for retype method In order to retype a volume to be (or not to be) multiattach capable, the retype method needs some changes to support these operations. Change-Id: I799462bfdbca19e048acd0347f4165b117ed5d92 Closes-Bug: 1782292 - Merge "Fix 'availability_zones' attribute not recognized when creating volume" - Merge "Transfer snapshots with volumes" - Non Windows per service lock for Backup service The introduction of multiple processes on the Backup service in commit 66b1a0049ab78754a5e90c182b09ec501596458c broke the service in Windows. On commit 1710839a4336dea996910b0894d69d1075c5954c this was fixed by removing the original usage of os.getpgrp and using a global lock for all backup services running on the host. This global lock introduces an unnecessary bottleneck on non Windows systems. This patch fixes this bottleneck on non Windows systems by going back to using a lock using the os.getpgrp method for non Windows systems and using a global lock for Windows systems. Related-Bug: #1781168 Change-Id: If7178695bf8ab751bcede14aa56d8becee60e17b - QNAP: Add support for QES 2.1.0 This patch do the following change to the QNAP Cinder driver: 1. Add support for QNAP QES firmware 2.1.0. Change-Id: I6693c9b7efb3bc8b361e55ad84183103a5175298 Implements: blueprint qnap-support-qes-210 - [doc] Use openstack client commands to replace cinder client Change-Id: I9b13a60adbd283fcc37ee307757605af57a76aa7 - [doc] Use openstack client commands to replace cinder client Change-Id: I383c12e0308035df9d2fcba4d93e21cf9066a869 - Use Tempest scenario job to run all scenario tests Tempest has migrated the scenario job in Tempest tree and renamed it to "tempest-scenario-all".[1] This job runs all the Tempest scenario tests including slow tests. Old job running Tempest scenario test is running as experimental in cinder[2]. That job will be removed in favor of "tempest-scenario-all" This new job "tempest-scenario-all" will run as voting on check pipeline where old job was running as experimental. This is fine as we want to run all scenario tests on nova to avoid any regression. Tempest also run "tempest-scenario-all" as voting job. Detailed discussion on ML[3]. [1] http://git.openstack.org/cgit/openstack/tempest/tree/.zuul.yaml#n147 [2] https://git.openstack.org/cgit/openstack-infra/project-config/tree/zuul.d/projects.yaml#n3568 [3] http://lists.openstack.org/pipermail/openstack-dev/2018-May/130394.html Change-Id: I984c9c449303effa5a3d8b754a3f4363add3dada - Transfer snapshots with volumes This feature changes Cinder to transfer snapshots with volumes at the same time by default. If user doesn't want to transfer snapshots, they could use a new optional argument '--no-snapshots' after microversion 3.55. And we also introduce the new V3 api 'v3/volume_transfers' to move this API out of contrib into Cinder V3 API. The cinderclient patch: https://review.openstack.org/#/c/577611/ Change-Id: If848d131e5edcdb77d0b3c2ca45a99c4d5e14d1e Implements: blueprint transfer-snps-with-vols - Update attachment create API document Add 'mode' parameter to request body of attachment create API. Change-Id: I109e26837f107d2060f2c2f0ba9c94488e76b730 - NEC driver: loss of access after live-migration In Cinder API v3.44 and later, remove_export() is called after live-migration. In remove_export(), NEC driver detaches the given volume from all servers. Then the migrated instance on the destination server loses access to its volumes. Basically NEC driver detaches volume in terminate_connection(). The detach-from-all is needed only when an attached volume is deleted before detach. This patch moves the detach-from-all from remove_export() to delete_volume(). Closes-Bug: #1777385 Change-Id: I7d9398dadca7115ad58040743a55601a592f2fa3 - Merge "Add ability to specify mode to attachment-create" - Merge "Prepare Google Backup driver for latest libraries" - Pure Storage FlashArray driver - enable multiattach support Change-Id: Ia7a93caeb524e213bdcef524eb3b9429977dd671 - VMAX driver - Block revert to snapshot for replicated volumes Attempting to restore a replicated volume to snapshot will result in an error, as this operation requires the RDF relationship to be suspended first. It would be safest to throw an exception and block this operation on replicated volumes. The user could instead create a new volume from the snapshot and attach that, instead of reverting the original volume. This patch implements this change. Change-Id: If7b1dc408375d724fdc9ce6a3e256ad37e7c946f Closes-bug: 1777871 - VMAX driver - Add VMAX specific volume metadata to logs Log VMAX specific metadata of a volume and version information, when debug is enabled. It enables the user to trace the vmax location of a volume after every operation i.e. storage group, masking view etc., as well as useful debug information like OS, VMAX and python versions. Change-Id: Ib727797da7624dec5662a35de1db05ad6dc866a0 Implements: blueprint vmax-metadata - Merge "NetApp ONTAP iSCSI/FCP: Enable multiattach capability" - Add ability to specify mode to attachment-create This patch is the next step in simplifying how we create and manage Read Only Volume Attachments. Currently, we have multiple ways of doing this including volume_admin_metadata and the connector that's supplied during attachment processes. The problem is that this method requires you to set and match both settings; and there are a lot of places things can go wrong. If you use volume_admin_metadata, the volume must ALWAYS receive a connector that has read only specified in it, otherwise if the values don't match, the attach calls fail. If you don't use the metadata setting (ie you don't want the volume to be exclusively Read Only) you can just specify the mode in the connector. Rather than have these two different settings and juggle the various attachment parameters that have been introduced (attach_mode, access_mode, volume_admin_metadata:read_only...) it would be much more straight forward to just allow the ability to specify an attach mode during attachment-create and use that setting. This change adds that option to attachment-create, but it also keeps backward compatibility with the volume_admin_metadata for those that are using it. Yes, we could just do a version bump and eliminate admin_metadata; but maintaining the two independently is more disruptive than just keeping compatibility. One thing that this change does that might be unexpected, is it eliminates the requirement for volume_admin_metadata and the connectors mode parameters to match. It assumes that if an admin went through the trouble to set a volumes admin_metadata to read only, then it should in fact be read only regardless of the connector. So we always revert to the admin_metadata setting, and modify the connector if they don't match. The next step in getting completely away from admin_metadata is to introduce the ability to create a Read Only volume via types; that will by the global setting for a volume in terms of its attachment setting. None of this enforces anything on the consumer side (the old methods didn't either) but it does set flags on the volume and attachment record indicating what was requested and what we expect the consumer to be doing with the volume. Change-Id: I091f4eb8f1b464bb2dddb0a29245690a0430142e - Merge "[NetApp ONTAP] Add filtering to API trace logging" - Merge "Update api-ref and release notes for schema validation" - use restore_file instead of open volume when restoring when do _check_restore_vol_size in ceph, cinder-backup cannot open restored volume image。 Change-Id: I3e093665d37952ab656c205400b227cc073ca472 Closes-bug:#1777588 - Merge "Use ensure_tree instead of mkdir when creating paths" - Unity: add multiattach support Add the ability to attach a volume to multiple servers simultaneously. Implements: blueprint unity-multiattach-support Change-Id: Ib7222bb3cd13505f9a8789f8cc85685e4ae9cce4 - Update api-ref and release notes for schema validation This patch adds a reno for validate boolean parameters with spaces. Also adds valid values in api-ref for boolean parameters that user can pass in request body. Implements: bp/json-schema-validation Change-Id: Iff4b2906dba93a238d720a218fcf7a9f78b96a37 - Prepare Google Backup driver for latest libraries With every new google library, there are small changes that need to be done to the Google Backup Cinder driver to stay compatible. This patch updatest the code and the unit tests for libraries: google-auth===1.5.0 google-auth-httplib2===0.0.3 google-api-python-client===1.7.3 While maintaining compatibility with earlier versions: google-auth===1.4.1 google-auth-httplib2===0.0.3 google-api-python-client===1.6.7 Code has also been manually tested against Google Cloud Storage to ensure backup and restore works with the new libraries. Change-Id: I4e0c36217338fd757445aa172f6e962fb9ec507c - Merge "V3 jsonschema validation: Volumes" - Merge "Avoid os.getpgrp, breaking Windows c-backup support" - Merge "Dell EMC: SC FC Driver wwns api response in lower" - Merge "Remove tee from volume.filters" - Merge "Revert "Use os.mkdir instead of mkdir"" - Fix Port nvmet driver to use privsep Commit[1] fails NVMe CI due to missing attribute: File "/opt/stack/cinder/cinder/volume/targets/nvmet.py", line 184, in _get_available_nvmf_subsystems out, err = cinder.privsep.nvmcli.save(tmp_file_path) AttributeError: 'module' object has no attribute 'nvmcli' [1] I3cff61b4cde16e00ad23d534c5281a2f1afcd29f Change-Id: I5d457e5005e64b8857592b1686a5d8075f5f7c92 - NetApp ONTAP iSCSI/FCP: Enable multiattach capability Change-Id: Ic86b1b771a343d3c73a42b32ec678d9243025d13 - Remove note about mox Remove the note about using mox in unit tests since mox has been removed in cinder. Change-Id: If7fa5f86ff5008d338f70db6dc30190f81786979 Signed-off-by: Chuck Short <chucks@redhat.com> - Merge "api-ref: Update notes on encryption key size" - Merge "Enable split logging for cinder-glanceclient interaction" - Merge "Unity: add thick volume support" - Merge "NetApp ONTAP: Remove NFS driver online volume extending support" - Merge "NetApp ONTAP: Remove iSCSI/FC driver online volume extend support" - Merge "Replace os.makedirs to avoid process race" - Unity: add thick volume support Change-Id: Ic1a77f928ce0b8a51e78b33bc6025b7c9902c8fa - Merge "Make scheduler check online_extend_support capability" - Merge "Add blueprints and releasenotes link to README" - Merge "[Logging] Enable filtering of trace_api logs" - Merge "Handling type's multiattach extra specs in API task flow" - Merge "Remove hus-cmd from rootwrap volume.filters" - Merge "Change blockbox to block-box" - LVM: Enhance option descriptions Add descriptions to lvm_type option values. Change-Id: Id837ab544bae83defeb7ce5317282cabb60b1d09 - api-ref: Update notes on encryption key size 128 bit keys don't even work, and wouldn't be recommended if they did. Everyone should be using 256 bit keys. Change-Id: I14c52b35abd55d0147b877b60af12c92130fa4a7 - Ceph backup: set close_fds on Popen Open file descriptors should not be passed to the child processes. This only affects Python 2, Python 3.2+ defaults to this value being True. Change-Id: I5c9bb0c04a4aafae8815667f56be4dee07c4aab7 - Use ensure_tree instead of mkdir when creating paths Use fileutils.ensure_tree instead of shell based mkdir commands when creating mount points. Closes-Bug: #1780750 Change-Id: I5a4155529e3c6dbc7f4d0e43561658bbba8a715d - Merge "RemoteFS: Use summarize option for "du"" - Merge "Remove unused commands from volume.filters" - RemoteFS: Use summarize option for "du" Only return the total from du rather than a full listing. The parsing code here expects du's output to only be one line. Closes-Bug: #1781276 Change-Id: Id398ad1ce3f30ccc029bfcfb1663654946d42c91 - Remove hus-cmd from rootwrap volume.filters Remove the hus-cmd and hus-cmd_local from volume.filters because its not being used anywhere. Change-Id: If4068378ed4804a3aa707c218f35dcd2685d06c2 Signed-off-by: Chuck Short <chucks@redhat.com> - Avoid os.getpgrp, breaking Windows c-backup support A recent change introduced a regression, breaking Cinder Backup support for Windows. It uses os.getpgrp, which isn't available on Windows, using the process group as part of a lock name. This lock ensures that only one of the cinder backup workers will cleanup incomplete backups. It should be safe to just drop the process group from the lock name, fixing this issue. Closes-Bug: #1781168 Change-Id: I01edb5cd757a08b1b371e20ce5fa42fee888bbfb - Enable split logging for cinder-glanceclient interaction To enable split logging functionality [1], need to register 'split_loggers' conf option under [default] section of cinder.conf This patch registers 'split_loggers' conf option under [default] so that operator can set value of 'split_loggers' to True to enable split logging. [1]: https://review.openstack.org/#/c/505764/ DocImpact Change-Id: I05639133c7e5770e810be97d8c6bb98450c8c9ba - Merge "Remove ssc command from volume.filters" - Remove tee from volume.filters Remove the tee command from volume.filters since its no longer being used. Change-Id: I2efa951fd537442b19059b8362f98aba1668ab17 Signed-off-by: Chuck Short <chucks@redhat.com> - Merge "NetApp: Deprecate E-Series drivers" - Revert "Use os.mkdir instead of mkdir" This reverts commit fc3f5d8e8d38831b8b6f3c60fad40243eda22c8b. The use of os.mkdir does not cover the substituted mkdir -p calls, see bug #1780750 . Change-Id: I8f5fc8ee22fdacd732b769c2d6d688c3dd0bdb81 - Change blockbox to block-box Change-Id: Iefd95987627df382ba7fdf0dd7b8f5a0398a0aa2 - Merge "Remove report of allocated_capacity_gb from Inspur driver" - Remove unused commands from volume.filters Most of the hitachi drivers from hbsd has been removed from cinder. Remove them from the rootwrap filters as well. Change-Id: I3452d5ca94bfbc745fae86fb44513d1230717c89 Signed-off-by: Chuck Short <chucks@redhat.com> - Remove ssc command from volume.filters Remove the ssc command from volume.filters since its not used anywhere. Change-Id: Ia74250e28bb0b2963be3d5653b6b45d99228e1f9 Signed-off-by: Chuck Short <chucks@redhat.com> - Merge "Fix backup/restore error for ceph rbd backend" - Merge "Port nvmet driver to use privsep" - Merge "RBD: support to get manageable snapshots" - Merge "DS8K: correct the behavior for get_pools method" - Merge "Use os.mkdir instead of mkdir" - NetApp: Deprecate E-Series drivers The deprecation for the E-Series iSCSI/FCP drivers begins this release (Rocky) and the drivers will be removed in Stein. We will run E-Series CI until stable/rocky is tagged EOL; no new features will be added, however, existing code may be meaningfully refactored to keep the drivers ready for removal. Change-Id: Iea8ca99fa55743e910af47d19af150cb9fd9ecf2 - Merge "Drop dmsetup from rootwrap" - Use os.mkdir instead of mkdir There was a few places where we were shelling out to mkdir instead of just calling the built in python implementation. Change-Id: I6f232f81e36dc750e064af6047c137a3bccbdc0a Signed-off-by: Chuck Short <chucks@redhat.com> - Remove blockdev from volume.filters Remove the 'blockdev' command from the volume.filters since the block-device driver has been deprecated since 2016. Change-Id: Ifb554898287b139d6ec07f73b012509b7d59c005 Signed-off-by: Chuck Short <chucks@redhat.com> - Drop dmsetup from rootwrap The 'dmsetup' command is not being used anywhere so remove it from the volume.filters. Change-Id: I0619713c5159cf8988804f1949346e238f09445f Signed-off-by: Chuck Short <chucks@redhat.com> - Merge "Fix prophetstor drivers report value" - Merge "Remove mkdir from volume.filters" - Merge "NEC driver: Fix iscsi multipath initialize_connection tests" - Merge "Fix RBD incremental backup" - Merge "DS8K: correct behavior and return value for terminate_connection method" - Remove mkdir from volume.filters The 'mkdir' command was not being used anywhere so remove it. Change-Id: Ib0894a606df78112a86d444339db4bb5df81110b Signed-off-by: Chuck Short <chucks@redhat.com> - NetApp ONTAP: Remove NFS driver online volume extending support Cinder scheduler now checks backend capability online_extend_support before performing an online volume extend operation. This patch makes NetApp ONTAP NFS driver report to the scheduler that it doesn't support this feature, thus avoiding leaving a volume in error_extending state after an online extending attempt. Change-Id: Iafe3e68d6e9c20064a8825848b7b2d33ce7f4cff Depends-On: I2c31b5c171574074a8fc7ba86f94f983fc9658f7 Related-Bug: #1765182 - Add policy in code documentation for os-set_bootable API This patchset adds policy in code documentation for the os-set_bootable API action, which does not directly [0] enforce any policy. However, it does internally call volume update API via self.volumes_api.update() [1] which in turn enforces the update policy [2]. Thus os-set_bootable indirectly enforces this policy. This is a unique case where an API doesn't enforce something directly, yet where policy still matters for the API to pass successfully. [0]52deeff8d2/cinder/api/contrib/volume_actions.py (L310)
[1]52deeff8d2/cinder/api/contrib/volume_actions.py (L321)
[2]52deeff8d2/cinder/volume/api.py (L535)
Change-Id: I29d54fb391f4e9508d86fc93e84b4b02c1333da0 - Merge "INFINIDAT: change create_child to create_snapshot" - Port nvmet driver to use privsep Now that we have privsep support in cinder, we can start using privsep in various drivers so we can drop rootwrap support. Change-Id: I3cff61b4cde16e00ad23d534c5281a2f1afcd29f Signed-off-by: Chuck Short <chucks@redhat.com> - Merge "NetApp ONTAP NFS: Enable multiattach capability" - DS8K: correct behavior and return value for terminate_connection method In terminate_connection method, if the host can't be found in the storage and the lun type is non-replication, driver will log an error instead of raising an exception and the return value should be lowercase. Change-Id: Idf4e9b966a1b0f9154ca600e088ceb6929a1fb0e Closes-Bug: 1776227 - Merge "Fix time convert error in testcases." - DS8K: correct the behavior for get_pools method If the pools defined in the config file but these can't be queried from the storage. The driver should catch this exception and ignore it to support the Report Backend status feature. Change-Id: I8d77b9b172df963063b38ccbd32e805dd7db1e00 Closes-Bug: 1780095 - Correct Pure Storage configuration documentation The Automatic thin-provisioning/oversubscription ratio section incorrectly defines the default value. Rewrite section to be correct. Change-Id: I3e84e54eb5cd9eb81604740732ea2d717a7e25e9 Closes-Bug: 1779911 - Merge "Reject any filter whose key contains non ascii character" - INFINIDAT: change create_child to create_snapshot create_child method was deprecated in favor of create_snapshot in infinisdk package. This is an internal change and should have no customer impact. Change-Id: I1e89dd2324a6fcd05e2c5336bb0816abf7c5ca2e - Adds Overlay Volumes Created from Snapshots to Quobyte In order to further prevent delays during creation of volumes from snapshots this adds the creation of volumes as overlay files backed by volumes in the volume_from_snapshot cache (introduced in Change I2142b1c0a0cc2c4f85794416e702a326d3406b9d). This speeds up the creation of new volumes from a snapshot as the new volume is created as an overlay file for the cached volume instead of beeing a full copy of the cached file. Such overlay based volumes are tracked via softlinks in the volume_from_snapshot cache directory in order to ensure deletion of the cached volume only if all related volumes & snapshots have already been removed. Besides changing the Quobyte driver this also adds using specialized backing file templates when running qemu-img info commands in RemoteFS based drivers. Default behaviour is unchanged but drivers may now provide an optional modified matching template, if required. Partial-Bug: #1715078 Change-Id: I2a213b456514c15ce54d7082e272adff6a59cbd7 - Merge "Fix parameter description in volume and snapshot manage extension" - Merge "Keep volume's status in 'creating' when creating from backup" - Merge "Solidfire: Fix pylint errors for class decorators" - Merge "Multipath: Update docs for backend drivers" - Merge "NEC driver: Reuse iSCSI LUNs of detached volumes." - Merge "Clean up unnecessary test params in test_rbd" - Fix RBD incremental backup Since the default get_backup_device method doesn't return enough Ceph connection information, RBD incremental backup will fail, resulting in full backups being performed when an incremental is requested. Closes-Bug: #1578036 Co-Author: Gorka Eguileor <geguileo@redhat.com> Change-Id: I41d1ec84db58f4bf0f7362cec022f2c3380e5ee2 - Add blueprints and releasenotes link to README Add blueprints and release notes link to README, easy to view new cinder features. Change-Id: I5a8a8f38a8a50d0dcb1a6d1ac6998d6bc5567b59 - Fix parameter description in volume and snapshot manage extension The parameters 'cinder_id', 'reason_not_safe', 'extra_info' can be None, but are required in the response body of listing detail of managable volumes or snapshots. Change-Id: Iade148d2afeaae486aab4dc789d52e9522f206ee - Keep volume's status in 'creating' when creating from backup When volume is created via restoring backup action, the volume status would change into 'restoring-backup' from 'creating', this state change would confusing end user. This patch updates this and keep volume status in 'creating' when creating. Change-Id: I82d741ea8278de75ed817379b0a04f1f919a27c7 - Merge "Fix quota error when deleting temporary volume" - RBD: support to get manageable snapshots This patch adds the ability to get manageable snapshots to RBD driver. Partial-Implements: blueprint ceph-list-manageable-volumes-and-snapshots Change-Id: I2f979f445aeb2664c93c6810dcf2e82aed92a8cf - [NetApp ONTAP] Add filtering to API trace logging API Tracing is valuable when diagnosing problems or unexpected behaviors with the ONTAP Cinder drivers. However, turning it on may spam logs and make it rather harder to trace through specific API calls. Added an API trace pattern filter in order to filter out undesired API calls from the DEBUG log. Change-Id: Ic0563848205a941cf8e779eee42e24ecdaf847dd - [Logging] Enable filtering of trace_api logs This improvement allows trace_api decorators to be passed a filter function argument, which can validate the parameters of the object being logged to decide to not filter it. Change-Id: I2dbf5583b8d2c9b9afe35bc5a916f480637d79f5 - Fix 'availability_zones' attribute not recognized when creating volume Volume type's reserved key 'availability_zones' will not be recognized if type is specified in source volume or snapshot. This patch fixes this issue while refactor some codes regarding collecting volume type from resource. Change-Id: Ibe937d5a97d685f5d9c3f8c03c5c384bb02a6942 - Merge "Fix vmware disk type changed when volume type is eagerZeroedThick" - V3 jsonschema validation: Volumes This patch adds jsonschema validation for below Volumes API's * POST /v3/{project_id}/volumes * PUT /v3/{project_id}/volumes/{volume_id} Adding new Microversion 3.53, this will have impact on both Create and Update Volume API * Create volume API will not accept additional properties like (user_id, project_id, status and attach_status). * Update volume API will require minimum one parameter in request body otherwise it will raise 400 error. APIImpact : Before 3.53 version, create volume allows additional properties, but now it will raise 400 error. Also before 3.53 version, update volume allows empty body {}, but now it will raise 400 error. DocImpact Closes-Bug: #1774155 Partial-Implements: bp json-schema-validation Change-Id: I1829b6796cd6d3fa1040dd0fb9280bec5bdbc92e - Enable running py36 unit tests This adds a tox setting for skipping default targets if the specified version is not available. This allows tests to run using python 3.6 if available, but conversely also allows skipping python 3.5 or even 2.7 if those runtimes are not present. This only affects local default tox runs and does not change what is tested in the gate. Change-Id: Ia34fd32ab8d4672a2725468ee3d37697f51d5b3a - Handling type's multiattach extra specs in API task flow This patch fixs two issues related to multiattach extra specs: 1. Volume's multiattach attribute will always be False if it's created by a multiattach type while type is specified in source volume, snapshot, image metadata or config file, related patch [1]. 2. 'MULTIATTACH_POLICY' will not be validated if multiattach flag is specified in the volume type that from source volume, snapshot, image metadata or config file [2]. [1]: a32e24ff3e2c3083b42dd3654355f8c101363147 [2]: ff30971d1f7b1f4febdef9358a999017bea2296d Closes-Bug: #1770671 Change-Id: Ibec0656d9ead726ca12e62091fda74c04ec99eda - NEC driver: Fix iscsi multipath initialize_connection tests Add test for multipath disabled, also adds more infos for the multipath enabled. Change-Id: I192217e0a07ec3b16875d699d04f90f159074177 - NetApp ONTAP: Remove iSCSI/FC driver online volume extend support Cinder scheduler now checks backend capability online_extend_support before performing an online volume extend operation. This patch makes NetApp ONTAP iSCSI driver and FC driver report to the scheduler that they don't support this feature, thus avoiding leaving a volume in error_extending state after an online extending attempt. Change-Id: Ifa248a0d3518aeffe2b6d12b064cbee9b8f48f94 Depends-On: I2c31b5c171574074a8fc7ba86f94f983fc9658f7 Related-Bug: #1765182 - Merge "VMAX Driver - Incorrect SSL cert verification" - Multipath: Update docs for backend drivers Since Nova had deprecated the iscsi_use_multipath option, we should updates the config docs for this change. Change-Id: I320c6a7481978976394403edde6e9e85174d3b36 - Fix time convert error in testcases. The converted time differs via different timezones, this patch replace the expected value with 'mock.ANY' to avoid testcase failure. Change-Id: Ifb778dd9d418e9a638a385db585add55698d7e21 - NEC driver: Reuse iSCSI LUNs of detached volumes. Currently, NEC driver does not reuse iSCSI LUNs of detached volumes. The driver always use the LUN of (max(LUNs used) + 1) to attach a volume. If multi-target mode of NEC Storage is enabled, the driver works without the problem because only LUN0s are used in the multi-target mode. This patch changes the using LUN to min(LUNs not used) for reusing a LUN of detached volume with multi-target mode disabled. Change-Id: I067cb09928c4c9d4ebb7159950fff526ee70f1bb Closes-Bug: #1778669 - Fix quota error when deleting temporary volume When deleting a volume, always use the admin context to fetch the admin_metadata that indicates whether it's a temporary volume. This fixes a bug where a non-admin user failed to retrieve the admin_metadata, which caused the volume to not be treated as temporary. This, in turn, caused quota usage to be incorrectly updated. Closes-Bug: #1778774 Change-Id: I8e6b0c726dc6498b28795a1ea0520ef05e53f047 - Make scheduler check online_extend_support capability Since Pike release, Cinder supports volume online extending, and by default it assumes that every backend supports this feature. This assumption causes a bug on those backends that don't support it. On such backends, an online extending attempt leaves the volume in error_extending state. This patch allows a backend to report to the scheduler if it does not support online extending. This way, an online extending attempt will fail, without leaving the volume in error_extending state. Closes-bug: #1765182 Change-Id: I2c31b5c171574074a8fc7ba86f94f983fc9658f7 Co-Authored-By: Lucio Seki <luciomitsuru.seki@fit-tecnologia.org.br> - Merge "Remove 'message' from format argument from exception" - Merge "Remove 'message' from format argument from exception" - Merge "NetApp: Remove duplicate volume_type kwarg" - Merge "Use check_virtual_size to do the size check" - Merge "Add v3 api-ref for force delete snapshot" - Merge "Fix the usage of RBDVolumeProxy in getting manageable volumes" - Merge "Fix rbd driver json loading" - Merge "Remove 'message' from format argument from exception" - Merge "Move blockbox DB volume to home directory" - Merge "api-ref: Rephrase delete volume precondition" - Merge "Storwize: update the function is_volume_hyperswap" - Clean up unnecessary test params in test_rbd Unit test was added that copied a test using ddt for supplied values passed in, but the new test did not used ddt. This just moves the values of those parameters into the body of the test. It keeps the variable names to help keep the intent of the values clear. Change-Id: I5148f9500b0578dae457a9b561def8568165fbd1 - NetApp ONTAP NFS: Enable multiattach capability Change-Id: I65fabec317a3e3dce2512002247e8a7b75fbe5d7 - Merge "Nimble: Fix tuple being passed for exception init" - Adds more validations in create_snapshot This patch adds more validations in create snapshot, like host and replication. And removes the check logic in create_snapshot_in_db method. Change-Id: I8e5c7664e54116cc9e302e5e7903f4d7b04c836c - Merge "Storwize: get list of all volumes for ensure_export." - Add policy check for type show and type list We don't have any policy check for type show and type list APIs. This patch adds them in code while set default rule to empty. Change-Id: Id2d72f1c6f24292ba354a53d2519faa348f3bb0f Closes-Bug: #1777748 - Merge "VMAX docs - use config-table directive" - Merge "DataCore: get rid of pylint errors due to contextlib" - Merge "api-ref: Adds os-update_readonly_flag API" - Merge "Fix invalid escape sequence warnings" - Merge "Fix v3 sample files" - Merge "Get rid of conditional rtslib_fb imports" - Merge "VMAX driver - remove deprecated XML option" - Merge "VMAX driver - Deleting snapshot that is source of multiple volumes fails" - Fix vmware disk type changed when volume type is eagerZeroedThick Create a volume from an image, choose "eagerZeroedThick" volume_type. But login in Vcenter, you will get a "lazyZeroedThick" volume. There is no problem when creating a blank vmware volume. The reason is: when creating a volume from image, if volueme_size > image_size, the last step is to extend backing volume. In the method extend_virtual_disk(), there is a parameter "eager_zero", which determining if the free space is zeroed out. The param "eager_zero" default value is "False", and not to be changed to "True" in creating an eagerZeroedThick volume from an image. So the actuall volume type is different with designated volume type. We can add a paramter "disk_type" in _extend_backing() method, determining which type disk to extend. Then pass "False" or "True" to extend_virtual_disk() as "eager_zero". Change-Id: I29978b69d21c2583da152f9fbf1264ada8f079e6 Closes-Bug: #1777430 - Merge "VMAX driver - Incorrect service level reporting" - Merge "VMAX driver and docs - change san_rest_port to san_api_port" - Merge "VMAX: Address nits in list manageable code" - Remove report of allocated_capacity_gb from Inspur driver Drivers should not be handling this value. Let Cinder core take care of allocated_capacity_gb. Change-Id: Id2ceb77cd80a8fbd22243f29190717928817a7b4 Closes-Bug: #1746222 Signed-off-by: Kien Ha <kienha9922@gmail.com> - Fix v3 sample files This patch is mainly to fix some v3 sample json files to keep the format consistent. Change-Id: Ibfe171f19e1530c0fcdc6a531c36871d1bc51a3c - Dell EMC: SC FC Driver wwns api response in lower Fixed the SC api to return the wwns in lower case so os-brick rescan targets can return the right port names. Closes Bug: #1775649 Co-Authored-By: KC Bi <kecheng.bi@dell.com> Change-Id: I9ad8c610f0512bdcbf2eff210a02abf8f88c425a - Add v3 api-ref for force delete snapshot This patch is to add v3 api-ref for force delete a snapshot. Change-Id: I44d16a9fa9065b5e92b18c487b45e7076ec03b0e - Merge "DS8K: Enable multiattach support" - api-ref: Adds os-update_readonly_flag API This patch adds "os-update_readonly_flag" volume action API. Change-Id: Idad24f9a17af3323a26ed487f1f0d20306bf935f Closes-Bug: #1775915 Closes-Bug: #1771390 - Fix prophetstor drivers report value allocated_capacity_gb should not be reported by drivers and let the volume manager handle this. Change-Id: Ief53a578f96384ab945598b4a67337dd8b8349f8 Closes-Bug: #1746221 Signed-off-by: Kien Ha <kienha9922@gmail.com> - Merge "HPE3PAR: Fix pointing to backend in group failover" - Fix invalid escape sequence warnings There are a lot of DeprecationWarning message emited when running under python 3.6 due mostly to non-raw strings being used for regex expressions. DeprecationWarning: invalid escape sequence \ These had previously been ignored, but starting with python 3.6, and the commit for issue 27364, these are now considered deprecated and will no longer be supported going forward. Per the discussion on that issue, these strings should really be raw strings any way: https://bugs.python.org/issue27364#msg272696 Change-Id: If6ff206e4bbcf10ab52d2895f606dafad2936ddb - Get rid of conditional rtslib_fb imports Newer versions of this library have been out for awhile now and appear to be working well. This raises the minimum version for rtslib_fb to a recent version that does not require the conditional import due to the namespace change from rtslib to rtslib_fb. Depends-on: https://review.openstack.org/575530 Change-Id: I10f48833c2a61b7b2c6b300d4f8291a357f7e600 - Merge "Add v3 api-ref for updating snapshot status" - DataCore: get rid of pylint errors due to contextlib Use of contextlib.closing causes pylint to not recognize the type and causes "no memeber" errors. Since this is a locally defined class that can simply be made into a context manager, this removes the use of contextlib and handles it directly in code. Change-Id: I2b284b1ba51f848c183c3895948131de9e89d300 - Nimble: Fix tuple being passed for exception init Rather than formatting a string to pass as the exception initialization it was passing in a tuple of the format string and value. This changes it to perform the string formatting correctly. Also fixes up a whitespace issue in one of the other exception strings. Change-Id: I12648a8806bdbb3ef7933d3f256a2c0213219302 - Solidfire: Fix pylint errors for class decorators A couple decorators used within the Solidfire driver were defined as class methods rather than their own functions. This results in the pylint errors: "Method should have \"self\" as first argument" Since these do not need access to self, there is no reason they should be class methods. This moves them out to be their own functions. Change-Id: Ia4da36987783fb0e3f2c44857a3cf9d586c5e769 - Infinidat: Get rid of pylint errors due to private lib Infinidat has a requirement for a vendor lib on the host which appears to include a package called 'capacity'. Its use and properties appear to be the same as the units package. When loaded and this package is not available it is set to None, such as when running tests on generic nodes. This results in pylint errors: "Module 'capacity' has no 'GiB' member" On failure to load, this aliases the units module as capacity to prevent these errors. Change-Id: Ia522b1c6d866acaa39439ca86c4a7bbfe4e0f70a - NetApp: Remove duplicate volume_type kwarg The create_destination_flexvol method gets provisioning options from the source volume, but also explicitly sets the volume_type for the flexvol. Since volume_type is part of the source volume attributes, this results in volume_type being provided twice and the pylint error: "Got multiple values for keyword argument 'volume_type' in function call" Since the volume_type needs to be explicitly set, this overwrites whatever is gathered from the source volume. Change-Id: I6e597d1b44af2332e538c48d12e79ab745a5c9b5 Closes-bug: #1777911 - Increase pylint processes The default process concurrency for pylint is 1. Since our gate images used to run the job have 8 cores, this results in slower job execution with many cores sitting idle. To speed things up, this sets the process count to match the number of cores available. Change-Id: If4ba3333a1cb3b8bb6b4797f9149f412d32047ef - Add v3 api-ref for updating snapshot status This patch adds v3 api-ref for updating relative fields to status of a snapshot. Change-Id: I24b8a05c814eb6a69ce957c75b8d168576774380 - Reject any filter whose key contains non ascii character Since filter key will be recognized as the object attribute inside Cinder, this change will disallow any filter whose key contains non ascii character. Change-Id: I66ec74e1396f4fa42fd855988265990a535c333b Closes-Bug: #1766965 - HPE3PAR: Fix pointing to backend in group failover Issue: After group failover, subsequent operations like attach & detach volume, which are part of that failed over group points to primary backend instead of secondary. This patch fixes the above issue by setting up the appropriate backend in case of subsequent operation on volume, which are part of group which is failed over. Change-Id: I679b11317c91ad28cefdf995a8d6849dc71bc1c5 Closes-Bug: #1773069 - Remove 'message' from format argument from exception This patch removes 'message' from format argument of 'NexentaException' and 'BadResetResourceStatus' exceptions. We should not use 'message' as a format argument and the reason is described here [1]. From a long time view we need remove them from exceptions rather than remove it when initialized. [1]: https://review.openstack.org/#/c/572674/ Change-Id: Icc0e4aefecbd224a4c14bdaef64b62ec0cd68968 - Fix the usage of RBDVolumeProxy in getting manageable volumes Pass the 'client' and 'ioctx' paramters to the RBDVolumeProxy() to reuse external connection that already established, which will reduce load to the ceph cluster. Change-Id: I14f41bd10242c037301bc97986c95d72954d7bcc - Storwize: get list of all volumes for ensure_export. This patch solves the problem of too slow initialization of cinder-volume service. Previously lsvdisk() was called separately for each 'in-use' volume in order to check if the volume exists on the storage. Now lsvdisk() is called once per pool. Change-Id: Ia84afc12a30ea7b714b287844e81ba02ce4b0f3d Closes-Bug: #1749687 - Keep ORM names matching their VO counterparts Now cinder had some Versioned Objects which names do not match their ORM counterparts. In method: get_model_for_versioned_object, we handles those exceptions. This patch fix this issue to keep the names match. Change-Id: Icf709d87be99df95e5b52204032b730cd790096c Closes-Bug: #1493112 - Storwize:clone volume with iogrp value as expected Currently, clone a volume with a new volume type, the iogrp is the same as source volume. With this patch, create_cloned_volme, the iogrp will be the value specified in extra_spec. Change-Id: I8f349b4813a2a9b817bf924e6ed052b48842bea3 Closes-Bug: 1754760 - [XtremIO] Remove provisioning factor when reporting 'free_capacity_gb' is incorrectly reported cause the real size has been multiplied by max_over_subscription_ratio Change-Id: I9804b580f90ecfca764a205c46a02ca73d32adcc Closes-Bug: #1773725 - DS8K: Enable multiattach support Support multiattach capability for IBM DS8K Change-Id: I4e1f79dba0ed241fabd83bf972f60a6cbe21a106 - Merge "Storwize: add data reduction pool support" - Merge "policy docs: Add volume summary under GET_ALL_POLICY entry" - Merge "DS8K: correct the return value for initialize_connection method" - Merge "NEC driver: Delete max volumes per pool limit." - Merge "Mark Dell EMC CoprHD Drivers unsupported" - Move blockbox DB volume to home directory Moved db_data directory to ~/.blockbox/db_data because it's owned by MySQL in the container so tox will failed with it during *.pyc files cleanup. Change-Id: Ib2c57d57193cd94108927bfd3a4bf944941976e9 - VMAX Driver - Incorrect SSL cert verification SSL certificates are not being applied to the REST session as desired. If a user sets SSL verification to True but does not specify a path to the SSL cert, SSL is disabled instead of looking in the system certificate bundle. Closes-Bug #1772924 Change-Id: I20cb64c11e43c22558939e27708ec678c5723ca2 - VMAX docs - use config-table directive Replacing manually maintained config table with the automated config-table directive Change-Id: Icd1d2c19a142cd82dcf4c817db1368442bfbb1aa - VMAX driver - remove deprecated XML option 'cinder_dell_emc_config_file' was deprecated in Queens. We are now removing all reference to it and all XML parsing. Now we rely solely on the config tags in cinder.conf. Closes-Bug: #1768273 Change-Id: If6f7c58f445dd813df7161cc6cd6dd84484e8a7e - VMAX driver - Deleting snapshot that is source of multiple volumes fails Deleting a snapshot which is the source of multiple volumes fails with the error: "The number of source and target devices must be equal". This patch rectifies the issue by unlinking source and target volumes individually where a single volume is a source of multiple targets. Change-Id: I4b0c171051622f62aba1238c3b84d8a2c8bad6dc Closes-bug: 1768047 - VMAX driver - Incorrect service level reporting 'Optimized' is being reported as a service level option for VMAX All-Flash arrays, in the get_pools output, and it can be assigned as the default pool if there is no service level assigned to a volume type. This can cause errors, as Optimized is not a recognized service level on All Flash arrays. This patch rectifies the issue. Change-Id: I9365ae3b923eeb92ac00023b7040e934b6e2df57 Closes-bug: 1766633 - VMAX driver and docs - change san_rest_port to san_api_port This is part of the effort to consolidate and eliminate duplicate configuration tags. san_rest_port will be deprecated in this release and replaced by san_api_port in the next. Change-Id: I5051e39c3bf45a3a4903e94c1597a142321a77e4 Closes-Bug: #1758010 - Merge "Cloning image fails results duplicate cache entry" - Merge "Imported Translations from Zanata" - Merge "Mark the HGST Driver unsupported" - Imported Translations from Zanata For more information about this automatic import see: https://docs.openstack.org/i18n/latest/reviewing-translation-import.html Change-Id: I01b4e6bd8000401adeaf2a3ee86faff39581e2f3 - api-ref: Rephrase delete volume precondition Change-Id: Ibab0cb257a17a1af37d522348f517185b80dfabc Closes-Bug: #1774280 - Merge "RBD: support to report backend state" - Merge "Remove _static folder in doc directory" - Merge "NEC driver: Faster clone status check." - policy docs: Add volume summary under GET_ALL_POLICY entry Using a codesearch [0] it is apparent that volume summary enforces GET_ALL_POLICY [1]. Thus, this patchset includes the entry for /volumes/summary under the GET_ALL_POLICY documentation to signal to services and users all the APIs that enforce that policy. [0] http://codesearch.openstack.org/?q=vol_policy.GET_ALL_POLICY&i=nope&files=&repos=cinder [1]4b96310411/cinder/volume/api.py (L633)
Change-Id: Ic33f763df603f1170b8cf1bfc35cc285d5ed0669 - Merge "Mark DataCore Drivers unsupported" - Merge "Add debug logs for weigher filters" - Merge "Update macOS devref info" - Merge "Allow running unit tests on macOS" - Storwize: add data reduction pool support Data reduction pool is a new style pool on Storwize/SVC storage. Thin provisioned/compressed vdisk copies created in a data_reduction pool are quite different from regular pool. This patch adds thin-provision and compressed volumes support on data reduction pool. Change-Id: Icb09cbacc3cfe63017d17847799c0904e06cf8a7 Implements: blueprint svc-drpool-support - Merge "Add ansible helper to Linux dev environment info" - Merge "Clean output of driver list generation" - Merge "Fix tox -e docs failure" - Allow running unit tests on macOS Two issues prevented running our unit tests on macOS. Mocking os.stat appears to cause issues internally when running tests, and trying to load the Linux-only rtslib_fb package would prevent even loading the source to find tests. This mocks out packages to allow the code to be loaded and skips tests that have issues on macOS to at least allow the other tests to be run. Change-Id: I1d2cfd0d68796e1af5344b481e610c2070e41093 - Update macOS devref info Mac OS X was renamed to macOS starting with Sierra in 2016. This updates the development environment information to update the name and note that unit tests and development are not fully supported when using this OS. Includes various doc formatting cleanup as well since I was making changes to the file. Change-Id: Ia62ac91add51450dc99c431e9f64732553495558 - Merge "Be explicit about tox python version" - Fix tox -e docs failure Fails with D005 No newline at end of file Change-Id: Ie87492a40971736057223d1ecbb782c0c1c689d3 - Add ansible helper to Linux dev environment info This adds instructions on how to use an Ansible playbook to quickly get a working dev environment set up for Linux environments as an alternative options to manually installing packages Change-Id: Ib9d932fca7002299537a1c0da4053a671ce3ccb1 - Merge "Implement privsep boilerplate in cinder." - Merge "VMAX driver - VMAX list manageable volumes and snapshots." - Merge "Add documentation page for basic volume quality of service" - Remove 'message' from format argument from exception This patch removes 'message' from format argument of 'BackupDriverException' exception. We should not use 'message' as a format argument and the reason is described here [1]. From a long time view we need remove them from exceptions rather than remove it when initialized. [1]: https://review.openstack.org/#/c/572674/ Change-Id: I306853064ec4612444c9777d875a28fbe6e2027a - Remove 'message' from format argument from exception This patch removes 'message' from format argument of 'UnableToExecuteHyperScaleCmd' exception. We should not use 'message' as a format argument and the reason is described here [1]. From a long time view we need remove them from exceptions rather than remove it when initialized. [1]: https://review.openstack.org/#/c/572674/ Change-Id: I9eb27adcd7880029a133c3657bbae67a0bc21a74 - Be explicit about tox python version We want to default all jobs to use python 3 except for the ones that use explicit versions. Unfortunately, the current tox behavior for setting basepython to python3 is not intuitive. If the system default is python 3.5, then when basepython is set to python3, both the py35 and py36 targets will end up running with python 3.5. To get around this we need to not set a default base version and explicitly set each testenv to python3 that we want to run using 3 instead of 2 but do not really care which minor version is used. Change-Id: I3971eeafbd1e732a584b0c52d2eb6c2175b709aa - DS8K: correct the return value for initialize_connection method In patch https://review.openstack.org/#/c/564724/, the comparison operation is case sensitive and DS8K driver converts the return host wwpn value to uppercase for initialize_connection method so this caused os_brick not to discover the volume for the host. Change-Id: Iffc30ac75851436a1b0aed7099656d4076ff687a Closes-Bug: 1776134 - Merge "api-ref: Fix some params in volume types" - Merge "Support image signature verification" - Add debug logs for weigher filters Add logs for weigher filters so that we can debug from the log. Change-Id: I95f6145c77028aee4cce310c7b2a9636fdeed5d8 - Add documentation page for basic volume quality of service Change-Id: I768aeded94e6d00dd1f8f4d5eebeab43ec5f5b6d - VMAX: Address nits in list manageable code This addresses nits pointed out during review of list manageable volumes and snapshots in https://review.openstack.org/#/c/557297/ Change-Id: I77d95bc2f9385151e76c23f17810260df96d6868 - Merge "Add doc about backend_default config" - Merge "Run pylint job under py3" - Merge "Default tox jobs to python3" - Merge "[api-ref] Fix the parameter metadata in v3" - Merge "Add missing volume APIs" - Merge "Add support for promoting a failed over backend" - Merge "Api-ref: Fix the incorrect parameter description" - Merge "trivial: Add min_version: 3.1 to api_ref for upload volume" - Merge "Move driver config opts out of catchall page" - Merge "Add check to the flake8 job" - Mark Dell EMC CoprHD Drivers unsupported The Dell EMC CoprHD drivers have not run 3rd Party CI in more than 60 days. This patch marks them unsupported and they will be removed in Stein if the 3rd Party CI Issues are not resolved. Change-Id: I6f6ff82b0f6d9318c7471d1a94c2fa39e9a003c1 - Add doc about backend_default config Co-Authored-By: ycx <yanpq@awcloud.com> Change-Id: Ifa33c1546d7b1a9a04cd505fbd697911d9649cca Closes-Bug: #1703977 - [doc]Modify failed hyperlinks Change-Id: I745b43ebebba729ea63e348aafe8229a3c255d66 - Merge "Add note about multiattach not supporting encryption to docs" - Merge "Switch to oslo_messaging.ConfFixture.transport_url" - Merge "Remove kwargs 'message' when exception is created" - Merge "[Unity] Return logged-out initiators" - Merge "[Api-ref] fix the type of service_id in worker cleanup api" - Merge "VMware: Add file open mode to support python3" - Merge "Mark Disco driver unsupported" - Merge "ZFSSA handle non-existent snapshot" - Merge "IBM XIV: Report backend state in service list" - Merge "Empty option value maybe cause Unity driver failed to initialize" - [api-ref] Fix the parameter metadata in v3 Change-Id: I5dffe060d73f700de6cd29101127e205362e203d - Merge "IBM DS8K: Report backend state" - Empty option value maybe cause Unity driver failed to initialize If the value of list type option is empty, Unity driver may failed to initialize. Example: unity_io_ports= unity_storage_pool_names= Change-Id: Ib5850d984bfd3651d308f448993251e9ec5a9460 Closes-bug: #1775518 - Support image signature verification Add image signature verification support when creating from image. Change-Id: I37b7a795da18e3ddb18e9f293a9c795e207e7b7e Partial-Implements: bp cinder-support-image-signing - Imported Translations from Zanata For more information about this automatic import see: https://docs.openstack.org/i18n/latest/reviewing-translation-import.html Change-Id: Ie31142d51969e00a9aec66d4443c70a639f8da61 - Merge "Fix cinder-volume uses latest req-id for all log calls" - trivial: Add min_version: 3.1 to api_ref for upload volume This patchset adds min_version: 3.1 to protected and visiblity params which were added to upload volume to image action in microversion 3.1 [0][1][2]. [0]7d95fb79c4/cinder/api/schemas/volume_actions.py (L150)
[1] https://github.com/openstack/cinder/blob/master/cinder/api/contrib/volume_actions.py#L232 [2]7d95fb79c4/cinder/api/microversions.py (L42)
Change-Id: Ibdfa086d9bdadd11263b0a71aa3fff65faddb32d - Merge "Mock log output from DataCore drivers" - Fix cinder-volume uses latest req-id for all log calls Currently all log entries will have the request ID of the latest request that was received in the cinder-volume service. To fix this we just move the monkey patching to the top in the imports. Change-Id: Ic1ad7a38cf21256d9446fd2c0270610b4cfe75c5 Closes-Bug: #1773924 - Merge "Add NexentaEdge drivers" - Merge "VMAX driver - Enable multiattach support" - Mock log output from DataCore drivers The large amount of error logging output from the DataCore API tests is causing issues that result in hitting an error with stestr. This logging output is not needed during unit testing, so this just mocks out the logger to prevent them from happening. Change-Id: Ie9c3c6e0ee0826d4508599125155b6aceb64d369 Closes-bug: #1775707 - Add NexentaEdge drivers NexentaEdge drivers were kicked from OpenStack pike release due to CI failures. This patch implements NexentaEdge iSCSI drivers. Change-Id: I1a2dd99fab742f7ad4d9aa470652bb5decb35359 Implements: blueprint nexentaedge-driver - VMware: Add file open mode to support python3 Python 3 opens file in text mode by default while Python 2 opens file in binary mode by default. Adding mode explicitly to work for both Python 2 and 3. Closes-bug: 1775678 Change-Id: I1efffb84338e27c92957c7cc5a5f46fda9eda824 - Tests: Remove some ovo FutureWarnings about UUIDs Invalid ids cause warnings to be printed when running unit tests. Change-Id: I93e1744ae431aa54d833e702d4747b0c0de2ef3b - Add check to the flake8 job Follow up recommendation of [1]. [1] http://lists.openstack.org/pipermail/openstack-dev/2018-June/131233.html Change-Id: Id268be8b32ce870f2f04fa8a52f4f1854a613fa7 - Cloning image fails results duplicate cache entry When creating a volume with image whose cache entry is already present,results in duplicate cache entry when create_clone_image() fails. Closes-Bug: #1552734 Change-Id: I0708c333fa94bb44e66f64b2b7cc3bc0dbe8a409 - api-ref: Fix some params in volume types This patch adds some missing params in volume types and volume type access APIs. Also trivial fix for the order of the params in the URL. Change-Id: I767f68b4252a3b70755494cf82ca3b284112be75 - Switch to oslo_messaging.ConfFixture.transport_url oslo_messaging's rpc_backend setting, which is set by ConfFixture.transport_driver has been deprecated since Newton. To allow oslo_messaging to remove it, switch to setting transport_url instead. Change-Id: Ib1610eb9bcd493732e90a309d219690c43702400 Partial-Bug: #1712399 - Run pylint job under py3 This switches the pylint target to run under python3. In order to work right, it also raises the version of pylint used to a newer version. Related-bug: #1761800 Change-Id: I0bc68a5aee24a53b9d3a08c20549b89d08989678 - Merge "Disable failing backup tests in LIO/Barbican job" - Merge "Add user messages for extend volume operation" - Disable failing backup tests in LIO/Barbican job Change-Id: Ie4a5178b0705f2286805eba2a352a3f6b287762d - Remove kwargs 'message' when exception is created Now when rpc client rebuild exception at the middleware, the process will always fail because we have duplicate keyword 'message' there. Considering we already have a bunch of exceptions who need format key 'message' as below: ``` class VolumeDriverException(CinderException): message = _("Volume driver reported an error: %(message)s") ``` Instead of refactor all of them, this patch just removes the kwargs 'message' when exception is initialized. Closes-Bug: #1728826 Change-Id: I6bfa34a42df1f44e16b7536246def610821b7cba - Api-ref: Fix the incorrect parameter description In the attachment API, the response parameters, such as ``detached_at``, ``attached_at``, ``attach_mode``, ``instance`` are optional, however these should be required, this is to fix these. Change-Id: I2748e971655c3f5715585409e5c021f0d91690e4 - Replace os.makedirs to avoid process race Use oslo_utils.fileutils.ensure_tree(path, mode=_DEFAULT_MODE) to replace os.makedir. Co-Authored-By: ycx <yanpq@awcloud.com> Change-Id: Ia5de63768171aa715da6318e768cce1420fef302 Closes-Bug: #1757521 - Implement privsep boilerplate in cinder. This includes implementing a first trivial example of how to use privsep to run something as root, specifically the cgroup throttling driver. This code is modelled strongly on how nova has chosen to use privsep. Consistency is probably good here, but it does imply that the cinder team is ok with the decisons nova has made about implementation. Change-Id: Ic401138a10a72cb4b976a1a6aba272cafcb40d8b - Default tox jobs to python3 The long term goal for OpenStack is to support python3 for all things except explicit python2 testing by the T release. Part of preparing for that is ensuring all ancillary things like docs jobs and other tooling work with python3. This switches the default for our docs jobs to python3 so anything that does not specify another version will end up using it. Further work is necessary for the pylint job due to changes between the runtimes. That will be done in a follow up patch. There was also a difference in behavior with the genopts job where it ends up trying to recreate the venv under which it is currently running under, resulting in a corrupted venv and a failure. This cleans up that script and changes it so rather than a tox job calling a tox job it just runs the script. Change-Id: Ie79528b33070e6c60f9f5e1f2219084a2f0cb039 - Fix group availability zone-backend host mismatch Group availability zone is not set correctly in scheduler filter properties which results in group availability zone-backend host mismatch. This can lead to volume create failure for volumes in the group. Fixing it by setting the availability zone in the request spec in scheduler RPC call. Change-Id: Icfa437d2d81ed29d0aceee776d86e28862c85274 Closes-bug: 1773446 - Mark Disco driver unsupported The Disco driver has not run 3rd Party CI in more than 60 days. This patch marks it unsupported and it will be removed in Stein if the 3rd Party CI Issues are not resolved. Change-Id: I6098554cdc13760b4a31b19a4d2089d22a68d0e5 - Mark the HGST Driver unsupported The HGST driver has not run 3rd Party CI in more than 60 days. This patch marks it unsupported and it will be removed in Stein if the 3rd Party CI Issues are not resolved. Change-Id: I43dba479dad98a397b5134bbc42922764350858e - Move driver config opts out of catchall page Adds a few bare bones driver config pages or moves config tables to existing driver docs. Also removing hyperv and redis config tables as those have been removed. Change-Id: I3cf2c6c6de6e4346d7dc3fa154d8a6aa90d934a7 - RBD: support to report backend state This patch adds the ability to report backend state to RBD driver. Partial-Implements: blueprint report-backend-state-in-service-list Change-Id: Ib703786d77621ec139e4f3981506ed117b737524 - IBM XIV: Report backend state in service list This patch implements reporting backend state in service list. Change-Id: Ife48a8c9b362099e89865fcf0b3beb333704a87c Implements: blueprint report-backend-state-in-service-list - IBM DS8K: Report backend state This patch implements reporting backend state in service list. Implements: blueprint report-backend-state-in-service-list Change-Id: I750bb3d2f534734e74e895aa597259ce719e8ff3 - Merge "Fix documentation error" - Merge "Remove duplicate sample files" - Merge "Add descriptions for auth_strategy choices" - Merge "Fix create backup API document" - Merge "Fix cannot add a column with non-constant default" - Merge "Fix api-ref for backup export and import" - Merge "api-ref: Fix v3 API version details error" - Add note about multiattach not supporting encryption to docs Per change I613b48a9e89270b2f0266bffc5aeeefad37ce8fb encryption is not supported with multiattach-capable volumes. Change-Id: Ife204c380a9d3d12938a907dee6d93d01aaec0ce Related-Bug: #1770689 - Fix Dell EMC Xtremeio drivers report wrong value free_capacity_gb is reporting as free space multiplied by provisioning factor. Correct value to be free space left on storage Change-Id: Ie5b3b4c814bdec4fc914c633157fd4ea858a953b Closes-Bug: #1746228 Signed-off-by: Kien Ha <kienha9922@gmail.com> - Merge "Remove Ocata config option changes doc" - Merge "Add snapshots to minimum driver interface" - Fix documentation error There was a mistake in an earlier patch where 'snapshot' was used instead of 'volume'. This follow-up patch corrects the wording. Change-Id: Ib1a03521c277c12d1b7f1c91eb1f2df1972e883f - Merge "Fix GCS backup driver docs" - Correct S-Series to DS-Series systems The new Lenovo storage systems should be branded as DS-Series systems. This patch corrects the documentation accordingly. Change-Id: I2ff8d321c97b70744037f60fee632e9d9b9dc383 - Remove the deprecated config option The option 'allow_inuse_volume_type_modification' is introduced as a bridge to not break upgrades without notice. It is introduced in Ocata release [1], so it is time to remove this option. [1] https://review.openstack.org/#/c/440680/ Change-Id: I8c61b11994c1f8f571e65cefe4965f7d69b13100 - Merge "Fix i18n issue in volume_action and admin_action" - Merge "Update storage backends supported for Lenovo" - Merge "doc: correct indentation from a note block" - Fix GCS backup driver docs Change If1e34ea112b0cff328a58ec2fc9c3f5a5005f1c6 renamed the Google backup driver, but the configuration docs for the driver were not updated. This results in the incorrect driver name being provided for backup driver configuration and local document builds failing due to no configuration options being found when looking for them in the old location. Change-Id: I40fa544892ed9ea9fb5975baeafb7c9a7e2f12a3 - Doc: Fix broken link (Nimble) TrivialFix Change-Id: If24fb0b333e38605c2ee8222100db9c2c270b5a7 - Merge "V3 jsonschema validation: volume_type_encryption" - Imported Translations from Zanata For more information about this automatic import see: https://docs.openstack.org/i18n/latest/reviewing-translation-import.html Change-Id: I160aede96e436055ce0194831726c6d8f134b341 - Add user messages for extend volume operation Add user messages for these cases below when performing extend volume operation. 1. When no valid host is found. 2. When nova failed to perform extend volume event. 3. When backend failed to extend block device. Change-Id: I7d2061ac13b2c74745da56feecfe6ed53b284fc4 Closes-Bug: #1773833 - Mark DataCore Drivers unsupported The DataCore drivers have not run 3rd Party CI in more than 60 days. This patch marks them unsupported and they will be removed in Stein if the 3rd Party CI Issues are not resolved. Change-Id: Id0f7ff5c1e8d0973941c9635558a6bd9d2204aea - Merge "Add cinder v2 experimental job" - V3 jsonschema validation: volume_type_encryption This patch adds jsonschema validation for below volume type encryption API's: * POST /v3/{project_id}/types/{volume_type_id}/encryption * PUT /v3/{project_id}/types/{volume_type_id}/encryption/{encryption_id} Partial-Implements: bp json-schema-validation Change-Id: I6488cc89e60a31605ddf80c7aa56ddf4871d3c1a - ZFSSA handle non-existent snapshot If a volume snapshot failed during create, it may exist in the database but not on the ZFSSA. This change allows deletion of such a snapshot. It also cleans up some redundant code for getting snapshot details. Change-Id: I522fb0841dfaeb31da3999d3f73a2c9398c5b9c8 Closes-Bug: 1774066 - Merge "Fix handling of 'cinder_encryption_key_id' image metadata" - Update storage backends supported for Lenovo We have released new S-Series storage models since we originally created the documentation. This patch updates the documentation accordingly. Change-Id: Ida18d451b2e15f1d57fe4e1ffef393de20cc8828 - Merge "V3 jsonschema validation: admin_actions" - Fix handling of 'cinder_encryption_key_id' image metadata The Cinder code that processes Glance image metadata is a bit confused about whether this particular field is a Glance property or metadata. Since it isn't a defined a Glance property and is stored in image metadata, ensure that Cinder also tracks it metadata and not as a property. This mismatch prior to this fix causes Cinder to create volumes with the wrong encryption key when creating a volume from an encrypted image, which results in an unreadable volume. Closes-Bug: #1764125 Change-Id: Ie5af3703eaa82d23b50127f611235d86e4104369 - Remove _static folder in doc directory TrivialFix: _static folder and the inside files are auto generated when running docs, _ga is unused, so remove these. Change-Id: I43b8cff826a98329607eed65a75eaf1ebaf54646 - Update "auth_url" Following the change in Keystone Install Guide [1], this patch replace port 35357 with 5000 for "auth_url". Change-Id: I3fe68f162edcf4dc76ef54ad5e5dc615b37286ca - Merge "ScaleIO: Rebranding of product to VxFlex OS" - Fix api-ref for backup export and import Add missing paramater description for backup export and import function. Change-Id: I6408138ac738717c766752f5358025dbe62d7319 - Merge "Missing request parameters in update quotas" - Missing request parameters in update quotas "backup_gigabytes" and "per_volume_gigabytes" parameters are supported in api v2, they aren't mentioned in api v2 document[1]. On the other hand both of them are mentioned in api v3 document[2]. [1] https://developer.openstack.org/api-ref/block-storage/ v2/index.html#update-quotas [2] https://developer.openstack.org/api-ref/block-storage/ v3/index.html?highlight=backup_gigabytes#update-quotas -for-a-project Change-Id: I135efd5c2b4735f5821922643926390976453bf5 Closes-bug: #1727631 - Trivial: Update pypi url to new url Pypi url changed from [1] to [2] [1] https://pypi.python.org/pypi/<package> [2] https://pypi.org/project/<package> Change-Id: I9cedef5883b831c109217ca04d2575ce7970b7aa - V3 jsonschema validation: admin_actions This patch adds jsonschema validation for below admin_actions API's * POST /v3/{project_id}/volumes/{volume_id}/action * POST /v3/{project_id}/snapshots/{snapshot_id}/action * POST /v3/{project_id}/backups/{backup_id}/action Partial-Implements: bp json-schema-validation Change-Id: Ib9057fe57c1b9cdcd0d924b029f03da3589507a2 - [Api-ref] fix the type of service_id in worker cleanup api According to [1], the type of service_id is int, so fix it. [1]https://review.openstack.org/#/c/569036/ Change-Id: Ie142582a2a73564127be83c1e3531a07311b4153 - api-ref: Fix v3 API version details error Show v3 API version details should not return informations about v2, meanwhile location is not in Response Parameters. Change-Id: Ida12222b3bdac10d030d56b9724f09ee097c0b3c - Merge "V3 jsonschema validation: scheduler_hints" - Merge "Additional fix for hostname validation regex" - Merge "Fix the argument for cinder-manage command." - Merge "V3 jsonschema validation: os-services" - Merge "RBD: remove redundant exception log to reduce noise" - Merge "Update the volume-encryption doc" - Merge "INFINIDAT: fixing extend mechanism" - Merge "Update author in latex sphinx doc builds" - Merge "[Docs] Fixes documentation warning" - Merge "Fix option description in DRBD driver" - [Unity] Return logged-out initiators In current implementation, Unity driver doesn't return the targets which connect to the logged-out initiators, which causes the zone manager fails to clean up the FC zone. The fix returns all the targets of specified initiators no matter they are logged in or not. Change-Id: I1438d0bd4a43e1813dfb0a6e9b3c4a177c2fee8f Closes-bug: #1773305 - Add cinder v2 experimental job Tempest adding new cinder v2 job - https://review.openstack.org/#/c/570466/ and running that as experimental to cover the v2 testing. This commit add that job running on cinder experimental pipeline also. Depends-On: https://review.openstack.org/#/c/570466/ Change-Id: I69fd45311675591c2b772205b2f4780555cb8556 - Fix cannot add a column with non-constant default With newer versions of sqlite tests are failing on sqlite3.OperationalError : Cannot add a column with non-constant default. In SQL queries is boolean without apostrophes which causes sqlite3 error. This fix is solving this issue by replacing text('false') to expression.false() from sqlalchemy.sql which is working correct. Change-Id: Ia96255a2a61994a18b21acc235931ad03a8501ea Closes-Bug: #1773123 - Update author in latex sphinx doc builds This commit updates the author in the latex build metadata in the sphinx conf.py. This was set to Anso Labs, LLC from the initial fork out of Nova in 2012. It's highly unlikely that an LLC acquired by Rackspace in 2011 is actually the author of the latex version of the docs so this commit changes it to be "Cinder Contributors" to be accurate. Change-Id: I5f1f7ea2f389783fe8b936d67d0ab99d759c4124 - Update the volume-encryption doc There are two changes here: 1. Fix the formatting on the note for configuring nova-compute to comment out the fixed_key (note that I'm not sure why this is even in here) 2. Add a note that the --device specified to attach the volume to the server might not reflect where it actually shows up in the guest, especially since the libvirt driver completely ignores what the user specified. Change-Id: I5f9870d46b7f49cc45d46f5794d8ee0c1bc4a1e2 - Additional fix for hostname validation regex With the addition of the hostname validation check for Rocky release, the regex used does not allow for '+' to be used in a hostname. This breaks the Dell EMC VMAX driver as + symbols are used in constructing host/pool names. To resolve this issue, add '+' to the regex string. Change-Id: Ib58741bcf5b1abe7196e9b2ad37d849776b17fbe Closes-Bug: #1772659 - doc: correct indentation from a note block The note block should not be in the code block. Change-Id: I3ff8d0fd0aafe79f0b961b02c53889aa88fdbfae - V3 jsonschema validation: scheduler_hints This patch adds jsonschema validation for below scheduler_hints API * POST /v3/{project_id}/volumes Partial-Implements: bp json-schema-validation Change-Id: I6c5ad70fef2baf9a9e99d1f311569a4052292e74 - INFINIDAT: fixing extend mechanism There was bug (Bug #1772421) that using extend didn't extend the volume and only added to its size. The fix was to calculate size delta inside extend_volume and pass the calculated delta to the API resize method. Change-Id: I73035be776a7291ca1578f21cab41c59abc0a534 Closes-Bug: #1772421 - Storwize: update the function is_volume_hyperswap Currently, the function is_volume_hyperswap checks Hyperswap volume by sending cli command to storage. Actually, Checking the volume type is more effective. This patch moves the function from class StorwizeHelpers to class StorwizeSVCCommonDrive, and modify condition to check opts['volume_topology']. Change-Id: I332b38c12d0bba1151e0b83313d0e064fd82992b Closes-Bug: 1771253 - Fix the argument for cinder-manage command. Correct argument is online_data_migrations, not online-data-migrations. Change-Id: I3bfc9893e004cef4842b7bd432ac5f90cff1349b - NEC driver: Faster clone status check. Currently, the interval of checking volume cloning status is 60 seconds and hard-coded. The interval is long for users who utilize Image-Volume cache. The cache volumes are basically small and copied in less than 60 seconds. This patch changes the initial interval to 10 seconds and increases it on retries up to 60 seconds. Change-Id: I37b0fd4d1edd1d25848ee87cf1ebbad9f622ffa2 - Fix cinder-volume setup in block-box Change-Id: I371e0f5b5876dcb276e133718ba78257f75da381 - Merge "Fix wrong usage of fields.BackupStatus.AVAILABLE" - [Docs] Fixes documentation warning There is a warning on gcs-backup-driver.rst since there is no data remaining for table body from driver content. Trivial Change-Id: Icefb90ffae95ec288d2a8990a211facbd34dd3a8 - Merge "Support availability-zone type" - Remove duplicate sample files We have two locations where we provide sample cinder.conf and policy.yaml/json files. This cleans up the doc output to only have one dynamically generated sample for both. Change-Id: I86305dcedb0e7b0ac905fb95a571f4d933e77a5d - Fix option description in DRBD driver Formatting of the help text for one of the config options resulted in sample config output having incorrect indentation. This just reformats the help text to not include indentation. Change-Id: I98542e1a9acff914a3045ff4610a7b989d7dd9b2 - Remove Ocata config option changes doc A doc page was added listing the changed config options for the Ocata release. Since this requires ongoing manual work which (obviously) will not be done for every release, this should just be removed. We do a fairly decent job of tracking config changes in the release notes now. Change-Id: I6a3840f853b1f68db41fe740833bdde3f9e42bf8 - VMAX driver - VMAX list manageable volumes and snapshots. VMAX Support for listing manageable volumes and snapshots. Change-Id: I73cf7940fbeb4a450fd0719a5477c82aefde8c9a Implements: blueprint vmax-list-manage-existing - VMAX driver - Enable multiattach support Support multiattach capability with Dell EMC VMAX arrays. Change-Id: I7313c704ac45ea3e813e4816815d1d6a8ea39a9b Implements: blueprint vmax-allow-multi-attach - Merge "Add skip filter to config-table directive" - Fix wrong usage of fields.BackupStatus.AVAILABLE This patch is to fix the wrong usage of fields.BackupStatus.AVAILABLE in cinder\backup\manager.py, changed to use fields.SnapshotStatus.AVAILABLE. Change-Id: I4a8d795a4c46c3159cdd8508e0c5e5c921365ceb - Merge "Fix mocks for ZFS Storage Appliance unit tests" - Merge "Disallow multiattach for encrypted volumes" - Merge "Remove ZFSSA static config option tables" - Merge "Remove SolidFire static config option table" - Merge "Remove Synology static config option table" - Merge "Remove zonemanager static config option tables" - Merge "Remove Tintri static config option table" - Merge "Make config-table display list defaults in list format" - ScaleIO: Rebranding of product to VxFlex OS The Dell EMC ScaleIO product is being renamed to Dell EMC VxFlex OS. Update the documentation to reflect the new product name. Change-Id: Ib52e4820c80db8b2a74bd91dce473182508c7fba - Disable test_volume_backup_restore for lio-barbican job Tempest recently added this test and it is failing here. Change-Id: Idfe243347ec7fb529c253955b27d499718ef086e - Support availability-zone type Now availability zone is highly integrated into volume type's extra spec, it will be recognized when creating and retyping, also we can filter volume type by extra spec now. Change-Id: I4e6aa7af707bd063e7edf2b0bf28e3071ad5c67a Partial-Implements: bp support-az-in-volumetype - Merge "[Api-ref] fix incorrect host value in worker cleanup api" - Fix rbd driver json loading It looks like rbd.py sometimes gets some bytes, not strings, probably this happens with the latest version of Ceph, and that's an issue only with Python 3. I'm not sure why, but what I know, is that it's completely breaking Debian with Python 3 and ceph Luminous release. Convert byte buffers coming from Ceph to strings. Co-Authored-By: Eric Harney <eharney@redhat.com> Change-Id: I5cdb4e766655a866699a18f1e367971fd1d310af Closes-Bug: #1771552 - Fix create backup API document Make 'snapshot_id' optional as well as reword parameter description. Change-Id: I9ee404a8db5320d2a4cd7b50c2166446169bbba5 - Merge "V3 jsonschema validation: volume_transfer" - Merge "Log backup_service.restore() exception" - Merge "NetApp ONTAP iSCSI: Force exception on online extend" - Merge "Imported Translations from Zanata" - Merge "Fix google backup driver" - Add missing volume APIs A bunch of volume APIs are missing in current documentation, such as os-reserve/os-unreserve/os-begin_detaching/os-roll_detaching os-initialize_connection/os-terminate_connection, this patch is aim to add the missing APIs. Change-Id: If0732aa94db4e8cdef30a2be0c53314b507ee002 Closes-bug: #1761049 - Imported Translations from Zanata For more information about this automatic import see: https://docs.openstack.org/i18n/latest/reviewing-translation-import.html Change-Id: I8e747f4a19dc1705eb72ade45653d97886def016 - [Api-ref] fix incorrect host value in worker cleanup api The value of host in sample request and sample response is not correct, this change is to update this. Change-Id: If8524a08795c222e67ca2c85243a42fb27e43bdb Close-bug: #1758955 - Merge "Fix NVMET minor log message issues" - Merge "Remove Zadara static config option table" - Merge "Remove Virtuozzo static config option table" - Merge "Remove Quobyte static config option table" - Merge "Remove NEC static config option table" - Merge "Remove Kaminario static config option table" - Merge "Remove static config option table for DISCO driver" - Merge "Add VERSION and WIKI_NAME to NEC driver" - Merge "Add reno to test-requirements" - Merge "Remove deprecated lvm_max_over_subscription_ratio" - Fix NVMET minor log message issues Change-Id: I32249afb29295344ac32e30a63a437e525b469d5 - Fix google backup driver Current backup driver is broken due to the upper constraints of google-api-python-client which is set to 1.6.6, but after 1.6.0 parameter http and credentials are mutually exclusive, the driver is also using the no longer preferred Google authentication library. This patch fixes this by only using the http_proxy environmental variable to set the proxying and adding support for google-auth and using it whenever possible. Closes-Bug: #1736569 Closes-Bug: #1769660 Change-Id: If1e34ea112b0cff328a58ec2fc9c3f5a5005f1c6 - V3 jsonschema validation: os-services This patch adds jsonschema validation for below os-services API's * PUT /v3/{project_id}/os-services/disable * PUT /v3/{project_id}/os-services/disable-log-reason * PUT /v3/{project_id}/os-services/enable * PUT /v3/{project_id}/os-services/get-log * PUT /v3/{project_id}/os-services/set-log * PUT /v3/{project_id}/os-services/freeze * PUT /v3/{project_id}/os-services/thaw * PUT /v3/{project_id}/os-services/failover_host Change-Id: I37365eb4d667263bb192f52d06135b2fd7298fef Partial-Implements: bp json-schema-validation - Update auth_uri option to www_authenticate_uri Option auth_uri from group keystone_authtoken is deprecated[1]. Use option www_authenticate_uri from group keystone_authtoken. This follows up patch I2a9853b52f23fc4b6a24a0548b9749e976467758 Change-Id: Id85059ad0764c43e28c38dab3fa8d017817fc7f3 - Merge "Huawei driver supports create_group_from_src" - Merge "[Unity] Add support of removing empty host" - Merge "V3 json schema validation: generic volume groups" - Huawei driver supports create_group_from_src Huawei driver doesn't implement create_group_from_src interface right now, though Cinder framework provides a generic implementation, but it cannot guarantee the group volume data consistency for Huawei driver, so Huawei driver is supposed to provide this ability itself. Change-Id: I73b227bae51997bebb9070cc48466f5e0b3699c3 Closes-Bug: #1763242 - Merge "Docs: ibm_storage_driver: Fix volume_driver path in documentation" - Disallow multiattach for encrypted volumes We can't assume that the LUKS layer used for volume encryption functions in a way that will safely work with multiattach. Closes-Bug: #1770689 Change-Id: I613b48a9e89270b2f0266bffc5aeeefad37ce8fb - NetApp ONTAP iSCSI: Force exception on online extend The Netapp ONTAP iSCSI driver does not support online volume extend. It may work if the requested size does not exceed the LUN max geometry, otherwise it will require the LUN to be detached. In such case, the backend currently detaches and leaves the volume in an inconsistent state. This patch forces the ONTAP iSCSI driver to raise an exception whenever an online extend is requested and it detects it would exceed the LUN max geometry. Change-Id: Ie3dddbc05c6cd32e27168d68f4cb819364b0438c Closes-Bug: #1712651 - Merge "Fix hostname validation regex." - Fix hostname validation regex. With the addition of the fields validation on the API, cinder now does not allow ':' and '/' characters on the hostname field. Some drivers use these characters for the hostname of the volumes, mainly for the NFS implementation. This patch fixes that by adding these characters to the validation regex. Closes-Bug: #1769889 Change-Id: Ib8f00df49f126fc8533494ba5823da031191cea9 - Merge "Remove stale pip-missing-reqs tox test" - Merge "Default pep8/fast8 to run under python 3" - Add snapshots to minimum driver interface Snapshot functionality was excluded from the base volume driver functionality while issues were being worked on with NFS based drivers. Those have since been resolved and we should now include the snapshot calls in the base interface for volume backend drivers. Change-Id: Ic7d6ca1de84d36f54a00e3afe3647865d6edd211 - Merge "Adding NVMET target for NVMeOF" - Add descriptions for auth_strategy choices Starting with oslo.config 5.2.0, provided config choices can include a description in the generated config sample if one is provided. Without a description, it states "No description provided". This adds descriptions to the auth_strategy config option choices for better clarity. Change-Id: I39bdefbef1200aaeb029d7aa40389b02b4cdce72 - RBD: remove redundant exception log to reduce noise If RBDVolumeProxy fails to open the underlying image it reraises the exception, so there is no need to log it unconditionally. The caller can gracefully handle this case without alarming the admin. Change-Id: If5a9d014dbdd63a6e4659d700671c6ac6496b96a - Log backup_service.restore() exception If _detach_device() fails, the original exception raised by backup_service.restore() will not be logged. Adding a log statement in the exception handler. Change-Id: Ibbc096981e2648aa06311d197b25c9be98caf3d3 Closes-bug: #1769740 - Add support for promoting a failed over backend Change-Id: Ib9c34b0806b71e2088ac0fa9886ad8abd7a2a45f Implements: blueprint cheesecake-promote-backend - Merge "Replace cluster object's host with service_topic_queue" - [Unity] Add support of removing empty host Add an option in Unity Cinder driver to customize the removing of empty host. The option is named `remove_empty_host`. Its default value is False. When it is set to True, the host will be removed from Unity after the last LUN is detached from it. Change-Id: I2d9fad2c977a61f5b26a6449a8e509911eff28e0 Closes-bug: #1768711 - Merge "RBD: add support for active/active replication" - Merge "IBM XIV: enable FC zoning to all the ports" - Merge "[doc] Add the possible status for attachment" - Merge "Collect resource id from RequestSpec parameter" - Merge "Parent of RBD cloned volume marked as deleted should not be manageable" - Merge "Update the HP MSA and Lenovo driver documentation" - Merge "RBD snapshot needs to be protected/unprotected after being managed/unmanaged" - Merge "[ci][rally] make the job inherit the right parent" - V3 json schema validation: generic volume groups This patch adds jsonschema validation for below volume groups API's * POST /v3/{project_id}/groups (create) * PUT /v3/{project_id}/groups/{group_id} (update) * POST /v3/{project_id}/groups/action (create from source) * POST /v3/{project_id}/groups/{group_id}/action (delete) * POST /v3/{project_id}/groups/{group_id}/action (reset status) * POST /v3/{project_id}/groups/{group_id}/action (failover replication) * POST /v3/{project_id}/groups/{group_id}/action (enable replication) * POST /v3/{project_id}/groups/{group_id}/action (disable replication) * POST /v3/{project_id}/groups/{group_id}/action (list replication) Change-Id: Ie91a52cc7f0245e5ecb3a9382691d78f5f92aa4f Partial-Implements: bp json-schema-validation - Fix i18n issue in volume_action and admin_action In the files admin_action.py and volume_action.py, we still missed some i18n issues required to be fixed. Change-Id: I97f41cc6f5093662aec57290a1972d907b1b27e6 Closes-bug: #1768198 - Merge "QNAP: driver fails to detach while uploading volume to image" - Merge "Support filter backend based on operation type" - Support filter backend based on operation type During Rocky PTG, we discussed the concept of 'sold out'. In order to fully utilize current codes, we decided to achieve this via scheduler filters, cloud vendors can write their own scheduler filter plugin to disable new resource creation actions on sold out pools. Therefore, the only change on cinder framework side is to delivery 'operation' when asking scheduler to filter hosts. For this first stage, the initial operations are: 1. create_group 2. manage_existing 3. extend_volume 4. create_volume 5. create_snapshot 6. migrate_volume 7. retype_volume 8. manage_existing_snapshot Partial-Implements: bp support-mark-pool-sold-out Change-Id: I4f0a14444675ebd0fe6397a5ff2ef9dca62b4453 - Remove stale pip-missing-reqs tox test pip_missing_reqs tool is no longer maintained and has broken with release 10 of pip Refer to: http://lists.openstack.org/pipermail/openstack-dev/2018-April/130027.html Change-Id: Iaa65b1789590e85602e7a63ca4e80cd087b05693 - NEC driver: Delete max volumes per pool limit. Currently, the max number of volumes (logical disks) per pool is limited to 1024. The limitation is eliminated in new firmware of NEC Storage. This patch deletes the limitation. Change-Id: I0c5a06714725eb2b2e6eb689fe4be9990aa3707b - [ci][rally] make the job inherit the right parent Rally team finally added native Zuul V3 jobs (with a bunch of separate roles and etc) and for simplification of maintainance, it would be nice to use them. Needed-By: If5d17fe2b1965ceed578fe20168d011c4f087242 Needed-By: I5cc99b67495e2e10264f1cb89b25b37f5f7af66b Change-Id: Idc780fd3095e2d5e0e170fba7ce15580c73048be - Make config-table display list defaults in list format Brackets are cool. Change-Id: I487bf7b4a05a646268aba61a3d997a6b51edd851 - QNAP: driver fails to detach while uploading volume to image After upload volume to image, driver fails to detach iscsi device. We fixed the passed parameters in detach function. Change-Id: I5d63a4850f61a838ff1d4a5f1b6612f863b2bfd1 Closes-Bug: #1766768 - Merge "Remove Nimble static config option table" - Merge "[VNX] Fix property set in configuration doc" - Merge "Remove backup driver static config option tables" - Merge "Update HPE docs to use config-table directive" - Merge "DRBD: Remove cast to int in size calculation" - Merge "Remove static config option table for Infinidat" - Remove static config option table for Infinidat Switch to using dynamic generation using config-table. Change-Id: I02eb65683ecc3ee00ae0af994c410ff83ce94c9c - Merge "Remove static config option table for Lenovo" - Merge "Skip running py36 tests on irrelevant files" - Remove zonemanager static config option tables Switch to using config-table instead. Change-Id: Iac9ca774fd69069bb7d6c8b4860b75237f33b71e - Merge "Replace Chinese punctuation with English punctuation" - Merge "Fix os-detach attachment_id schema" - [VNX] Fix property set in configuration doc The syntax of setting multiple properties in VNX configuration doc was wrong. When setting multiple properties in single command, additional `--property` should be added. Change-Id: I1ccff3b55f16f0c30f3c1ca73b522d390dc42c97 Closes-bug: #1768427 - Merge "Add missing 'transfer' parameter in API document" - Fix os-detach attachment_id schema The os-detach attachment_id schema is more restrictive in a non-backwards compatible way in that it was previously possible to do: POST /volume/v3/{project_id}/volumes/{volume_id}/action { "os-detach": { "attachment_id": null } } With the schema change I39ede009d5e909a076860df7305865286caa5352 attachment_id is still optional but if specified, it must be a non-null UUID string, which is not backward compatible and can break old client code. This change makes the attachment_id parameter value optional again and also fixes the "uuid_allow_null" parameter type definition which previously allowed non-uuid format strings. Change-Id: Ifb97457a03795b84287922a5389fab91c402380f Closes-Bug: #1768650 - Adding NVMET target for NVMeOF Implements NVMeOF driver to support NVMe target CLI. A new target, NVMET, is added for the LVM driver, and allows cinder to use nvmetcli in order to create/delete subsystems on attaching/detaching an LVM volume. By choosing target_helper as nvmet, target_protocol as rdma, other parameters can be configured too in cinder.conf like nvmet_port_id, nvmet_ns_id (for namespace) and nvmet_subsystem_name. The target IP and port, that will be used by nvmecli OS-brick NVMe connector, are taken from target_ip and target_port in cinder.conf. Implements: blueprint nvme-target-cli Change-Id: I7cacd76c63e0ad29eb2d448ce07fbb5176f62721 - Merge "api-ref: modify 'has_dependent_backups' param's description" - Merge "api-ref: Correct the cgsnapshot_id parameter" - DRBD: Remove cast to int in size calculation In Python2.x, "int" is 32bit only, and so this overflows for 2TiB volumes. If we remove the casting to int before return, then it works for python 2 and 3. This is a resubmission of 395132 Change-Id: I3e4814ee066df5726b0a2b599961511c2516135b - Remove backup driver static config option tables Switch to using config-table directive. Change-Id: I902bb51e90abc9f7e0ce4bb78256b0ee0bdf7f61 - Add missing 'transfer' parameter in API document This patch adds the missing parameter 'transfer' to accept transfer's API document. Change-Id: I88f0a01ef22be9ff1b483e517f08866a7e1b19ce - Update HPE docs to use config-table directive Remove use of static config tables in favor of dynamically generated ones using the config-table directive. Change-Id: I886a1a3c44262b6ba49ffa9295067cb2db148c4b - Merge "V3 jsonschema validation: Quota classes" - Skip running py36 tests on irrelevant files Local test run definitions were added for running with Python 3.6 as a temporary test. These should eventually go away, but in the meantime, skip running these on things like docs changes. Change-Id: Idc42028d4c31d9ee31cdcea11b8749fffa5007b4 - Merge "Update auth_url value in install docs" - Merge "WinSMB volume driver doc: Add Volume backup support" - Merge "VMAX driver - Attaches/detaches after host assisted retype failing" - Remove ZFSSA static config option tables Switch to using config-table directive. Change-Id: I5fb17c6cf730a6c5c0149b60ec66af73fc24bab8 - Remove Zadara static config option table Switch to using config-table directive. Change-Id: Ib229ece39581e1423addf05a0a91a8b0450f1737 - Remove Virtuozzo static config option table Switch to using config-table directive. Change-Id: Iaea490d192a98b6cdaf0fe7f70d957de3666bdc4 - Remove Tintri static config option table Switch to using config-table directive. Change-Id: Ie22e1d911546eb91f74a71d20374ad3510292b75 - Remove Synology static config option table Switch to using config-table directive. Change-Id: Iebb2ca7a7895fb9e4a35ae856dfaca0562a3cbc0 - Remove SolidFire static config option table Switch to using config-table directive. Change-Id: I8142d5026a9760efdbbac763628fec3c99571e55 - Remove Quobyte static config option table Switch to using config-table directive. Change-Id: I054d61dc238fc534fa046a3eeb0492c76074ac15 - Replace Chinese punctuation with English punctuation Curly quotes(Chinese punctuation) usually input from Chinese input method. When read from english context, it makes some confusion. Change-Id: I52bdfb16b1270df9d2a8109608a6a1bebc300966 - Replace cluster object's host with service_topic_queue We have upgrade OVO's 'host' attribute by 'service_topic_queue' when sending rpc messages to support cluster deployment, there are some left unchanged, fix it. TrivialFix Change-Id: I842a15290599181d8d20eb436764764fc9f10687 - Merge "V3 jsonschema validation: Quotas" - IBM XIV: enable FC zoning to all the ports Define FC host just considers connected FC target ports, which should enable host to connect to all the storage FC ports for zoning. Change-Id: Ibb20917c8ed80cb1413de1d61104d495605ec3df Closes-Bug:#1759994 - Merge "Clearup duplicate req_version variable" - [doc] Add the possible status for attachment Add the possible status of the attachment, and also make short description for each status. Change-Id: Ieef1ea94acf69fa906b9f62f2081d66166ba9174 - Remove Nimble static config option table Switch to using config-table directive. Change-Id: I46d51fc6ae22170a364cfcba64944987279f0fa4 - Remove NEC static config option table Switch to using config-table directive. Change-Id: Iad52860cd5667760ba093ba65465f5a908d26075 - Remove static config option table for Lenovo Switch over to using config-table directive. Change-Id: I662296e4213e6b557f40662d2d780472c9697860 - Remove Kaminario static config option table Switch to using config-table directive. Change-Id: I7f085dfa90f37fd870617bb305be059eff280259 - Remove static config option table for DISCO driver Switch to using config-table directive. Change-Id: I96dffa5f576fad2dc63ba6b4849cf28c57ab0b19 - Add skip filter to config-table directive Some driver docs have different options in the table for different configuration types. This adds the ability to skip named properties to be able to control which options get included in the table output. Change-Id: I3c6e31bc11eaec5326314b6eb7e0184429f347bf - Imported Translations from Zanata For more information about this automatic import see: https://docs.openstack.org/i18n/latest/reviewing-translation-import.html Change-Id: Ied4395890f5cbb5978bae6301a154a723be26f76 - Update auth_url value in install docs Follow the keystone install guide by using port 5000 as the default auth_url, this change is to update cinder install guide to follow that. Change-Id: I19c60701dbdcf93394ee1c75d2d6660d25c9cbcc Closes-bug: #1754104 - Merge "Fix doc warnings causing local failures" - Merge "Fix QNap docstring format" - Merge "Fix driver docstring RST formatting" - Merge "GoodnessWeigher schedules non-type volumes" - Merge "Test running jobs under py36/bionic" - Merge "Remove Fujitsu static config table" - Merge "VMware: Extend volume after clone" - Merge "VMware: Adding NFS41 datastore as supported" - Fix doc warnings causing local failures Infocorrectly formatted docstring causes local tox -e docs jobs to fail. Change-Id: Ib7b20856b058d577dac75b7bd41885fd82731ce5 - Merge "Updates overprovisioning dev-ref" - Updates overprovisioning dev-ref Updates the overprovisioning dev-ref with the correct definitions and terminology related to thin provisioning. Drivers maintiners implementing thin provisioning should follow these guidelines. Change-Id: Ief540d3e924075450a0cf42f76878521587bf3dd Signed-off-by: Gorka Eguileor <geguileo@redhat.com> Implements: bp provisioning-improvements - Merge "Uncap eventlet" - Add reno to test-requirements Reno was moved over to doc/requirements.txt when that was created because it is needed for releasenotes builds. But with its removal from the other requirements files, doing something like the recommended "tox -e venv -- reno new xxx" to create a new release note fails with reno missing from any venv's created since it was removed. This adds reno back in to test-requirements.txt so it is installed when creating the venv, ummm... venv. Change-Id: Id2e0325b0ce8e18bb9a65318fb3fc52777753536 - api-ref: modify 'has_dependent_backups' param's description Change-Id: Iec37578d367db109ef4d8eb8c07c832402661f75 Closes-Bug: #1766057 - V3 jsonschema validation: Quota classes This patch adds jsonschema validation for below quota classes API's * PUT /v3/{admin_project_id}/os-quota-class-sets/{quota_class_name} APIImpact : quota class update API will raise BadRequest(400) for quota classes keys other than those accepted by quotas and group_quotas resources. Change-Id: Id7ac6ec88a4b0ea83131d929a9d607f2c4e3429b Partial-Implements: bp json-schema-validation - V3 jsonschema validation: Quotas This patch adds jsonschema validation for below quotas API's * PUT /v3/{admin_project_id}/os-quota-sets/{project_id} Change-Id: I3c13fb3a9e823f213eacd75662fa86e93ab0458a Partial-Implements: bp json-schema-validation - Remove Fujitsu static config table The Fujitsu driver docs describe their config options without the need of a config table. This removes unnecessary reference to the static table. Change-Id: I699ba5b9a1d37c99b53b73b6e732b98e7089ffe4 - Update Dell EMC docs to use config-table directive Remove static config table files in favor of using dynamically generated options using config-table directive. Change-Id: I07fac023866fc4a61f157c3b8a75409b75ae2923 - Update Datera docs to use config-table directive Remove static config table in favor of dynamic config table generation using the config-table directive. Change-Id: I285da382185f3234615d73cdbdc43166e0b6a82c - Update Sheepdog docs to use config-table directive Remove static table in favor of dynamic table generation with the config-table directive. Change-Id: If3cd9ff077d4de3b50b5e32e7e5ee1d670886971 - Remove remaining block device driver config info This cleans out some remaining references to the block device driver config options. This driver was removed several reelases ago. Change-Id: Ieaea863c6d93133e56ff16b4389b2519d670f271 - Update CoprHD docs to use config-table directive Updating the driver configuration table to dynamically pull config options from the source by using the new config-table directive. Change-Id: If0dca56f211a1af585ae1ec12bca53ba91d8932a - Merge "Add config table sphinx directive" - GoodnessWeigher schedules non-type volumes If the GoodnessWeigher is configured to be the only active weigher within the scheduler, it cannot schedule a non-typed volumed for creation. This patch adds a safety assignement to the weigher stats generation to allow for scheduling untyped volumes. This patch safely assigns a dictionary data-type to "volume_type" in the event that: weight_properties = { "volume_type": None, etc.. } Volumes created with a volume-type will not cause an exception and will be scheduled with the volume-type and back-end as configured. Closes-Bug: 1766966 Change-Id: I7bc77ab02154aee80282e54b19a242bdea0a78ec Signed-off-by: Eric M Gonzalez <eric@awnix.com> - Merge "Fix doc errors in nimble driver documentation" - Merge "Adding abstract class NVMeOF" - Add config table sphinx directive In the past we had used an openstack-manuals tool to manually generate config option tables that would then be included into driver config documentation. With the move of documentation in-tree and the deprecation and removal of that tool, we have ended up with options that are no longer being updated when drivers change, or maintainers are left manually updating the existing tables. This addes a sphinx extension to use a new config-table directive to automatically pull in config options from the source so we no longer need to perform any manual action to pick up changes. Change-Id: I625fb96229001c326ed2400155e2d067279a400e - Fix doc errors in nimble driver documentation Last update had some syntax errors that introduced warnings. This passes in gate since the way that is currently run does not treat warnings as errors, but when running locally via tox where we do enforce this it fails. Change-Id: Ib2a2e850a73c4f4c8afd56b372b5b4d7ba5ec47f - api-ref: Correct the cgsnapshot_id parameter The cgsnapshot_id parameter in delete and get operations should in path, and is required. Change-Id: I5525c05769dcd27ff06d7b1d4c97698f99075f09 - Merge "V3 json schema validation: volume manage" - Merge "Imported Translations from Zanata" - Test running jobs under py36/bionic Change-Id: I2036f9be98f76cba21180d74dbde1050c3359234 - Merge "V3 json schema validation: workers" - Imported Translations from Zanata For more information about this automatic import see: https://docs.openstack.org/i18n/latest/reviewing-translation-import.html Change-Id: I06102ca7cfd8bbf887f8778aa8963aba233f530c - Clean output of driver list generation The driver list generation takes driver docstrings and attempts to parse that into rst formatted output for publication. With the way this content is formatted within the docstring, this would cause some slightly off formatting in the html output. This attempts to better extract that information to make the output cleaner and more readable. Change-Id: I3b7e0817ade1c86b6d157c96872f00bb1b99c3d8 - Fix QNap docstring format The QNap driver docstring had extra indentation resulting in doc output showing the version history as a note within a note. Change-Id: Ic0b6581cad88488c536fd7ffb69d5b42379a6283 - Fix driver docstring RST formatting The docstring for the driver was using the ".. code::" directive instead of the ".. code-block::" directive, causing some issues with doc parsing. Change-Id: Ib4e23c855ba14ed925644aa12173ac9d3deb34ba - Add VERSION and WIKI_NAME to NEC driver The actual driver class needs to have these set in order to get pulled out for reporting like in: https://docs.openstack.org/cinder/latest/drivers.html#mstoragefcdriver This adds VERSION and WIKI_NAME to the MStorage driver class. Change-Id: I33ce94e679d5825afd9f41309ee9bb454e0473ae - Merge "RBD: Handle ImageNotFound exception in _get_usage_info correctly" - Merge "Add Keystone v3 domain information to context" - Remove deprecated lvm_max_over_subscription_ratio This setting was deprecated in in the Queens release in change Ib90cdb1f60741284ea171d1a84ad74beac43c7d3 and is now removed. Change-Id: Ib3947d48e7f319bf74c9b916c7dee19c89202e4f - Add Keystone v3 domain information to context Keystone v3 requires domain info to be supplied when making calls to Keystone. Not providing this means that Cinder can't work with deployments that only support Keystone v3. (Specifically, this fails when trying to communicate with Keystone/Barbican from Cinder.) The domain information is retrieved from HTTP headers provided by Keystone and stored in our context object. This includes both "<x>_domain" and "<x>_domain_id" in our context object, since castellan depends on project_domain_id, but oslo.context has deprecated project_domain and user_domain. Closes-Bug: #1765766 Change-Id: If389788f06a3cee75b30485e90e05745d559e2ed - Merge "Add missing VolumeAttachStatus enum field" - Merge "Trivial: Update pypi url to new url" - RBD: Handle ImageNotFound exception in _get_usage_info correctly Change https://review.openstack.org/#/c/486734 moved try-except statement to the wrong place. We need to open image in Ceph inside try-except block. This patch also fixes race condition between volume deletion and _get_usage_info calls. Closed-Bug: #1765845 Change-Id: I7d3d006b023ca4b7963c4c684e4c036399d1295c Co-Authored-By: Melanie Witt <melwittt@gmail.com> - Merge "QNAP: driver fails to create volume and snapshot in some case" - QNAP: driver fails to create volume and snapshot in some case When NAS is busy or network delay, the volume or snapshot would fail to created. We fixed the logic of waiting NAS to creating LUN or snapshot. Change-Id: Ieb524d9b192e2a222f7d25a0df80cf52f1423e81 Closes-Bug: #1765610 - Merge "Dell EMC SC: Removed space from debug statement" - RBD: add support for active/active replication This patch breaks failover_host into the two requisite parts (failover and failover_completed) to support both single-backend and multiple backends configured as active/active. Change-Id: Ie59ba9ad538b2e607dd7ccabc0fbb035a6acf3b0 - Merge "NetApp ONTAP: Set new sub-lun clone limit for ONTAP driver" - Dell EMC SC: Removed space from debug statement A space didn't belong where it was found. I killed it and I'm glad. Change-Id: I7581b7eeb3508a12342d42cdd955b55a440483b6 - Collect resource id from RequestSpec parameter Try to get resource id from RequestSpec parameter instead of VolumeProperties, fix the incorrect log output as below: ``` Exceeded max scheduling attempts 3 for volume None ``` Change-Id: Ib28539c7970f66b94fc2540d66d8cf5c3b7bfc6b Closes-Bugs: #1765927 - Add missing VolumeAttachStatus enum field VolumeAttachStatus has been defined already, This change just replace the missing string volume attach status with volume attach enum field. Change-Id: I1e873d66138b88745bdb325f124b6bd781c7d621 Partial-Implements: bp cinder-object-fields - Clearup duplicate req_version variable In the method '_items', req_version is doubled, so remove one. Change-Id: I5a7446a3843eeb192092a2aff74b254527f4eae5 - Parent of RBD cloned volume marked as deleted should not be manageable Parent of RBD cloned volune which marked as deleted should not be manageable. The API (get_manageable_volumes) of RBD driver needs to be fixed. Change-Id: I4e314ac3003f528de72391d1376d70454206e12a - Fix backup/restore error for ceph rbd backend If a large volume is backed up or a lot of concurrent backups happen, the cinder-backup service goes offline since a lot of these operations have calls to the C code which are not run on native threads. When many concurrent backup create/restore operations happen, then if all of them are greenthreads, and since, when there is a call to the C code, monkeypatching does not happen by eventlet. Hence, there is no context switch to other threads until the call to the C library is completed. This will block context switching to other green threads. As a result, some of the backup create/restore operations might go to error state. The objects on which read/write operations or C function calls are done are wrapped in Proxy objects so that they run as native threads. Change-Id: I75058c36085eb1a8adb26a95297e3a2039745a2c Closes-Bug: #1745435 - Trivial: Update pypi url to new url Pypi url changed from [1] to [2] [1] https://pypi.python.org/pypi/<package> [2] https://pypi.org/project/<package> Change-Id: Ib3d1b29dbfe20afeab4756673e772b597fd63fdc - WinSMB volume driver doc: Add Volume backup support This update is based on the Windows SMB: Volume Backup support blueprint and merged change 528352 authored and committed by Lucian Petrut: Change ID: I8769a135974240fdf7cebd4b6d74aaa439ba1f27 Change-Id: If5eea46db6049afc585784277b9f232c26e6da34 - Merge "FC: refactor fczm utils decorators to functions" - Dell EMC SC: Enabled multiattach in Storage Center Driver Explicitely set multiattach = True in the data returned from the get_volume_stats call in the Dell EMC Storage Center driver. Change-Id: I9cd0aaadb66a2ff0f3dc947a7df3dcb9fadd4453 - Merge "NetApp ONTAP: Fix export path used as volume name" - Merge "Use InvalidConfigurationValue instead of InvalidInput" - Merge "Improve API method logging" - Clarify sizing when creating vol from source The api-ref stated new volumes created from a source volume or snapshot would have the same size as the original, but that is not the case if a larger size is requested. Change-Id: Id2e0d53b56d5879026c182521a512dc2cfcd28f7 - Improve API method logging We have tracing in the wsgi code to log the method being called, but since we are just formatting the function object into a string, we end up with the less than friendly output of: Calling method '<bound method VolumeController.delete of <cinder.api.v3.volumes.VolumeController object at 0x7f9f14f86dd0>>' This changes the logging to extract the actual name of the method being called. It also removes some unnecessary string coersion. Change-Id: I3a0a5973a1798a7fcf25c4288b9cbef1195f7015 - NetApp ONTAP: Set new sub-lun clone limit for ONTAP driver Until ONTAP v8.3, the driver used to perform sub-lun clone of up to 64GB per operation, but as of v9.1, ONTAP handles only 128MB per operation. This new limit is causing error on volume extending operations, which triggers sub-lun cloning when resizing exceeds max-resize-geometry. For instance, if a volume is extended from 1GB to 64GB, the operation fails because it triggers a single sub-lun cloning of 1GB. This fix sets the limit used by sub-lun cloning to 128MB, therefore if a volume is extended from 1GB to 64GB, it no longer fails, and instead it will trigger 8 sub-lun cloning operations of 128MB. Change-Id: Ib294cbdbdfe19d34a7702dafec2c8d29136a2f25 Closes-Bug: #1762424 - Adding abstract class NVMeOF A new driver is added, and allows Targets to implement create_nvmeof_target, delete_nvmeof_target methods. NVMeOF is an abstract class to be implemented by NVMeOF helpers. Implements: blueprint nvme-target-cli Change-Id: I344da50112af8e559408b5b7c8532c659a97c7c2 - V3 jsonschema validation: volume_transfer This patch adds jsonschema validation for below volume transfer API's * POST /v3/{project_id}/os-volume-transfer * POST /v3/{project_id}/os-volume-transfer/{transfer_id}/accept Modified existing unit test cases which were mistakenly passed 'transer_id' in request body which is supposed to pass in path. Partial-Implements: bp json-schema-validation Change-Id: Idcbfd37d49584ed6cb438cfdc0e7403504977525 - Imported Translations from Zanata For more information about this automatic import see: https://docs.openstack.org/i18n/latest/reviewing-translation-import.html Change-Id: I1b0d50672824d9e0aa9edf693b69ce41af02a2a5 - Merge "ZFSSA implement "Enhance iSCSI multipath support"" - FC: refactor fczm utils decorators to functions This patch changes the Fibre Channel Zone Manager utility decorators to functions. Those functions now have to be called manually. The intention of this is to unify how the FC drivers are to be declared and used vs. the iSCSI. No more magic decorators for FC drivers only. Change-Id: I8e6e964e3694654b8ba93fe432a0dd49fa5e1df0 - VMAX driver - Attaches/detaches after host assisted retype failing There is an issue after host-assisted retype where subsequent actions on a retyped volume fail due to a volume ID mismatch. This patch rectifies the issue by checking if the '_name_id' attribute of the volume matches the volume identifier on the backend, should the volume 'id' attribute comparison fail. Change-Id: I8badcbd99e25336b1a905b82959e6c3a7bfcc420 Closes-bug: 1763555 - V3 json schema validation: volume manage This patch adds jsonschema validation for below volume_manage API * POST /v3/{project_id}/manageable_volumes Change-Id: I516fc5ef4b174bda54da306a2135aa4eb30e5ea1 Partial-Implements: bp json-schema-validation - V3 json schema validation: workers This patch adds jsonschema validation for below workers API * POST v3/{project_id}/workers/cleanup Change-Id: I4eab4d0aa254d9ce7dcb9e15077779fa508cad41 Partial-Implements: bp json-schema-validation - Merge "V3 jsonschema validation: volume actions" - Merge "Set sample_default for 'host' option" - Merge "Adding image membership check to _is_image_available" - RBD snapshot needs to be protected/unprotected after being managed/unmanaged The managed RBD snapshot needs to be protected, just as the same with procedure of creating a new Cinder RBD snapshot, to prevent the snapshot being deleted. When unmanage RBD snapshot, unprotect the snapshot when it has no children. Change-Id: Iff0a75369a603a348163cc4a2211bb6e6ad1fea9 - Merge "Storwize: Report backend state in service list" - Merge "ZFSSA accept pool stats when cluster node stripped" - VMware: Extend volume after clone Volumes created from in-use source volumes will have the same size as the source volume. Fixing this by calling extend if the cloned volume's size is smaller than the requested volume size. Change-Id: Ia1da23fc17092ce6656ed85c91bdab72d2e7cc70 Closes-bug: 1763529 - Set sample_default for 'host' option This prevents build system hostnames from being written into sample conf files. Change-Id: I8c52db1e375116c750da9a619aaaea134bddebbe - Uncap eventlet Change-Id: I86f14aeeb198b0a89faf5b2d89449a8394edff1d - Merge "nimble: update documentation for supportability" - Merge "NEC docs: add new features and improve description." - Merge "Rephrase for multiattach support" - ZFSSA implement "Enhance iSCSI multipath support" A typical ZFSSA iSCSI deployment involves a ZFSSA cluster with two control heads, two storage pools, and two network interfaces. Under normal operation, one of the pools and one of the network interfaces would be owned by one control head, and the others by the other control head. This provides a form of "active/active" operation. Cinder would be configured with two backends - one pointing to the pool and an iSCSI target (group) normally served by the first head, and the other the second head. In the event of a failure of one control head, the other head will "takeover" its storage pool and network interface, allowing service to continue (perhaps with reduced performance) until the problem head is restored, at which time the resources would be "given back". In the takeover scenario, a sendtargets iSCSI discovery to the portal address normally associated with the failed head will be serviced by the other head, and it will return BOTH targets. os-brick, when configured to use multipath, interprets this as both targets being basically equivalent, and will use either one of them to determine the host/controller/target/LUN ID to use to find SCSI devices. When the same LU number is assigned to LUNs in both pools that are presented to the same compute node, it can cause a LUN belonging to one VM to to connected to a different VM. Whilst full multipath support is not implemented in the ZFSSA driver, using multipath on compute nodes provides some utility, even with only a single path (notably the I/O can be queued during a transient interruption (cluster takeover, network switch reboot, etc.). To support this scenario, whilst avoiding the above problem, this change implements "enhanced multipath support" [1] to provide explicit target info to os-brick (but only supporting a single path). This could be expanded to full multipath support in the future. [1] https://blueprints.launchpad.net/cinder/+spec/iscsi-multipath-enhancement Change-Id: I6402a6bc2a0d51efd3b60d93c11c1a81e8a73269 Closes-Bug: 1762584 - Rephrase for multiattach support Since we can enable attaching a volume to multiple servers, the doc needs update. Change-Id: Ide7c32f08113392b5f5e0042ec909b41c9cc6f88 - NetApp ONTAP: Fix export path used as volume name On ONTAP NFS driver, the export path was being used as the volume name. If the export path is different than the volume name, the API call to delete files would fail and the driver would invoke a fallback method that deletes the files manually. This patch fixes that by finding the correct volume name. Change-Id: Ice78889573a36ff5e8873a0d316ddcf180d0263f Closes-bug: #1690954 - Use InvalidConfigurationValue instead of InvalidInput worker value is from cinder.conf, so use InvalidConfigurationValue is better. Change-Id: I51a6d3041b42e9fc97d5562e5ae586000d6db36d - Merge "Clarify volume migration CLI reference" - Merge "Cleanup volume management CLI reference" - NEC docs: add new features and improve description. In the supported operation section, add new features supported. In the preparation section, improve description of access control configuration. Change-Id: I0a5bbc7b91035c55491c37a73bd23edc3a01b808 Closes-Bug: #1745549 - Merge "Avoid second restart on offline upgrades" - Update the HP MSA and Lenovo driver documentation Updated the list of supported models for the HP MSA driver. Improved the description of the driver-specific options for the Lenovo and HP MSA drivers. Change-Id: Ica6ba8f2b169b54c30dbfd0e2b5ab1765a3f8a77 - Merge "Update auth_uri option to www_authenticate_uri" - Merge "VMAX docs - miscellaneous clarifications" - Merge "V3 jsonschema validation: snapshot_actions" - Merge "Refresh volume when checking for conflicting attachments" - ZFSSA accept pool stats when cluster node stripped When a node in a ZFSSA cluster fails, storage pools and network interfaces associated with it get "taken over" by the other node. In this scenario, the identity of the node does not match the "owner" of the pool. Currently, the cinder volume drivers consider this to be a failure. With this change, it will not be considered a failure, so long as the cluster node is stripped. If the cluster is operating normally, the node responding to API requests must be the node that owns the pool. Change-Id: I073cf97bc65f93acd5732c9b7072c7130e6b248f Closes-Bug: 1762777 - Merge "add lower-constraints job" - Merge "[Optimise] Use ThreadGroup to manage periodic tasks" - Merge "Dell EMC SC: volume model update return missing vol id" - Refresh volume when checking for conflicting attachments We should only be able to create more than one attachment to the same volume if it's (1) multiattach=True or (2) it's multiattach=False AND the attachments are to the same instance. It is not valid to attach more than one instance to the same multiattach=False volume. The _attachment_reserve method is checking for this if the conditional update to the volume status fails, but it does not refresh the volume before checking the attachments. Since we could be racing to create attachments concurrently, when the request that failed the conditional update actually pulled the volume out of the DB, it might not have had any attachments, so we need to refresh it before checking the list of attachments to see if the instance we're trying to attach (reserve the volume) is the same as what's already attached to the volume. Change-Id: Iee78555163bbcbb5ff3e0ba008d7c87a3aedfb0f Closes-Bug: #1762687 - nimble: update documentation for supportability - update the configuration to include multipath settings - indicate unsupportability with HPE Nimble Linux Toolkit Change-Id: I6f6c8063f6995d485e7db63c27cdb19bcc5125fc Closes-Bug: 1755546 - Merge "Move MV history under API Microversion contrib docs" - Merge "Doc: Add driver security notes to contributor doc" - Doc: Add driver security notes to contributor doc Document some requirements that driver authors should consider when creating drivers. Change-Id: Ieae8863d5e4c140545d89c4cfa4e019dbb301a36 - Move MV history under API Microversion contrib docs The REST API Version History was being listed in the top level TOC for the contributor guide, causing each microversion to show up as a separate item in the table of contents. This looks a odd and causes a lot of scrolling to get to some of the contributor information. This moves the version history under the API Microversions section so all microversion information is within on section of the guide. Change-Id: I74232b52088a395b618e07902427889200c2fdae - V3 jsonschema validation: snapshot_actions This patch adds jsonschema validation for below snapshot_actions API * POST /v3/{project_id}/snapshots/{snapshot_id}/action Change-Id: I810f72777864947e7e44ddf668732e06db68c1f3 Partial-Implements: bp json-schema-validation - Fix mocks for ZFS Storage Appliance unit tests We should not use @mock.patch for setUp methods. They will be ignored for most cases. This patch adds mocks explicitly into the setUp methods. Change-Id: I89b3cfdc618816d4fd8160bf3876fb20ccb7f45b - Storwize: Report backend state in service list This patch implements reporting backend state in service list. Change-Id: Ida0737ae07e2247c38f2a2f4bfb494b4e302cf57 Implements: blueprint report-backend-state-in-service-list - Merge "VNX: fix performance in create/delete_volume" - Merge "Clean up doc configuration" - Merge "Move testing info higher in contrib docs" - Merge "Use sphinxcontrib.apidoc for module docs" - Merge "Add doc to pep8 check_exec" - Merge "Remove exec flag from doc files" - Add doc to pep8 check_exec Detect executable files in doc/source. Change-Id: I43894faacdec839cc61bfb7db675f33cbc5d454d - VMAX docs - miscellaneous clarifications Short clarification on san_port, All flash licensing and libvirt -d option. Change-Id: I3df61b6852c98b156007022cce647859554b6177 Closes-Bug: #1757172 - [Optimise] Use ThreadGroup to manage periodic tasks Instead of manually managing periodic tasks, use oslo.service's threadgroup to make it easier to stop them. [1]: https://docs.openstack.org/oslo.service/latest/reference/threadgroup.html Change-Id: Ia584b9fafcc9e73f747dbba563be4fdca8d565ea - Update auth_uri option to www_authenticate_uri Option auth_uri from group keystone_authtoken is deprecated[1]. Use option www_authenticate_uri from group keystone_authtoken. [1]https://review.openstack.org/#/c/508522/ Change-Id: I2a9853b52f23fc4b6a24a0548b9749e976467758 - add lower-constraints job Create a tox environment for running the unit tests against the lower bounds of the dependencies. Create a lower-constraints.txt to be used to enforce the lower bounds in those tests. Add openstack-tox-lower-constraints job to the zuul configuration. See http://lists.openstack.org/pipermail/openstack-dev/2018-March/128352.html for more details. Change-Id: I329e6364d537f2acac796e389f15f3c7162a9244 Depends-On: https://review.openstack.org/555034 Signed-off-by: Doug Hellmann <doug@doughellmann.com> - Unignore .stestr.conf Commit 676195e00978109cf5e0388034efacd354785034 added .stestr.conf to the repository, so not ignoring it seems prudent. Change-Id: I4c7ff97ab9cb52d211186b43b558dccef8f27320 - VNX: fix performance in create/delete_volume When in high concurrency, it is helpful to avoid commands or use commands with "-np" option, in this patch, the following changes are made: * use '-np' when creating new lun. * do not query if it's an snap-copy volume. * do not issue unnecessary 'snap -destroy' when deleting volume. Change-Id: I5dbeca00bfbd19133805556cdcc5214d069e3b28 - Merge "fixs grammar problems and unify format in api-ref" - Default pep8/fast8 to run under python 3 There are slight differences with pep8 when run under python 3. It is a little more strict on certain things, plus we want to get to just supporting python 3 eventually, so this switches over the pep8 and fast8 targets to use python 3. Change-Id: I3212bfb2dd173e79dae6d548827a803f68923da9 - Move testing info higher in contrib docs This moves the Testing section to be second in the TOC after setting up the development environment so the high level info people need is up front before the information that digs into more specific details. Change-Id: Ieeafc483a11fc30139e1969cf2607c55cf4e4802 - Clean up doc configuration Remove some stale settings and get rid of setting version and release. Those settings are now taken care of by openstackdocstheme and do not need to be explicitly set, and since docs jobs no longer install the project in order to generate docs, we are not able to load those values from the python modules anyway. Change-Id: I1a9a48538ca5c5e22e02f34c837e8fc783aeb2e9 - Use sphinxcontrib.apidoc for module docs Now that sphinxcontrib.apidoc is available, we should get rid of the custom code we have for generating this information ourselves. This also cleans up some really stale docs that are no longer needed. Change-Id: Iaa9fecc2478326b45b67a2cfd98de5f93f537efe - Remove exec flag from doc files A couple files were checked in with the executable flag set. This removes exec. Change-Id: I3188bc31f1292b28f981e89cad5b16db5d38486f - Merge "NEC driver: Disallow access from the source node after live-migration." - V3 jsonschema validation: volume actions This patch adds jsonschema validation for below volume actions API's * POST /v3/{project_id}/volumes/{volume_id}/action (attach) * POST /v3/{project_id}/volumes/{volume_id}/action (detach) * POST /v3/{project_id}/volumes/{volume_id}/action (volume_upload_image) * POST /v3/{project_id}/volumes/{volume_id}/action (extend) * POST /v3/{project_id}/volumes/{volume_id}/action (retype) * POST /v3/{project_id}/volumes/{volume_id}/action (initialize_connection) * POST /v3/{project_id}/volumes/{volume_id}/action (terminate_connection) * POST /v3/{project_id}/volumes/{volume_id}/action (set_bootable_status) * POST /v3/{project_id}/volumes/{volume_id}/action (update_readonly_flag) Change-Id: I39ede009d5e909a076860df7305865286caa5352 Partial-Implements: bp json-schema-validation - fixs grammar problems and unify format in api-ref Change-Id: Ib83d1cb6def076c0ab06947b681cd10cd03ed002 - Clarify volume migration CLI reference Wording for the volume migration was not very clear. This reworks that text to be a little more concise. It also removes an OSC arg that does not actually do anything. Change-Id: Id75bd6b4445fcf8042d87578f5f692958a859c0b - Merge "Handle migrating encryption key IDs in Backup table" - Merge "Doc: Add inspur driver doc to toctree" - Merge "Dell EMC SC: dell-storagecenter-driver docs updated" - Add delete snapshot preconditions Adds details to the api-ref pointing out the necessary snapshot states to be able to delete. Change-Id: Icea6f226329bedde2a445246122f35afccffb5ec - Merge "ScaleIO: Prevent usage of unsafe volumes" - Handle migrating encryption key IDs in Backup table Enhance the code that migrates the ConfKeyManager's fixed_key to Barbican to also consider the Backup table. When the original key migration feature was added, the encryption key ID was not stored in the Backup table. But now the Backup table contains that field, so the migration code needs to handle that table as well. Whereas the cinder-volume service is responsible for migrating keys in the Volume and Snapshot tables, the cinder-backup service handles migrating keys in the Backup table. Each instance of the service migrates its own entries by matching the "host" field in the corresponding tables. The Backup OVO now inherits from base.CinderComparableObject. This does not affect the object's hash signature, and so the version number does need to be incremented. Closes-Bug: #1757235 Change-Id: Id4581eec80f82925c20c424847bff1baceda2349 - Dell EMC SC: dell-storagecenter-driver docs updated Document has been updated to include direct connect support. The Dell EMC SC driver can be configured to point at a Storage Center directly rather than through a DSM aggregator. This addresses minimum requirements and limitation. Change-Id: I0a0095235685c8f6dc6d9cd88b27d454641da387 - Merge "Unity: fail to detach lun when auto zone enabled" - Doc: Add inspur driver doc to toctree This should be here, causes doc build warnings since it is in no toctree. Change-Id: I79026ac7bbc9d05ff8945829d5ea1ced68b24f09 - VMware: Adding NFS41 datastore as supported vSphere 6.0 supports datastores backed by NFS 4.1. Adding NFS 4.1 based datastores as supported. Closes-bug: #1751950 Change-Id: Id0f04f1055b0d94447916963da071efc4bd92c82 - Merge "Implementation of Cinder driver over FC for Inspur InStorage" - Merge "OVO: support query for disabled services" - Merge "Storwize: self assign the SCSI lun id for volume attaching" - Merge "[sytle] use http code constant instead of int" - Merge "[Optimize] Validate configured scheduler filters when initialize" - Merge "Document more review processes" - Avoid second restart on offline upgrades On offline upgrades, due to the rolling upgrade mechanism we need to restart the cinder services twice to complete the upgrade, just like in the rolling upgrade case. The current offline upgrade process is: - Stop cinder services - Upgrade the cinder nodes - Sync your DB - Start the cinder services - Restart all the cinder services This second restart creates a bad user experience and it should not be necessary on an offline upgrade, so this patch adds a new optional parameter -called "--bump-versions"- to the cinder-manage db sync command that allows us to skip the restart of the services. Closes-Bug: #1756321 Change-Id: I1b58c637f6b2187a78c9c00a6c4933335439ad6f - [Optimize] Validate configured scheduler filters when initialize The correctness of default scheduler filters will be validated only when processing filter requests, this means administrators will be unware of that until creating requests keep failing. This patch moves that logic into initialization code. Change-Id: I596c94fae33767b6b8d4816e572ff5e9dda621b7 - Remove extended attribute 'os-volume-replication' in Doc 'os-volume-replication:extended_status' and 'os-volume-replication:driver_date' are unavailable since the merge of patch [1] during Liberty, remove these from API document. [1]: https://review.openstack.org/#/c/275797/ Change-Id: Ib319702f085930a6bf528ef95fb17a7da8451e96 - Cleanup volume management CLI reference This puts this documentation into a little more logical order. It also cleans up some omissions and formatting issues as well as removes some commentary not appropriate for this documentation. Change-Id: I4107c7909e0983d51ab7da7c8e66473b6fd44166 - Merge "3PAR: Report backend state in service list" - Use check_virtual_size to do the size check 1. data.virtual_size(bytes) in fetch_verify_image is not translated to GiB, use check_virtual_size to fix this. 2. Use check_virtual_size to do all the check of volume size. 3. Add dest_dir in the log of check_available_space. So we can get the image conversion dir simply. Change-Id: I959f67676060bb827dc4304ccd29ceabebc7cc31 Closes-Bug: 1756232 - Unity: fail to detach lun when auto zone enabled When the lun is the last one attached to the host and it is detached, the attribute `host.host_luns` is None. Use `not` in if statement which is pythonic in checking None and empty list of `host.host_luns`. Change-Id: I5d8f63f9a78d001bc699af538f586aab8d73a5cf Closes-bug: #1759175 - Implementation of Cinder driver over FC for Inspur InStorage This driver implements the features to support the use of Inspur InStorage over FC. This driver is based on the iSCSI driver of Inspur InStorage. Change-Id: I51c746f0aff566cfb99f9f3e65a509c1e545f194 Implement: blueprint inspur-instorage-fc-support - Merge "Fix doc format errors in module docstrings" - Dell EMC SC: volume model update return missing vol id Create_group_from_src is not returning the volume id along with the other volume updates. Manager.py uses this to update the db. Added this id to create_group_from_src return. Closes-Bug: #1759897 Change-Id: I240df78363182e4e8017f89b67c0f7d7bf6819c8 - Adding image membership check to _is_image_available This adds a condition for valid membership where the image visibility is 'shared', the current project matches a member_id of the image and that member's status is 'accepted'. If all of these conditions are true, then the current project has access to the image. This check is performed after other checks since it requires querying for membership information from Glance so it will only affect membership checks that were likely to fail already (due to having failed all previous checks). Change-Id: Ifdcf7c5eab435b0dc40dd3650b61ebfef1e5579e - OVO: support query for disabled services Add a additional parameter to get_by_host_and_topic() to query for disabled (or not) services. This defaults to False so remains transparent to existing callers. This is needed for the coming replication promotion patch where services are required to be disable prior to promotion. If this is the case, I must be able to access the disabled services in order to correctly perform the promotion operation. Change-Id: I8fc93c55546e6d4a582beaea9caebcbc9f18d98b - Merge "Unity: Enable ssl verification" - Imported Translations from Zanata For more information about this automatic import see: https://docs.openstack.org/i18n/latest/reviewing-translation-import.html Change-Id: I383304c78fadd43eb97126b7911c524c6e6cc429 - Fix doc format errors in module docstrings This fixes some formatting issues in docstrings to allow us to enable the warnings-as-errors flag for our docs build. Co-authored by: Jay S. Bryant <jungleboyj@electronicjungle.net> Change-Id: I9567e232686d8775ff67418e8333c164f8acd8f3 - Remove unused doc extensions Some doc extensions were no longer being used. This removes them from our doc configuration. Change-Id: I130462a9831a84fdd9607c8ca370c91cf395fb1b - Merge "Don't use custom password generating code" - Allow extension of volumes with snapshots for VZstorage driver This change lifts an earlier limitation that explicitely did not extend a volume if snapshots of that volume exist. This limitation was lifted on the glusterfs driver and this change mirrors that behaviour. Partial-bug: #1687048 Change-Id: I9aa727b1880b374105c2cad685dc196c7d39f841 - 3PAR: Report backend state in service list This commit implements report backend state in service list Change-Id: I36b2fdb38a66808175b7c66eaaba0c8ff6a9fb2c Implements: blueprint report-backend-state-in-service-list - Storwize: self assign the SCSI lun id for volume attaching Currently, the SCSI lun id is assigned by storage. But Storwize may assigned the same SCSI lun id for different volumes on different i/o groups. The wrong volume may be discovered with the same wwpn and same lun id. This patch reverts the patch https://review.openstack.org/#/c/360394/, Storwize volume driver calculates an unused SCSI lun id and sends the SCSI lun id to storage. To avoid the problem of patch 360394, this patch retries 3 times to map volume to host if there is CMMVC5879E error. Change-Id: I3d3c61f913ff7ec8d35c8105cecc1a51accd21e7 Closes-Bug: 1757922 - ScaleIO: Prevent usage of unsafe volumes It is possible for thick volumes, created from storage pools which have zero-padding disabled, to contain previous data. This change prevents these volumes from being created by default. A user can override this behavior by acknowleding the possibility with a configuration option. Change-Id: I62f8f48b1624fc9abb7427bd4ca51f7873d35b96 Closes-bug: #1699573 - Merge "Remove inappropriate directory space check" - Merge "Reduce scope of the lock for image volume cache" - Merge "Fix parameter error in image_utils" - Merge "Move openstackdocstheme to extensions in api-ref" - Merge "Storwize: check flashcopy_rate before mkfcmap" - Move openstackdocstheme to extensions in api-ref Move openstackdocstheme to extensions. According to the guide below: https://docs.openstack.org/openstackdocstheme/latest/ Change-Id: Ibfb75e2a484b09b18cd18a4b2d21d559d7d4b475 - Unity: Enable ssl verification This commit allow user to enable ssl verification on demand for the Unity Cinder driver. Change-Id: Iaaa498a377edae873c489b6a5818923e16d594f0 - Storwize: check flashcopy_rate before mkfcmap Configure flashcopy_rate in volume type, there is no value checking before mkfcmap. This patch adds flashcopy_rate checking before make fcmap. Change-Id: I7823749bd8add3ce41e4b2862fd0f06dd0fa0888 Closes-Bug: 1753908 - Merge "Enable slow tests for lvm-barbican job" - Reduce scope of the lock for image volume cache Refactor the code that creates a volume from a downloaded glance image to minimize the scope of the lock that prevents multiple entries in the volume image cache. Now the lock serializes only the portion of the code that causes the cache entry to be created. Locking is minimized when the volume is already cached, or when the volume won't be cached. Closes-Bug: #1758414 Change-Id: I547fb4bcdd4783225b8ca96d157c61ca3bcf4ef4 - Merge "Remove driver-specific notes from extend api-ref" - Merge "api-ref: Fix microversion for volume.backup_id" - Merge "Updated from global requirements" - Don't use custom password generating code Consolidate code that generates password strings in drivers. Just a cleanup/hardening measure. Change-Id: Icd34077bbf1ccdee3475ba17ab3a52d8ad34e821 - Merge "Add max MV for Queens and fix formatting" - Merge "VNX: fix options incorrect behavior" - Merge "VMAX driver - Replication failover performance improvement" - Merge "Storwize: modify hyperswap host_site configuration" - api-ref: Fix microversion for volume.backup_id This was added in 3.47 in change Icdc6c7606c43243a9e12d7a42df293b729f589e5. Change-Id: I87ade05c14ecb47d92a6406c8ce0bf9da1e31ffa - Remove driver-specific notes from extend api-ref This is not part of the API contract. It should be documented elsewhere as a limitation of the volume driver. Change-Id: I3586853ce7e11150d54cc552863bd3d4f6db197b - Document more review processes The Cinder team has some code review policies that are generally known but not documented anywhere. This patch provides a place for us to document those reiview practices that may not be known to everyone. I have started by documenting the new process proposed at the Dublin PTG for targeting milestones. I also add documentation to formalize the fact that we should not merge vendor patches without their CI passing on the patch. Change-Id: Ie3bb23dcb6299f15ae69e12095c1aa9640565c33 - fix a typo: s/clent/client/ Change-Id: I7e244b71b71855d78f05c3f9d6f7e046c5e19f94 - Updated from global requirements Change-Id: I514d5558f64b4402799f85d8cd1f263068536556 - Merge "V3 jsonschema validation: Clusters" - [sytle] use http code constant instead of int To keep the consistency, using http_client.ACCEPTED instead of 202 in groups.py & volumes.py Change-Id: I12a853c24210865e9fc01220fedf6622efa231e7 - Merge "Follow the new PTI for document build [Updated]" - Merge "Fix: Including resources in None cluster" - Merge "Fix: Incorrect replication status on clusters" - Merge "V3 jsonschema validation: types_extra_specs" - Merge "Support Qemu >= 2.10.0 in Quobyte driver" - Merge "fix a typo in remotefs.py" - Merge "Add missing 'target_obj' when perform policy check" - Merge "INFINIDAT: set REST API client parameters" - Merge "VMAX driver - Retype replicated volumes" - Merge "Remove some unused parameters in parameters.yaml" - V3 jsonschema validation: Clusters This patch adds jsonschema validation for below Clusters API's * PUT /v3/{project_id}/clusters/action Change-Id: I7ba0d9fb5292d0076fc99004cf1326d7f3fc86ee Partial-Implements: bp json-schema-validation - VNX: fix options incorrect behavior Since Newton, the following options were incorrectly handled: max_luns_per_storage_group: this option was ignored, and implicitly set to 255 in storops, thus there is not way to set it to a larger number for admin. This commit will add this feature back. check_max_pool_luns_threshold: this option was obsoleted since driver can detect this value automatically. This commit will remove this option for driver code. Closes-bug: #1738681 Change-Id: If3ca0999a745e6977345f208fc6edd00c86ccea9 - Storwize: modify hyperswap host_site configuration The new configuration storwize_preferred_host_site was introduced in volume type for hyperswap feature on Queens release. Actually, the host_site is related to host rather than volume. This patch removes the parameter storwzie_preferred_host_site from volume type configuration and updates it from StrOpt to DictOpt in cinder back-end configuration. Closes-Bug: 1742866 Change-Id: Ie1df4cc45c2d1f72f33beea7ddc5bb3797a34728 - Support Qemu >= 2.10.0 in Quobyte driver This adds using the '--force-share' option with qemu-img, similar to the changes in Ia3623af2048d6cbda65deebf4404e6b5fefe1bfc . Closes-Bug: #1758114 Change-Id: I5a06e10fbe03e4184c891733dde430b66109ce35 - Merge "Fix get_max_over_subscription_ratio docstring" - Merge "Sync snapshot's encryption_key_id with volume's value" - Merge "[VNX] Restore snapshot to volume" - fix a typo in remotefs.py Change-Id: Ic052dd55e9f7bec74cf97df0c94129ef3a004782 - Fix get_max_over_subscription_ratio docstring TrivialFix Change-Id: I1fa9e8071fb01f39109915a7bf390e83378c2e01 - Fix: Incorrect replication status on clusters When running a replicated service in a cluster, the replication_status field in the Cluster DB table doesn't get updated in some cases, making the cluster look like it's non replicated: - When starting a new clustered replicated service cluster. - When enabling replication on an already clustered service. The reason for that is that the service and cluster creation happens on the Service's __init__ method, while the replication status isn't known until later, when the start method in the service calls the manager's init_host_with_rpc, where the manager updates the service DB entry. This patch adds an update for the replication field to the cluster table in that same place, making sure we have the right data. Closes-Bug: #1758024 Change-Id: I0d2fded62372a2fc5f49538133c5b66694dccc77 - Fix: Including resources in None cluster Cinder is incorrectly trying to add resources to a cluster even we are not clustered, so we can see messages like: Including all resources from host host1@lvmdriver-1 in cluster None. This happens when there is no service entry in the DB. This patch fixes this an ensures we only try to include resources when we are running a clustered service. Closes-Bug: #1758022 Change-Id: Ief102a8eafd5175ff653ce29bd59b8f638ded112 - Follow the new PTI for document build [Updated] This review already follows the new PTI https://review.openstack.org/#/c/529006/ However, we also should remove [build_sphinx] section as described in: http://lists.openstack.org/pipermail/openstack-dev/2018-March/128594.html Change-Id: I2f4638c71a625df7efa49818f8e40d69ae750301 - Imported Translations from Zanata For more information about this automatic import see: https://docs.openstack.org/i18n/latest/reviewing-translation-import.html Change-Id: I22cbc8a94922a7733c1f2f8a709bb4679fde7cd5 - NEC driver: Disallow access from the source node after live-migration. NEC driver deletes access permission from nodes in the method remove_export(). However, the method remove_export() is not called after live-migration. After live-migration, access permission of the live-migration source node is not deleted. This patch adds the step to delete access permission from the node in the method terminate_connection(). The terminate_connection() is called after live-migration and access permission of the source node is deleted. Change-Id: Id605eb6ff61cd1d382bf82173e6d65b986dda398 Closes-Bug: #1753375 - Merge "Updated from global requirements" - Fix parameter error in image_utils Ref patch: https://review.openstack.org/#/c/514658/ 1. Fix parameter error of method fetch_to_volume_format that called in fetch_to_raw and fetch_to_vhd. 2. Add new parameter volume_subformat for fetch_to_vhd to keep the same business with [Ref patch]. Change-Id: Id30ffd8a40eca841b5d6461c2f0269a0d9a4d628 - Remove inappropriate directory space check Removes an inappropriate directory space check when copying an image to a volume. In the general case, "dest" is a block device, so it's not appropriate to check for space in the directory containing "dest". One exception may be the NFS driver, where dest actually is a file, but that should be handled elsewhere (if necessary). This check has always been inappropriate, but was silently ineffective due to a unit-comparison bug that was recently fixed. Change-Id: Ie5eba32f92eb1740554bfc44baf612e326d6fde5 Closes-Bug: 1756425 - Merge "Mock local directory testing for image conversion" - Add max MV for Queens and fix formatting Adding header to denote which microversion was the maximum for the Queens release and fix some formatting in the last addition that caused the text to be shown as an indented note. Change-Id: Ie786144b6417538953a9f77c69555b83be673b92 - Merge "QNAP Drivers - Move from httplib to requests" - INFINIDAT: set REST API client parameters Communicating with the INFINIDAT InfiniBox backend is done using a REST API through a client implemented by the infinisdk package. This change sets the number of retries in case of an erroneous API call and sets the User-Agent string for the client. Change-Id: I7e94ab69e460e56ef59e33e206e9377024b213d9 - Merge "Imported Translations from Zanata" - Merge "Fix vhd image conversion regression" - Mock local directory testing for image conversion A few unit tests hit the path in create volume that now checks for and creates the image conversion directory. For unit test runs, this results in a 'conversion' dir being created in the root of the repo. This adds mocking to prevent local filesystem modification. Change-Id: I9d3d15411089fc020257b4021a5263a18433eece - Imported Translations from Zanata For more information about this automatic import see: https://docs.openstack.org/i18n/latest/reviewing-translation-import.html Change-Id: I539ffb8a8034c27208d94477f5841d50b6a880a1 - Merge "DS8K: correct in-use replication vol status" - Fix vhd image conversion regression A recent change introduced a regression: due to a wrong assignment, we're no longer passing qemu-img the right format when converting images to "vhd". Note that it expects the legacy "vpc" name. This change addresses this issue. Closes-Bug: #1757244 Change-Id: If7a2e3470403b45eff69dcf69b67615bb982a4eb - Merge "Dell EMC SC: ISCSI initialize_connection fixes." - Sync snapshot's encryption_key_id with volume's value Sync the snapshot's encryption_key_id with the volume's value just prior to updating the snapshot's DB entry. This ensures the snapshot DB entry isn't out of date in case the volume's encryption_key_id changed while the snapshot was in flight. The encryption_key_id will change when keys based on the ConfKeyManager are migrated to Barbican. Closes-Bug: #1756139 Change-Id: I65abb8dd17de7633828b731d1cf1f2321a6f3e5b - V3 jsonschema validation: types_extra_specs This patch adds jsonschema validation for below volume type extra specs API's * POST /v3/{project_id}/types/{volume_type_id}/extra_specs * PUT /v3/{project_id}/types/{volume_type_id}/extra_specs/{key} Partial-Implements: bp json-schema-validation Change-Id: Ida04cd65bfc93c442eb3c3b02c23beada8654811 - DS8K: correct in-use replication vol status Correct in-use replication volume status after failover/failback. Currently the status of in-use replication volume is changed to available after failover in ds8k cinder driver to make sure the replication volume can be attached again after failover. So does failback operation. However, nova is using the new cinder attach api right now. The in-use volume can not be attached to the same instance again even the volume status is changed to available and attach_status is changed to detached in cinder driver by force. This is due to nova stores the combined relationship of volume_id and instance.uuid in nova db as BlockDeviceMapping. This is to avoid attaching the same volume to the same instance twice. So the attaching request can not be sent to cinder if there is attached record in BlockDeviceMapping between the volume and instance. So this patch keeps replication volume status during failover and faiback. Change-Id: Ia66d3522bbe107fb7ab077ab948393c2b7f34737 Closes-Bug: 1746732 - Merge "nimble: update documentation for supportability" - Merge "Fix policy in code docs for extended_snapshot_attributes" - Merge "Fix incorrect usage of assertEqual() method in RBD unit tests" - Merge "Add support for unmanaging snapshot of rbd driver" - Dell EMC SC: ISCSI initialize_connection fixes. Driver was not honoring the server in ISCSI and returning connection information for all servers (IQNs) connected to a volume. If multiple servers are mapped to a volume the driver was only returning the first server for a given portal. Closes-Bug: #1756914 Change-Id: If65780000fa8f59f663b00b88584cf289effa590 - nimble: update documentation for supportability - update the ocata supportability for Nimble OS - update supportability for single subnet with multiple interfaces - remove unsupportability for unicode Change-Id: I419fdb69f27232663aaa4bff5fa3ec925cb221d4 Closes-Bug: 1755546 - Fix incorrect usage of assertEqual() method in RBD unit tests This patch is to fix some incorrect usage of assertEqual() method in RBD unit tests, and the right way is to use with assertEqual(expected, actual). Change-Id: Ib38890e5cffbbd5dd2c31fad35bfba442519df26 - Add missing 'target_obj' when perform policy check Generally, we have to pass target object to ``authorize`` when enforce policy check, but this is ignored during our develop and review process for a long time, and the potential issue is anyone can handle the target resource as ``authorize`` will always succeed if rule is defined ``admin_or_owner`` [1]. Luckily, for most of those APIs this security concern is protected by our database access code [2] that only project scope resource is allowed. However, there is one API that do have security issue when administrator change the rule into "admin_or_owner". 1. "volume reset_status", which cinder will update the resource directly in the database, procedure to reproduce bug is described on the launchpad. This patch intends to correct most of cases which can be easily figured out in case of future code changes. [1]:73e6e3c147/cinder/context.py (L206)
[2]:73e6e3c147/cinder/db/sqlalchemy/api.py (L3058)
[3]:73e6e3c147/cinder/api/contrib/admin_actions.py (L161)
Partial-Bug: #1714858 Change-Id: I351b3ddf8dfe29da8d854d4038d64ca7be17390f - Merge "[sytle] use http code constant instead of int" - Fix policy in code docs for extended_snapshot_attributes This is to fix policy in code docs for the policy 'volume_extension:extended_snapshot_attributes' which currently incorrectly says that the policy is enforced for GET /snapshots which is wrong [0]. According to the code, the policy is enforced for show and details (GET /snapshots/{snapshot_id} and GET /snapshots/details) [1]. This was also confirmed using Patrole test [2]. [0]831665f59a/cinder/policies/snapshots.py (L48)
[1]831665f59a/cinder/api/contrib/extended_snapshot_attributes.py (L30)
[2] I7770148584e10a08b3e133b1793a1533f1728fc1 Change-Id: I7b5a870bf74574f45fc46fdccb9551a2e911f360 - Merge "V3 jsonschema validation: qos-specs" - Merge "Fix missing print format error" - Merge "VMAX docs - prefix emc-vmax-driver.rst with 'dell-'" - Merge "Use soft authorize for 'extended_snapshot_attributes' policy" - Merge "Adding Glance method for listing image members and unit test" - Merge "Storwize: filter active wwpns for NPIV" - Merge "Adds a Cache for Volumes Created from Snapshots with Quobyte" - Merge "V3 jsonschema validation: volume_image_metadata" - Merge "Support cross AZ backups" - Merge "Avoid build system IP going into sample config" - Updated from global requirements Change-Id: Iaaf0d321b0321ac50102c8d96d7899af173a8cb8 - Imported Translations from Zanata For more information about this automatic import see: https://docs.openstack.org/i18n/latest/reviewing-translation-import.html Change-Id: Ibe533c9a6504ae40c3a21e7b826e99ac4294d908 - Merge "Revert "Stop unnecessarily querying storage for stats"" - Merge "Support multiple processes on Cinder Backup" - Merge "Add ISCSI driver for Veritas Access" - Revert "Stop unnecessarily querying storage for stats" This reverts commit 458840ddb12164c27054413bb7a7ffcd168b614e. We've seen a spike in scheduling failures since this merged, presumably because the scheduler doesn't have the latest information and thinks the storage backend is at capacity. Change-Id: I5b6645cfd1277f315eb9cf186848d0eea8bc0b98 Closes-Bug: #1741275 - Storwize: filter active wwpns for NPIV Currently, both active and offline wwpns are reported to the fc_zone with NPIV feature. Actually only the active wwpns should be reported. This patch updates the cli lstargetportfc to filter the active wwpns. Change-Id: I7b51b8ed12d1951a3e2356f88898a0779e858d41 Closes-Bug: 1756242 - Use soft authorize for 'extended_snapshot_attributes' policy Cinder use soft authorize to control whether display snapshot's additional attributes, this is broken during policy in code changes. Change-Id: I4b1b3432275defafcfc60465d3079bc9d70c4f56 Closes-Bug: #1756002 - Merge "Updated from global requirements" - Add ISCSI driver for Veritas Access This driver implements all the minimum required features for cinder. Change-Id: I48b59a2ecab8b856547a4ae17e6e0fd04094475a Implement: blueprint veritas-access-cinder-iscsi-support - Adding Glance method for listing image members and unit test This is necessary for checking from Cinder's side whether the current project has access to an image with 'shared' visibility. Often a clone_image request will arrive at a driver with Glance pointed at the same backend and within Glance the image is set to 'shared' visibility. Currently the driver will have to call Glance directly to determine if it should continue cloning the image, or return a permissions error. Change-Id: Idb9641e136bfc38bbfa881452053056e74bd0553 - Merge "Move doc of report backend state to cli" - Updated from global requirements Change-Id: I74a5c7023c0678f04cd4390181f9641b5eb49c83 - QNAP Drivers - Move from httplib to requests Use driver_ssl_cert_verify under backend section to enable or disable SSL verfication. NOTE: IPv6 isn't supported by QNAP driver. Change-Id: Iba886fd0bd401052a444eb7a4427607e693d7c81 Closes-Bug: 1658766 Partial-Bug: 1188189 - Support multiple processes on Cinder Backup Cinder Backup has always been run as a single process, and this works fine if the number of backups is small, but there are deployments where a big number of backups are run simultaneously, and in such cases we will find a bottleneck on CPU intensive operations, like compression and SHA calculations, since we are using a single process and therefore a single CPU core. This patch adds support to define the number of processes we want to run on the backup service using a new "backup_processes" configuration option. When running multiple processes they will all be running as children of a parent process, but when running a single process it will run on its own. To preven race conditions and avoid the backup service from becoming available before it should only the first process will do the initial cleanup and all the others will wait on a lock until it is released by this first process. Change-Id: Ib43095024754a6219eb51cc0663913fac10bb642 - V3 jsonschema validation: volume_image_metadata This patch adds jsonschema validation for below volume image metadata API's: * Set image metadata for a volume POST /v3/{project_id}/volumes/{volume_id}/action * Remove image metadata from a volume POST /v3/{project_id}/volumes/{volume_id}/action Note: In this patch it will raise BadRequest(400) if user passes long key and long value(greater than 255 characters) for metadata. Earlier it was raising HTTPRequestEntityTooLarge(413) on master. Partial-Implements: bp json-schema-validation Change-Id: I226391f60c0577d83c9beb94bfe1bc08ab22b708 - Updated from global requirements Change-Id: Ie6621af977a80bdd39dc4f2bc90b8881f64b8cd6 - Merge "Fix api-ref response code title levels" - Merge "Fix API reference attach_mode parameter default for attachments API" - Fix missing print format error Missing print format will cause 'ValueError: unsupported format character' error, this is to fix it. Change-Id: I6ee192a95d86209d041a4675935fc1643483571f - Merge "Clean out config deprecation information" - Merge "Stop unnecessarily querying storage for stats" - Fix api-ref response code title levels Using the wrong character resulted in the wrong title level being used for the response codes, which in turn caused the "detail" show/hide toggle to not be able to hide all of the per-endpoint details. This corrects these to be at the correct level. Also ran into issues after changing them where sphinx was not happy with the random title levels. This appears to be due to the order processed and whether not earlier included files had all subsequent levels. Adding an additional title in our first included file resolved that problem. Change-Id: I19405778980310f2d6d06eb7b23102f74a3d6e03 Closes-bug: #1755566 - Clean out config deprecation information Nova settings were deprecated, then removed in change Ic112a68101c0dcb14da0db06c62ae190474a37d9. Some legacy info was left behind in one of the new options referring to the old config setting that should now be removed. Change-Id: I031e5ffbc11c4b044f3baf808d852ce871a2d6c5 - Fix API reference attach_mode parameter default for attachments API The default attach_mode for volume attachments is "rw", as can be seen from looking at the VolumeAttachment.finish_attach method and VolumeManager.attachment_update method. The REST API itself does not set or return a default attach_mode, it's all set in the data model when the attachment is 'completed' by assigning a host connector. Change-Id: I1e41e93bd534d830311a653eb16fef89a2d8431a - Merge "use defusedxml to avoid XML attack" - Merge "Updated from global requirements" - VMAX docs - prefix emc-vmax-driver.rst with 'dell-' Rename emc-vmax-driver.rst to dell-emc-vmax-driver.rst Change-Id: I0d6b39c845998d4228a162b022aad1e2402b097e Closes-Bug: #1754604 - Enable slow tests for lvm-barbican job We would likely benefit by running tempest.scenario.test_encrypted_cinder_volumes tests and TestVolumeBootPattern.test_create_server_from_volume_snapshot Change-Id: I5082926cc5ede463d67e3ab995e17983b5db3855 - VMAX driver - Replication failover performance improvement Currently, failover of synchronous volumes on a VMAX backend can take a long time as each volume is failed over consecutively. This patch rectifies the issue by creating an internal group to facilitate the use of group API's in the backend instead of volume API's, meaning the volumes can failed-over concurrently. Change-Id: Ie805c680662c160b77afcef47a3e0443bf1b15ef Closes-bug: 1747894 - V3 jsonschema validation: qos-specs This patch adds jsonschema validation for below qos-specs API's * PUT /v3/{project_id}/qos-specs/{qos_id}/delete_keys * PUT /v3/{project_id}/qos-specs/{qos_id} * POST /v3/{project_id}/qos-specs Change-Id: I95756e549cc1b3bfbad16d029b7021527278b0d5 Partial-Implements: bp json-schema-validation - Updated from global requirements Change-Id: I1a457587821e87d00d8589c3f7db10e8f6826e3c - fix spelling error with errormessage Change-Id: Iafb48bcbfc85af2a33426048f85c7c281b767d89 - Merge "Use rest_status_code for api-ref response codes" - Merge "Remove ExceptionInParsingArguments" - [sytle] use http code constant instead of int To keep the consistency, using http_client.ACCEPTED instead of 202 in contrib/api/services.py Change-Id: I495fffe7180a0b1120b2413baef38d92ced8fd56 - Merge "VMware: Option to specify datastore name regex" - Remove ExceptionInParsingArguments This exception does not appear to be used anywhere. Change-Id: I1fb5380c4e00bc54a8ecc2fc0fca3d059923909a - Avoid build system IP going into sample config We should not show the IP address of the build system as the sample default for my_ip in /etc/cinder/cinder.conf.sample . This patch sets a sample_default that will be used instead. Change-Id: If9ba07bb7f83c2ad3d89e2d5264c064117bbad23 closes-bug: 1755282 - Merge "Add 'metadata' in backup detail&show API document" - Merge "Add unit test coverage for backup chunkeddriver class" - VMAX driver - Retype replicated volumes This patch delivers support for retyping (storage-assisted migration) volumes with a non-replicated volume type to a replicated volume type; replicated to non-replicated; and between two replicated volume types with differing service levels. Change-Id: Ic86826dccc7b830db15fb8a2eeb888dbb895292d Implements: blueprint vmax-retype-replicated-volumes - use defusedxml to avoid XML attack According to https://docs.openstack.org/bandit/latest/api/bandit.blacklists.html Using various XML methods to parse untrusted XML data is known to be vulnerable to XML attacks. Methods should be replaced with their defusedxml equivalents. Change-Id: Icdd807c8fd47ce0df3e292eef910e6e6e7610686 Partial-Bug: #1732155 - [VNX] Restore snapshot to volume Add `revert_to_snapshot` API support for VNX Cinder driver. Implements: blueprint vnx-revert-to-snapshot Change-Id: Id6e3090d96a5bbf4879e8577fe3565c3032de228 - Merge "ScaleIO: Add documentation for containerized overcloud" - Merge "RBD: Don't query Ceph on stats for exclusive pools" - Merge "Updated from global requirements" - Merge "Update links in README" - Merge "INFINIDAT: add support for multi-attach" - Merge "Add backup restoration cancellation support" - Merge "Add backup cancellation admin doc" - Merge "Fix leftovers after backup abort" - Merge "Allow configuring tpool size" - Merge "Parse endpoint arguments in SolidFire" - Merge "NetApp: Add use-exact-size parameter when creating a LUN on ONTAP iSCSI" - Merge "Fix typo errors" - Update links in README Change the outdated links to the latest links in README Change-Id: I93a9cdc947eea82312327908e7d652aae671c07b - Updated from global requirements Change-Id: I72211484b3db336f4cd46e674a7ab0b2d892c84d - Merge "Api-ref:Add target volume preconditions for backup restore." - Merge "modify the http link to the https link" - Merge "Add documentation for capacity based quality of service" - Merge "Make the LVM Barbican job vote" - Add documentation for capacity based quality of service Change-Id: I8a97c3952523c15eeab2e14fa06a426b4f8bc587 - Merge "Update doc name and path for dell emc vnx driver" - Merge "Delete redundant code" - Make the LVM Barbican job vote This is the only job that tests Cinder+Barbican integration. It should be voting, as this is vital for users of encrypted volumes. Change-Id: I1b2e29da5d25aefe9183660820ab759c65301e30 - Fix typo errors This patch is to fix some typo errors in test_host_manager.py and in log messages. TrivialFix Change-Id: I402c252e2fc4221de06676dfdb1ed1883491b2ad - INFINIDAT: add support for multi-attach Multi-attach has been supported by the InfiniBox for a long time now. As it is now supported by Cinder, this commit enables this capability for the driver for attachments done either through Fibre Channel or through iSCSI. Change-Id: Ic84eb3d88cc2130192434b3b49e0e53c2717c6b0 - Update doc name and path for dell emc vnx driver Change-Id: I472a8413364d1bd011abff388945b6683f66ea04 Closes-bug: #1754549 - Use rest_status_code for api-ref response codes Rather than our freeform way of listing response codes in our api-ref, we should be using the os-api-ref extension option to get nicely formatted response code listings. https://docs.openstack.org/os-api-ref/latest/usage.html#rest-status-code Change-Id: Iee21f54fe7cf0ea28258966e2d0f8fa2849c83f2 - Add support for unmanaging snapshot of rbd driver When introducing managing existing snapshot to rbd driver, I think it should inherit from ManageableSnapshotsVD. On the other hand, I did one of the simplest implementations like unmanage volume. Change-Id: I61f2a63ac559be71f293fca685fd12bdac6bd032 - Stop unnecessarily querying storage for stats Refreshing the stats is a costly operation for most drivers, but we are still calling it on 3 manager actions that don't require it: - delete_volume - retype - delete_group This is probably due to an unfortunately naming of the method, because `publish_service_capabilities` seem to indicate that we'll only be publishing this information, but the method is also refreshing the stats from the driver. This patch removes all unnecessary calls to `publish_service_capabilities`. Change-Id: If2ae4abfa0e961607591239dabce8e539994a7da Closes-Bug: #1750885 - Allow configuring tpool size The RBD driver and almost all backup drivers rely heavily on eventlet's tpool, which has a default of 20 threads, which will be too low. Currently the only way to change this is using the environmental variable EVENTLET_THREADPOOL_SIZE, which isn't very clean for the openstack services. This patch adds the possibility of setting specific values for each backend and for the backup service, and increases the default for the backup service from 20 threads to 60. The backup service can be configured under [DEFAULT] section with option backup_native_threads_pool_size, and the backends under their specific sections with backend_native_threads_pool_size. Change-Id: I5d7c1e8d7f1c6592ded1f74eea42d76ab523df92 Closes-Bug: #1754354 - Add backup restoration cancellation support Backups can be cancelled by force deleting the in-progress backup, but there is no mechanism to delete the restoring backups. We will now monitor the status of the backup and on any status change will abort the restoration and change the volume status to error. The reason to diverge from the backup creation cancellation implementation (deleting the new resource) is that the restoring may be done into an already existing volume and deleting it is not feasable for the user, for example when an instance is booted from a Cinder volume and there's a license linked to the System ID. Cinder backup drivers may now raise BackupRestoreCancel in `restore` method when a restoring operation is cancelled. Change-Id: If2f143d7ba56ae2d74b3bb571237cc053f63054e - Merge "Imported Translations from Zanata" - Merge "Storwize: update flashcopy_rate range and add it to volume type" - Merge "Add 'list_volume' in Group show&list API Doc" - Merge "Updated from global requirements" - Imported Translations from Zanata For more information about this automatic import see: https://docs.openstack.org/i18n/latest/reviewing-translation-import.html Change-Id: Ib60af0b782073afd09f782a060b21283323fab1b - Merge "Correct attachment create success response code" - Merge "Dell EMC SC: Added timeout options for SC driver" - NetApp: Add use-exact-size parameter when creating a LUN on ONTAP iSCSI When a cinder volume is created the ontap backend fits the LUN to the best geometry. It makes the image uploaded from a volume larger than expected and a volume of larger size must be created from that image. Using the use-exact-size parameter the backend does not fit to best geometry, the image uploaded from that volume has the same size and a volume of the same size may be created from that image. Nevertheless this parameter is available only in Data ONTAP 9.1 (ontapi version 1.110) and later. Closes-Bug: #1731474 Change-Id: I0e21cbcb6effa1e72999580564099976511ca4a9 - Storwize: update flashcopy_rate range and add it to volume type The flashcopy rate max value updated from 100 to 150 since Storwize release 7.8.1. This patch modifies the storwize_svc_flashcopy_rate max value to 150 and adds flashcopy_rate to volume type Change-Id: I27075fb13a0f9cc140445b8b0e8c3fc7ca7ae944 Closes-Bug: 1753908 - Add 'list_volume' in Group show&list API Doc Add API document for 'list_volume' in Group show&list APIs. Code patch: https://review.openstack.org/#/c/409694 Change-Id: Ib328b62c61ec8b8afed3de07020c7ae2bfb163be - Merge "VMAX driver - Concurrency issues involving replicated volumes" - Dell EMC SC: Added timeout options for SC driver Added dell_api_async_rest_timeout and dell_api_sync_rest_timeout to allow setting of async and sync timeouts for the Dell EMC SC REST API. The user should generally not set these. They should be set only when instructed by support. Fixed a couple of comments. Updated documentation. Change-Id: Id8fd27d83e2f97070f67523c9c2d8c59f66e6caa - Merge "Improve ChunkedBackupDriver hashlib calls" - VMware: Option to specify datastore name regex Adding option 'vmware_datastore_regex' to specify the regex pattern to match the name of datastores where backend volumes are created. Change-Id: Ie95d1551b9fbfd36313fd530f9cf06b83735a26c - [api-ref] Fix 'volume_id' for in the v3/volumes-v3-volumes-actions.inc The 'volume_id' in "Revert volume to snapshot" shoud be in the path. So fix the paremeter. Change-Id: Ia3e791f82f11740533e4320d546cb0cd67942712 - Updated from global requirements Change-Id: Id60cce4ebb947465d9bea57056ed6b73456dcd05 - Delete redundant code disk_format is checked by 'image_utils.validate_disk_format', so disk_format will not be 'parallels' in any case. Change-Id: I6dd7199cf3978aa7f5825d01436245f4f53b5f9b - Parse endpoint arguments in SolidFire The SolidFire driver was assuming the same login/password and port settings when building endpoint info for replication targets. This was true even if the config specified these fields as being different in the config entry for the replication device. This change updates the private build_endpoint method to actually read any kwargs passed in to it and use them. Change-Id: I8f95c891c9ee64fb8dd6b541be15fff539e2ab21 Closes-Bug: #1751917 - Api-ref:Add target volume preconditions for backup restore. the status of volume must be available. the size of the volume must be equal to or greater than the backup size. Change-Id: I89bb72741aec5e73789a5a5cec1bc363f79c766c - Support cross AZ backups We currently limit backups to the same AZ of the volume while allowing volume restoration to any AZ. When having multiple AZs it is ideal to store your backups in a different AZ than the one where the source volumes are stored. This patch adds microversion 3.51 where we allow requesting the AZ where we want to store backups which will allow us to have as many backup AZs as volume AZs and do cross AZ backups for increased security, this feature also supports having an additional AZ just for backups or the less desirable solution where you store all your backups in a single AZ shared with some of the volumes. Change-Id: I595932276088d25abd464025c99dce33a2cc502b - Improve ChunkedBackupDriver hashlib calls Currently we have 2 hashlib calls withing the ChunkedBackupDriver, one to calculate the MD5 of the chunk and another to calculate the SHA256 of the blocks within each chunk. This patch improve interactions between cinder and the hashlib library method calls by making sure MD5 and SHA256 related calls are execute in a native thread to improve context switching responsiveness within eventlet. The MD5 of a 1GB chunk could take around 4 seconds, so the overhead of creating a native thread is acceptable, and for the SHA256 instead of creating a thread for each call we create a single thread to do the calculations of all the blocks, thus making it cost effective. Current code slices the data into blocks, which means that the data is being copied, but this has now been switched to a memoryview object to take advantage of the buffer protocol so copying of data is no longer necesary. Change-Id: Ifb65b8008f30bc9cc4b6cd9b867a726ec4ed4707 - RBD: Don't query Ceph on stats for exclusive pools Collecting stats for provisioned_capacity_gb takes a long time since we have to query each individual image for the provisioned size. If we are using the pool just for Cinder and/or are willing to accept a potential deviation in Cinder stats we could just not retrieve this information and calculate this based on the DB information for the volumes. This patch adds configuration option `rbd_exclusive_cinder_pool` that allows us to disable the size collection and thus improve the stats reporting speed. Change-Id: I32c7746fa9149bce6cdec96ee9aa87b303de4271 Closes-Bug: #1704106 - Adds a Cache for Volumes Created from Snapshots with Quobyte This is not related to the Cinder image cache. In order to speed up the creation of multiple volumes from a single snapshot this change adds a cache of volumes created by merging a snapshots backing chain to the Quobyte driver. This behaviour can be activated via a new config option 'quobyte_volume_from_snapshot_cache'. Instead of merging a snapshots backing chain into a new volume each time a volume is created from this snapshot, the new implementation merges the backing chain into a volume in the new volume cache. New volumes to be created from that snapshot are then copied from the cached volume and no longer require the merging process. Merging happens only for the first time when the cached volume copy is created from a specific snapshot. Subsequent creations of volumes from this snapshot are simply copied from the cache which requires no costly backing chain merge. Partial-Bug: #1715078 Change-Id: I2142b1c0a0cc2c4f85794416e702a326d3406b9d - Add unit test coverage for backup chunkeddriver class Only indirect test coverage exists for this abstract base class. This patch expands testing coverage specifically for this class's methods. Change-Id: I5cdb8677f7a137f35a8f4b24ea4a4b0a40e76e9c - Correct attachment create success response code The attachment create call was returning HTTP ACCEPTED, which implies an asynchronous operation. This call is not async, so corrected this to return SUCCESS instead. Change-Id: Ieae4e883a77ede0ba0c8a5fca4423f45e0212b2b Closes-bug: #1747481 - VMAX driver - Concurrency issues involving replicated volumes VMAX driver currently has some limitations surrounding concurrent operations involving replicated volumes. The next version of Unisphere for VMAX has some improvements made in this area. One of these improvements is on volume retrieval from the array. This patch switches to the 90 endpoint on volume retrieval, where supported, to utilize the improvement. Change-Id: I0ac7f98e529961ab559289e257b4f58c8577e121 Closes-bug: 1753707 - Merge "ScaleIO Driver: Document support for ScaleIO 2.5" - ScaleIO Driver: Document support for ScaleIO 2.5 Add newly released version of ScaleIO to the list of supported versions within the Configuration Guide. While there simplify the document to refer to official ScaleIO docs for any specifics. Change-Id: Ibdef4b2d464a418f82ef0684659dd1cf4896b7b2 - Merge "VMAX doc - Queens feature documentation" - Merge "Dell EMC SC: Error Deleting Consistency Group" - Dell EMC SC: Error Deleting Consistency Group Checking a return on something that doesn't return. Closes-Bug: #1752930 Change-Id: I5b6ae809814517657390b91878b917383eabd543 - Merge "Add functional-py35 gate job" - Add functional-py35 gate job We have functional tests that run under py35, but they are not currently run in gate. This adds the common job definition to our locally defined list of tests to run. Change-Id: Icf477415c7ac54bb007cacc1a1ba905e63fa2780 - Merge "Remove utils.read_file_as_root()" - Remove utils.read_file_as_root() This is no longer used, and removes a rootwrap entry. Change-Id: Iad1f96de38cf23b85241bac4231c26e866ad4519 - Merge "Move release note put in wrong location" - Move release note put in wrong location One of our release notes was accidentally put into a releasenotes/notes directory under releasenotes/notes. This moves it to the right location and removes the extra directories. Change-Id: Idd7bd9ae499a477c08a06ed38e2bbe922ec0c955 - Merge "3PAR: Add `force detach` support" - 3PAR: Add `force detach` support Add support to force detach a volume from all hosts on 3PAR. Change-Id: I2ddd0be0d59018db43dca297585d5cb2ee459ede Closes-bug: #1686745 - Imported Translations from Zanata For more information about this automatic import see: https://docs.openstack.org/i18n/latest/reviewing-translation-import.html Change-Id: Id11dd66cc3e5d101f054431b13b680373c9056fa - Merge "Fix the testcase of test_cmd" - Fix the testcase of test_cmd Any configured value of cluster would lead to the failure of test_cmd testcases, fix this by override the option with None value. Change-Id: Ibaedaca5c5ede285cd39b2793e67895d326672fb - Merge "Fix allocated_capacity_gb race on create volume" - Fix allocated_capacity_gb race on create volume Because of the stat reporting mechanism used in Cinder and because we don't update the allocated_capacity_gb in the volume service until the volume's creation has been successfully completed we have race conditions between the scheduler's value and the volume's value that may induce the scheduler to provision more volumes than what it should allow. This patches fixes this by assuming that the create volume operation on the volume service will be successful, and thus increases the allocated_capacity_gb value when the operation starts and reverts the increase if we reschedule the creation. Closes-bug: #1751057 Change-Id: Ia321a08d102a9a4f535e46158764cb7f9bc81a9d - Merge "RBD: Add comment about multiattach support" - RBD: Add comment about multiattach support Add a comment discouraging multiattach support being flipped on without proper investigation and design. Change-Id: If9885dd3a2e79af4249418fedfe8f3bf73ad2ef5 - Imported Translations from Zanata For more information about this automatic import see: https://docs.openstack.org/i18n/latest/reviewing-translation-import.html Change-Id: I571ad77fe7da5c0de5af3e7eb939a94728fbf01f - Merge "RBD: Improve connection debug statement" - RBD: Improve connection debug statement When the driver fails to connect to a ceph cluster, having all of the connection parameters in the debugging statement is of great use in diagnosing misconfiguration. Change-Id: I5996efba202891020b859310d31c4efd45817829 - Merge "Add throughput limits that scale per-GB" - Add throughput limits that scale per-GB This allows new values in QoS specs: - read_bytes_sec_per_gb - write_bytes_sec_per_gb - total_bytes_sec_per_gb The bytes value specifed in the QoS spec is multiplied by the size of the volume in initialize_connection, and the result is passed along like a standard <x>_bytes_sec QoS value. Change-Id: Iafc22d37c4c50515d9f6cf1144ea25847c90f75d - Merge "Fix typo in test_qnap" - Merge "Add python 3.5 in classifier" - Merge "Schedule request to scheduler when manage existing snapshot" - Merge "Fix AZ not matching backend after migration" - Merge "Fix json data format" - Merge "Fix reporting old stats" - Fix reporting old stats For the stats reporting we have a decoupled implementation where the gathering of stats from the backend and the submission of these stats to the schedulers are run in independent periodic tasks. The problem with this implementation is that we'll be getting old stats all the time because of the threading model we are using. Since we have greenthreads we will not switch threads until we do I/O, so if the _publish_service_capabilities periodic task is invoked first we won't switch to the _report_driver_status until we send the capabilities update. And even if we start the _report_driver_status task first as soon as it does some I/O to query the backend we'll be switching to sending the cached data to the schedulers. It may not sound like a big problem, but when you are quickly creating a great number of big volumes having an additional minute old data can be problematic. This patch changes the way we do the status reporting and ensures that we are always sending the newest data. There could only be 1 drawback to this change, and that is if a driver takes longer than 1 minute to gather the stats, because in this case a newly started scheduler will take a little longer to have stats for this backend. But it doesn't really happen, because the schedulers actually request the volumes for their capabilities on start up. Change-Id: Id203a3a8b8c09e6415dcd26cc5ae684f702b8457 Closes-Bug: #1750878 - Merge "Reserve 5 migrations for DB backports" - Reserve 5 migrations for DB backports Reserve 5 database migrations in case we need to backport changes to the stable/queens branch. Change-Id: Iccf87ee22c4e8dce03067fc3435aea1bbb33f61e - Merge "Log config options with oslo.config" - Log config options with oslo.config This removes some custom Cinder code which handles filtering secret config options in a flaky way. Filtering will now be based on the "secret=True" option flag. Related-Bug: #1750074 Change-Id: I1c404b057d1471c85bd7eaf5c096f5912293460a - Merge "Change order of installation to match previous" - Change order of installation to match previous Re-ordered installation sections to match previous releases. Change-Id: I8c67843a448049d8424c0fb1e34cf4a954e9ac91 Closes-Bug: #1750888 - Merge "Add Windows volume backup support" - Merge "Enable hash randomization in unit tests" - Enable hash randomization in unit tests This is needed to ensure that unit tests match how deployed environments run. Related-Bug: #1348818 Related-Bug: #1658725 Related-Bug: #1715915 Depends-On: I91a53fdef98c9a14ccc536403063e228e99d6971 Depends-On: Ie548c90f5657e5270fd966207f453d5211e21867 Depends-On: I754d48d8bc4081b96fdf90465c4897d0fadd6262 Depends-On: Ia8762aff6fd9954d350310b4c68ee4fe94de68bf Depends-On: I6fe0ae5da270d9c77cb248551dcb32a5c063977a Depends-On: I96b9b413387f2ef02ea7ccfb6e676cad0b87c6f1 Depends-On: Icdde5e3f213adfe4893d1b9e8f2bfe4f61704037 Depends-On: I29a874ebe0ebaeca58b428faa0bab50482baf6f1 Depends-On: I30817ae767e08c45f9540b19e922864fe2f7a9c2 Depends-On: I281ad59fa518f936aa8d1b518acf61800ba949f5 Depends-On: I0abd0415306c0c0544eb5d9a6ed08640ff6bb0cf Depends-On: I599b585444cbd51182d9f17fddd97bd91637e1e3 Depends-On: I6e4093ca8e79128ed23a4d5068e5d2870e16332c Depends-On: I574dca83a971e746a54895a87e394befda0ccdcf Depends-On: Id5a961c66a62e289a96daa7437374768ef407bb6 Depends-On: Ibc6c20e6ffce58c6bbef3155f73e54909d76e132 Change-Id: I4c7396f9d8e58ac8420754503f8ed60cd7473426 - Merge "Tests: Fix 3par tests with hash randomization" - Tests: Fix 3par tests with hash randomization "fcwwns" does not have a deterministic order -- account for this in the unit test. Change-Id: Id5a961c66a62e289a96daa7437374768ef407bb6 - Merge "Fix grammar error" - Merge "Modify broken link" - Merge "SMBFS: allow snapshot ro attach" - Merge "Imported Translations from Zanata" - Imported Translations from Zanata For more information about this automatic import see: https://docs.openstack.org/i18n/latest/reviewing-translation-import.html Change-Id: I34e9430193db1d0ba9422415ef5e223d68be8574 - Merge "DS8K: Correct create volume behavior for CG" - Merge "SMBFS: fix creating volume from snapshot" - Merge "Tests: Fix backup validation with hash randomization" - Tests: Fix backup validation with hash randomization The exact error generated here can vary depending on Python version, jsonschema version, and hash randomization. Ensure that a useful message and HTTP 400 is still generated. Change-Id: Ibc6c20e6ffce58c6bbef3155f73e54909d76e132 - Merge "Cinder logs rabbitmq password on connection log" - Cinder logs rabbitmq password on connection log Cinder displays rabbitmq password if debug is enabled. Closes-Bug: 1750074 Change-Id: I117319ac12991e4b46170fe71d18a65ea4c98556 - Merge "Remove legacy driver name mappings" - Merge "Change 'hpe3par_snap_cpg' to 'hpe3par_cpg_snap'" - Change 'hpe3par_snap_cpg' to 'hpe3par_cpg_snap' Wrong parameter name for hpe3par SAN snap CPG configuration in Cinder documentation Change-Id: I5b2683559582a1bbb10b5b7bcc04115adb476977 Closes-Bug: #1747845 - Merge "docs: Fix volume encryption link" - docs: Fix volume encryption link Currently, the volume encryption documentation has a link that points to itself, instead of pointing to the Horizon docs. This patch updates the link to point to the Horizon docs. Change-Id: Ic5e1e3e865ee83f23e651b34bf2ef236ac3b269c - Merge "Updated from global requirements" - Updated from global requirements Change-Id: I782614f4292be1b33ba658589c1ac808fde980dc - Merge "Tests: Disable 2 netapp unit tests" - Tests: Disable 2 netapp unit tests These tests do not pass with python hash randomization enabled, on py2 or py3. Disable them so we can enable hash randomization for all other tests. Change-Id: I338a55d7df298c00c365be6e523ca63a815d8250 Related-Bug: #1715915 - Merge "Tests: Fix NetApp tests with hash randomization" - Tests: Fix NetApp tests with hash randomization Values in initiator target maps are ordered randomly depending on the hash seed used -- account for this in unit tests. Partial-Bug: #1715915 Change-Id: I599b585444cbd51182d9f17fddd97bd91637e1e3 - Merge "Tests: Fix VMAX tests with hash randomization" - Tests: Fix VMAX tests with hash randomization These tests rely on comparing strings that are generated from dicts, which may be randomly ordered. Change-Id: I574dca83a971e746a54895a87e394befda0ccdcf - Add multiattach reporting to SolidFire Wonders never cease! Multiattach has landed, the cow jumped over the moon and they put Humpty Dumpty back together again! This change just addes multiattach=True to the SolidFire driver now that everything has in fact landed. Change-Id: I53e94a827c3ba31c7322e6faecfcc8ebf4a05b4a - Merge "Only enforce multiattach policy for retype target" - Only enforce multiattach policy for retype target We should only be checking multiattach policy if the target of a retype is multiattach capable. If they are already on a type and policy has changed, we should not block retyping. Change-Id: Id4cfb7771439940c59b828ea7f1d95bcfe7d1e26 - Merge "Fix find -delete race in tox" - Fix find -delete race in tox If you launch py35 and py27 envs from the same directory simultaneously, the find -delete commands here will race against each other and cause a failure. Set the find option to ignore readdir races. Change-Id: I4977ad687150b5a1d6f09a961fca4db5d768ef71 - Merge "Tests: Fix inspur tests with hash randomization" - Tests: Fix inspur tests with hash randomization These tests rely on randomly ordered lists. Change-Id: I6e4093ca8e79128ed23a4d5068e5d2870e16332c - Use oslo_db.sqlalchemy.test_fixtures The change in Iaf77db73e368aee0d09b4c8e76f180f394f1aa37 makes use of oslo_db.tests.*, which was not the intent of the deprecations added to oslo_db in I0163e637ffef6d45d2573ebe29b5438911d01fce. Make use of the newer fixtures in oslo_db.sqlalchemy.test_fixtures which is what was intended to supersede oslo_db.sqlalchemy.test_base. Change-Id: I49a5e61345ce7c90a527367ae69a28ac04295865 - Merge "Fix spelling mistakes" - Merge "Fix typos" - Imported Translations from Zanata For more information about this automatic import see: https://docs.openstack.org/i18n/latest/reviewing-translation-import.html Change-Id: Ia26eebe7b5777c5a72c6407de242e683683d94dc - Merge "Imported Translations from Zanata" - Imported Translations from Zanata For more information about this automatic import see: https://docs.openstack.org/i18n/latest/reviewing-translation-import.html Change-Id: Ia7307469eb991ea9f43d4eadcb4ca67a22ad5790 - Merge "Stop a connections leak when freeing an SSHPool" - Stop a connections leak when freeing an SSHPool In SSHPool when we free the SSHpool add a destructor that closes all the connections in the SSHPool. In the SSHPool when we resize to make the max_size smaller that current_size or otherwise end up with a current_size being greater than the max_size, we now close the connection by adding a put method that closes the connection before discarding the connection. Added UT Change-Id: I655458e39676e18b2dd8efe9dbc66544b4260e61 Closes-bug: 1748558 - Merge "Remove deprecated fatal_exception_format_errors option" - Remove deprecated fatal_exception_format_errors option This config option was only used for internal testing. In Queens tests were updated to always do this, regardless of the config option. This removes the option. No release note included since this was really only an internal thing and mentioning there would probably just cause confusion. Change-Id: Ib3cde34d9a181107c77c31c22d225dab073f37b0 - Merge "Expand on mv 3.50 description" - Expand on mv 3.50 description The 3.50 microversion was added just to have a programmatic way of determining if the service supports multiattach. The text for 3.50 was very brief, so it wasn't really clear what this meant. Expanding on the wording a little to try to make it a little more clear. Change-Id: I9b731f8cb68e9339fd5a2831b76cb57a496b6908 - Merge "QNAP: Pass unit tests with hash randomization enabled" - QNAP: Pass unit tests with hash randomization enabled Since the tests for this driver test for URL strings including many parameters, sort the parameters so that the URLs are generated the same at all times. Change-Id: I0abd0415306c0c0544eb5d9a6ed08640ff6bb0cf - Merge "Tests: Fix python version check" - Tests: Fix python version check This version check assumes that there will never be a version of Python 3 after 3.5... Related-Bug: #1749953 Change-Id: I68f78dc37973a5f29f4ef110b4ff08716f2288be - Provide a hint when performing a volume action can't find the method There is no CLI for the os-force_detach volume action API, and while making a request for it with curl, I mistakenly used the Accept header rather than the Content-Type header and got the unhelpful error message: "There is no such action: None" We can provide some simple details in the error message about making sure the request body is correct and that the Content-Type header is specified to help the user. Change-Id: I00600c297e39c0dd097f9da80b1dccb38ee3d235 Closes-Bug: #1749983 - 3PAR: Monitor task of promoting a virtual copy In case of replicated, bootable or large volume, promoting a virtual copy takes some time to promote it. rcopygroup cannot be started when promoting is still in progress. This patch will monitor a task of promoting a virtual copy. Change-Id: If8a03e6aace393e86fc41ddf69bb724d963954e1 Closes-Bug: #1749642 - Merge "Admin guide documentation for volume multiattach" - Merge "api-ref: note that force detach is admin-only by default" - api-ref: note that force detach is admin-only by default I had to dig into the code to figure out that the force detach volume action was for admins by default. We should make that clear in the API reference. Change-Id: I3493e23dba8267fb7e403d30dd0d1e90c8f7726b - Imported Translations from Zanata For more information about this automatic import see: https://docs.openstack.org/i18n/latest/reviewing-translation-import.html Change-Id: I44b0f6c0626dd5f9514245448b9a4e8d23ea1afd - Merge "Remove deprecated service-to-driver mapping for backups" - Merge "Solving permission errors due to directory ownership on NFS" - Remove legacy driver name mappings We have several drivers that were renamed in Ocata, and one (Dell EMC SC Series) that was renamed in Pike. Since this has been over two releases, we can now remove the legacy name mapping for these drivers. Change-Id: I0a350c94ed4637c59b82dfad3926714451e37abb - Merge "Update reno for stable/queens" - Merge "fix misspelling of 'return'" - Modify broken link Fix a couple dead links. Change-Id: Ib0bdeeb01e35196ae862e3bf87e198b004f7403f - Merge "Fix the note of API version in admin doc." - Admin guide documentation for volume multiattach After giving some love to the multi-attach section it hopefully captures the main characteristics of the functionality that we usually include in the Admin Guide, such as volume creation, policies, microversions, and back end support. Depends-On: I11f97cf79e0c947b42de69cf8a7f6c1dbdb943a1 Co-Authored-By: Ildiko Vancsa <ildiko.vancsa@gmail.com> Change-Id: I77bb849e039e1b44964ac0f30d48b5c16ca41b44 - Remove deprecated service-to-driver mapping for backups It was deprecated in Queens and now it's safe to remove this feature. Change-Id: Idf5aafae7a7e0c0bdcb857ec1f5c939671d8ae54 - ScaleIO: Add documentation for containerized overcloud When running a containerized overcloud, an additional step is needed to map in the directories containing the ScaleIO SDC components. Change-Id: Iaa304ad80a84c3a649d53d519de0630c477a3429 - Solving permission errors due to directory ownership on NFS We do the same work as the GlusterfsBackupDriver, uses chgrp+chmod to set proper permissions on the directories if needs be. Change-Id: Ic57c122311039af159c0cfc083e6e9349702d1e4 Closes-Bug: #1715456 - Merge "Fix typos in cinder" - Merge "Imported Translations from Zanata" - Merge "Improve logs on scheduler" - Imported Translations from Zanata For more information about this automatic import see: https://docs.openstack.org/i18n/latest/reviewing-translation-import.html Change-Id: I329286cc7924eef207f0a8ef5e40796c2396f327 - Merge "Fix link error in 'Boot from volume' doc" - Merge "Enable multiattach capability for the zfssa driver" - Improve logs on scheduler Scheduler decisions still not easy to track due lacking of information about backends and pools. This adds more verbose information on that so we can have a better means to help debug problems. TrivialFix Change-Id: I4a59ed298ba2542dcb4d6787b47085749a34244e - Merge "nimble: update config doc to add missing extra-specs support" - Fix the note of API version in admin doc. Now, both V2 and V3 API support consistency groups, incremental/force flags in backup and get-pools. This patch corrects these nits. doc trivial fix Change-Id: Ic1b500dc84424593e8789f4ffed1900f3acb1c3c - Fix grammar error modify 'a' to 'an'. Change-Id: I3c27fa7aa3e4649bad4627bfd8847005baa639af - Merge "Remove "cinder-manage logs" commands" - Merge "Fix pylint error in DotHill drivers" - Remove "cinder-manage logs" commands These were deprecated during Queens. Change-Id: I1ce63c2143faad9ebeaacd47b0cd253fed1aa93b - Remove some unused parameters in parameters.yaml The parameters 'all_tenants' and 'vol_type_id' are unused, so remove them. Besides, move volume_type from path to body which is only used by api "Volume manage extension" in body. Change-Id: I66718cf5558a2c12f7cfe336000314291a6820ee - Fix typos There are two 'to', delete one of them. Change-Id: I933bf6612c4d2081fd645971f81a7ed165d30717 - Fix link error in 'Boot from volume' doc doc trivial fix Change-Id: I437937d2e454043824e2feacbdab30a051ddda6d - Imported Translations from Zanata For more information about this automatic import see: https://docs.openstack.org/i18n/latest/reviewing-translation-import.html Change-Id: I399215f4d3d95232cca79c742154ee44c3ca49c8 - fix misspelling of 'return' Change-Id: Ib52ad80562d1de0ccd6b5bdbd55d5ab32df366a7 - Fix spelling mistakes Change-Id: Iffc537547a542cb742af8e5255c926ef1dce44b0 - Fix typos in cinder Change-Id: I4563c2097906c9d9b71a8b4a4c7d530c050d128c - Enable multiattach capability for the zfssa driver Enable multiattach capability for the zfssa driver. Related to blueprint multi-attach-v3-attach Change-Id: If65300e0686ee5a0977e27380369d1638cd36e7e - Update reno for stable/queens Change-Id: I4b40bef06a82e79c1dcded8a2ec454bcc12b8e69 - Fix AZ not matching backend after migration When we migrate, or retype with migration, a volume between availability zones we are setting the AZ of the migrated volume to the same AZ as the source volume, so we end up with a volume where the AZ does not match the backend's AZ. This patch fixes this issue for the generic migration code as well as the optimized driver migration. Change-Id: Ia1bf3ae0b7cd6d209354024848aef6029179d8e4 Closes-Bug: #1747949 - Merge "Remove unused parameters in v2/v3 parameters.yaml" - Merge "Revert consumed quota when failed to create group from source group" - Merge "Zuul: Remove project name" - Merge "Use provider_id for SolidFire Volume lookups" - Merge "Deprecate Cinder Hosts API/Extension" - Merge "[VNX] `initiator_target_map` is None" - Use provider_id for SolidFire Volume lookups Over the years the various iterations of volume-get in the SolidFire driver has gotten a bit redundant. The biggest problem with all of these changes comes in when we start dealing with things like managed volumes, most of the methods we have in place expect the volume-name on the SolidFire backend to match the cinder UUID. In the case of manage, migrate and some other cases however, this isn't a valid assumption. SolidFire doesn't allow changing the name of an existing volume. You're only choice in that case is to clone or copy to a new volume, but that's terribly heavy weight in this case. So, what we need to do is harden the volume_get method a bit. We want to do a better job here, first by attempting to use the provider_id info that's stored with a volume, from there we can try some failback methods like looking for name:uuid map and finally checking attributes. This should make things much more efficient for delete calls, and fix the current bug due to imported volumes not having the cinder-uuid as the name. We need to do some follow up work and consolidate all of these get calls, but for now we just fix the recently reported bug. Change-Id: I1a1d02a1407926c22fbadcc1049434e24b92549b Closes-Bug: #1744005 - Merge "Make CinderException format errors fatal for tests" - Deprecate Cinder Hosts API/Extension This was added a long long long long time ago, but it was never fully implemented and is not used anywhere. It might be worth resurrecting and having, but it should probably be a first class API rather than an extension, and if nothing else it would be good if we want this to create a spec and have a real plan on it's implementation and usage. Bottom line, it's not used anywhere and the implementation is not complete. We could probably remove it safely, but let's deprecate it and fast track removal and possible replacement next cycle. Change-Id: I1a1920d141c8c32a8fb30bc6f73e955a1a1c5150 - Add Windows volume backup support This patch makes a few small changes that are required in order to have the Cinder Backup service working on Windows. - all physial disks must be open in byte mode. 'rb+' must be used when writing. - reading passed the disk size boundary will not return an empty string, raising an IOError instead. For this reason, we're avoiding doing it. - we ensure that the chunk size is a multiple of the sector size. - the chmod command is not available on Windows. Although changing owners is possible, it is not needed. For this reason, the 'temporary_chown' helper will be a noop on Windows. It's easier to do it here rather than do platform checks wherever this gets called. - when connecting the volumes, we pass the 'expect_raw_disk' argument, which provides a hint to the connector about what we expect. This allows the SMBFS connector to return a mounted raw disk path instead of a virtual image path. - when the driver provides temporary snapshots to be used during the backup process, the API is bypassed. For this reason, we need to ensure that the snapshot state and progress gets updated accordingly. Otherwise, this breaks the nova assisted snapshot workflow. We're doing platform checks, ensuring that we don't break/change the current workflow. The Swift and Posix backup drivers are known to be working on Windows. Implements: blueprint windows-smb-backup Depends-On: #I20f791482fb0912772fa62d2949fa5becaec5675 Change-Id: I8769a135974240fdf7cebd4b6d74aaa439ba1f27 - Merge "Storwize: avoid ascii code error for ssh response stderr" - Merge "Fix UnicodeDecodeError when decode API input" - Merge "Storwize: modify the self._helpers to backend_helper" - Merge "Rename lio job to lio-barbican" - Fix json data format Remove extra comma from sample json file. Change-Id: Id49838597b9e4f59742c1371d5be7159deabb002 - Fix UnicodeDecodeError when decode API input Convert UnicodeDecodeError to HTTPBadRequest in FaultWrapper. **NOTE**: Cinder will raise 500 error when failed to decode invalid unicode character at anyplace where try to collect url parematers as below: ``` params = req.params ``` This patch converts this kind of exception into BadRequest, plus an explicit error message. Change-Id: I816f05084b0a0ef670ef293d381868409b96ed7d Closes-Bug: #1746202 - Api-ref: add 'all_tenants' API query option Cinder REST API allows one to use a special query parameter named "all_tenants" to list resources from all projects (tenants) through the REST API: `/v3/{project_id}/volumes/detail?all_tenants=1` However, this option is hardly documented anywhere besides `/v3/{project_id}/volumes/summary`. So add them. Change-Id: Ia9cc9e20c3b333a054c90f07e952b61dfad8529e Closes-Bug: #1743800 - Make CinderException format errors fatal for tests This patch borrows very heavily from Nova change I680fd46d029ff58bd3b72ef7c7903c2271b26549. We have a config option to treat exception message formatting errors as fatal, but it turned out our overriding of that config option was not actually working. Since this is really something only useful for testing, and we pretty much always want errors like that caught in testing, this deprecates the option and changes the code to always enforce raising errors during unit testing when there are problems formatting any exception messages. The previous config option is pretty much useless now, but this way we are following the deprecation policy and we can remove it right away in Rocky. Closes-Bug: #1728984 Change-Id: Iaeb2657a6622cede32c5a59327393ca20758f3c3 - VMAX doc - Queens feature documentation Part 4 - Known issue around concurrent deletion of replicated volumes and minor amendments Change-Id: Ic06a4ee447872738ea8b51db741638b2f9043283 Partial-Bug: #1737735 - Revert consumed quota when failed to create group from source group When failed to created corresponding volumes in group, Cinder will destory the volume object, but consumed quota is left. Change-Id: Ief0637768cf1fe04bb4162e02008b4884a184051 - Imported Translations from Zanata For more information about this automatic import see: https://docs.openstack.org/i18n/latest/reviewing-translation-import.html Change-Id: If7e4cb6f32add6f6275154045b80d7eda1f0c9db - Zuul: Remove project name Zuul no longer requires the project-name for in-repo configuration. Omitting it makes forking or renaming projects easier. Change-Id: I881e1a8d4e2fca0f534144b4a1826f431464c25f - Add python 3.5 in classifier Now we can support py35 in classifier. Change-Id: Ief555aa3211b0c1405d2abb155f9ddd44fa149fc - Merge "Add missing MV history for 3.50" - Merge "Correct lvm_type default value in config doc" - Correct lvm_type default value in config doc According to code the default value of lvm_type should be "auto". Change-Id: Id923e4c8cd5c79fbcf0599b8c0ba9fb6492c5ac0 - modify the http link to the https link Change-Id: I45ca2406fa1db96e275233a1c30719831c4d9b8b - Add missing MV history for 3.50 Little change for 3.50 Change-Id: Id9b0096c6d6f763865241d40d197adb78a505043 - Move doc of report backend state to cli It's not very appropriate in admin section when merging the feature in Queen as Sean said. So there is little change to move the doc to cli section. Change-Id: I2823b05dded6066573edfce25a79e8b26d68815e - Imported Translations from Zanata For more information about this automatic import see: https://docs.openstack.org/i18n/latest/reviewing-translation-import.html Change-Id: I9b737b13d5730804632b8a081c0d5012f2f0b2da - Merge "Updated from global requirements" - Merge "Update the description of quota's project id" - Merge "Update document for worker cleanup API" - Fix pylint error in DotHill drivers The DotHill base driver accesses an instance variable before it is defined. The way this is being done appears to be safe, but it causes an E0203:access-member-before-definition pylint error. Trivial fix to make sure the variable is defined at init. Change-Id: Ie5828dec2892e2cc94760c4a6e31445805c6c17f - Imported Translations from Zanata For more information about this automatic import see: https://docs.openstack.org/i18n/latest/reviewing-translation-import.html Change-Id: Ie4cec915787b5390d22c63fcfb2dd7a8e933d153 - Merge "Add the nova-multiattach job to the check/gate queues" - Merge "Fix DuplicateOptError in fixed_key migration code" - Storwize: avoid ascii code error for ssh response stderr If there are non-ascii characters in the ssh response stderr, The below type of message handling exception will blow up: UnicodeDecodeError: 'ascii' codec can't decode byte <hex val> in position xx:ordinal not in range(128). This patch uses safe_decode for the stderr to avoid the ascii code error. Change-Id: Id630391dde7149095fc258c0f0da7d9829d1388a Closes-Bug: 1745098 - Merge "3PAR: fix cloning issue in create group from source." - Fix DuplicateOptError in fixed_key migration code Fix how the key migration code loads the fixed_key config option so that it handles DuplicateOptError. Closes-Bug: #1747021 Change-Id: I119a12c8e80ad991f5a2916fec2ef4421039b9e9 - Storwize: modify the self._helpers to backend_helper The helper used for volume attaching should be backend_helper rather than self._helpers. This patch modifies the self._helpers to backend_helper. Change-Id: Ia18ca2f7862d53fc6ea49ff874eae7b63fae8cb8 Close-Bug: 1746876 - Update document for worker cleanup API Update API document for API 'workers/cleanup', also remove 'until' from allowed clean keys as its value is always assigned in code. Change-Id: Iea940d7c7e52718b8e5e8dcf706aa5d1126860ef - Add backup cancellation admin doc We support backup cancellation on many backup drivers but we have no admin documentation. This patch adds a brief explanation of the backup cancellation mechanism as well as some considerations that are good to keep in mind. Change-Id: I0c38442f01905e0ca0d61e65ee7ea0972ab4ec71 - 3PAR: fix cloning issue in create group from source. When group or group snapshot is created from two different volume types having provisioning set one volume type and compression set on other volume type and then if we create group from existing group or group snapshot then we are making use of source snapshot and online copy feature of 3par for copying data from source to destination. But we have not kept mapping of source volume and its snapshot and because of this, from any snapshot of data gets copied to any destination volume and created issues mentioned in bug. This patch creates mapping of source volume and its Snapshot, so correct snapshot get selected for correct destination volume for copying of data. Change-Id: I435cd47908fefaa767063fa4c61f3a4d76ffc4ae Closes-Bug: #1744025 - Merge "Fix wrong grammar" - Merge "Fix the typo in api_conditional_updates.rst" - Merge "docs: Use the encryption provider format constants" - Merge "Storwize: Use passed volume names in migrate" - Merge "Fix cinder quota-usage error" - Merge "Fix: request-id missing in volume action's response header." - Merge "Storwize: correct return value for update_group" - Merge "Fix link in boot from volume docs" - Merge "Remove consistencygroups/api.py" - Merge "Fix how backups handle encryption key IDs" - Merge "Add policy check for create volume with multiattach" - Merge "Tests: Fix RBD invalid UUID warnings" - Fix link in boot from volume docs The links to the user guide haven't worked since the docs migration in pike. This updates the link to point at the docs which are now in nova, and removes the useless link to the end user guide since the content doesn't live there anymore. Depends-On: Ie039322660fd0e2e0403843448379b78114c425b Change-Id: I3e79e14ef9c50c1f43d334ecae1c9810bf601418 Closes-Bug: #1711267 - docs: Use the encryption provider format constants These new constants were introduced during Ocata and will replace the legacy classpath names in an upcoming release. Change-Id: I8ed699dea41cd51b3a62e1ab780a641172dd0122 - Remove unused parameters in v2/v3 parameters.yaml Change-Id: I835dda262b22af8fe7a0af1a1333bf9842d65013 - Merge "3PAR: Fixed sync period updation in rcg" - Merge "V3 jsonschema validation: volume_type_access" - Fix leftovers after backup abort When aborting a backup on any chunked driver we will be leaving chunks in the backend without Cinder knowing so and with no way of deleting them from Cinder. In this case the only way to delete them is going to the storage itself and deleting them manually. Another issue that will happen if we are using a temporary resource for the backup, be it a volume or a snapshot, is that it will not be cleaned up and will be left for us to manually issue the delete through the Cinder API. The first issue is caused by the chunked driver's assumption that the `refresh` method in an OVO will ignore the context's `read_deleted` configuration and always read the record, which is not true. And since it doesn't work when the record is deleted there will be leftovers if the status of the backup transitions to deleted during the processing of a chunk. The second issue is caused by the same thing, but in this case is when the backup manager refreshes the backup OVO to know the temporary resource it needs to clean up. This patches fixes the incorrect behavior of the backup abort mechanism to prevent leaving things behind. Closes-Bug: #1746559 Change-Id: Idcfdbf815f404982d26618710a291054f19be736 - Merge "Dell EMC SC: Find volume folder API call fails on root folders" - Merge "Support fabric specific Cisco FC Zone Name" - Merge "Improve multiattach error message" - Updated from global requirements Change-Id: Iefa7a5e32739a6b9d448659cd8edd232de267aae - Merge "Add back support for the multiattach flag for volume create" - Add policy check for create volume with multiattach We currently check the policy for multiattach when the new attach calls are made, but not when the deprecated flag is passed in. This adds the policy check when only the flag is set. Change-Id: Ida001d551b699e6856930ece1b776f52e5c1f7b0 - Merge "Update Windows docs" - Dell EMC SC: Find volume folder API call fails on root folders Changes to the SC API have changed how calls are made to the StorageCenter/ScVolumeFolder/GetList payload filter options. In the case of a folder under root this call could fail depending on the API. Change-Id: I2ab2160478d2163dbb45175aa5f1b884f316db24 - SMBFS: allow snapshot ro attach This change will allow snapshots created by the SMBFS driver to be attached in read-only mode. This will be used in order to backup in-use volumes. Note that writing to a snapshot would corrupt the differencing image chain. We'll need to locate snapshot backing files. The issue is that in some cases, in-place locks may prevent us from querying the top image from the chain. For this reason, we're going to store the backing file information in the DB using the snapshot object metadata field, at the same time preserving backwards compatibility. Fake volume/snapshot object usage throughout the smbfs driver unit tests had to be updated due to the object changes performed by it. Partial-Implements: bleuprint windows-smb-backup Change-Id: Ideaacbf9d160f400bef53825103b671127252789 - SMBFS: fix creating volume from snapshot In some cases, attempting to create a volume from an in-use snapshot fails because of Hyper-V locks. The reason is that in order to locate the backing image that needs to be *cloned*, we may need to query the currently attached image, which is not allowed. In order to avoid this, we're going to store the backing file information in the DB using the snapshot object metadata field, at the same time preserving backwards compatibility. Note that we cannot rely on model changes passed to the manager as snapshots are used internally in a few cases in which the manager would not expect snapshot object changes. Also, when deleting snapshots, we're updating the metadata for more recent snapshots as the backing file changes. Fake volume/snapshot object usage throughout the smbfs driver unit tests had to be updated due to the object changes performed by it. Change-Id: I88e9dad5cf36621c4b86acc7b7e972850e061119 Closes-Bug: #1694635 - Fix the typo in api_conditional_updates.rst Fix a typo in api_conditional_updates.rst. It should be 'instead of what is in' not 'instead of what is is'. Change-Id: I62eeabf084ca8e63562bd10ac82066424ea61205 - Fix wrong grammar Modify 'should has' to 'should have' Change-Id: Id9905728f0f68df2847b7b71cb76d89a205deea0 - Merge "fix wrong url link" - [VNX] `initiator_target_map` is None The value of `initiator_target_map` in FC target data returned by VNX is None, which causes os-brick throwing exception. The fix is removing the key `initiator_target_map` from the target data dict when its value is None. Change-Id: Ic4afdd0d248e043107d92b8e42f7630d211cd302 Closes-Bug: #1746218 - Merge "INFINIDAT: support force detach" - Merge "Handle TZ change in iso8601 >=0.1.12" - Schedule request to scheduler when manage existing snapshot Pass the request to scheduler service rather than volume service in order to check backend's capacity. Partial-Implements: bp inspection-mechanism-for-capacity-limited-host Change-Id: Iafaa48b908c26c1fa6862a8dfc27b43d525847e4 - Fix how backups handle encryption key IDs As described in the launchpad bug [1], backup operations must take care to ensure encryption key ID resources aren't lost, and that restored volumes always have a unique encryption key ID. [1] https://bugs.launchpad.net/cinder/+bug/1745180 This patch adds an 'encryption_key_id' column to the backups table. Now, when a backup is created and the source volume's encryption key is cloned, the cloned key ID is stored in the table. This makes it possible to delete the cloned key ID when the backup is deleted. The code that clones the volume's encryption key has been relocated from the common backup driver layer to the backup manager. The backup manager now has full responsibility for managing encryption key IDs. When restoring a backup of an encrypted volume, the backup manager now does this: 1) If the restored volume's encryption key ID has changed, delete the key ID it had prior to the restore operation. This ensures no key IDs are leaked. 2) If the 'encryption_key_id' field in the backup table is empty, glean the backup's cloned key ID from the backup's "volume base metadata." This helps populate the 'encryption_key_id' column for backup table entries created prior to when the column existed. 3) Re-clone the backup's key ID to ensure the restored volume's key ID is always unique. Closes-Bug: #1745180 Change-Id: I6cadcbf839d146b2fd57d7019f73dce303f9e10b - Rename lio job to lio-barbican Indicate that this job is testing Cinder with Barbican. Change-Id: Ide9b5abfb681f921cd2fc6c412df6b21819af759 - Update Windows docs This change updates the Cinder Volume install guide, targeting Windows deployments. The Windows iSCSI driver doc has been updated. The Windows SMB driver was undocumented, which is also addressed by this change. Closes-Bug: #1746022 Change-Id: I46fadc8df59f7203bc3445c24d3bd6547275ee5b - 3PAR: Fixed sync period updation in rcg During group update, sync period value was not updated in remote copy group. This patch will fix and update the sync period value in remote copy group for periodic mode. Change-Id: I4a2384f9f01020f1361b5bc8cc03f09ef68b008c Closes-Bug: #1746235 - Add 'metadata' in backup detail&show API document Backup metadata is available in backup list&show APIs since 3.43, update the document. Change-Id: I056ed13124cdb64b5be8012898fb038e112fbe86 - Handle TZ change in iso8601 >=0.1.12 The iso8601 lib introduced a change such that if running on python 3.2 or later it internally uses the python timezone information instead of its own implementation. This does not change direct date handling, but when converting this value there is a slight difference where now python 2.x will show UTC times as "UTC", but on python 3 they will end up with "UTC+00:00". The to_primitive call for DateTime fields was doing an exact match on "UTC" to determine whether to include "Z" in the resulting string. This updates that handling to recognize either of the new values. Change-Id: Idfefd41e45727a375a5ea296a3348716c43f17b5 Closes-bug: #1744160 - Storwize: correct return value for update_group Adding volumes to replication group is done one by one. If one volume adding fails, the group status will be updated to error. Those volumes which are added successfully to the replication group in the backend should also be updated and the related group id should be filled. Closes-Bug: 1745552 Change-Id: I821447ce14bedee0f420d337b6c59bd7c4bfaa28 - Merge "Fix mis-named context object" - Merge "[Trivial] SMBFS: fix provisioning type usage" - Merge "VMware:Config option to disable lazy volume create" - Merge "Avoid use of deprecated commands in lenovo driver" - Merge "[Unity] Add `force detach` support" - Merge "[1/2] Fix mock for sleep mocks in volume drivers tests" - Fix cinder quota-usage error When backing up a snapshot or 'in-use' volume, cinder creates a temp volume from the snapshot or 'in-use' volume, then backup the temp volume. The temp volume doesn't use the volume-quota, but deleting the temp volume when finishing backup will minus quota. This process leads to a wrong quota-usage. So add admin volume metadata when creating the temporary volume and then use that data to detect temporary volume. Then skip handling quota when deleting the temp volume. Change-Id: If100a678cf9062c4078f850d8edc001b6b0705f4 Closes-Bug: #1670636 - Merge "api-ref: add multiattach considerations to retype docs" - Merge "api-ref: update migration_policy retype note about encrypted volumes" - Merge "Netapp Ontap: Adds support for auto-max-over-subscription" - Merge "Overprovisioning Improvements" - Remove consistencygroups/api.py This is unused as of: 9fe72de4b Add cg policies and clean up old policy handling Change-Id: Idc42f1407ad6f6852d7b1b6912872006d8770b70 - Fix: request-id missing in volume action's response header. Several volume actions use webob.Response object to return HTTP codes and cinder's wsgi layer doesn't append request-id if the actions return webob.Response object. If we intend to return certain HTTP code, we should use wsgi.response decorator and let cinder's wsgi layer create response object of it's own. Change-Id: Ibd6f60301e73022fecae4286e68d152bab73a40e Closes-Bug: 1743404 - [Trivial] SMBFS: fix provisioning type usage At the moment, the SMBFS driver does not honor the configured provisioning type. The issue is that we're checking CONF.backend_defaults instead of the driver configuration object, for which reason if the option is defined in the according backend config group, it will be ignored. This change fixes this issue, updating the config option checks. Change-Id: Ieb9e9edb1bc46d8b6ca31480d963f9dc9c2331de Closes-Bug: #1745602 - Merge "HPE 3PAR: Update Storage Driver docs for Queens release" - Merge "fix misspelling of 'password'" - Merge "backup: set default swiftclient log level to WARN" - Merge "Add policy check for complete attachment API action" - Merge "Add debug logging around multiattach status changes" - Support fabric specific Cisco FC Zone Name This change in Fibre Channel zone manager Cisco driver allows to use the Fibre Channel fabric level cisco_zone_name_prefix to form the zone name. This is consistent with the "Cisco Fibre Channel Zone Driver – OpenStack Configuration Reference”. Zone_name_prefix will fall back to the one speficied at fc-zone-manager level if it is not specified at the more granular FC fabric level. The existing code takes zone_name_prefix only from the fc-zone-manager configuration. This patch also removes the code that marks Cisco Fibre Channel Zone driver as unsupported and deprecated. Cisco CI has been up and running again since Jan 24, 2018. Thus the change. This patch also contains a minor cleanup in ssh pool. Change-Id: If629dd30ed61829a1e4a56bc2e4401ef1adef2a5 - DS8K: Correct create volume behavior for CG Create a volume in Consistency Group will get the LSS from lss_rang_for_cg. If the slots in LSS has been exhausted, the volume will be stuck in creating state. This patch is used to fix it. Change-Id: I50a4b595a7244b80b6a18b042bcc0cef4dd05255 Closes-Bug: 1745372 - backup: set default swiftclient log level to WARN Similar to change I0857cecd7d8ab0ee7e3e9bd6e15f4987ede4d653, the swift backup driver cannot be logging stuff while in a thread during read and write operations. swiftclient logs requests and responses at DEBUG level, which can cause a thread switch and break the backup operation. This sets a default log level of WARN for swiftclient for the cinder-backup service. Change-Id: I67ac11276715290839c39fc1d0e333c61a38c461 Closes-Bug: #1745168 - Tests: Fix RBD invalid UUID warnings This causes a warning to be issued for every RBD test. Modify fake_volume_obj() to prevent this. Change-Id: Ib2fff5af7ae7dc8663b15832e39080fe0a51e71d - Merge "Fix multiattach policy names in release note" - api-ref: add multiattach considerations to retype docs This adds some notes about two things to consider with a volume retype operation on an in-use multiattach volume: 1. The volume API will reject a retype operation on an in-use volume where the volume's multiattach value would change. 2. Retyping an in-use volume that has more than one active read/write attachment is not recommended because on the nova side the swap volume operation performs a blockRebase which could potentially lead to data corruption. In the future, we (nova or cinder or both) will likely need to make some changes as to what the default attach_mode is for secondary attachments to a multiattach volume, since today we default to read/write if it's not specified by the caller when making the attachment. Change-Id: Ib5a2830ea3cd37236947677225252ef42edaa347 - api-ref: update migration_policy retype note about encrypted volumes Nova has historically not supported swap volume operations (via cinder volume retype / volume migration) for an in-use encrypted volume. That was recently addressed via nova bug 1739593. However, as of change Ibfa64f18bbd2fb70db7791330ed1a64fe61c1355 in nova, depending on the version of libvirt/qemu on the compute host, a luks-encrypted volume will use native qemu luks decryption. That does not yet support blockRebase operations which are used during swap volume due to https://bugzilla.redhat.com/show_bug.cgi?id=760547. So it's safe to say that for now, a retype which involves a volume migration is not supported for an in-use encrypted volume. Change-Id: I7ce992f51d50d00950d3fc4ebb44b69a31a94787 Related-Bug: #1739593 - fix misspelling of 'password' Change-Id: I559b7a9e0b7c8e246d2d5e42cda18cae4a96c3cb - Netapp Ontap: Adds support for auto-max-over-subscription After the addition of the auto-max-over-subscription on Cinder, drivers that somehow used the CONF.max_over_subscription_ratio in the driver where marked as not supporting the feature. As Netapp Ontap drivers used the option to do some calculations, they were marked as so. In this patch we remove the function that did this calculation as the function (_share_has_space_for_clone() is not actually necessary as currectly all volume clones are checked by the scheduler.) Change-Id: I25713b402ad93e0b4aa1861b4ccd9e05ee496200 Depends-on: If30bb6276f58532c0f78ac268544a8804008770e - Overprovisioning Improvements This is part of the effort to improve Cinder's Thin provisioning support. As some operators have been facing problems to determinte what is the best value for the max_over_subscription_ratio, we add in this patch a mechanism to automatically calculate this value. The formula used for calculation is: max_over_subscription_ratio = 20 if provisioned_capacity_gb == 0 else: max_over_subscription_ratio = 1 + (provisioned_capacity_gb/( total_capacity_gb - free_capacity_gb + 1)) Using this formula, the scheduler will allow the creation of a much bigger number of volumes at the begginning of the pool's life, and start to restrict the creation as the free space approaces to 0 or the reserved limit. Drivers now can set max_over_subscription_ratio = 'auto' and take benefit of the change. Drivers that somehow use the max_over_subscription_ratio inside the driver to do any kind of calculations are incompatible with this new feature and should get fixed in order to be able to use the feature. Implements: bp provisioning-improvements Change-Id: If30bb6276f58532c0f78ac268544a8804008770e - HPE 3PAR: Update Storage Driver docs for Queens release Change-Id: I39fbab46d4dc5f01c602eed2105d3af8aec894e7 - Merge "Simplify keystone password assertions" - Merge "RBD: Support encrypted volumes" - Update the description of quota's project id Instead of QoS id, project id should be used for quota's id attribute. Change-Id: I201350caa984b66baf38ce9d74d09c7eda913034 - Fix mis-named context object Multiattach will fail with an AttributeError because the authorize is called on the wrong object. This corrects that. Change-Id: I439f2afe34afc9399a5592e8cb75fb6a287d02ab Closes-Bug: 1745209 - Add debug logging around multiattach status changes When deleting an attachment, we now need to check for any other attachments for the volume and try to set the status correctly based on any of those remaining attachments. There's not very much logging around this to help us out if something goes wrong, so this patch just proposes some debug level logging be added around the process. Change-Id: I64b3046cfb3355b547e158783131338b8b0180d1 - Fix multiattach policy names in release note The policy rules pointed out in this release note were using variables from the code, not the actual policy rule names that are actually used in code and would be overridden in the policy file. Change-Id: I00ea8702327f5ad5083f97182098346093dd00ee - Add back support for the multiattach flag for volume create As the 'multiattach' request parameter in volume create is not formally deprecated out of the REST API via microversion, we need to keep the functionality working. Currently the 'multiattach' attribute on the volume is set by the volume_type only, which means that we cannot create a multi-attach volume the old way, the volume gets created with 'multiattach': false. This patch fixes that. Closes-Bug: #1745219 Change-Id: Iac67f112b0dc9353c6a66e6fbc81cc8324a2b37c - Remove logging on Swift backup obj writer Since change I1f1d9c0d6e3f04f1ecd5ef7c5d813005ee116409 we are running parts of the backups on native threads, which due to an eventlet bug [1] have bad interactions with greenthreads, so we have to avoid any logging when executing code in a native thread. This patch removes the MD5 logging on the SwiftObjectWriter close method and adds comments and docstring referring to this limitation. [1] https://github.com/eventlet/eventlet/issues/432 Closes-Bug: #1745168 Change-Id: I0857cecd7d8ab0ee7e3e9bd6e15f4987ede4d653 - Simplify keystone password assertions With an update to keystoneauth1 > 3.3.0, some of the arguments to the password plugin change. Some of our unit tests were a little too zealous in checking the expected parameters that get passed in to this. Since we just need to verify that the password plugin is being used, and we don't necessarily care about each of the values being passed, just assert that the password plugin was called, check some specific values, and keep it simple. Change-Id: Id0d3b06b2debad70d36c253a3c1ee9d561a22e64 - Add policy check for complete attachment API action Add new policy rule for complete_attachment action to prevent anyone who can read the attachment from the database to complete it (mark it as in-use) Change-Id: Idad8c44acde155e70f6f9f618887a97fc956cdd2 Closes-Bug: #1737000 - [1/2] Fix mock for sleep mocks in volume drivers tests According to `Applying the same patch to every test method` section in the [1] we shouldn't use mock decorators on setUp method. This patch fixes it moving mocks into the setUp methods. This is the first patch in the series. We need to fix the sililar issue in IBM drivers but this requires more work to fix them. So let's do fix this issue step-by-step. [1] https://docs.python.org/3.5/library/unittest.mock-examples.html Change-Id: I4c2097307f812eb5847367b58ef6ba65c23b3a26 - Merge "Run doc8 first" - Merge "Add contributor notes on how to use pdb with tests" - fix wrong url link Change-Id: Ifce52e9a7784fc8aaf86ee3e26970397816bdeff - Merge "Run backup-restore operations on native thread" - Merge "Fix Backup uses latest req-id for all log calls" - Fix typo in test_qnap Change-Id: I990989528a617fc2abd3b623e7069cd1ff4d4100 Signed-off-by: Kien Ha <kienha9922@gmail.com> - Add contributor notes on how to use pdb with tests Change-Id: Ib15a4c06f80dfcfaff2f195ecf0f3afbfb5bfa0b - Run doc8 first For "tox -e docs", run doc8 first. doc8 runs much faster than sphinx builds and will provide quick feedback on syntax issues. Change-Id: Id4f77020a70acd8eb9df513d43f86d9fe78f7e22 - RBD: Support encrypted volumes When creating an encrypted RBD volume, initialize LUKS on the volume using the volume's encryption key. This is required because os-brick only handles this step for volumes that attach via block devices. This requires qemu-img 2.10. Co-Authored-By: Lee Yarwood <lyarwood@redhat.com> Related-Bug: #1463525 Implements: blueprint libvirt-qemu-native-luks Change-Id: Id02130e9af8bdf90a712968916017d05c3213c32 - INFINIDAT: support force detach terminate_connection should support the case where "connector" is None (force detach), in which case all volume connections should be detached. Change-Id: I67bc72891d5aec0161e20b2eefeedbe3a401e7c1 - Replace Chinese punctuation with English punctuation Change-Id: I991282cd7547dddf2324cdf1ea63bd12d4303ab1 - Merge "Update Volume Encryption Documentation" - Merge "Storwize: fix an incorrect temporary parameter name" - nimble: update config doc to add missing extra-specs support nimble storage driver supports various exta-specs in the driver which are missing from the config doc, update the doc to add t Change-Id: Icf541babb8ffe7230dbe10ec9eda41eeecfc242a Closes-Bug: 1744787 - Merge "[VNX]Add `force detach` support" - Merge "ScaleIO: Enable multiattach for volumes" - Merge "VMAX doc - Queens feature documentation" - Merge "Move disk space check to run when needed" - Add the nova-multiattach job to the check/gate queues The nova-multiattach job is defined in the nova repo but we also need to run it against Cinder changes. For now the job just runs the tempest compute API tests since that's the only place in Tempest that has multiattach testing right now and it will save some time in the CI run. Change-Id: Idfb68b5ddd7aca8642016e392fec6efd169c1ea2 Depends-On: I51adbbdf13711e463b4d25c2ffd4a3123cd65675 - Merge "Remove extra spaces of the volume creation request body" - Merge "Rename 'WindowsDriver' to 'WindowsISCSIDriver'" - Remove extra spaces of the volume creation request body Change-Id: I7fc3ccd24cd9e95cb4fa1d70658fe064cae3a38a - V3 jsonschema validation: volume_type_access This patch adds jsonschema validation for below volume type access API's: * Add private volume type access to project POST /v3/{project_id}/types/{volume_type}/action * Remove private volume type access from project POST /v3/{project_id}/types/{volume_type}/action Made changes to unit tests to pass body as keyword argument as wsgi calls action method [1] and passes body as keyword argument. [1] https://github.com/openstack/cinder/blob/master/cinder/api/openstack/wsgi.py#L997 Partial-Implements: bp json-schema-validation Change-Id: I5d5a58b7ce3615c8c4cbaa622c0691de38c88969 - Merge "VMAX driver - retype fix where workload is None" - Merge "VMAX driver - QOS settings incorrectly applied on Default storage group" - Merge "Unity: Add revert_to_snapshot support" - Move disk space check to run when needed At the moment, the check for disk space when booting from an image currently happens regardless if the backend supports cloning or not. This means that even if a backend can clone the image directly, the control plane must have enough disk to download the entire image which can be unreasonable in backend such as RBD. This patch moves the code which checks for enough disk space to be in the same function that effectively downloads the image, ensuring that it only runs when an image has to be downloaded and avoiding the check if the backend successfully cloned the image. Closes-Bug: #1744383 Change-Id: Ibfd6f40e8b8ab88d4ec76e9ac27617a0f97b6c29 - Update Volume Encryption Documentation The castellan library has recently been updated to use 'backend' instead of 'api_class' to configure the backend that should be used. This change updates the volume encryption documentation to use the updated configuration option instead of the deprecated one. Change-Id: I5054f348f9c016d15b36b9f18d9c89e19e25e81f - Avoid use of deprecated commands in lenovo driver Recent firmware updates contain minor syntax changes. This change updates the driver to use the correct syntax based on the firmware version or whether the backend is 'linear' or 'virtual'. Change-Id: I981639cebd054fa758efa565a9a32d71a311a1a9 - Merge "modify volume spelling errors" - Rename 'WindowsDriver' to 'WindowsISCSIDriver' This was the first Cinder Volume driver available on Windows, for which reason it was simply called 'WindowsDriver'. As we've added another driver available on Windows, the SMB driver, this has caused quite some confusion. For this reason, we're now renaming it to 'WindowsISCSIDriver'. The new location will be: cinder.volume.drivers.windows.iscsi.WindowsISCSIDriver Change-Id: I3877491463dce3d46f7ac0e194ffdf46a0e7c84c - Merge "Remove leading and trailing spaces from parameters" - Merge "Tests: Fix Storpool tests hash randomization failure" - Merge "Fix readonly mode for new attachment API calls" - Merge "3PAR: fix volume migration for "in-use" volume." - Merge "Fix combination of parameters for update APIs" - Fix readonly mode for new attachment API calls The introduction of the new attachment API's doesn't know how to deal with RO volumes that don't use the connector to set their values. One of the ways to do RO volumes in cinder is to set a parameter in the admin_metadata of the volume. If this is set, we expect the connector to have a matching mode setting in it's parameters. During finalizing of an attachment this values are compared and if they don't match the attach fails. The New attachment calls from the Nova side don't set this information; and honestly using the connector for this isn't such a great idea anyway. To address this change in behavior/bug however we'll default to the settings of the volume admin_metadata. When an attachment is created, we'll check the volumes admin_metadata and set the attach_mode of the attach object to ro if required. Additionally, when the attachment-completion is performed in the manager, we'll use the attach_mode setting of the attachment object to override and force any settings in the connector. This seems like a better option than forcing Nova to check and set based on the metadata, and there's no real value in having an extra lever or requirement during attach that can go wrong. There's no case where seting the admin_metadata to Read Only on a volume and attaching it any other way than 'ro' is valid, so just use the metdata directly. Going forward we deprecate the use of admin_metadata for Read Only settings and replace it with an attachment-create option. Closes-Bug: # 1741476 Change-Id: Id0aea58f7091c78fcd38a47e475384807f1c04c7 - Merge "Enable multiattach capability for lvm driver" - Merge "Fix api-ref for v3 volume group types" - Merge "Add enough notification for QoS" - Merge "Adds documentation for DataCore volume driver" - Merge "api-ref: fix the response parameter for multiattach" - Merge "Block attempts to transfer encrypted volumes" - Merge "DS8K: block in-use volume to be added to consistency group" - Merge "Fix compression related tests" - Merge "Fix dictionary mistakes in docstring" - Merge "Enable multiattach capability" - Merge "Adapt cinder backup swift help test" - Merge "Validate metadata before reserve quota" - Merge "modify http to https" - Enable multiattach capability for lvm driver Multiattach was globally disabled for all in-tree drivers in e499ab995de9c6dca353a115c6c68bd04594cdd9 but we'll need to start enabling these to support the functionality. A policy rule in the API, and/or an extra spec on the volume type, should be used to distinguish which backends, or the deployment in general, can support multiattach. Related to blueprint multi-attach-v3-attach Change-Id: I158c6f20e3e6a24bd2e5299abbeb3fc5208e5885 - 3PAR: fix volume migration for "in-use" volume. 3par driver does not support cross protocol level “In use” volume migration, for such cases we are returning False and then after that cinder framework takes care of same. But we were doing same for same protocol level and Hence volume migration was failing. This patch resolve this issue and if same protocol level “in use” volume migration case is there then 3par driver takes care of such migration. Change-Id: I0aba3760cd8f22dd0b19a45ecde06919af4a2447 Closes-Bug: #1744021 - modify volume spelling errors Change-Id: I14497ed20c6938c0c9662fc94d641ecaf65e984a - modify http to https Change-Id: Ic5999110e7c5b606f7bbc11202b2a0b905d9a21a - Merge "Fix BadRequest for 'ref' as string value" - Fix api-ref for v3 volume group types This patch is mainly to fix api-ref for v3 volume group types, including: 1. add description and example for the API: show defaut group type 2. fix parameters: 'is_public' and 'description' 3. remove unused sample file: group-type-show-request.json Change-Id: I29f160d8ed24473debb345b4ea91ee0545d711b1 - Fix combination of parameters for update APIs For group_type and volume_type update APIs, If user passes description or is_public parameter in the request body then name can be null. But after schema validation [1][2], it is failing with BadRequest. This patch allows users to pass 'name' as None if "description" or is_public" parameter is passed in the request body. [1]: https://review.openstack.org/#/c/520561/ [2]: https://review.openstack.org/#/c/519643/ Change-Id: Id5d5f5ed8b449c9f1059528de241417f231f90b5 Closes-Bug: #1742940 - Merge "Update volume's 'updated_at' when accept transfer" - Merge "Add multiattach policy" - Merge "Fix api-ref for v3 volume types" - Merge "Fix: Propagate OS global request ID" - Merge "INFINIDAT: add missing connection_info params" - Merge "NetApp E-Series: Fix broken generic volume groups" - Merge "RBD: get manageable volumes" - Merge "Storwize: use DLM locks" - Merge "Updated from global requirements" - Merge "VMAX driver - Multiple storage group creation attempts" - Merge "Windows: allow multiple c-vol backends per service" - Add enough notification for QoS In order to meet the needs of users, add 'created_at' and 'updated_at' in logs. The following interfaces are modified: create, update, delete, delete_keys, associations (List all associations of given QoS specs.), associate (Associate a QoS specs with a volume type.), disassociate (Disassociate a QoS specs from a volume type.), disassociate_all (Disassociate a QoS specs from all volume types.). Users can search log information from different angles according to the notification information. In addition, add an interface that converts the datetime format to date in utils. Closes-Bug: #1569150 Change-Id: I7c05330f108989bf2e8b4b2a2ba8b8428eeee2e7 - Merge "Update nfs driver doc for snapshot support" - Merge "Delete duplicated save operation when do backup creating" - Merge "Fix api-ref for v3 Services" - Merge "Initialize osprofiler in WSGI application" - Merge "Remove In-repo cinder tempest plugin" - Unity: Add revert_to_snapshot support Add `revert_to_snapshot` API in Unity Cinder driver. Implements: blueprint unity-revert-to-snapshot Change-Id: I7d86870cd51b41677a110e844aaec6952f235121 - Adapt cinder backup swift help test Show choices of option `backup_swift_auth`. Change-Id: I7f64faaf213647d8011360792cfb42985630c75b - Enable multiattach capability This patch adds the ability to create multiple attachments for a single volume. This change requires that a volume either be created with a special volume-type that includes extra-specs indicating the requirement for multiattach capabilities from the backend: `extra_specs: {'multiattach': '<is> True'}` or that an available volume is retyped to the specified multiattach type. What the patch does is pretty simple: 1. On volume create Inspect the associated volume-type to see if it includes the multiattach capability, if it does and scheduling/creation is succesful; then we set the multiattach attribute on the volume to True 2. On volume retype We verify that if the retype involves multiattach capability that it's allowed and check policy. After retype, again we set/update the multiattach attribute of the volume appropriately to match the newly specified type. Note that we do NOT do anything to enforce the volume is formatted with a shared filesystem! Attempting to use this feature with a standard ext4 filesystem will lead to one or more of your attachments erroring out and being converted to read only mode. blueprint: bp/multi-attach-v3-attach Change-Id: Ic8a8ba2271d6ed672b694d3991dabd46bd9a69f4 - Add multiattach policy This patch adds the policy for creating and retyping volumes with volume types that indicate multi attach capabilities. There are two policies being added: 1. MULTIATTACH_POLICY General policy to disallow creating volumes of type multiattach as well as retyping volumes to/from a multiattach type. 2. MULTIATTACH_BOOTABLE_VOLUME_POLICY Specific policy to disallow creating multiple attachments for any volume that is `bootable`. We use policy to control the use of this particular type, and we also limit the ability to retype a volumes multi attach settings to only volumes that are in available status. We need to to do this because multi attach has implications for things on the Compute side (ie libvirt) that would require detach/reattach to keep things synced correctly. Currently there's no back end reporting the `multiattach=True` capability, that will be in the next patch of this series. Change-Id: I3fd8afe9cbae3c733a6530dce7be6fef8d53cfa6 blueprint: multi-attach-v3-attach - Updated from global requirements Change-Id: I7b75a2a4f6ebab5c87ce0460a477458cd3883606 - Merge "Fix glance create client unit tests" - Merge "VMAX driver - Fix AttributeError of dell emc driver" - Merge "VMAX driver - Errors extending replicated volumes" - Merge "VMAX driver - Fix error handling and checks for generic volume groups" - Fix api-ref for v3 volume types This patch dome some fixs on api-ref for v3 volume types, including: 1. add api-ref and sample file for show default volume type API 2. remove unused sample file: volume-type-show-request.json 3. fix parameters: 'name', 'extra_specs', 'is_public', 'description', and 'os-volume-type-access:is_public' Change-Id: I6fdcb66d3a56643a5e71bcd68f4bcdc08fc4866b - [VNX]Add `force detach` support Add support to force detach a volume from all its attached hosts on VNX. Closes-bug: #1741835 Change-Id: Ib1c82bbb3c898112b4cb51930e08a6aed4c497e2 - [Unity] Add `force detach` support Add support to force detach a volume from all hosts on Unity. Closes-bug: #1741831 Change-Id: I5f0f3d474b00f3c1f742c1bfa6877911415c32f9 - Storwize: fix an incorrect temporary parameter name The parameter “iscsi” is defined in the function get_host_from_connector definition. But it is used as the other temporary parameter name in this function. This patch modify the temporary parameter name from “iscsi” to “iscsi_name”. Change-Id: Ieba461478059d1e76ecb66dcbb8ca922e486e750 Closes-Bug: 1743695 - Update nfs driver doc for snapshot support nfs snapshot was supported since ocata, remove the outdated description Change-Id: Ie2e66a344203e8835bc66a3fd3eeffb3c694a645 - Storwize: use DLM locks To be able to use Storwize driver with c-vol in A/A deployment, local file lock should be replaced with distributed lock manager. Closes-Bug: #1742616 Change-Id: Ib7b5d90b43ba6d004d81ce355db6b853911132be - Fix BadRequest for 'ref' as string value Before schema validation patch [1] got merged, it was allowed to pass "ref" as string value (ref:"string") in request body of snapshot_manage create API but after schema changes, it is returning 400 error. This patch fixes this issue by allowing user to pass "ref" parameter as string. Note: In case user uses python-cinderclient to manage snapshot, it always passes "ref" parameter as object (dict). Change-Id: I6464eacf9f970cbcc1429a50bd59d59faf262bc6 Closes-Bug: #1743338 - Remove leading and trailing spaces from parameters Snapshots and backup (create/update) APIs stores 'name' and description' parameters with leading and trailing spaces in database after patches [1][2] are merged. This patch removes leading and trailing whitespaces before validation and also before storing it in db for 'name' and 'description' parameters. [1]https://review.openstack.org/#/c/520991/ [2]https://review.openstack.org/#/c/530098/ Closes-Bug: #1742907 Change-Id: Ib5c8d32e2c20cbacebd7b6f7281a44f94a70f7c0 - Merge "Report backend state in service list" - Merge "Revert volume consumed capacity when rescheduling" - Merge "Dell EMC SC: On None connector terminate_connection unmaps all" - Merge "Check create from image policy when image not none" - Merge "Updated from global requirements" - Merge "Synology: Rename iSCSI target config option" - Adds documentation for DataCore volume driver Change-Id: I671bdd82f96120093508ea6d2ee55375c416598c Closes-Bug: #1736298 - Storwize: Use passed volume names in migrate For the storwize driver, update_migrated_volume() impl, the original and temporary volume names were generated from a configuration template value, rather than using the names of the volumes passed. This only works if the storwize driver created the original volume, but breaks down if it originated elsewhere. Make a small change to use the passed in volume name properties instead. Add a couple asserts to the test cases. Change-Id: I1c719e6858426416b56357d2f071584209757a78 Closes-Bug: #1721583 - Merge "Fix BadRequest for 'null' metadata and group_specs" - Merge "[Doc] Add replication group support in doc for Storwize" - Fix glance create client unit tests If tests test_create_glance_client_with_protocol_http and test_create_glance_client_with_protocol_https from cinder.tests.unit.image.test_glance.TestGlanceImageServiceClient are run one after the other (regardless of the order) it will result in an error: "AssertionError: Expected 'load_from_options' to be called once. Called 0 times.". The reason is that in cinder/image/glance.py we cache the session in variable _SESSION, so the first test will set it and the second one will reuse it and won't call the load_from_options method. This patch solves this issue by resetting the caching variable in the tests. TrivialFix Change-Id: Ia77d9d1a3aa4b54a08912584164739f851188784 - Updated from global requirements Change-Id: Ie64af4305605717af01f903b05352e2480569d25 - Run backup-restore operations on native thread During huge backup file read write operations holds the CPU which leads to thread starvation, and cause cinder backup service to report down, as DB operations are impacted. Proposed changes are to run CPU and file sensitive operations like read, write, compress, decompress on a native thread. Change-Id: I1f1d9c0d6e3f04f1ecd5ef7c5d813005ee116409 Closes-Bug: #1692775 Co-Authored-By: Gorka Eguileor <geguileo@redhat.com> - Fix compression related tests Tests for chunked backup drivers are using a randomly generated file to test the compression, which means that in most cases due to the randomization the generated file is bigger than the original one, so we end up doing a non compressed backup, which defeats the purpose of the tests. More so when you want to test the decompression, since the backup won't be compressed and there won't be any decompression. To fix this we generate, for those cases, a simple file that can always be effectively compressed. Change-Id: Idbfeeb2604bc84dc0a17c633b782000d94665bbe - INFINIDAT: add missing connection_info params Always add target_portals, target_iqns and target_luns to connection_info to support iSCSI multipath. Change-Id: I3187a9f5b4aaf6b6b3e11f8c1f109c2e21ee88fc - Merge "Remove unused lib in test-rquirements.txt" - Merge "Unity: Attach Unity volume via IPv6." - Update volume's 'updated_at' when accept transfer When accept volume transfer, the volume object's 'user_id', 'project_id' and 'status' are all updated, 'updated_at' should be refreshed as well. Change-Id: I0ab094a961f0911e860d986c3db28a4e6c75a9f6 - Merge "Storwize: correct in-use replication vol status" - Merge "Remove the deprecated "giturl" option" - Merge "Fix 'volume_type' for in the api-ref" - Merge "Tests: Fix XIV test failure with hash randomization" - Tests: Fix Storpool tests hash randomization failure Dicts are unordered types, these unit tests will fail when Python 3 hash randomization is enabled. Needed-By: I4c7396f9d8e58ac8420754503f8ed60cd7473426 Change-Id: Id30547f430fcd63d639651ab9a987bb40c304e39 - Fix: Propagate OS global request ID Cinder doesn't propagate global request IDs internally, so any external request that comes with it will have it logged at the API service and then we'll lose this information in all the other services. We are properly serializing this information on our RPC calls, but we are not reconstructing the Context properly on the receiving end. This patch ensures that the "global_request_id" field from the context is properly added on RPC reception. Closes-Bug: #1743462 Change-Id: I35834a43298b5287d5cd3c37baa82903bdffda12 - Fix Backup uses latest req-id for all log calls Currently all log entries will have the request ID of the latest request that was received in the Backup service. So you would receive a request with ID 1 and you would start logging that thread log calls with its ID, but as soon as you receive another request, let's say with ID 2, you will have both request logging with ID 2 instead of each one logging with its own request ID. The reason for this is that we are monkey patching after we have imported OSLO logging and we should be doing the monkey patching before, because OSLO logging imports OSLO context, which in turn imports threading and defines the _request_store where the context is stored as threading.local, which is not the monkey patched version and therefore will be shared among all the greenthreads that share the same python thread. To fix this we just move the monkey patching earlier in the imports. Closes-Bug: #1743461 Change-Id: I677a8e39de4292fe4fa8e70d7b6ae2fc3d5cf2ac - Merge "VMAX driver - revert a volume to last snapshot" - Merge "Fix: validation error if the optional parameter's value is None" - Fix BadRequest for 'null' metadata and group_specs Before schema validation patches [1] and [2] merged, it was allowed to pass metadata and group_specs as null but with these patches 400 BadRequest is returned to user. This patch fixes this issue by allowing group_specs and metadata to be null in request_body. [1] https://review.openstack.org/#/c/528631/ [2] https://review.openstack.org/#/c/519643/ Change-Id: If207877811a5c331c28fc853cf233758a1743903 Closes-Bug: #1742938 - Fix api-ref for v3 Services This patch is mainly to fix the request parameters for the Disabled Cinder Service APIs. Change-Id: I112793716c1f00cc953bd960fa13be67612ed6ac - Delete duplicated save operation when do backup creating Change-Id: I67b6fb3f1d116b87baa31d4d2db5e2f19df689a6 - Fix dictionary mistakes in docstring Change-Id: Idbd57f80fb1b9a6c6e8ac3adc37df86970bd4125 - Fix 'volume_type' for in the api-ref 1 The 'volume_type' shoud be required in the rest_method of request. So fix the request paremeter about volume_type 2 Fix the parameters of 'volume_type' in the volumes-v3-volumes.inc Change-Id: I585db62579ac134885a49dc020508a9f0fba3c78 - Remove the deprecated "giturl" option From openstackdocstheme 1.18.0, valid Git URLs can be retrieved by openstackdocstheme[1], we do not need giturl option anymore. [1] https://review.openstack.org/532163 Change-Id: Iaff058758c26fec5ae55d711b4390f37f72e79c4 - Merge "VMAX driver - Incorrect stats reporting" - Remove unused lib in test-rquirements.txt python-subunit is unused now, so we can remove that, and we have switched to use stestr, os-testr can be removed. for details, please see [1] and [2] [1] https://review.openstack.org/#/c/488441/ [2] https://review.openstack.org/#/c/491075/ Change-Id: I5798ebacf8367a5d2b539cc14ee6af505c5a58b6 - Merge "Fix version details API does not return 200 OK" - Merge "VMAX driver - support for manage/unmanage snapshot" - Merge "VMAX driver - retypes failing when workload is missing" - VMAX driver - retype fix where workload is None The issue occurs when workload is 'None', because the code expects uppercase 'NONE'. This fix rectifies this. Change-Id: Idec99b206f6e27b853175432dcba174f3fa400d0 Partial-Bug: #1742917 - VMAX driver - QOS settings incorrectly applied on Default storage group When a VMAX volume is created, host IO limits are incorrectly applied on the storage group. When the volume is attached to an instance, host IO limits are applied to the new storage group leaving limits set in two places. Host IO limits should only be set on the storage group associated with the instance. Change-Id: I058f315f3ae48847165c82b124db566a77e3adbb Closes-bug: 1742709 - Merge "VMAX driver - Implement SRDF Metro feature" - VMAX doc - Queens feature documentation Part 3 - Legacy information removal and typo fixes Change-Id: Ic220cda12c3a7eb78274e8ee9a12384baa5e69d3 Partial-Bug: #1737735 - Merge "3PAR: fix create group from source functionality" - Merge "VMAX driver - Cannot extend volumes in a replication relationship" - DS8K: block in-use volume to be added to consistency group In DS8K, adding the in-use volume into consistency group will failed. Fix this issue by blocking user to add the attached volume into consistency group. Change-Id: Id7f0e336183f03c5687389dce0f71c5a773889d6 Closes-Bug: 1742845 - [Doc] Add replication group support in doc for Storwize Add replication group support for Storwize in document. Change-Id: I3d3dab34196567f84d3dea61bb3143c2df173367 Closes-Bug: 1742026 - Fix version details API does not return 200 OK When use version details api http://ip:8786/v2 to get api details, it does not return 200 OK, and the return value is empty. This change is to correct the version details API URL and its sample response. Change-Id: I547dca649db22b31051b490c2b230322d3c9d479 - Dell EMC SC: On None connector terminate_connection unmaps all On terminate_connection if the connector is None the driver now detatches the volume from all mapped servers. It leaves connections to remote Storage Center's so things like replication and live volume continue. Change-Id: I205006a3ebab742883018d564e766031024eeb3d - Deprecate the allow-multiattach option to create This patch just marks the option as deprecated, going forward we'll go with using a volume-type instead. Change-Id: I00615495a6ed98a996135192ed41719b2b00d936 blueprint: multi-attach-v3-attach - Improve multiattach error message With multi-attach on the way, the current message when you try to attach a non-multiattach enabled disk is less than perfect. If you've forgotten to set multiattach on volume create, you will get this error when you try to attach it to the second instance: "volume is already attached" This updates the error message to make it clearer. Closes-Bug: 1741943 Change-Id: I7110cb87388ec8d39aa8b604208a161e890f3ab2 - ScaleIO: Enable multiattach for volumes Enable the multiattach capability to allow volumes to be attached to more than one instance Change-Id: I1db2771f7c970341f62271a857795d413a506a34 - Windows: allow multiple c-vol backends per service This change will allow enabling multiple backends within a single Cinder Volume service on Windows. We cannot leverage the oslo_service process launcher as it has some Windows compatibility issues: - it forks - it uses eventlet GreenPipe (not available on Windows) - child processes receive the service objects that should be launched. Those are not serializable, for which reason we're not able to pass them without fork support. For this reason, we'll use the following alternate approach on Windows: - we're adding another cli argument called 'backend_name', which allows requesting a certain backend. - we're adding a Windows process launcher that will just use subprocess.Popen for each backend, using the above mentioned argument to request a specific backend. Thus, for each backend, we'll invoke a command such as the following: cinder-volume.exe --backend_name=<backend_name> --config-file=<conf> - the process launcher will wait for all the subprocesses to exit. In order to ensure that all subprocesses are killed when the parent dies unexpectedly, we're associating Win32 job objects to the child processes, requesting them to be killed when all the job handles are closed. Those handles are kept by the parent process, being closed when the process dies. Depends-On: #Icc2bbe9191e6db685c0fd294abc1d0eb24bc420c Closes-Bug: #1734334 Change-Id: I80fa111fabd46c7802b89fd6136edd8fa8652d47 - Check create from image policy when image not none This patch fixs the mistake in [1]. [1]: https://review.openstack.org/#/c/511427/4/cinder/volume/api.py Closes-Bug:1742609 Change-Id: I762ea23ebe37c5286de3cdbf6ff91d4df481ae75 - Validate metadata before reserve quota Snapshot's quota reservations are left when failed to validate metadata. Place the check statement right before quota reserve. Change-Id: Iae3ce945f51ae7fac76a997063b238bf59d62939 Closes-Bug: #1742371 - api-ref: fix the response parameter for multiattach The multiattach parameter is optional when creating a volume but is required to be in the response when showing a volume. This fixes the parameter usage, renames the parameters so they are more clear (multiattach_1 was for the response but was never used), and also adds a note to the multiattach request parameter about how support is dependent on the volume type being used to create the volume. Change-Id: Ifaa29140a8e8a9b8090f33fb83e4bb5c98ee847f - Docs: ibm_storage_driver: Fix volume_driver path in documentation The provided path is invalid. This patch corrects the path. Change-Id: I4649385a3e94a388c2dc6acb7c99b0179c0f5ea2 - Synology: Rename iSCSI target config option When the config option iscsi_ip_address was renamed to target_ip_address, one place was missed. Also updated the documentation and renamed related internal variable names. Change-Id: I356d44eeb904ab788427c8315c9ad5755802c90d Related-Change: https://review.openstack.org/528515 - Revert volume consumed capacity when rescheduling Cinder scheduler will consume pool capacity repeatedly when rescheduling creating request. Closes-Bug: #1741833 Change-Id: Ib11bda868085dfed0ab0e9018b8ed35956dbdf10 - 3PAR: fix create group from source functionality when we create a group from source having tiramisu enabled on group, adding volumes from new group to 3par remote copy group is giving an error. This is because of 3par has limitation that physical copy can not be added to remote copy group. in create group from source function, we are making use of online copy feature of 3par for copying of data from source volume to destination volume, which creates physical copy of destination volume till completion of online copy due to which addition of such physical copy to remote copy group is failed. To overcome this, we will wait till online copy completes in 3par for volumes. Because after completion of online copy, destination volumes becomes normal virtual volume in 3par and we can easily add such volumes to remote copy group. Change-Id: Idc74cc68350833e3c9ac85f36c8f058beeca6bc9 Closes-Bug: #1742092 - Initialize osprofiler in WSGI application This patch adds missing initialization of OSProfiler when Cinder API is running as WSGI application. Change-Id: Ifaffa2d58eeadf5d47fafbdde5538d26bcd346a6 - VMAX driver - Multiple storage group creation attempts When creating volumes concurrently on a clean system, we can see a situation where multiple processes try and create the default storage group simultaneously. This can lead to failures as attempts are made to create the default storage group after another process has already created the resource. This patch rectifies the issue by checking if the storage group has been created by another process while we were waiting for the lock. Change-Id: Icb16b1be23a5dcce7303d7d132db5fd31b3e41f2 Closes-bug: 1742100 - Fix: validation error if the optional parameter's value is None 1. Snapshot: option name in create/update/manage snapthot is optianal which type is name_allow_zero_min_length and should allow null. 2. Backup: option name in create/update/restore backup is optional which type is name_allow_zero_min_length and should allow null. 3. Backup: snapshot_id in create backup or volume_id in restore backup is optional, set its type to uuid_allow_null. 4. Group_snapshot: option name in create group-snapshot is optional, and should allow null. Change-Id: I9f1f39b30d43dc16a474febcf6549cf1901732ec Closes-bug: 1741191 Co-Authored-By: yatin <ykarel@redhat.com> - Storwize: correct in-use replication vol status Correct in-use replication volume status after failover/failback. Currently the status of in-use replication volume is changed to available and attach_status is changed to detached after failover in storwize cinder driver to make the replication volume can be attached again after failover. So does failback operation. However, nova is using the new cinder attach api right now. The in-use volume can not be attached to the same instance again even the volume status is changed to available and attach_status is changed to detached in cinder driver by force. This is due to nova stores the combined relationship of volume_id and instance.uuid in nova db as BlockDeviceMapping. This is to avoid attaching the same volume to the same instance twice. So the attaching request can not be sent to cinder if there is attached record in BlockDeviceMapping between the volume and instance. So this patch keeps replication volume status and attach_status during failover and faiback. Change-Id: Ia7a4c0759694d7b527ba93e4d3785a22e4303dac Closes-Bug: #1741431 - Unity: Attach Unity volume via IPv6. The IPv6's ISCIS portal format is [IPv6Address]:Port. The Unity returned IPv6 are not enclosed with brackets. So Unity's cinder-driver has to add brackets for IPv6's ISCSI portal. DocImpact Change-Id: Ib54fe948d0f5d7cad6c28468503f8535573ef3fc Implements: blueprint unity-cinder-ipv6 - Merge "Use method validate_integer from oslo.utils" - Fix v3 api-ref for showing API details url error Client were receiving the 302/Found when using the url "/v3". For showing API v3 details, it should have a '/' behind. Closes-Bug:#1734053 Change-Id: I7e6cb991151fba19dcaecaf95b332fddc1c02deb Signed-off-by: Xiaojun Liao <xiaojunliao85@gmail.com> - Merge "VMAX driver - Enable CHAP authentication for vmax backend" - Merge "VMAX driver - Add async replication support" - Merge "DS8K: correct LSS behavior for CG snapshots" - Merge "VMware: Support volume adapter type change" - Merge "VNX: Fix cloning failure when system is busy" - Merge "Fix api-ref for v3 volume types" - Merge "NEC driver: implement manage/unmanage functions." - Merge "Storwize: add hyperswap volume support" - Merge "Mock FixedIntervalLoopingCall for Huawei unit tests" - Merge "Handle InvalidVolume when creating a volume attachment" - Merge "V2/V3 json schema validation: snapshot manage" - Merge "Add microversion and volume status limit to revert api ref doc" - VMware:Config option to disable lazy volume create Currently the backend volume is created lazily for raw volume create operations. The backend volume is created during the initial attach. This is to minimize unnecessary volume migrations across datastores in the backend which may be required if the backend volume is not accessible to instance VM's ESX host. In certain vCenter configurations, it may be required to disable this lazy creation. This would reduce the time spent in the backend during volume attach. Introducing a config option to disable lazy volume create if necessary. Change-Id: I3feb6b382ff75eb53d53f145ae3773b6320e703c Closes-bug: #1739390 - VMware: Support volume adapter type change Adding support for volume adapter type change using volume retype. Change-Id: I7731eaf9561965d4e0f87c0597bfdb784ef6ca7a - Merge "[api-ref] Add missing fields to the API Reference" - Tests: Fix XIV test failure with hash randomization _get_fc_targets creates a set() from target_wwpns. It then sorts the contents of that set using a comparison that only checks the last digit of the entry. This is not a stable sort, so the order of the list output from _get_fc_targets is non-deterministic. This appears to be fine in practice, so just fix the unit test. Needed-By: I4c7396f9d8e58ac8420754503f8ed60cd7473426 Change-Id: I281ad59fa518f936aa8d1b518acf61800ba949f5 - Block attempts to transfer encrypted volumes Block attempts to transfer encrypted volumes until [1] gets resolved. [1] documents the fact that encryption keys are not properly transferred to the new volume owner. Resolving this will be tricky because Key Managers such as Barbican currently provide no API for transferring ownership, and Key Manager ACLs are insufficient because they don't allow the new volume owner to delete the key. [1] https://bugs.launchpad.net/cinder/+bug/1735285 Related-Bug: #1735285 Change-Id: I5dbeb46adc9da1fce6359a96b981aa8d673d50c4 - Mock FixedIntervalLoopingCall for Huawei unit tests We should use ZeroIntervalLoopingCall instead of FixedIntervalLoopingCall to speed-up our tests. Change-Id: Ifd91b8ddd0f18451b73b7472c9185dacb48b3a72 - [api-ref] Add missing fields to the API Reference Adding the 'service_uuid' and 'shared_targets' to the API Reference documentation with a short description. Closes-Bug: #1739640 Change-Id: I6866a8da47c6910ce8d2a6802839e9a06eb596a5 - V3 jsonschema validation: Backups This patch adds jsonschema validation for below Backups API's * POST /v3/{project_id}/backups * PUT /v3/{project_id}/backups/{backup_id} * POST /v3/{project_id}/backups/{backup_id}/restore * POST /v3/{project_id}/backups/{backup_id}/import_record Made changes to unit tests to pass body as keyword argument as wsgi calls action method [1] and passes body as keyword argument. [1] https://github.com/openstack/cinder/blob/master/cinder/api/openstack/wsgi.py#L997 Change-Id: Idd6c6be1c8bdf4dcf730f67e75a58a0329fe5259 Partial-Implements: bp json-schema-validation - Merge "Update tgt iSCSI target on volume extend" - Storwize: add hyperswap volume support This patch adds hyperswap volume support for Storwize/SVC driver. New properties are added in volume type configuration: drivers:volume_topology sets to "hyperswap" would specify a hyperswap volume. drivers:peer_pool specifies the pool that hyperswap remote copy volume is stored. drivers:host_site specifies the site name of the host. New property is added in group type configuration: hyperswap_group_enabled="<is> True" would setup a hyperswap group. DocImpact Implements: blueprint svc-hyperswap-support Change-Id: I989d22d9580c1f44546f371af1fffded14ddcbe3 - Merge "Do not explicitly list thin provisioning tools for RPM" - Merge "Dell EMC SC: API 4.0 incompatibilities" - Merge "Add driver-requirements entry for storpool" - Merge "Add descriptions of base policies" - Merge "Fix reserve volume enforcing the wrong policy action" - Handle InvalidVolume when creating a volume attachment If you try to attach a non-multiattach volume to more than once instance using the 3.27 volume attachments API, the volume API would return a 500 response because the volume is in-use. This translates to a 500 in the compute API because nova isn't expecting a random client exception. Treat this like how os-reserve could fail in the same situation and handle InvalidVolume which will be converted to an HTTPBadRequest by ResourceExceptionHandler elsewhere in the WSGi stack. Change-Id: I1a8068043159b034d700419675af87fc17e1faf5 Closes-Bug: #1741112 - RBD: get manageable volumes This patch adds the ability to get manageable volumes to RBD driver. Co-Authored-By: qtlu<qtlu@fiberhome.com> Partial-Implements: blueprint list-manage-existing Change-Id: I0621358b13fc3f5a4acfb8d66232fb953d94b274 - Merge "Discrepancy in api-ref and code for create group type API" - Fix reserve volume enforcing the wrong policy action This PS fixes `reserve_volume` enforcing the wrong policy action: retype policy. It has been corrected to reserve volume policy. This is consistent with the policy in code documentation as well for both policies: retype is only enforced by os-retype and reserve is only enforced by os-reserve [0][1] [0]94460b64fb/cinder/policies/volume_actions.py (L91)
[1]94460b64fb/cinder/policies/volume_actions.py (L197)
Change-Id: I14b8288cdb066f30b66068dcaaf66e1277aa122f - Fix api-ref for v3 volume types This patch is mainly to remove some redundant description and modify wrongly used HTTP method in api-ref for v3 volume types. Change-Id: I6f8911d9bc80f1c9d9889ebdf8e1bc2480df06d4 - Add descriptions of base policies Describe what "context_is_admin", "admin_or_owner", and "admin_api" are. Taken from Nova @ https://review.openstack.org/472622 Also removed an extra space. Change-Id: I3baba0147c6117c3b0b847ff58854ed3af54d88b - Do not explicitly list thin provisioning tools for RPM Ubuntu requires an additional package to be installed to enable thin provisioning, but Red Hat based platforms have this included with the base LVM2 package. An explicit item was added to bindep for the RPM package that includes these thin tools, but that is not needed and should be removed. Change-Id: I7e7575746911e8d19a3804fa08b357c9563713f1 - Add driver-requirements entry for storpool Dependency added in b5832af: https://review.openstack.org/#/c/220155/ Change-Id: I648c8a6d60e97e80960646ca35283ebbc4831168 - DS8K: correct LSS behavior for CG snapshots consistency group snapshots are created on lsses reserved for cg. This limits the number of snapshots and possible groups. This patch is used to implement that CG snapshots should not create on lssed which reserverd for CG by lss_range_for_cg Change-Id: I25af120e3c19d90c8a124fb9621cae11ec5d4865 Closes-Bug: 1740826 - V2/V3 json schema validation: snapshot manage This patch adds jsonschema validation for below Snapshots API's * POST /v2/{project_id}/os-snapshot-manage * POST /v3/{project_id}/manageable_snapshots Change-Id: I663005ec3c8f0b20c5ea25f6deca0502ac0a86f7 Partial-Implements: bp json-schema-validation - V2/V3 jsonschema validation: snapshots This patch adds jsonschema validation for below Snapshots API's * POST /v3/{project_id}/snapshots * PUT /v3/{project_id}/snapshots/{snapshot_id} * POST /v2/{project_id}/snapshots * PUT /v2/{project_id}/snapshots/{snapshot_id} Note: For create API 'volume_id' parameter is required, if user passes 'volume_id' as null, the existing behavior is it returns "itemNotFound"(404) error response. If we restrict user to accept volume_id in uuid format only in schema validation then in that case, if user passes 'volume_id' as null it will raise BadRequest(400) which will not match existing behavior and also tempest test case[1] will fail in this case. Also on master if user passes 'metadata' as null then it is accepted. To maintain consistency we are allowing 'volume_id' and 'metadata' to be null in schema. Made changes to unit tests to pass body as keyword argument as wsgi calls action method [2] and passes body as keyword argument. [1] https://github.com/openstack/tempest/blob/master/tempest/api/volume/test_volumes_snapshots_negative.py#L42 [2] https://github.com/openstack/cinder/blob/master/cinder/api/openstack/wsgi.py#L997 Partial-Implements: bp json-schema-validation Change-Id: I9869ea08afe3c8f8f1f63bb2ead7f63388580937 - VMAX driver - Fix AttributeError of dell emc driver initiator_check is defined as a type of bool, but is used as a str type. Change-Id: Ib01deaa222c2ee2d16256bf2e8540af782f5dbf8 Closes-Bug: #1736661 - VMAX driver - Errors extending replicated volumes When attempting to extend multiple volumes concurrently, the operation can fail due to insufficient locking on the RDF group. Additionally, attempting to delete a volume after an earlier failure can fail as the code does not check if the volume is already suspended. We also cannot support extending SRDF/Metro volumes. This patch rectifies these issues. Change-Id: Ib30f2a8f0a710f01ecb55ed753ecc41dbcdaad18 Closes-Bug: 1735456 - VMAX driver - Fix error handling and checks for generic volume groups There are several issues with the implementation of generic volume groups in the VMAX driver. There is no rollback implemented in case of errors for create group from source or for deleting groups. There can be issues if source groups have been modified since a snapshot was taken. The provider_location is also not being updated in the individual volume snapshot objects of a group snapshot. This patch rectifies these issues, and also does some general refactoring of the generic volume group code. Change-Id: I3e6ac90b145015ccd820af3449b20e377c9f4651 Closes-bug: 1732488 - VMAX driver - revert a volume to last snapshot VMAX Support for reverting a volume to last snapshot. Change-Id: I1a4b5c000d1b2fc50ed89f9ad874e9e6c62f0290 Implements: blueprint vmax-revert-volume-to-snapshot - VMAX driver - Incorrect stats reporting There is an issue in the way free_capacity_gb is being calculated for the VMAX driver - it is using 'total_allocated_capacity' instead of calculating using 'total_used_cap', or taking 'fba_free_capacity'. There is also excess queries being made (and logs being produced), as the capacities are being requested for each pool. This is unnecessary since WLP support was removed - the capacities are reported at an SRP level and so will be the same for each service level/ workload combination. This patch rectifies these issues. Change-Id: Icdafd47865e3cf1e5b687f39f15b8ebfccbf67a3 Closes-Bug: 1731930 - VMAX driver - support for manage/unmanage snapshot VMAX support for managing and unmanaging snapshots. Change-Id: I0717825dd47fb47c0a58040a13a9da09f6779955 Implements: blueprint vmax-manage-unmanage-snapshot - VMAX driver - retypes failing when workload is missing When workload is missing from the pool_name in volume type extra specs, retype will fail. Change-Id: Icdba015411349c56e2f88cf5cf45d12bd2f6c0d4 Closes-Bug: #1729657 - VMAX driver - Implement SRDF Metro feature SRDF/Metro allows a remotely replicated (SRDF) secondary device to be read/write accessible to the host, taking on the external identity of the primary device (geometry, device WWN, and so on). Both the primary and secondary devices may then appear as a single virtual device across the two SRDF paired arrays. With both devices being accessible, the host can read and write to both primary and secondary devices, with SRDF/Metro ensuring each copy remains current and consistent, addressing any write conflicts which may occur. This patch adds this functionality to the VMAX cinder driver. Change-Id: Ib31763ea5759f7f9c0d2e2db68ba3820188245db Partially-Implements: blueprint vmax-replication-enhancements - VMAX driver - Cannot extend volumes in a replication relationship Currently, VMAX cannot support extending a volume that has existing snapshots, or extending a volume in a remote replication relationship (we must first break the relationship, extend both sides, and re-establish the relationship). In the next VMAX release, online device expansion with replication will be supported. VMAX driver should reflect this new support. Change-Id: I9cd61f729d0ca0a6e9ea6a677d75c87694fa0e81 Closes-bug: 1717295 - VMAX driver - Enable CHAP authentication for vmax backend This integrates Initiator (one way) CHAP authentication functionality into the VMAX backend. Prior discovery should have been established. When an initiator tries to manually connect to the array that is CHAP enabled, use_chap_auth=True, chap_username and chap_password must be set in the backend configuration Change-Id: I037ae494eeb234fe2285b3635d24ee8c5226b9bc Implements: blueprint vmax-iscsi-chap-authentication - VMAX driver - Add async replication support Currently, only Synchronous mode is supported for volume replication on VMAX. This patch adds Asynchronous remote replication support. Change-Id: If5df30b6ac8544f4c98b4dec89ad3b032b80d379 Partially-Implements: blueprint vmax-replication-enhancements - Merge "Use constants for cinder-volume" - Merge "Change ssh_utils parameter to correctly sends keepalive packets" - Merge "Add admin ctxt to request qos_specs in SolidFire" - Merge "Validate volume status again when snapshot created" - Merge "Add instructions for the Error response codes" - Validate volume status again when snapshot created In a multitask environment, the volume can be deleted after the snapshot record is created. Add the validation right after the creation to avoid undeletable snapshot. Closes-Bug: #1739995 Change-Id: Icbe86473243871996483fdc96c079b8861bac2e5 - Merge "Remove some no-use code about failover" - Use constants for cinder-volume Since we have defined constants.VOLUME_BINARY, this patch change some cinder volume binary strings to use constans.VOLUME_BINARY. Change-Id: I91b1ed2331a3b197a2ba39fa5cfb02e9d161d709 - Merge "Fix incorrect description in api ref" - Merge "V3 jsonschema validation: Volume-types" - Merge "Update 'force' parameter for volume delete API" - Merge "NEC driver: add automatic configuration of SAN access control." - Merge "3PAR: Update CHAP on host record when volume is migrated to new compute host" - Merge "Reintroduce the StorPool driver" - Reintroduce the StorPool driver Change-Id: I5188e66d9a9204fc9fa15785d0ef3cf10e57ffb5 Implements: blueprint storpool-block-driver-reintroduce DocImpact - Merge "InStorage: fix problem when doing instance live migration" - Merge "Add 'shared_targets' only when it doesn't exist" - Merge "Updated from global requirements" - Report backend state in service list Currently, Cinder couldn't report backend state to service, operators only know that cinder-volume process is up, but isn't aware of if the backend storage device is ok. Users still can create volume and go to fail over and over again. This bp propose to get the backend state from driver directly, operators or management system could query this via service list. This function will improve the maintenance ability for Cinder. Change-Id: I561dca3ef7c1901401621bc112389dbd178a907e Implements: blueprint report-backend-state-in-service-list - Remove some no-use code about failover At line 3994, cinder/volume/manage.py, the replicable volume has been filtered by its type. It is no need to check again in function: _failover_volume(), rbd.py. Change-Id: I9b7fff5813d442fef01717ce842021c92ab30d8a - Add instructions for the Error response codes Improve the http return code information, for easy reading and calling Change-Id: I0fa54e084070a6407d732e69ca30f6079b923f33 - Fix incorrect description in api ref most places use description of backup, such as groups, consistency groups, snapshots .etc, this is incorrect this patch is to correct them. Change-Id: I079f0351c93b5f19e87a42b4b0b84ff086b83820 - Merge "VMAX doc - Queens feature documentation" - V3 jsonschema validation: Volume-types This patch adds jsonschema validation for below Volume-types API's * POST /v3/{project_id}/types * PUT /v3/{project_id}/types/{volume_type_id} Made changes to unit tests to pass body as keyword argument as wsgi calls action method [1] and passes body as keyword argument. [1] https://github.com/openstack/cinder/blob/master/cinder/api/openstack/wsgi.py#L997 Change-Id: Ibacf0acd16d3a3210289244fe2b99ebf5c5dd4ec Partial-Implements: bp json-schema-validation - Merge "Remove deprecated 'pybasedir' config option" - Merge "Remove deprecated 'netapp_eseries_host_type' config option" - Merge "Adding all docs into index.rst of administration docs" - Merge "Missing generalized_filters in cinder administration doc" - Update 'force' parameter for volume delete API Parameter 'force' is used in the path rather than body, update the document. Change-Id: I2c79d7d64b5f3c48a147410d93ae687ac0eb3cdc - Merge "Speed up DataCore unit tests" - Merge "Deprecate CG APIs" - Merge "API ref: add host format to description" - Merge "NetApp: Fix to support SVM scoped permissions." - Merge "Remove unused sf_enable_volume_mapping conf option" - Merge "Storwize: fix group creation restrict rules" - Merge "Create group from snapshot-group failure leaves behind the volume" - NEC driver: implement manage/unmanage functions. Implement manage/unmanage volume and manage/unmanage snapshot functions for the NEC volume driver. Change-Id: Ied1591768979f3d20c58c96160a0edf067e60522 Implements: blueprint nec-manage-unmanage - Adding all docs into index.rst of administration docs There is only four docs ref in index.rst of administration docs. It's not convenient for users to look for other administration docs. This patch will add all other docs into it. Change-Id: Ie93c608b40968f07cbb17ec40cd22e52120fd396 Closes-Bug: #1739988 - Missing generalized_filters in cinder administration doc Now cinder miss "generalized_filters" in administration doc, though we defined it in index.rst. Closes-Bug: #1739987 Change-Id: Id47c42e91885413572dfcc893cf3ecc02681c673 - Merge "VMAX doc - Queens feature documentation" - Merge "VMAX Doc - clarification and typo fixes" - Merge "VMAX doc - add manage and unmanage section" - Updated from global requirements Change-Id: I6a3a011450e8898552b634dcfe60136a7855f76b - Merge "StorageCenter: Fix volume mapping for API v3.1" - Merge "Fix TypeError for workers cleanup api incase of invalid resource_type value" - Merge "Handle deprecation of inspect.getargspec" - Merge "V3 jsonschema validation: Group Snapshots" - Merge "Enable fail back in SolidFire driver" - Merge "Add online data migration routine for attachment_specs" - Merge "HPE 3PAR - Implement Tiramisu feature on 3PAR" - Merge "Bump up the API microversion in cinder.rc" - Merge "Follow the new PTI for document build" - Merge "Storwize: disable creating volume with non cg_snapshot group_id" - Deprecate CG APIs This patch prints a deprecation message when CG APIs are used and prompts users to swich to Generic Volume Group APIs instead. CG APIs are also marked as deprecated in API reference docs. CG APIs will be removed in a future release when it is appropriate and will be decided by the Cinder team. This was communicated in Pike. Change-Id: Ib6751fae6b5fb78de98a2ea62f507f9102f71b76 - Bump up the API microversion in cinder.rc This patch bumps up the Cinder API microversion to 3.44 in cinder.rc. This is required for the new attachment API to support local-attach. Change-Id: Idb0e5c7c6c6d7f8626b6867eada0d537589011da - Merge "Remove deprecated HP 3PAR config options" - Merge "Add service_token for cinder-glance interaction" - Add microversion and volume status limit to revert api ref doc Change-Id: I55ca72cd26e4ae1ec9428c5785af49c5b6471b4b - HPE 3PAR - Implement Tiramisu feature on 3PAR In Tiramisu, a group construct is used to manage the group of volumes to be replicated together for the ease of management. This patch adds this support to the HPE 3PAR driver. Change-Id: I6c214ec868d907ae8edb7546c5f939b0522b20ba Implements: blueprint hpe3par-replication-group - Enable fail back in SolidFire driver This change fixes up a few things in the SolidFire driver to enable the ability to "fail back" to the original cluster in a replication scenario. We're still assuming a cluster-wide fail over, but now an admin has the ability to specify subsequent `cinder failover-host` calls to switch back and forth between their SF clusters. This change promotes the target on a fail over and also now attempts to set up replication back to the original src as well (assuming the original is available and not a puddle of melted goo). This means that writes to the new back end will be replicated back to the src, so if a user so chooses they can fail back to the original and have their new data. Change-Id: I678986e557755c2fe4183927c17342e430f5df0d - StorageCenter: Fix volume mapping for API v3.1 Volume attachment fails on StorageCenter API v3.1 because the backend instead of returning wwn or WWN as the key in the controller port it returns wWN, thus preventing the driver from finding the mapping. This patch adds support to any combination of upper and lower case of the WWN key. Closes-Bug: #1739651 Change-Id: Ie6ec59b4f6d31cb72e37f25f5347c815fee5af48 - Update tgt iSCSI target on volume extend When extending an in-use volume, the volume will be extended but the target exposing the volume will still report the original size. The target needs to be updated to pick up the change, but since it is in-use the update must be forced. This can cause IO disruption if there is active IO to the target, however retries will cause the next attempt to succeed and there will just be a few second IO pause on the host while the target session is reestablished. Not ideal, but it does recover with minimal impact on the host. And operators probably shouldn't extend volumes without pausing active IO to the volume anyway. See bug report comments for more testing details. Marking this as partial as it only addresses the tgt target and further investigation is needed to see if the other target drivers need similar updates. Change-Id: I0f7b58751c6d8d05cad5b1b95c4e21c8b5d36692 Partial-bug: #1731984 - Merge "Add service_token for cinder-nova interaction" - Merge "Remove deprecated 'nas_ip' config option" - Follow the new PTI for document build For compliance with the Project Testing Interface as described in: https://governance.openstack.org/tc/reference/project-testing-interface.html For more detials information, please refer to: http://lists.openstack.org/pipermail/openstack-dev/2017-December/125710.html Change-Id: I84e614346cfa4d302f919d12bea9680c5e527475 - NEC driver: add automatic configuration of SAN access control. NEC driver user has to register WWPNs or an initiator name of every node to storage. This is inconvenient for the user. This patch enables NEC driver to configure SAN access control automatically. Change-Id: I92b42600b71fbdfe1b84046c59ab485f333be889 Closes-Bug: #1737452 - Remove unused sf_enable_volume_mapping conf option The SolidFire driver has a stale config option that's no longer used anywhere (sf_enable_volume_mapping). This patch removes that unused variable. Change-Id: I11839fbeec4d9b7adf4255ea237848984350386e Closes-Bug: #1731393 - Add admin ctxt to request qos_specs in SolidFire We used to be able to call qos_specs_get without admin context, however something has changed and this now fails at the object layer in base:get_by_id. This means that now if one uses QoS-Specs with SolidFire and attempts to retype to another QoS Spec type, the call will fail with no response data due to a policy/permissions error. It turns out that the qos_specs.py api call will let you either pass in a context or pass in None and it implicitly gets an admin context. I prefer explicit behaviors, so add an explicit get admin context in the SF driver for this call. Change-Id: Idf10bfb8f5e738d7698233b7bdeaf45bef8914e2 Closes-Bug: #1738800 - Remove In-repo cinder tempest plugin As part of Queens Goal "Split Tempest Plugins into Separate Repos/Projects",the cinder tempest plugin needs to be split into a separate project. https://governance.openstack.org/tc/goals/queens/split-tempest-plugins.html This patch removes the in-tree tempest plugin as well as the setuptools entry point. Change-Id: I5ff95ca13f02ed6e0afb35f0d6bb5c36d4111f5a Depends-On: Ib309cb1f87211e82eae0d27fa2464ec13a9deca6 Implements: blueprint goal-split-tempest-plugin - Merge "Fix volume image metadata endpoints returning None" - Merge "NFS: Fix nas_secure auto mode permissions failure" - Merge "Rename iSCSI target config options to more general" - Merge "SMBFS: remove deprecated config options" - Merge "Fix migration Invalid volume message" - V3 jsonschema validation: Group Snapshots This patch adds jsonschema validation for below group snapshots API's * POST /v3/{project_id}/group_snapshots * POST /v3/{project_id}/group_snapshots/{group_snapshot_id}/action Made changes to unit tests to pass body as keyword argument as wsgi calls action method [1] and passes body as keyword argument. [1] https://github.com/openstack/cinder/blob/master/cinder/api/openstack/wsgi.py#L997 Change-Id: Ie3b8ffb209b30edf2a26a935aab840441b43adfa Partial-Implements: bp json-schema-validation - VNX: Fix cloning failure when system is busy In newton, the 30s wait was removed due to refactor, in this case, If the session hasn't started in the VNX, the driver would perform unexpected rollback for the migration. Adding a wait will make sure the session is started on the VNX thus cloning can succeed. Change-Id: I3419e628d42eddfe19c55cd72e7b9469e9fccc94 Closes-bug: #1732462 - InStorage: fix problem when doing instance live migration When doing instance live migration, the volume will be mapped to two hosts at the same time, so that the driver should always allow multihost map during initialize connection. Change-Id: I5a8892a49e56f6698d5a4d60b6422c49a0318ef1 Closes-bug: #1738965 - Merge "Trivialfix -- Fix spacing in docstring" - Merge "Raise PolicyNotAuthorized exception on consistency Group snapshot" - NFS: Fix nas_secure auto mode permissions failure When nas_secure_file_operations/permissions is set to auto, a failure to write the secure indicator file will result in the driver running with the secure option set to "true". This causes the driver to fail, because it then can't write any other files in unprivileged mode, either. In "auto" mode, this should result in the driver running with secure mode disabled. Closes-Bug: #1685012 Change-Id: Ib51c051ab458167c8244587e14edad2ca493a926 - Merge "SMBFS: fix detecting if a volume is in-use" - Add online data migration routine for attachment_specs This adds the hook to the cinder-manage db online_data_migration CLI for migrating attachment_specs entries to the volume_attachment table. Along the way, two changes have to be made in the VolumeAttachment object: 1. Handle 'connector' in updates in VolumeAttachment.create(); this makes the test work to create a volume attachment with the connector already set, something we should support so you don't have to create() and then save() the object. 2. In _from_db_object, we have to set the context on the attachment object and reset the volume field changes *before* saving the connector changes, otherwise save() fails because (a) it has an empty context and (2) you can't change a volume through the attachment. Change-Id: Ic0698e4fc0f6519c2676fe91e1a6c0fb47bbeb95 Related-Bug: #1737724 - NetApp: Fix to support SVM scoped permissions. Improves NetApp cDOT block and file drivers suport for SVM scoped user accounts. Features not supported for SVM scoped users include QoS, aggregate usage reporting, and dedupe usage reporting. Change-Id: I2b42622dbbb0f9f9f3eb9081cf67fb27e6c1a218 Closes-Bug: #1694579 - Dell EMC SC: API 4.0 incompatibilities 4.0 folder paths begin with a /. Also add a check that the user formatted the folder path correctly. Change-Id: I9bdc17c3f0daab97c33908bf3b96fbce963aa9f2 Closes-Bug: #1719428 - Trivialfix -- Fix spacing in docstring Found a poorly formatted docstring while going through code. Fixing it here. Change-Id: I6a2fbb7bd4b37b081296c71f714a23d4901a9d2a - Merge "Fix some typos in cinder doc" - VMAX doc - Queens feature documentation Part 2 - New features documented are iSCSI CHAP Authentication and deprecation of configuration XML file. Change-Id: I581ffcd8e14ab10e054be05429ee0f6717e27015 Partial-Bug: #1737735 - Create group from snapshot-group failure leaves behind the volume While creating a group from snapshot group or source group, if the quota exceeds during volume creation, the volume which are scheduled for creation are left behind in the DB.Only Group gets destroyed from the DB. To solve this, If error happens, taskflow will handle rollback of quota and removal of volume entry in the db. Change-Id: I5d60680fa92e50e51c9b3a6bcc940b18bef5b150 Closes-Bug: #1727314 - Merge "Updated from global requirements" - SMBFS: fix detecting if a volume is in-use The SMBFS driver along with the remotefs module rely on the volume status field when checking if it's attached. While in most cases this is fine, it will cause issues when backing up volumes. In this situation, the volume status will be 'backing-up', in which case the driver will wrongfully consider that the volume is detached (by not having the 'in-use' state). In particular, this affects the volume snapshot workflow. This change fixes this check, adding a helper method which detects the volume attach status by looking at the volume 'attach_status' field. Change-Id: I154d85cde693c6e77e22a677cae7150be48fce07 Partial-Implements: windows-smb-backup - Raise PolicyNotAuthorized exception on consistency Group snapshot In role based access control test case, a consistencyGroup snapshot delete when attempted by Non-admin role/user does not return an informative policy not authorized message. The proposed fix catches the PolicyNotAuthorized exception explicitly to raise the appropriate message and error code to the caller method, includes a new unit test case. Closes-bug:#1722736 Change-Id: I263c3f5201ac76773a9c962ec958f02f601c6adc - Fix some typos in cinder doc There are some typos in cinder doc, contirbute(contribute) ReplicationsSatus(ReplicationStatus) soure(source) specificed(specified) priviledged(privileged) overriden(overridden) This is to fix them. Change-Id: I2fb8317361ca574c49eb39e0b7735c7592126dc6 - Merge "qemu-img info --force-share for NFS driver" - Updated from global requirements Change-Id: Ibff5a5aaa288138c4c63875d67ddebd24a40fd3f - Merge "Use defusedxml for XML parsing" - Merge "Fix create encrypted volume from image" - Merge "[api-ref] Fix http method for updating encryption type" - Fix volume image metadata endpoints returning None This commit fixes the following volume image metadata endpoints returning None following policy enforcement failure: * ``os-set_image_metadata`` * ``os-unset_image_metadata`` The endpoints will now correctly raise a 403 Forbidden instead. The kwarg `fatal=False` was dropped from `context.authorize` for these APIs because the kwarg is only useful when adding additional information to the response body (if the user is authorized). This commit: * makes the fix for the two endpoints above * adds unit tests for validating the new, correct behavior (as a side note, policy overriding in tests can be more easily accomplished via adoption of something like [0]) Also note that since the default policy rule for these endpoints is "admin_or_owner" Tempest doesn't validate this behavior by default. [0]e599b13e49/nova/tests/unit/policy_fixture.py (L30)
Change-Id: Icc286d529609165e5f14cb506342660d7bc2ae9f Closes-Bug: #1737609 - Merge "Remove skip_validation_flag to False by default" - NetApp E-Series: Fix broken generic volume groups The Generic Volume Groups functionality is currently broken in the E-Series driver because it is not defining/removing a back-end consistency group when creating/deleting a generic group. This patch adds an implementation method in the respective E-Series drivers to utilize the underlying CG functionality. Closes-Bug: #1706777 Change-Id: I55dc417060d9226c2f120a16b031a79839d483d3 - Fix migration Invalid volume message This currently prints the volume id as a dict rather than the volume id. Make it print the message with just the id. Change-Id: Ice541e231eca54318a71c7994a0bf30d1c40f5d0 - [api-ref] Fix http method for updating encryption type This patch aims to fix http method in api-ref for updating encryption type, changing from 'POST' to 'PUT'. Change-Id: Ief48c73eb09afe2b5ff8c391f06013ab7eebd670 - Fix create encrypted volume from image If we run two create encrypted volume from image serially (waiting for one operation to complete before the making the next request) the first operation succeeds while the second one will fail during the attach phase. The failure we see in the logs indicate that OS-Brick is unable to get the WWN from the connected volume. In reality the failure to attach the volume on the second operation is caused by a failed cleanup of the first create, even if there's no error in the logs. The reason why OS-Brick didn't correctly do the cleanup of the first volume is because didn't know that it was attaching an encrypted volume and returned a real path (ie: /dev/sdf) that then go overwritten by the unencrypted device mapper. The solution is letting OS-Brick know that it's an encrypted volume during the attachment phase so it will return a symlink to the real device instead of the real device itself. The manager's "initialize_connection" does this correctly, but the method creating the volume from an image doesn't use the method of that class and calls the driver's "initialize_connection" method instead, which is missing the "encrypted" field. Closes-Bug: #1703954 Change-Id: I35db18f36f86683f2ab16694c9787c908251a382 - Storwize: disable creating volume with non cg_snapshot group_id Currently, creating a volume with replication group_id, the volume creates successfully, but it isn't added to storwize replication group. Creating a volume with hyperswap group_id has the same problem. Since adding a volume to a replication group immediately follow the volume creation may be failed on storwize, this patch disables creating volume with non cg_snapshot group_id. Change-Id: Ibf71696740129c254f0c065679fe6422bfa2c633 Closes-Bug: 1729782 - Rename iSCSI target config options to more general Since NVMET target driver will be implemented it would be good to use the same config options both for NVMEoF and iSCSI targets. That's why this path renames iscsi_ip_address, iscsi_port, iscsi_helper iscsi_target_prefix, iscsi_protocol to target_ip_address, target_port, target_helper, target_prefix, and target_protocol according to current deprecation policy. Change-Id: I5231f8fe3399deb9c57e6efb121d0d008dc9c7f4 Related-Blueprint: nvme-target-cli - 3PAR: Update CHAP on host record when volume is migrated to new compute host When the nova instances are migrated from one compute host to another, during the new VLUN creation step, the host record created on 3PAR has the old chap credentials, but the volume metadata contains the newly generated CHAP credentials. This fix will ensure the CHAP authentication credentials on volume metadata and the host record on 3PAR are in sync when the nova instances are live migrated. Closes-Bug: #1737181 Change-Id: I2d4b7530b2d249ca193f7d0e87d529c9eb2dc25d - Use method validate_integer from oslo.utils We added method validate_integer in oslo.utils 3.33.0 [1]. so we can simply the method validate_integer in Cinder. Depends-On: I741875eba329b762789a7c7c910a6c46beeff3fa [1] https://review.openstack.org/#/c/508401/ Change-Id: I950316ac0924acd692b2410993f3c240ce319d6f - Add 'shared_targets' only when it doesn't exist Add existence check before actually create it. Change-Id: I96946f736d7263f80f7ad24f8cbbc9a09eb3cc63 - Merge "Fix json formatting eror" - Merge "Fix indentation in docs" - Merge "Add thin provisioning package to install guide" - Merge "Check for migrated UUID in SolidFire delete" - Use defusedxml for XML parsing The built-in xml module has some vulnerabilities to several known XML attacks. While the chances of this are limited with the way it is being used by some of the volume drivers, it is still a security risk that has been identified and has a mostly painless way to be mitigated with the defusedxml package [1]. There are still some drivers performing XML parsing that are not covered by this patch. They need closer analysis to see how to best switch to the defusedxml equivalents. This patch covers the instances where it was a mostly drop in and replace from the native xml functionality to the defusedxml alternatives. [1] https://github.com/tiran/defusedxml/blob/master/README.md Change-Id: I083fc23eab6f712264919a250c6fb57cc0f6a11b Partial-bug: #1732155 - Remove deprecated 'pybasedir' config option 'pybasedir' was deprecated four years ago and now it's safe to be removed. Change-Id: Ie4e7d339103ec946ec2a011ad795db4511a7f388 - Remove deprecated 'netapp_eseries_host_type' config option 'netapp_eseries_host_type' was deprecated three years ago and now it's safe to be removed. Change-Id: I6dc86ebb326b6d88c20f6f2eb56bf57150536c54 - Remove deprecated HP 3PAR config options HP 3PAR was deprecated during Liberty and now it's safe to be removed. New HPE 3PAR options should be used instead. Change-Id: Iaec8c382f3ae578b3f1da1c570f0b83be59ee984 - Remove deprecated 'nas_ip' config option 'nas_ip' was deprecated during Liberty and now it's safe to be removed. Change-Id: I6fc27f8df7b5bb4d045cfdad7a6d6a96775d43b7 - Fix indentation in docs This commit removes weird indentations in docs. Change-Id: I82dd98d9fd9a7bf4ff73a808f59651813ac5ec37 - Merge "Fixes creation of mirrored volumes due to wrong type" - Merge "Correct documented service upgrade order" - Merge "Switch to oslo_db retry decorator" - Fixes creation of mirrored volumes due to wrong type new verions of lvcreate change the default mirror format to RAID1 vs the old style (mirror). Cinder expects the old style mirror as --mirrorlog mirrored is specified and this is only supported on the mirror type, not raid1. To fix this add --type=mirror to the lvcreate syntax when lvm_mirrors is > 0 and -m is specified. Closes-bug: #1730375 Change-Id: I72e2bd3e780b1dfbc4a3716bfd370ea8d0e28e96 - Check for migrated UUID in SolidFire delete Migration of volumes kinda screws up the use of ID as the reference to use for deleting volumes. If a volume is migrated, the UUID (ID) gets swapped and no longer matches the UUID the volume had when it was initially created on the back end device. The result is that deletion of that volume fails on the back end because the handle to the new UUID doesn't exist. On the other hand, you also have to be careful in dealing with and cleaning up volumes migrated off of your back end device for the same types of reasons. This change just adds an additional check in the SF driver so that we are querying the back end device for the ID and the name_id. This way we make sure if the volume is on our device we clean it up. Change-Id: I60f8e8864f236fb92dd03560576377f1a0bdd82b Closes-Bug: #1733967 - Merge "NetApp ONTAP: Copy offload bugfix" - Add thin provisioning package to install guide Our installation guide walks through configuring storage nodes using the LVM driver. LVM now defaults to thinly provisioned, which requires thing-provisioning-tools to be installed on the host. So by default, our instructions will result in failure when we attempt to perform thin provision operations. This adds mention of installing the required package for each platform's instructions to get the necessary tools installed. It also adds device-mapper-persistent-data to bindep for Red Hat based platforms to get those thin provisioning tools that were previously missing for these platforms. Tools appear to be installed by default on Suse platforms. Change-Id: I2a84ae99d71c3551814197917d114057430858b7 Closes-bug: #1738409 - Merge "Don't call driver.terminate_connection if there is no connector" - Merge "Store host connector in volume_attachment.connector column" - Merge "NEC driver: delete an unused configuration parameter." - Correct documented service upgrade order We had inconsistent service upgrade order information in our upgrade documentation. This corrects the order to be consistent with our recommended order of operations. Change-Id: Ifa8ea98e494d3058ef1a29fee4ab9fa76149ce08 Closes-bug: #1738223 - VMAX doc - Queens feature documentation Part 1 - New features documented are Asynchronous SRDF, SRDF Metro and Manage/Unmanage Snapshots. Change-Id: Ib37ed5e65ccdd44d2726b36bc668aad2dcd98339 Partial-Bug: #1737735 - Add service_token for cinder-glance interaction Service token will be passed along with user token to communicate with services when dealing with long running tasks like Create image by volume and Create volume by image. Change-Id: I4504a68c83e1e2110c27e62376968cfa1950cf46 Implements: blueprint use-service-tokens - Add service_token for cinder-nova interaction Service token will be passed along with user token to communicate with services when dealing with long running tasks like Create volume snapshot. Partial-Implements: blueprint use-service-tokens Change-Id: Id95beae0a46ab492756e0108039fefb28f4f0b69 - Switch to oslo_db retry decorator Our sqlalchemy code uses a custom retry decorator that does not limit the number of retries. Since this code was written, oslo_db now has a retry decorator better used for this purpose that limits the number of retry attempts. Change-Id: If39a81bbea26c14604b151a51d8e2bbe1bb2f110 Closes-bug: #1738292 - Don't call driver.terminate_connection if there is no connector It's possible to attach a volume to a shelved offloaded instance, which is not on a compute host - which means no host connector, and then detach that volume while the instance is unshelved. There is a test in Tempest just for this scenario. When nova calls attachment_delete on detach, the cinder volume manager is calling the driver.terminate_connection method regardless of there being a host connector, and some drivers blow up on that. This used to "work" with the pre-3.27 attach flow in nova because in the detach case where there was no connector, nova would simply not call os-terminate_connection, but with the new 3.27+ flow for attach, nova only calls attachment_delete regardless of there being a connector. This change simply checks to see if the attachment has a connector and if not, it avoids the call to the driver to terminate a connection which does not exist. Change-Id: I496e45608798a6a5d9606f9594feeb8b60855d1a Closes-Bug: #1738254 - Store host connector in volume_attachment.connector column The attachment_specs table's key and value columns are strict strings, which means things like a wwpns list value for a fibrechannel connector can't get stored there and results in a DB error during attach with the new volume attach flow in Nova. The attachment_specs table is arguably not the best way to store this data, which is just a dict like the connection_info. A better way to store this is as a serialized json blob on the volume_attachment record itself. This patch adds the database migration to add the column and an online data migration routine to migrate existing attachment_specs entries when a volume attachment object is loaded from the database. The volume manager attachment_update flow is changed to store new connector attachments in the volume_attachment table directly. An online data migration hook for the CLI will be added in a follow up change. Change-Id: Ica1f0e06adf0afcf740aad8cdc8d133ada1760c8 Closes-Bug: #1737724 - Merge "Migrate fixed_key encryption keys to Barbican" - Merge "V3 jsonschema validation: Group type specs" - qemu-img info --force-share for NFS driver NFS initialize_connection fails due to new locking code in qemu-img info. Bug 1718133 tracked a related issue. Fix the NFS driver to work with the new version of qemu-img info by disabling locking for qemu-img info queries during initialize_connection and create_snapshot. Closes-Bug: #1731992 Change-Id: Ia3623af2048d6cbda65deebf4404e6b5fefe1bfc - NetApp ONTAP: Copy offload bugfix When 'NetApp NFS Copy Offload' tool is configured to download Glance images, these images are downloaded twice because the tool is doing the job after Cinder has already done it. This patch fixes the bug by executing the copy offload tool inside the clone_image function instead of using the copy_image_to_volume. Closes-bug: #1632333 Change-Id: I5c6ad150543213acfd0c78dbbdb1dc1584d22d26 - Merge "V3 jsonschema validation: Volume metadata" - Merge "Cleanup XtremIO IG cleanup note" - Merge "Restore_backup: set error when volume status not matched" - Merge "Don't raise 'NotAuthorized' inside when soft authorization" - Merge "Fix discrepancy in api-ref for volume_types APIs" - Merge "QNAP: Add support for QES 2.0.0" - Merge "SMBFS: manageable volumes" - Merge "XtremIO: optional clean IG with no mappings" - Merge "Fix several instances of chap secret being output to logs." - Merge "added clarification in docs for usage of "volume_clear*" options" - Merge "TrivialFix: Delete word ‘I’ in admin/blockstorage-backup-disks.rst" - Merge "handle no default_cgsnapshot_type" - Cleanup XtremIO IG cleanup note Minor issues with the release note for change I4f6a9676d4ee7e1c4456879b5f1ed9ec20bb7f48 that were not worth holding up that patch. Change-Id: I893dd735fe44089667ac802c0122019c14f30d1c - SMBFS: remove deprecated config options Some driver specific config options have been marked as deprecated in Pike and are now being removed. The equivalent generic options are available. Note that the 'smbfs_sparsed_volumes' config option was only used by the Linux SMB driver, which was removed in Pike. By mistake, it was copied over to the Windows SMB driver, which was inheriting it. Change-Id: I23def8b2095dcf3945d2e0e1b4e5efe178cef9be - Merge "DS8K: lss_range_for_cg should take csv as well as range" - Storwize: fix group creation restrict rules The following conditions should be denied for group creation: 1. Mixed group types are configured. For example, both consistent_group_snapshot_enabled and consistent_group_replication_enabled are set. 2. group_replication_enabled is set. 3. consistent_group_replication_enabled is set with non-replication volume type. 4. consistent_group_replication_enabled is set with different replication volume types. Closes-Bug: #1736907 Change-Id: Ib1ba622c83f3819f9b6c8ea18749b891a60bd12c - Merge "Keep v3 api-ref error response code 404 for reverting" - Merge "Add cg policies and clean up old policy handling" - Restore_backup: set error when volume status not matched When volume actual_status was not equal to expected_status, the restoring were not setting the volume to a 'error_restoring' status, if it so happened that the actual_status was 'available', client would be misled to think that restoring had finished. So this patch fixes that. Closes-Bug:#1732378 Change-Id: I74c15a99e90a24020b2f427a70f5d04376bd31af Signed-off-by: Xiaojun Liao <xiaojunliao85@gmail.com> - Keep v3 api-ref error response code 404 for reverting Client can still receive the 404/NotFound when attempting the fetch of the volume. Change-Id: Ieafaae5ccb5a23b4d3ad37b8e7eee40484346cfc Signed-off-by: Xiaojun Liao <xiaojunliao85@gmail.com> - Merge "Add output of slowest tests to UT runs" - Merge "VMware: Bump driver version" - Merge "Removed gb quota decrement in grp snapshot delete" - Merge "Remove invalid parameters in the file testing.rst" - Merge "Pass in the parameters multipath when migrating volume" - Merge "Modify v3 api-ref error response codes for reverting" - Merge "Fix available space checking for image conversion" - Speed up DataCore unit tests Add necessary mocks for looping calls and remove timeouts in DataCore unit tests. This patch aslo changes 'start' method signature of ZeroIntervalLoopingCall class to correspond the base method's signature. Change-Id: I5c466eae9a5247729264b5d6822d83f53ef033ef - API ref: add host format to description Specify host and os-vol-host-attr:host parameters format. Change-Id: Ib0ab0319e04e23e93f31a49bca17ed30af2474d0 - Fix discrepancy in api-ref for volume_types APIs In the api ref document, for create volume_types 'extra_specs' parameter is missing. And for parameter 'is_public', in code it is used as 'os-volume-type-access:is_public'. For update volume_types api as per api ref, 'name' and 'extra_specs' parameters are mandatory. But in code 'name' is optional and 'extra_specs' implementation is not done. This patch fixes this discrepancy by updating the api-ref according to the code. Change-Id: I7faa711fc72cd81676812017a92ef40273f1bf7c - Fix json formatting eror Change-Id: I33447b1d83911b5cc18d0f29bea4f9a7c855f567 - V3 jsonschema validation: Group type specs This patch adds jsonschema validation for below Group type specs API's * POST /v3/{project_id}/group_types/{group_type_id}/group_specs * PUT /v3/{project_id}/group_types/{group_type_id}/group_specs/{spec_id} Made changes to unit tests to pass body as keyword argument as wsgi calls action method [1] and passes body as keyword argument. [1] https://github.com/openstack/cinder/blob/master/cinder/api/openstack/wsgi.py#L997 Partial-Implements: bp json-schema-validation Change-Id: Ie0ac535a6892e5fc62aa6f29fab869fc44f2e57 - Don't raise 'NotAuthorized' inside when soft authorization Using try/except block when performing soft authorization is less efficient and will lead to lots of confusing error messages, pass 'fatal' parameter directly to inner authorize function. Change-Id: I0bdf23e371ff8469080982553cb1ffd8a64c9e2d Closes-Bug: #1736854 - Change ssh_utils parameter to correctly sends keepalive packets The current implementation of ssh_utils never sends keepalive packets. In ssh_utils.SSHPool, the socket timeout parameter is set to None intending to keep ssh connections open. However, when the parameter is set to None, ssh_utils does not run the code to compare idle duration and keepalive interval. This patch reverts the socket timeout parameter to default (0.1 sec). The ssh_utils compares them every 0.1 seconds, and sends a keepalive packet if idle duration > keepalive interval (= self.conn_timeout). Change-Id: I8234083107207b9ebc0849947e8de92b5cf3e36e Closes-Bug: #1673662 - Merge "Fix test case in test_volume_unicode.py" - Merge "Deprecate cinder-manage logs commands" - Modify v3 api-ref error response codes for reverting Change-Id: Id20000e483246b96d2dd478b041a56c2b1e119ff Signed-off-by: Xiaojun Liao <xiaojunliao85@gmail.com> - Merge "Check snapshot flag for test_snapshot_create_volume_description_non_ascii_code" - Merge "DS8K: don't swap role after failover group" - Merge "Update unity tests to use our test base" - Merge "Fix api-ref for v3 group type specs" - Removed gb quota decrement in grp snapshot delete Before https://review.openstack.org/#/c/517725/, when capturing a vm we used to reserve gb quota twice. So then i changed the code such that we should only increment/reserve the gb quota once, i.e., when creating the group snapshot (not while creating volumes). Hence we no longer need to decerment gb quota when we delete the group snapshot (initially we decremented because we incremented twice). Change-Id: I64ff9c25dbea7950ca87f226c6628a730f9e3c0e Closes-Bug: 1735650 - Add output of slowest tests to UT runs With the switch to stestr we lost the automatic output of the slowest tests. We can still get that output, but it is a separate command to run after the tests. Add that to our tox.ini command for test execution. Change-Id: I37937c1ebe4a10b896f1deb77f64b520ceba2830 - Fix available space checking for image conversion Cinder checks if there is enough free space to convert image from qcow to raw format before uploading it into the volume. This patch fixes the issue when we try to compare GiB to KiB. Change-Id: I18b890ab1a73e0e7e9e626c7f896486fdd1f6d75 Closes-Bug: #1737551 - Deprecate cinder-manage logs commands These commands search Cinder log files and /var/log/messages to look for log messages related to Cinder. This is hacky and bound to be unreliable in deployments which now may have log files configured in different ways. They also read entire log files into memory as lists and reverse them, which is bound to be slow on large deployments. Deprecate these commands and leave log analysis as a job for another tool. Change-Id: I5672904383d41949b86cfdff41cfa0f0ae79b5ba - QNAP: Add support for QES 2.0.0 This patch do the following change to the QNAP Cinder driver: 1. Add support for QNAP QES firmware 2.0.0. Change-Id: Iae006115e46e20fb354d1db8a09ff4df9810aa44 Implements: blueprint qnap-support-qes-200 - Merge "Fix create from snapshot and source volume" - Merge "Updated from global requirements" - Merge "Fix discrepancy in api-ref for create volume manage api" - Merge "Add support for enhanced features to the QNAP Cinder driver" - Merge "XtremIO: extending volume in create_volume_from_snapshot" - Fix test case in test_volume_unicode.py The test case `test_snapshot_create_volume_description_non_ascii_code` in test_volume_unicode.py breaks the CI job [1], as the test case makes a wrong assumption that the 'descrption' of snapshot will be inherited from source volume. This patch aims to fix it. [1] legacy-tempest-dsvm-full-devstack-plugin-ceph Change-Id: I038684acc488fb1ddba0daff348a23ebf45083da Closes-Bug: #1736676 - VMAX Doc - clarification and typo fixes Fixing formating in setup section for clarification and other minor typo fixes Change-Id: Ice0c38dc95a6a40f41ee77e453ec42376bb367d6 Closes-Bug: #1729258 - Updates Help Text on Quobyte Volume URL Option This microchange updates the quobyte_volume_url option help text to point out that using a DNS SRV record is the best solution for this config option. Change-Id: I0ffc5da37d342b722098ea36e11e269c3ae463b3 - V3 jsonschema validation: Volume metadata This patch adds jsonschema validation for below metadata API's * POST /v3/{project_id}/volumes/{volume_id}/metadata * PUT /v3/{project_id}/volumes/{volume_id}/metadata * PUT /v3/{project_id}/volumes/{volume_id}/metadata/{key} The reason behind applying schema for v2(update and update_all) is that in "/cinder/tests/unit/api/v2/test_volume_metadata.py" module from this patch, V2's unit test cases are inherited for V3 and now we are applying schema validation for V3 because of that V2's unit test cases responses are modified. If we remove schema validation from V2 then we will need to add separate unit test cases for V3. Made changes to unit tests to pass body as keyword argument as wsgi calls action method [1] and passes body as keyword argument. [1] https://github.com/openstack/cinder/blob/master/cinder/api/openstack/wsgi.py#L997 Partial-Implements: bp json-schema-validation Change-Id: I2226c8533cbd1ddd274d8dd0b2d77708463896f4 - Fix create from snapshot and source volume A regression was introduced in I970c10f9b50092b659fa2d88bd6a02f6c69899f2 on backends supporting storage pools. By extracting the 'host@backend' out of the host attr from a parent volume, the scheduler may attempt to put volumes into other pools belonging to the backend. Many backends cannot clone across storage pools, or create storage volumes from snapshots from other storage pools. Change-Id: Ic4c8f29bef2c82550d6d6f03f8fa1dc80696f56e Closes-Bug: #1732557 - VMware: Bump driver version Updating the vmdk driver version to reflect various enhancements made in the current release. Change-Id: I6ad364fa3713b9f41b56b4b3662634cfb02ef365 - Check snapshot flag for test_snapshot_create_volume_description_non_ascii_code Tempest config allows disabling running any tests for volume snapshots because of storage backends that don't support snapshot, so we need to not run any tests which create snapshots when Tempest has been configured otherwise. Change-Id: I325aa997c65472a0e9e0b3356f27d1732aab3b5f - Updated from global requirements Change-Id: I2de9766406f5abf7710de8e7a9637d5a23324347 - Merge "Disallow unmanaging encrypted volumes" - Merge "Remove v1 API reference" - Fix discrepancy in api-ref for create volume manage api For create volume manage api, 'bootable', 'name', and 'metadata' parameters are mandatory as per api ref document but as per code these parameters are optional. This patch fixes this discrepancy by updating the api-ref according to the code. Change-Id: I614c0866f52503ed7264f7bf74a193dd17590028 - Merge "Fix policy documentation for os-show_image_metadata endpoint" - Merge "Update the documentation links" - Merge "Disallow managed volume to be managed again" - Merge "Tests: Cleanup utils.create_volume fields" - Merge "Tests: Fix Storwize hash randomization failure" - Merge "Fix retype migrating volume with rep_status 'not-capable'" - Merge "V3 jsonschema validation: Group types" - Remove skip_validation_flag to False by default Remove the skip_validation to force quota validation. Closes-bug: #1735337 Change-Id: Ib9596ac3ecc57a4f825b7d7118014e2ac14b2473 - XtremIO: optional clean IG with no mappings Optionally remove the IG and initiators after unmapping the last volume. closes-bug: #1723430 Change-Id: I4f6a9676d4ee7e1c4456879b5f1ed9ec20bb7f48 - Merge "Fix for volume from image snapshot free space issue" - Merge "Updated from global requirements" - Merge "INFINIDAT: change CI_WIKI_NAME" - Fix api-ref for v3 group type specs This patch aims to make some trivial fix on api-ref for v3 group type specs. Change-Id: If59c491446a7bf7b928ca2219092ed9561501cd9 - TrivialFix: Delete word ‘I’ in admin/blockstorage-backup-disks.rst Change-Id: Ia0792a6a70d74416b7ef593141efbd167aeb1fa5 - Fix TypeError for workers cleanup api incase of invalid resource_type value Workers cleanup API fails to build exception message if invalid resource_type value other than ['snapshot', 'volume'] is passed and raises TypeError which gets wrapped into BadRequest at wsgi level. This patch modifies exception message to fix TypeError issue. Closes-Bug: #1734252 Change-Id: I5823547c88edb4a1cc9ea5a51c9bf301daf41257 - DS8K: don't swap role after failover group After group failed over, DS8K driver should not run failback in replication target to swap the role of primary volume and secondary volume which will fetch the changes in secondary volume to primary volume. Change-Id: Ib9ad406d933f6491c5e9fbd46dd3c7d6bb07e45b Closes-Bug: 1727963 - Merge "VMAX driver - Deprecate backend xml configuration" - Merge "VMAX driver - Remove workload for next gen arrays" - Merge "VMAX driver - Implement Tiramisu feature on VMAX" - Updated from global requirements Change-Id: I615d12dfdced3230d3a4195e0323cf3ed9a04e6b - Merge "FlashSystems: permit snapshot/clone volumes larger than source" - DS8K: lss_range_for_cg should take csv as well as range Now, lss_range_for_cg only accept a range value, but we think it should also accept csv. This patch is used to implement it in Queues Release. Change-Id: I14c4ea5ac1bdb0dedfa875c94d1e1b36a256a390 Closes-Bug: 1734037 - Merge "Add test for volume create with non-ascii characters" - Merge "Adds DataCore Volume Drivers" - Fix for volume from image snapshot free space issue create_from_image() function checks for free space in conversion path (by default /var/lib/cinder/conversion) even if cinder is creating volume from image snapshot. If /var/lib/cinder/conversion has less free space than the size of the image volume is created from, exception will be thrown by check_available_space() function in image_utils module. This patch checks if cinder is configured with allowed_direct_url_schemes = cinder If so, cinder should not check free space in conversion path because volume is created from image snapshot. Closes-Bug: #1683228 Change-Id: I6330ed31dc9336c9d3d09c2d43c8f4913744e9a2 - NEC driver: delete an unused configuration parameter. The `ldset_controller_node_name' parameter has been deprecated and is ineffective already. This patch refactors NEC driver by deleting the unused codes. Change-Id: I0fb5dc6404ee4db54a3dfc839b9a56622bff6906 Closes-Bug: #1734633 - INFINIDAT: change CI_WIKI_NAME As we now support more than one OpenStack project, our CI name should be more general than INFINIDAT_CINDER_CI. Changed to: INFINIDAT_CI. Change-Id: I3b581e1b880cf08dd7400db8d77bad8b8fa3b716 - V3 jsonschema validation: Group types This patch adds jsonschema validation for below Group types API's * POST /v3/{project_id}/group_types * PUT /v3/{project_id}/group_types/{group_type_id} Made changes to unit tests to pass body as keyword argument as wsgi calls action method [1] and passes body as keyword argument. [1] https://github.com/openstack/cinder/blob/master/cinder/api/openstack/wsgi.py#L997 Change-Id: I0dde39ec96b04e497553b07a07acb95039ee5959 Partial-Implements: bp json-schema-validation - Add test for volume create with non-ascii characters This test was uploaded since there was a bug [1] while creating a volume snapshot if the description of the parent volume contains non-ascii code. [1] https://bugzilla.redhat.com/show_bug.cgi?id=1383899 Change-Id: I9fc41a426b29fad4f4d42a584325f0465a20effe - Add cg policies and clean up old policy handling This completes the "policy-in-code" work for Cinder by removing the old policy.json handling. It also adds new in-code checks to the legacy consistency group code for completeness. Change-Id: I810b6cb6bba2d95cc5bb477d6e2968ac1734c96b Depends-on: I364e401227fe43e2bacf8a799e10286ee445f835 Implements: bp policy-in-code - Merge "Add shared_targets and service_uuid to volumes" - Merge "nimble: handle unicode strings in volume create" - Migrate fixed_key encryption keys to Barbican Assist users who are switching from the legacy ConfKeyManager to Barbican by automatically migrating any existing keys. Key migration is executed in its own thread spawned on cinder-volume startup. Two factors are used to determine whether existing keys need to be migrated. 1) The ConfKeyManager's fixed_key config value is set (not None). This indicates volumes may exist that were encrypted using the ConfKeyManager. 2) Barbican is the current key manager. When the both conditions are met, each instance of the cinder-volume service scans its volumes in the database, looking for volumes using the ConfKeyManager's all-zeros encryption key ID. If a volume has an all-zeros key ID, the same secret (derived from the fixed_key) is stored in Barbican, and all database references to that volume's key ID are replaced with the new Barbican key ID. Implements: blueprint migrate-fixed-key-to-barbican Change-Id: Ic70f45762cf4e426c222415e49b947a328282ca0 - Add shared_targets and service_uuid to volumes This adds the last bits to the shared_targets and service_uuid additions to volumes. The object and db models are already updated and this change simply introduces API MV 3.48 to expose the new fields to the Volume view. These fields are intended to be used for identifying if the back end device serving a volume is using shared targets, and provides the service_uuid to be used as a suggested/unique handle for locking. Change-Id: Ibd18c5f6c772f7265175a63ed2b598fcc3c87bc1 - Pass in the parameters multipath when migrating volume When multipath is enabled, we do not pass in parameters multipath when migrating volume. Change-Id: Ie6a8136835550d1cec1bc0ccd9c30c83e59580d4 Closes-Bug: #1735674 - Discrepancy in api-ref and code for create group type API 'name' is mentioned as an optional parameter in api-ref doc for POST /v3/{project_id}/group_types API but in the code if we don't pass 'name' it returns BadRequest. Also in create and update API, 'is_public' parameter is not added in api-ref document. This patch fixes this discrepancy by updating the api-ref according to the code. Change-Id: I34e53ac72cbda9d8264e48e50f5a84ca09b850bd - Imported Translations from Zanata For more information about this automatic import see: https://docs.openstack.org/i18n/latest/reviewing-translation-import.html Change-Id: Ifefc495bdc8877e981e11bd5ffee371dc0eb2e0a - Merge "Add shared_targets flag to Volumes" - Merge "Discrepancy in api-ref and code for create group snapshot API" - Merge "Remove extra test variable assignment" - Merge "VMware: Backend driver for VStorageObject" - Merge "NetApp ONTAP: Fix delayed snapshot deletion call" - Remove extra test variable assignment Expected assertion value is assigned and then immediately overwritten. Removes unused variable assignment. TrivialFix Change-Id: I8603a2d63e57354aa0d153ddfb4e9b4172ff803d - Merge "Imported Translations from Zanata" - Merge "Unity: Fix duplicate hosts created with same name" - Tests: Cleanup utils.create_volume fields Fields that default to None don't need to be added here, they are handled by **kwargs + volume.create(). Remove "group_snapshot" since it's not actually a volume field. Also make the function more readable. Change-Id: I6cf27bae91ac0faac7d6bdc2d7e447fc5b598482 - Imported Translations from Zanata For more information about this automatic import see: https://docs.openstack.org/i18n/latest/reviewing-translation-import.html Change-Id: Ib66253d3f809c65a2da39c4994e914c1bea53506 - Discrepancy in api-ref and code for create group snapshot API 'group_id' is mentioned as an optional parameter in api-ref doc for POST /v3/{project_id}/group_snapshots API but in the code if we don't pass group-id it returns BadRequest. This patch fixes this discrepancy by updating the api-ref according to the code. Closes-Bug: #1735177 Change-Id: Id2165a07995ab706d4a327f7340dccee7799c7b6 - Tests: Fix Storwize hash randomization failure Some fields tested here are lists that are generated from dicts, and can therefore be in any order. Change-Id: I30817ae767e08c45f9540b19e922864fe2f7a9c2 - Merge "Fix group_type_id in api-ref" - Merge "Consolidate code that manages encryption keys" - Merge "Fix project_domain_name and user_domain_name in doc" - Merge "Mock out CLI execution in NEC driver tests" - added clarification in docs for usage of "volume_clear*" options * In the current documentation its pretty unclear where to set the volume_clear* options and since we found that they will not work while set in the [DEFAULT] section this commit adds information on where to set them. Change-Id: I7d48a0210f3d4545d5a4d932796cb82a677e467f - Disallow unmanaging encrypted volumes Unmanaging encrypted volumes is problematic because unmanage assumes that you will be able to manage the volume again for later use, but, we have no mechanism currently to keep track of the encryption key which would be required for using an encrypted volume again. While this may work out ok when using the conf_key manager, this patch does not distinguish between conf_key and barbican deployments. Closes-Bug: #1731518 Change-Id: I7506fa36962404c80f1cc9c6370693728e5393a7 - Disallow managed volume to be managed again On manage existing volume, check if the volume is already managed. If the volume is already managed, display an error "Unable to manage existing volume. The volume is already managed" Closes-bug: #1518798 Change-Id: Ide79fda590762cc040acc36987504a2bee2e85fe - Merge "Allow purging of records less than 1 day old" - Fix project_domain_name and user_domain_name in doc Change-Id: I192708586d89d1bf07a5e52ed1c45de6eab689a5 Closes-Bug: #1735051 - Add support for enhanced features to the QNAP Cinder driver This adds enhanced supports to the QNAP Cinder driver: - CHAP - Thin Provision - SSD Cache - Dedupe - Compression DocImpact Implements: blueprint qnap-enhance-support Change-Id: I2a7440789753bb0e42ac0e8d0190b21652a87e2f - Merge "DS8K: update replication_status in generic group APIs" - Mock out CLI execution in NEC driver tests The VolumeStats_test was not mocking the CLI code that retieves backend stats, resulting in an ssh_known_hosts file being created in the local directory. This mocks out the calls to avoid this. Change-Id: I60898272e0da165fe3168e51d8595250682179c0 Closes-bug: #1732992 - handle no default_cgsnapshot_type If default_cgsnapshot_type has been deleted, group operations for drivers relying on the generic volume group implementation were failing with a KeyError while attempting to determine if the targeted group was default_cgsnapshot_type. This fixes that by using a comparison that allows for the possibility that default_cgsnapshot_type does not exist. Change-Id: Ic220ea4d8a6e83293e5237acfb07b1a417293803 Closes-Bug: #1710937 - Add shared_targets flag to Volumes This adds a bool column to volumes to notify consumers if the backend hosting the volume utilizes shared_targets or not. We use the volume-drivers capabilities report to determine this and default to True if a driver doesn't report anything. The purpose of the column is to notify Nova that it needs to do some sort of locking around connect/disconnect to be sure other volumes on the same node aren't sharing the iscsi connection. Using a default of "True" is safe because although locking and doing the extra checks might be somewhat inefficient it works fine because it will just appear that there's never any other volumes in use. So this change adds the column to the DB as well as an online migration to go through and update any existing volumes. With this and the service_uuid column consumers will have everything the need to: 1. determine if they need to lock 2. use the service_uuid as a unique lock name That last remaining change in this set will be to add the fields to the view-builder and bump the API version. Change-Id: If600c28c86511cfb83f38d92cf6418954fb4975e - Merge "HPE3PAR: Create FC vlun as host sees" - Merge "Move legacy-cinder-tox-* jobs in-tree" - Merge "Use new oslo.db test cases" - Merge "Support create volume from backup" - Allow purging of records less than 1 day old Adding ability to purge records less than 1 day old, using the cinder-manage db_purge utility. Added an unit test case at test_purge.py Change-Id: I1e1f58e19ae02896633bc1ab0a8aa8ca3cc26ccf Closes-Bug: #1723226 Co-Authored-By: Tee.Ngo@windriver.com - Update the documentation links The documentation about "ops-guide" has been moved. Change-Id: I962b06eeabfc1ac8dc2bdfc6459fd37f7532f0ee - Merge "Fix 'KeyError' when 'with_count' is not specified" - Support create volume from backup This patch implements the spec of creating volume from backup. Change-Id: Icdc6c7606c43243a9e12d7a42df293b729f589e5 Partial-Implements: blueprint support-create-volume-from-backup - Fix 'KeyError' when 'with_count' is not specified Pop method will raise KeyError if the key does not exist. Fix this by ensuring 'with_count' exists before parsing the string value. Change-Id: Ibcba92f7cdb2506f3b2f31baa2fca6c696ff57a4 - Consolidate code that manages encryption keys This patch is a minor reorg of existing code to facilitate subsequent changes for migrating legacy keys to a modern key manager such as Barbican. volume/utils.py now supports these functions that manage the lifecycle of an encryption key: - create_encryption_key() - delete_encryption_key() - clone_encryption_key() create_encryption_key() is an existing function, but it was not used everywhere a key was created. All code that needs to create a key now does so by calling this function. delete_encryption_key() is primarily a small wrapper, but it will play a larger role in a subsequent patches related to key migration. One functional improvement in this patch is it no longer propagates an exception when deleting an unknown key ID. This avoids needlessly blocking attempts to delete an encrypted volume for fear that the key could not be deleted. clone_encryption_key() is a small wrapper that improves the transparency of code that needs to create a new encryption key ID from an existing key ID. Implements: blueprint migrate-fixed-key-to-barbican Change-Id: I2108e77a8d07dddfb9ec284b3930a197854bd884 - Use new oslo.db test cases Base migration test cases have moved to a new location in oslo.db resulting in DeprecationWarnings in the Cinder logs. This updates the migration tests to use the new location for these base test classes. Also tries to clean up slightly by moving the test_migrations tests under the db directory. Change-Id: Iaf77db73e368aee0d09b4c8e76f180f394f1aa37 Closes-bug: #1733903 - Merge "Add service_uuid FK to volumes" - Merge "Add cleanup to TestCase.flags()" - Merge "Support create a volume from image snapshot" - Move legacy-cinder-tox-* jobs in-tree The compliance and bandit-baseline jobs just call tox to run tests. These are an easy step to move in-tree. Since it is also easier to have conditions on when things run, this also adds filtering so the compliance job will now only run when there are changes in code that impact the drivers. Change-Id: Idb9a1f39481f3ebb704b28abc062ae24414d7224 Needed-by: I3af7771ab3e8d5a192f466dcec36a2b41db08ac3 Needed-by: I4af1813c69a5ddccbde8b99ed15023aa407995b5 - Add cleanup to TestCase.flags() Prior to change 43a31525, this method was installing a cleanup method to reset the changed config values after the test was run. It should still do that to prevent conf changes in one test from interfering with other tests. Change-Id: I8747b56804704da07bc29b9680c57bc172693994 - HPE3PAR: Create FC vlun as host sees Host sees VLUN template allows host connected to any port to see a vv. so, only one vlun template will be created per host irrespective of number of FC ports available. Change-Id: I623d6114db866a465955f8a5ae7f40b69c781622 Closes-Bug: #1734505 - Merge "Re-add QNAP Cinder volume driver" - Merge "Filter valid FC initiator while FC attaching" - Support create a volume from image snapshot The instance boot from volume, snapshot the instance will create a image in glance. The image size is 0, it just a link to the volume snapshot. When the user create volume from the snapshot image, in the current version, it will create a blank volume. so the user is troubled. This patch fix it. The scheme: when the user create volume from snapshot image, the api create interface will parse out the snapshot image corresponds to the volume snapshot id. Then create a volume from the volume snapshot. So, the user can use this way to restore the instance's bootable volume. Change-Id: Ic44dfae8bb187a5aa9c2c1f50f7b5dc0ef0f28f8 Closes-Bug: #1560867 - Filter valid FC initiator while FC attaching While attaching a volume by FC, Huawei driver will verify the FC initiator wwns validation via checking if these wwns exist in Huawei storage. At the situation of NOVA compute node connects to multiple storage through FC, the passed in inititator wwns must include the wwns that aren't actually connected to current backend storage, so the verification would fail. To avoid this problem, add a filtering step for initiator wwns according to the actual valid FC initiators in backend storage before verification. Change-Id: I30fe1b0964679416b46a4bbcb72e75814f022aa8 - Remove invalid parameters in the file testing.rst Remove invalid parameters in the file testing.rst and modify UT path of cinder volume Change-Id: I629cd5a643d22584cb151bcd49ce8ee9c821cadc Closes-Bug: #1733774 - Merge "Handle quota in 2 phases when managing resource" - Merge "Storwize: revert to snapshot support" - SMBFS: manageable volumes This change allows the SMBFS driver to claim (manage) vhd/x images present on pre-configured shares. Note that images having backing (parent) files will be rejected. Managing snapshots will not be supported either. The images may reside in subdirectories (and get moved afterwards), which may be useful when having a folder dedicated to images that are to be imported in Cinder. All the logic is included in the new "RemoteFSManageableVolumesMixin" class so that any related driver may inherit it. For the record, this works out of the box for the NFS driver (special care has been taken in this sense). Implements: blueprint remotefs-manage-unmanage-volume Change-Id: I54695655e563d84e4fb1b76c42f0127c5fb909f7 - Fix retype migrating volume with rep_status 'not-capable' When retype migrating a volume with rep_status 'not-capable', cinder driver will reject it because the volumes with rep_status 'not-capable' are considered as a replicated volume. This patch fixes the issue by adding 'not-capable' to the rep_status checklist. Change-Id: I86179c47343de32527d17d7e2177046e89cbd007 Closed-Bug: #1734011 - Adds DataCore Volume Drivers The iSCSI and Fibre Channel volume drivers for DataCore’s SANsymphony and Hyper-converged Virtual SAN storage support the core/minimum feature set: - Volume Create/Delete - Volume Attach/Detach - Snapshot Create/Delete - Create Volume from Snapshot - Get Volume Stats - Copy Image to Volume - Copy Volume to Image - Clone Volume - Extend Volume DocImpact Implements: blueprint datacore-volume-driver Change-Id: I3308bdedbfe3bb83d695d38667eaea6327fa4461 - Merge "Update access control of show under hostAPI" - Handle quota in 2 phases when managing resource Cinder would commit quota twice when managing resource in a clean environment that the corresponding 'quota_usage' record is empty. This is all because of we create db entity before reservation, hence the SYNC mechanism would refresh new record into quota_usage before actually reserved. This patch fix this issue by introducing 2 phases reserve&commit, the latter only intends to update the actual size. Closes-Bug: #1587376 Change-Id: I79940e534ec03f2d327e8a7e14e45bc93ae41b0c - Merge "RBD: support driver-assisted volume migration" - Merge "SMBFS: add fixed image support" - RBD: support driver-assisted volume migration This patch implements the driver function migration_volume() and allows a user to efficiently migrate a volume from one pool to another as long as both pools reside in the same cluster. Change-Id: I84b5ff546726c9eddb46badb48b24ed1905e0aa8 Implements: blueprint ceph-volume-migrate - Merge "Modify the wrong link in document" - Update unity tests to use our test base Deprecation warnings were being emitted due to use of assertRaisesRegex, even though a py2/3 wrapper was created in I3cf8e29184a68a07d35fb121c816e40b89df393e. This was due to the Unity tests inheriting from unittest.TestCase instead of our own base TestCase. Switched test cases over to use cinder.test.TestCase gets rid of the deprecation warning for assertRaisesRegex. Our base test installs a logging fixture to make sure log messages are OK. This uncovered that the driver code was trying to pass an object in as if it were a dict of formatting values, resulting in an error. This patch fixes this my creating a dict of the needed values to pass in so the tests will pass under the new inheritance. Change-Id: I2a6643ab4827dae244212c90c73402ff6d61cf76 - Update access control of show under hostAPI Update the detection mechanism of show interface under the host API. Replacement detection mode, and add policy for host show API. Change-Id: I76ca1251cd14da6c777bd48a28906d8362d836b0 Closes-Bug: #1732808 - Modify the wrong link in document Change-Id: Ibebd5a6e3752a441fc0f05f4bfd1be2b7f360480 - Merge "V3 jsonschema validation: Attachments" - Merge "Try Fetching value from 'cluster' when raise exception" - V3 jsonschema validation: Attachments This patch adds jsonschema validation for below Attachments API's * POST /v3/{project_id}/attachments * PUT /v3/{project_id}/attachments/{attachment_id} Made changes to unit tests to pass body as keyword argument as wsgi calls action method [1] and passes body as keyword argument. [1] https://github.com/openstack/cinder/blob/master/cinder/api/openstack/wsgi.py#L997 Partial-Implements: bp json-schema-validation Change-Id: I50a1d3b60652d9d44d2c47bb9bc413dd127bc938 - Merge "Remove DB authorisation checking with quota API operations." - Merge "Add fixture to only emit DeprecationWarning once" - Merge "Update oslo.context RequestContext args" - Merge "Fix description for volume_type object in API Ref" - Add fixture to only emit DeprecationWarning once We have a ton of DeprecationWarning messages in our unit test runs. Most of these are out of our control from third party libs. This adds a WarningsFixture to limit warning output to once per test run, getting rid of >700 warnings in our logs. Borrowed heavily from Id8d8866baaf64721fda2b6b2e8358db18920c8ba and I5eaf953b6a2b0a3efe215f776aa048433b192e90 in Nova. Change-Id: I2250d4bad1b1f7d1f83c175a5e2b124f02ec9212 - Remove DB authorisation checking with quota API operations. This is now handled completely in policy. Change-Id: Ie75b6b135610a8bb206a6f941721d5e97f6db502 Closes-Bug: #1733480 - Update oslo.context RequestContext args Commit I9272f71e0e68268ad9f558ddd1e1183e3ea69806 fixed a few deprecation warnings due to properties being renamed in oslo context, but there were a few other name changes as well. This updates domain_id, project_domain_id, and user_domain_id and gets rid of ~130 DeprecationWarning messages from our unit test runs. Change-Id: Ic7e8e6bc5c68e73a2c26c3105885e5c6ea06a4a8 - Update bindep.txt for doc builds https://governance.openstack.org/tc/reference/project-testing-interface.html#documentation specifies that doc dependencies need the doc tag in bindep, use it. Leave test environment in for transition period until we use the new scripts. Change-Id: I50e4c66097aefdfea1e7589b2ae67e262ae6a6d3 - nimble: handle unicode strings in volume create currently nimble cinder driver doesn't handle unicode strings for display_name and display_description Change-Id: Ic94cbc50d5761c7fc67d2973bed70c70cf6bf769 Closes-Bug: 1732812 - Handle deprecation of inspect.getargspec getargspec has been deprecated in py3 with plans to remove it in py3.6. The recommendation is to move to inspect.signature, but the results of that call are different than the existing one. There is also getfullargspec available under py3 that was originally deprecated, but for the sake of handling 2/3 code, it has been un-deprecated. This call uses inspect internally, but returns a mostly compatible result with what getargspec did. This handles getargspec deprecation by just using getfullargspec instead if it is available. Change-Id: I18fbbdf3e4d63c7b3e11806e9347b8df2dba5c8e Closes-bug: #1733676 - Add service_uuid FK to volumes This patch adds a service_uuid FK to the volumes table. Up until now we've just done some host name parsing and to match up service node with where the volume is being serviced from. With this, we now have a unique identifier that's user visible to indicate what node the volume-service for a particular volume is being serviced by. We'll use this for things like share-target locks going forward. Change-Id: Ia5d1e988256246e3552e3a770146503ea7f7bf73 - Merge "V3 jsonschema validation: base schema framework" - Fix policy documentation for os-show_image_metadata endpoint The policy documentation for os-show_image_metadata endpoint is inconsistent with the implementation. In policy documentation, the endpoint is listed as enforcing "volume_extension:volume_image_metadata": [0] But in the code it is clear that no policy enforcement is performed: [1] This PS removes the os-show_image_metadata entry from the policy documentation for consistency. [0]9fbf236dc1/cinder/policies/volume_metadata.py (L102)
[1]0cf910d434/cinder/api/contrib/volume_image_metadata.py (L123)
Change-Id: Icfde885384d174dbf9b211faca3f31be0b41f232 Closes-Bug: #1733632 - Merge "Test os-brick master in LIO gate job" - Merge "Fix VolumeAttachment OVO Volume lazy loading" - Fix group_type_id in api-ref group_type_id in GET/DELETE/PUT /group_types/group_type_id is mentioned as optional path variable which is not true. -7c66eb3d97/cinder/api/v3/group_types.py (L101)
This id is mandatory and doc should be updated. This create confusion while test case or using this API, example - https://review.openstack.org/#/c/521634/4/tempest/lib/services/volume/v3/group_types_client.py Closes-Bugs: # 1733504 Change-Id: I220cd20fefbe83ba8c392ab6b1679620d6a1d934 - Merge "Added mount fstype based validation of Quobyte mounts" - Imported Translations from Zanata For more information about this automatic import see: https://docs.openstack.org/i18n/latest/reviewing-translation-import.html Change-Id: I87eef108a6315d630ce78b41bec6543e995e76af - Merge "Check available capacity before creating resources" - Merge "api-ref: fix 203 error response codes to be 403" - Merge "Update api-ref to include volume_image_metadata" - Merge "Unity: Remove redundant debug logging" - Merge "Fix v3 api-ref for restoring backup are wrongly described" - Merge "Add v3 api-ref for showing encryption specs item" - Merge "Fix qos-spec-v2-qos-specs error" - Merge "[Trivial] set min max_over_subscription_ratio to 1" - VMware: Backend driver for VStorageObject Volume driver based on VMware VStorageObject aka First Class Disk (FCD). This driver requires a minimum vCenter version of 6.5. Implements: blueprint vmware-fcd-driver Change-Id: I983e0b7c650a2358e4af9862365d29dfa107210a - Merge "Inspur Cinder iSCSI driver" - NetApp ONTAP: Fix delayed snapshot deletion call The ONTAP drivers have a retry mechanism to cleanup deleted FlexVol snapshots (those that get taken to assist Cinder's CG snapshots or consistent volume group snapshots). The driver calls for this pass a redundant parameter after the cleanup committed in: I129ca060a89275ffd56481b8f64367b0d803cff5 Fix this redundant parameter. Change-Id: I37d4fb98e165bed2f36f54d6a30477b65bcddd50 Closes-Bug: #1728654 - Suppress UT log messages Large logger output during unit test run is causing subunit.parser failures. Most of this output is unnecessary for unit tests, so we should just suppress this logging. Also switching oslo.context args from user and tenant to user_id and project_id to get rid of deprecation warnings and move to new expected attributes. The minimum version of oslo.context has been raised to ensure we have a version with the renamed kwargs, so we are safe changing this. Originally planned to change as its own change in Iecee4cbd57ac319a02f9bfdf24e3742dbbcb3950, but it causes enough log output in the unit tests that failures are preventing either patch from going through without the other included. Change-Id: I9272f71e0e68268ad9f558ddd1e1183e3ea69806 Partial-bug: #1728640 - Try Fetching value from 'cluster' when raise exception Cluster is supported in cinder manage API. We should try to fetch the user input from 'cluster' as well when raising exception. TrivialFix Closes-Bug: #1732455 Change-Id: I2921113d89662c346ff75081dc7c5ce24ca6c5e2 - Merge "SMBFS: Enable reverting snapshots" - Merge "NetApp E-series: Fix provisioned_capacity_gb" - Merge "Remove setting of version/release from releasenotes" - Fix v3 api-ref for restoring backup are wrongly described In v3 api-ref for restoring backup, the request contents are wrongly described, it is mandatory to specify either the UUID or name of the volume, Actually it's OK if you specify nothing. The name parameter will work only if a new volume is created for restore. Closes-Bug:#1732664 Change-Id: Ia6a9b99df0c7b83999a2e5ac9c945c91b284f807 Signed-off-by: Xiaojun Liao <xiaojunliao85@gmail.com> - Fix qos-spec-v2-qos-specs error There are some small mistakes in the api-v2 doc, please see this bug description:1733148 Closes-Bug:#1733148 Change-Id: I3726159a23625a33415f23b971d6e6f47bd77846 - Merge "Explicitly set expected log level for tests" - Add v3 api-ref for showing encryption specs item This patch adds v3 api-ref for showing encryption specs item for an existing volume type. Change-Id: I80b1853cbe2cc02a056195e967e9422617bbf850 - Merge "Fix controller install document indentation" - Merge "set vg_thin_pool_size to float type" - Merge "Prevent leaking encryption key when deleting volume" - Merge "Remove ExceptionTestCase" - Merge "Tests: Rework volume deletion w/ invalid status test" - Explicitly set expected log level for tests Some of the tests related to log level adjustment make assumptions about the default log level. While that should not change often, it would be best if the tests explicitly set the default it expects. Change-Id: I789175e70994be52181fed6339af96b6b85c1236 - Update api-ref to include volume_image_metadata The detailed information for a volume can include "volume_image_metadata" in the case where the volume was created from an image, or in the case where the volume was created from a snapshot of such a volume. Update the API ref to include the field so we accurately represent the code. Change-Id: If5fcdefaa10bfb00e60aa4559d3282d3c6a53752 Closes-Bug: #1732763 - Remove ExceptionTestCase Since the switch to stestr, it appears any tests that output a large amount of logging can cause subparser errors. One of the tests that seems to occasionally trigger this is in test_exceptions where it loads all classes from cinder/exception.py and asserts that attempting to raise the class results in it being raised. Many of the exceptions require message formatting values passed in. The base CinderException handles this, but it also logs when this is the case. So looping through all the exceptions results in a lot of log messages for these missing format values. Since all this does is assert that raising the exception raises the exception, there is little value to this test. Arguably the only thing it does is enforce that non-exception classes can't be added to exception.py as those would raise a TypeError rather than the expected exception, but that does not seem like something we should care about enforcing. At least not in a unit test. Change-Id: I56c37bb2f5fa20356341e5736745117806463644 Partial-bug: #1728640 - V3 jsonschema validation: base schema framework This patch adds a base jsonschema framework which will be used by other subsequent patches for adding jsonschema validation support for v3 APIs. This patch follows the Nova-Schema-framework: https://github.com/openstack/nova/tree/master/nova/api/validation Depends-On: I4b1140c20c68821eaf0849c9ee551ff9b1c27deb Partial-Implements: bp json-schema-validation Co-author: Pooja Jadhav <pooja.jadhav@nttdata.com> Change-Id: If40029a6ab9b15c292f9297f5bf56aec9621a7d9 - Merge "NetApp cDot: Fix manage volumes" - Merge "Fix earlier backup records can't be restored" - Check available capacity before creating resources For some resources, due to their inheritance of the 'host' attribute from the source where they are asked to create from, the 'CREATE' request doesn't go through Cinder scheduler, thus missing the chance to check if the storage backend still have capacity. Such resources are snapshots, volume clones and potentially volume replication clones. In some cases, current implementation is fine because those new resource would end up being in 'error' state if backend is out of capacity, but in the case where thin-provisioning is desired and the backend has max over-subscription ratio set, this might cause backend to serve more than it should if the backend doesn't enforce simliar checks. The solution in this change is simply passing all create requests to scheduler even for those resource has known 'host'. Alternative solution, which tries to add some scheduling logic into volume manager is here: https://review.openstack.org/#/c/437677 The fact that this change almost duplicates scheduler code in a very unclean way makes it ugly, hard to maintain hence less preferrable. Change-Id: I3454255c8dae481c85f79896ce53fabdc2a50b4d Closes-bug: #1537166 - Remove setting of version/release from releasenotes Release notes are version independent, so remove version/release values. We've found that most projects now require the service package to be installed in order to build release notes, and this is entirely due to the current convention of pulling in the version information. Release notes should not need installation in order to build, so this unnecessary version setting needs to be removed. Change-Id: I9b631dbedd1b2c8bfe7430943dfc16e85b9f85e0 - Merge "Fix cinder-manage volume delete" - Merge "Add missing 'obj_make_compatible' in RequestSpec object" - Test os-brick master in LIO gate job Pull os-brick from git instead of pip when testing on master. For stable branches, still pull os-brick from pip. Change-Id: Ib9ebfa67020d99d83ebb33552677e9e2e334f9a7 - Storwize: revert to snapshot support Adding support for reverting volume to a snapshot in Storwize/SVC driver. Change-Id: I0e83162641279ffe242d18dfd3062ce37b3a959b Implements: blueprint storwize-revert-snapshot - Merge "Schedule request to scheduler when create group from resource" - Merge "Handle assertRaisesRegexp Python 3 deprecation" - Merge "Fix resource count for os-host show" - Merge "Correct gb,snapshot quota update in group snapshot" - Fix cinder-manage volume delete The cinder-manage volume delete cmd has been broken for a while. It looks like the code in manage was written against an original rpc version that is no longer valid and never updated. This updates it to use the current rpc method. Change-Id: Ia7ef04c777ccf6214fec53f500bfba4dde341c73 Close-Bug: #1732223 - Merge "Change default test log level" - Merge "Add doc/source/_static/cinder.policy.yaml.sample to .gitignore" - Merge "Fix 'D005 No newline at end of file' Error" - api-ref: fix 203 error response codes to be 403 I assume these were just typos, because 203 isn't an error response, and for these APIs about the only error response you can get, besides 401 I guess, is a 403 for policy forbidding the user from making that request. So this changes the various 203 to 403 error codes in the API reference. Change-Id: I377b4c11d04c84b00165aae00990c93c5d52e668 - Merge "RemoteFS: revert snapshot support" - Inspur Cinder iSCSI driver Features that Inspur Driver support: Create, list, delete, attach (map), and detach (unmap) volumes Create, list, and delete volume snapshots Copy an image to a volume Copy a volume to an image Clone a volume Extend a volume Retype a volume Create a volume from a snapshot Manage an existing volume Consistency group create,update,delete Consistency group snapshot create,delete Group create,update,delete Group snapshot create,delete Replication V2.1 ThirdPartySystems: INSPUR CI Implements: Blueprint inspur-instorage-driver Change-Id: I06a8eb38f35ccff125282c8886458bfe99fe196e - [Trivial] set min max_over_subscription_ratio to 1 This change sets the 'max_over_subscription_ratio' config option minimum value to '1'. The minimum value is already documented in the config option help field but is not enforced. This change allows simplifying code that performs config validation. Change-Id: I035961590a4e5301670cc2707ffedafa81d2a9a2 - Add doc/source/_static/cinder.policy.yaml.sample to .gitignore This commit adds doc/source/_static/cinder.policy.yaml.sample to .gitignore which is created by sphinx build. Change-Id: I6f80c766fed3a98d050290be179b91b218bedcef - Fix 'D005 No newline at end of file' Error This commit fixes an error - 'D005 No newline at end of file' below. cinder/doc/source/sample_policy.rst:17: D005 No newline at end of file Change-Id: I9051b30da01d81dfb966613decf225804b3b9c0e - Fix controller install document indentation This commit fixes the document of cinder-controller-install*.rst. Otherwise, the html docs are a little weird. Change-Id: I615d5cab95b07f995318266166480a9fd4d713f8 - Fix earlier backup records can't be restored We upgraded the backup service attribute from module name to class name. This results in the failure of restoring earlier backups with new code. This patch upgrades the older backup records as well as adds compatibility in code. Change-Id: I0374ab9f2d37ecf8d8bce191c7535601266d432e Closes-Bug: #1727912 - Merge "NetApp ONTAP: Remove orphaned 7mode file" - Merge "HPE 3PAR: Handle single path in FC configuration" - Merge "Add .zuul.yaml with LIO job" - Fix several instances of chap secret being output to logs. Several drivers had cases where chap secrets could be output to the log files. This fixes several such cases by masking the secret. Change-Id: Id74d48348f2a9aa212fe178ac2e2304ff134be9a - NetApp cDot: Fix manage volumes When running NetApp cDot driver using nas_secure_files_operation=false, managing a volume will always fail if the files permissions are not set to 0777. This patch changes the python call from shutil.move to _execute() which is run using elevated permissions. Change-Id: I41484ced6269d0d4b7553e84c734ef22ab46fcd9 Closes-bug: #1691771 - Fix resource count for os-host show os-host show API should only return the resouce count on the specified host. The logic in Cinder which counts the project's resouce on all host is wrong. Change-Id: I96cd285a82b44af8818514692818e739443dcc45 Closes-bug: #1699936 - Correct gb,snapshot quota update in group snapshot Currently we are incrementing gigabytes quota twice, once while creating snapshot & then while creating individual volumes & this is fixed in this change. Also, snapshot quota updation was put in a loop of volumes because of which it gets incremented to number of volume times. Change-Id: I9ef79a21c7438e69221a5ed2a1c1bfb59f3f9a32 Closes-Bug: 1728834 - HPE 3PAR: Handle single path in FC configuration Issue :- With single path configuration, post volume attach multiple vluns are created, instead of one vlun. Added check to create host with single initiator, which will use single target wwn to create a vlun Change-Id: I093da81fb9a0021e4fedff7eb48d3245957e787a Closes-Bug: #1727176 - Merge "Use oslo_db.sqlalchemy.enginefacade" - Remove v1 API reference Commit 3e91de956e1947a7014709010b99df380242ac74 removed the v1 API code that these documents were built from, so they no longer work. The references to the docs from the main index just redirect back to the main index, so they can't be used since the code is gone. Anyone that wants to build the v1 API reference has to build it locally from before commit 3e91de956e1947a7014709010b99df380242ac74, but even then the v1 API reference was sorely lacking details on the majority of the API extensions anyway. Change-Id: Ie4b25627d962aa7daa684de0d22c6bd212b83e46 - NetApp ONTAP: Remove orphaned 7mode file When the 7mode drivers were removed as part of I129ca060a89275ffd56481b8f64367b0d803cff5, a file was inadvertently left behind, blank. TrivialFix Change-Id: Ie63c6ec677f7fd800a10c9759c535cba395f3ec1 - Merge "VMware: Improve scalability of querying volumes" - Prevent leaking encryption key when deleting volume Fail requests to delete an encrypted volume when the associated encryption key cannot be deleted. This avoids leaking an encryption key when the volume is deleted but the key cannot be deleted. This patch addresses situations where Barbican is the key manager, and Barbican's security policy does not allow the user to delete the key. Barbican has stricter rules on deleting secrets than Cinder does on deleting volumes. For example, given two non-admin users X and Y, Cinder allows user X to delete user Y's volume, but Barbican does not allow user X to delete user Y's secrets. If the encryption key cannot be deleted then the volume's status is set to "error_deleting". To delete the volume, the volume's status can be reset, and a user with suitable privileges (i.e. an admin or the volume's owner) can reissue the delete request. Closes-Bug: #1731528 Change-Id: If0462c18345a4bfbfbcecb6b8caa33d38b86d7f0 - Schedule request to scheduler when create group from resource Pass the request to scheduler rather than volume service in order to check the backend's capacity. Change-Id: Ie4c157f11e5fde0c2dd1d3e06feb0caa9d2d9ede Partial-Implements: bp inspection-mechanism-for-capacity-limited-host - Re-add QNAP Cinder volume driver The QNAP driver was marked deprecated and was removed due to not meet CI requiements. Now QNAP driver can meet the CI requirements. To support enhanced features of QNAP driver, the driver should be add back first. Change-Id: Ieb2c08b27d073607c6c3c9bc4d4174f760121509 Implements: blueprint readd-qnap-driver - Add missing 'obj_make_compatible' in RequestSpec object RequestSpec is converted to OVO, thus need to add the 'obj_make_compatible' to support backward compatibility. Change-Id: Ifbb5248e3ad5bad4b8fb6957156540cdf97babde - Merge "Switch kaminario to use standard trace decorator" - Merge "HPE3PAR: Modify host & clear zone after detach" - Merge "Improve cinder revert-to-snapshot notifications" - Tests: Rework volume deletion w/ invalid status test This test is testing a different error path than the name of the test implies. Rename it and remove a mock that was not triggered. Change-Id: I2127550ce5ba8c90436ee50b227d10d8a8b4103f - set vg_thin_pool_size to float type lvsize is type of str, we need a float type. Closes-Bug: #1715041 Change-Id: Ic9720c649ccb1fbcf2f319c0cc422c54f0925aac - Merge "Remove deprecated keymgr code" - Added mount fstype based validation of Quobyte mounts The validation of Quobyte mounts is extended to validate based on a mounts file system type being set to "fuse.quobyte". Closes-Bug: #1730933 Change-Id: I50430d67c2b9952d0b0c200920491c31f88a7ad7 - Merge "Disco driver: Fix the location to get the disco connector constant" - HPE3PAR: Modify host & clear zone after detach Modify or remove wwn/iqn entries from 3par host, after vlun deletion. If multiple volumes (via FC and ISCSI) are exported to same host and FC/ISCSI volumes are detached subsequently, this fix would remove all WWN/IQN entries respectively from 3par host If the last FC volume is detached, then it will remove all zones from fabrics. Change-Id: If2419008f3f978a4d18f16d57ec6a03fef065d87 Closes-Bug: #1730720 - Use oslo_db.sqlalchemy.enginefacade EngineFacade is deprecated, so use oslo_db.sqlalchemy.enginefacade and update 'get_session' method to keep backward compatibility. Blueprint: use-oslodb-enginefacade Change-Id: Idae54a17567b558352031ecc573d83ab8b8f04b9 - Merge "Optimizes volume creation in the Quobyte Driver" - Merge "VMware: Revert to snapshot" - Add .zuul.yaml with LIO job This replaces the legacy-tempest-dsvm-full-lio job. Skip tests that are currently failing. Change-Id: Ief6ff0771488417fc80a3ffe7505a0d478ec5eb6 - Merge "HPE 3PAR: Adding driver capability" - Updated from global requirements Change-Id: I4a88d07b41f0a16c638de47945e074adbcf8dd5d - Unity: Remove redundant debug logging Remove cases where tracing decorated methods called tracing decorated methods that performed debug logging to reduce duplication of the same data in the logs. Change-Id: Idd34cf25b6d146cb1228a31ec738c09bb73588fb - Change default test log level Despite comments stating otherwise, we set our root logging level to DEBUG. This causes some unwanted things to be logged to the console and large test artifacts. There is also some suspicion that this is causing test failures with some kind of timing change with stestr causing subunit parsing failures. This changes the default level to be higher and fixes a few test cases that had expected the previous default. Change-Id: Ib7e45915898347549c12bc8276df556b272bb259 Closes-bug: #1728640 - Handle assertRaisesRegexp Python 3 deprecation In Python 3, assertRaisesRegexp has been deprecated in favor of assertRaisesRegex. This newer name is not available in Python 2 though, so we can't just change over to the new name. To get rid of the deprecation messages in our py35 unit test runs, this adds an alias to our test base that just provides an alias rather than updating all locations in our tests that use this. Change-Id: I3cf8e29184a68a07d35fb121c816e40b89df393e - Switch kaminario to use standard trace decorator We have a standard debug tracing decorator in utils. We missed that Kaminario added their own version of the same thing. This removes that custom trace decorator in favor of our more standardized decorator. Change-Id: Ic118cfc943008e869893a229c5267d045a21b570 - NetApp E-series: Fix provisioned_capacity_gb Currently, NetApp E-series drivers (iSCSI and FC) are incorrectly reporting the total physical used size as the provisioned_capacity_gb. This patch fixes the calculation of this attribute by summing the user-visible capacity of all the volumes present in the backend and reporting the result as the provisioning_capacity_gb. Change-Id: I1471ecfffe340dafb1c95bac5eaff79cde650955 Closes-Bug: #1718739 - Merge "Improve deleting-missing-backup exception handling" - Merge "create_volume: cleanup consistencygroup when driver exception" - Merge "Use oslo_log instead of logging" - Fix VolumeAttachment OVO Volume lazy loading Current code for VolumeAttachment OVO cannot lazy load the volume OVO correctly and will always return a VolumeNotFound exception. The reason for not being able to find the volume is that we are using the VolumeAttachment id to search for the volume instead of the volume's id. This patch fixes this by using field "volume_id" instead of field "id" when calling Volume's get_by_id method. TrivialFix Change-Id: Ibe02ca83a674c038ccec28cb104cc2af896426f9 - Merge "Storwize: add backup snapshots support" - Use oslo_log instead of logging We missed a recent addition that used Python logging instead of oslo.log. This just changes the import to use the right logging module. Change-Id: I0a7af6e4b2f407df7d02e6a0348fbe48c8d0e21e - Remove deprecated keymgr code The keymgr code was deprecated for removal in Newton [1] and should now be removed. 1. Ief8885bb4ca8d62b03cf1a52c25dd0e62c835bfe Change-Id: I87926d6c95ac82b6f74c263c7441614f80348c1e - VMAX doc - add manage and unmanage section Adding manage and unmanage section Change-Id: I11c0932c546d8edd0e6009c4e2668f50ac2008c1 Closes-Bug: #1729013 - HPE 3PAR: Adding driver capability Added 3par capability which can be used for setting properties of volume type. DocImpact Change-Id: I29eb8ccd1f6853b30f236fec46f06b446e6b87ae - Improve cinder revert-to-snapshot notifications The reverting were sending 'revert.end' message without a corresponding 'revert.start' notification if creating backup snapshot failed by an exception, so this patch fixes that. Closes-Bug:#1729793 Change-Id: I2e7acb3f407dab2a8c82191e13d491cdc71d279c Signed-off-by: Xiaojun Liao <xiaojunliao85@gmail.com> - Merge "Update tenant to project in cli quota doc" - create_volume: cleanup consistencygroup when driver exception Creating a volume with group_id, if driver raises an exception, the volume status will always be “creating”.The status doesn’t update to “error” because “ObjectActionError: consistency group changed” This patch fixes the issue by invoking _cleanup_cg_in_volume when driver raises an exception. Change-Id: Ibbb077f66b41c359b50fff053aa183382c2cde14 Closes-Bug: #1729215 - Improve deleting-missing-backup exception handling When deleting missing backup, OSError could be checked to make sure that the actual error was that the file does not exist. Change-Id: I988370d702d87acde534670575d599159b48c58b Signed-off-by: Xiaojun Liao <xiaojunliao85@gmail.com> - Merge "VMware: Add profile ID to connection info" - Merge "ScaleIO - Cleanup and enhance configuration doc" - Merge "Fix incorrect use of assertFalse causing CI failed" - Merge "Make test logging setup fixture disable future setup" - Merge "imageutils: allow passing subformat when converting" - Merge "ScaleIO: adapt to moved connector constants" - Merge "Fix imageutils tests on windows" - Merge "HPE 3PAR: ISCSI/FC drivers – code refactoring" - Merge "Update setup instructions" - Merge "Schedule the request to scheduler when creating from snapshot/volume" - SMBFS: add fixed image support The SMBFS driver currently supports only dynamic vhd/x images. This change will allow configuring the driver to use fixed images using the 'nas_volume_prov_type' config option. Note that fixed images will always be zeroed out. We recommend placing the images on ReFS/SSD backed storage. Implements: blueprint smbfs-fixed-images Change-Id: Ic9e724fcda83fea384406f45f792f7a2d4b979bb - Merge "Remove unused print_function imports" - Merge "Tintri - Updated driver docs with new nfs option" - Merge "Fix api-ref for group snapshots API" - ScaleIO - Cleanup and enhance configuration doc Restructuring the configuration content for the ScaleIo driver and adding more information on how to specify a specific protection domain and storage pool in a volume type as well as providing examples of setting QOS specs. Change-Id: I5f4af36e7643b41b68ac438ce048559c15b6c5b8 - Merge "ScaleIO: Update CI Wiki name" - Remove unused print_function imports This is not needed in these files. TrivialFix Change-Id: I970443c16028d4d3e6bed648c2e188fe65a158fa - Merge "Storwize: Fix typo in log message" - Schedule the request to scheduler when creating from snapshot/volume Pass the request to scheduler rather than volume service in order to check the backend's capacity. Change-Id: I970c10f9b50092b659fa2d88bd6a02f6c69899f2 Partial-Implements: blueprint inspection-mechanism-for-capacity-limited-host - Merge "Use total reserved quota value instead of partial" - Optimizes volume creation in the Quobyte Driver This change takes two steps to optimize the creation of volumes with the Quobyte driver: 1. It removes a superfluous create_volume call during creation of a new volume from an snapshot. This creation result is not used with Quobyte but subsequently overwritten by the following qemu-img convert operation. 2. It changes the creation regular file based volumes. For regular files fallocate is used instead of writing the file via dd. Partial-Bug: #1715078 Change-Id: I8a922f4a7a9e62658469ef31eb55c6d4b9ab8477 - ScaleIO: Update CI Wiki name The ScaleIO CI Wiki has been renamed to account for the Dell EMC merger and accompanying branding changes. Change-Id: Ia0f426a257bbaf3c1512c716619fdaa646a9e19c - ScaleIO: adapt to moved connector constants os-brick moved the connector constants some time ago and as has now removed them from the legacy location. This change adapts the ScaleIO driver to the new location. Change-Id: I54f9da98f6c21655081ac838e1fba1f5bc1bedfb - imageutils: allow passing subformat when converting For some image formats (e.g. vhd, vhdx), qemu-img allows specifying image subformat options. This can be useful when requesting fixed size images. This change allows the imageutils convert function to accept an image subformat. This will be used by the SMBFS volume driver. Change-Id: I8706584e3abfb936072896d8c4902d82db32ab5f - Unity: Fix duplicate hosts created with same name In some circumstance, there is a race condition in querying/creating Unity host thus multiple hosts with same name were created. This issue stops any further attach/detach operation. This patch leverage the DSL in cinder to avoid above race condition. Change-Id: I3b775da8c5e862def54e9d44d7b157cf17a07a24 Closes-bug: #1726284 - Update setup instructions Add python3-dev instructions for Ubuntu16.04. Verified thos packages in new version and drop Ubuntu12.04 tag. Change-Id: I59849d0b5b1ec6636ad1e1af004277fcfa319473 Close-Bug: #1659568 - Make test logging setup fixture disable future setup Our logging fixture sets up logging in a way that we need to capture things during tests. However, some of our tests do things like call back into main functions, which then call logging setup again, and unwind everything we're doing (including debug message testing). This patches out oslo_log setup after the fixture runs, thus ignoring calls to it in the future. This change originally implemented in Nova with commit dc2f4f88ac8d7bcf904908b4683522cd6839ba70. Closes-bug: #1728640 Change-Id: I3f95fd3b83d6b5c5801d3a16a3e73623ed49da29 - XtremIO: extending volume in create_volume_from_snapshot In create_volume_from_snapshot, If the original volume is larger then the requested snapshot we extend the volume to the original size. Closes-Bug: #1560650 Change-Id: I1a1c3a8ff3fb0196e8bffb9a4978e7368eeeacec - Use total reserved quota value instead of partial While reserving snapshot we reserve gigabytes too. In case of group snapshot we reserve the total gigabytes but in case of an exception we print just the last volume gb info which needs to be changed. Change-Id: Ibc8b1c5a967d05b3e52f992a1e76e74c9120e3f1 Closes-Bug: 1728457 - Tintri - Updated driver docs with new nfs option Tintri does not support NLM sideband protocol Change-Id: I07f027be20e02359df6726e401981f430614346b - Merge "VMAX driver - detach volume shouldn't remove from volume groups" - Fix imageutils tests on windows Some of the imageutils unit tests are currently failing on Windows. Two of them make assertions on arguments that are platform dependent while another one fails due to the fact that os.path.join cannot be used with mock objects on Windows. This change fixes those issues. Change-Id: Ieda734e49bdb45566f39f201004b2a3e0b1ba1eb - Fix api-ref for group snapshots API This patch mainly fixes the response parameters and examples for the show/list/create group snapshots APIs. Change-Id: If160ffdd7301337eac9353faffb72a9f069882c4 - HPE 3PAR: ISCSI/FC drivers – code refactoring Issue: ===== Redundant code was present for ISCSI and FC drivers with the potential to maintenance issues. Solution: ======= Refactored code as below: 1.Made common as a base class for existing ISCSI and FC drivers. 2.Moved duplicate methods to the base class. 3.Incorporated template method pattern wherever applicable. Change-Id: I5024642f8e3e6cd7d221dc3af367bba55fe56cf5 - Merge "Switch base to the latest in doc link address" - Merge "Fix manage_existing API behaving wrongly with storage pools" - Storwize: Fix typo in log message A missing space here means the message reads as "theallotted". TrivialFix Change-Id: Ic3c3e622410a83e4c40a95f9012ca19651bd9d01 - SMBFS: Enable reverting snapshots This is a trivial change that enables the "revert to snapshot" feature within the SMBFS volume driver. All the required logic is implemented in the RevertToSnapshotMixin class, so all we're doing now is inheriting it. Related-Blueprint: remotefs-revert-snapshot Change-Id: Ib4f35bd01613d1bd69127a8ba65fc9e3cff6d3ad - DS8K: update replication_status in generic group APIs In create_group and create_group_from_src, DS8K driver forgot to update replication_status of group and its volumes if their type have enabled replication, this patch tries to fix them. Change-Id: Ib3dbc781ed4710c5c2453e4454421f23997c4402 Closes-Bug: 1727960 - Disco driver: Fix the location to get the disco connector constant During the runs in our third-party CI, devstack cannot be build successfully because it cannot get the connector constant. It was at os_brick.initiator.connector but was moved to os_brick.initiator. This patch fixes this issue by updating the new location of the connector constant. Change-Id: I3b01b5ced6673eb83c1a73c6132fb6d23e0912b4 Closes-Bug:1728511 - Storwize: add backup snapshots support This patch adds backup snapshots support for Storwize/SVC driver. The change implements attach and detach snapshot: initialize_connection_snapshot terminate_connection_snapshot Implements: blueprint storwize-backup-snapshots Change-Id: I65393a6a5f995d609152d4b8546c055d7bf0b253 - Merge "ibm-storage: Fix create_volume_from_snapshot" - Merge "Fix migate_volume API with replication_status ‘not-capable’" - Merge "Kaminario K2: Add non discovery iSCSI multipath" - Merge "[TrivialFix] Remove errant comma in capabilities policies" - Merge "Mark Cisco FC ZM driver as unsupported" - Merge "Vzstorage: improvement of create_cloned_volume" - Merge "Make service object UUID not nullable" - Merge "Dell EMC PS: Fix Duplicate ACL records Issue" - Merge "FlashSystem: Add CMMVC6045E CLI error for multi-host mapping" - Fix migate_volume API with replication_status ‘not-capable’ When migrating a volume with replication_status = 'not-capable', migrate_volume api will reject it because 'not-capable' isn't in the replication_status expected list. This patch fixes the issue by adding ‘not-capable’ to the expected replication_status list. Change-Id: I6bcdbd8343cca237c5f85077273a8ea18c6f534d Closes-Bug: #1727248 - Merge "Dell EMC: Update PS and SC CI wiki names" - Merge "Don't fail when deleting missing backup" - Merge "Support count info in List&Detail APIs" - Merge "Remove doc/build before running docs job" - Merge "Completely remove mox from Cinder unittest" - Merge "Fix scheduler_host_manager limitation" - Merge "NetApp ONTAP: Remove support for 7mode systems" - Merge "Tests: Fix coverage unit test failure" - Merge "Clean up driver configuration reference" - Make service object UUID not nullable Fix the UUID entry for the newly added service attribute and udpate the unit tests appropriately. This makes the UUID entry in the service object not nullable and fixes up the unit tests to work properly. Also introduces a unit test specifically for the online migration api in the db. Closes-Bug: #1727091 Change-Id: I17d3a873cfc8f056c2d31f6c8710489785998d3c - Don't fail when deleting missing backup The problem here is sometimes when the path doesn't exist and we try to delete it then exception occurs & breaks the flow. In this case it happens with the volume delete flow, wherein the exception occurs just before the quota commit & commit doesn't happen even though the backup volume got deleted, hence catching the exception just where it occurs. Change-Id: I8713f846b1e2e30b4bbc4af57645fdc04bcd8386 Closes-Bug: 1726715 - Merge "INFINIDAT: add support for overprovisioning" - ibm-storage: Fix create_volume_from_snapshot If a snapshot was created from a volume that is part of a generic group, then when calling "create_volume_from_snapshot", the exception SourceVolumeBadNameError is raised. This is a leftover from the days where there were no generic groups (Only consistency groups were exist) Change-Id: Iaae24a7de7171d9c1dc6197aa79b7d8ee87c0051 Closes-Bug: #1724074 - Merge "Add policy documentation and sample file" - Fix incorrect use of assertFalse causing CI failed assertFalse should not be used with non-boolean args. Change-Id: I65340b8538104a84b45c0be39d0e0baa4c7c433c - [TrivialFix] Remove errant comma in capabilities policies Currently, the initialization of CAPABILITIES_POLICY is supposed to be a string, but due to the comma at the end of the string literal the type of CAPABILITIES_POLICY is actually a tuple, which is a bug. Change-Id: I1d924da3504861f027273d3319e5cf6c485d1d37 - Merge "Replace DbMigrationError with DBMigrationError" - Merge "Fix key_manager API call" - Tests: Fix coverage unit test failure This fixes a failure in "tox -e cover" due to a MagicMock being passed to dirname(). Change-Id: Ia3d9cdecb2567ae40bc61d5d1f7c33b607d3fbad - Dell EMC: Update PS and SC CI wiki names Updated the new thrid party CI systems wiki names Change-Id: Ib255407f9bf384935b232e8aa3941c22e91eefef - Dell EMC PS: Fix Duplicate ACL records Issue Live migration was creating duplicate ACL records for the compute nodes. Fixed it by not creating one when an ACL exists during initialization of the volume. Closes Bug: #1726591 Change-Id: Ib78293efa626c098a572f4c64119ee2ff296bd40 - Completely remove mox from Cinder unittest This patch removes mox from the remaining unit tests and the base class. Change-Id: I94b32634396ab3acf19a70c6f3601edc67eedab1 - Support count info in List&Detail APIs This patch adds support for display count info in volume, backup and snapshot's list&detail APIs since microversion 3.45, for instance: 1. /v3/{project_id}/volumes?with_count=True 2. /v3/{project_id}/volumes/detail?with_count=True Depends-On: 1c8fe0ade43da925c5b810ef0cd27817f1c11c7b Change-Id: I2e92b27c36357120fcf0ec5917c6484441c946a8 Implements: bp add-amount-info-in-list-api - Remove doc/build before running docs job Clear doc/build directory before running docs job may better guarantee each building output the newest docs. Change-Id: I17537742a4c1421f2bd0561d2c48c5ae56d89026 - Merge "Move 'zoning_mode' back to DEFAULT section" - VMware: Add profile ID to connection info The VMware Nova driver requires the volume's storage profile ID to associate the volume vmdk with the storage profile during volume attach. Passing the profile ID in connection info. Change-Id: I99f2eafbcedf93109c05766b5ceda508e0b16608 - Merge "ScaleIO Driver - include snap usage in provisioned capacity" - VMware: Revert to snapshot Adding support for revert-to-snapshot for COW based snapshot in VMDK driver. Change-Id: I240d8d6f1745f9611855e6f6897697b5a0748ef9 - VMware: Improve scalability of querying volumes Currently we query volumes in vCenter by name which is not scalable. Commit 6b9464e91840f6e006f537dcd3c0f656ae90a179 sets the backend volume ID to Cinder volume ID so that we can use vCenter SearchIndex API to query backend volumes by Cinder volume ID. This patch uses SearchIndex API to improve scalability. But this type of querying will not work for legacy volumes whose vCenter ID is not set to Cinder volume ID. To handle those volumes, we build a cache to map their names to vCenter references during driver setup. Closes-bug: #1600754 Change-Id: I6b49c2590d0bd3946fa03dbac08ab4f778007111 - Fix manage_existing API behaving wrongly with storage pools When the requested host specifies a pool, Cinder needs to validate that specified pool in the scheduler and assign the 'host' attribute appropriately. Closes-Bug: 1724958 Change-Id: Ia0261e83171a1a13374b447303e3a61863fa22c2 - Merge "Enable using extra-specs for SF attributes" - Merge "VMAX driver - Volume identifier issues" - Merge "Fix migration 112 to use live_data_migration API" - NetApp ONTAP: Remove support for 7mode systems The Unified Driver for NetApp Storage in Cinder supports two families of ONTAP, 7mode and Clustered Data ONTAP. ONTAP 7 is now officially nearing the end-of-life of product support. The deprecation notice [1] for these drivers in Cinder was issued in the Newton Release, so it is time to remove them from tree. [1] http://lists.openstack.org/pipermail/openstack-operators/2016-November/011957.html Implements: bp remove-netapp-7mode-drivers Change-Id: I129ca060a89275ffd56481b8f64367b0d803cff5 - Fix key_manager API call If you pass importutils.import_class a string that is not actually a reference to a python class, you get an "empty module" error. Cinder's keymgr.API call used to try to import the castellan backend directly, but this was not necessary as the castellan key_manager.API call will return the correct backend based on the api_class or backend option in the config file. If no api_class or backend option is specified, castellan key_manager API call will return a barbican backend by default [1]. Castellan used to require the full class name to specify the backend (i.e. api_class=castellan.key_manager.barbican_key_manager.BarbicanKeyManager), so the import_class call in cinder was no issue. Recently castellan was updated to use stevedore entry points and the config option name was changed to "backend" [2]. The change in castellan is backwards compatible so that if you use a full module name instead of the stevedore entry point name, it will still get the correct backend. However, the cinder code was not updated accordingly, so any time the shorthand stevedore entry point name for the backend is used instead of the full module name, the import_class call in cinder will fail. This change removes the unnecessary import_class call and adds an appropriate unit test that shows the "empty module" error does not occur anymore. 1.b13187b34d/castellan/key_manager/__init__.py (L25)
2.8980bf7da5
Closes-Bug: #1724952 Change-Id: I3f95cfe439d65d9cf746d4e3844bc70bc705625e - Revert "Tests: Fail if oslo.versionedobjects issues Invalid UUID warnings" This is currently causing unit test failures since pymysql _show_warnings calls warnings.warn(err.Warning(*w[1:3]), stacklevel=4) and this code assumes that the warnings are strings. This reverts commit ed6d50bed642b01d005563866ab9f211632cff5b. Change-Id: I81dc6f1ac5855b21c10572797fd45a6b38641112 - Imported Translations from Zanata For more information about this automatic import see: https://docs.openstack.org/i18n/latest/reviewing-translation-import.html Change-Id: Id66b6bd9d1a26202f0473628976b6b7da8f9997f - Merge "Replace http with https for doc links in cinder" - INFINIDAT: add support for overprovisioning The driver reports max_over_subscription_ratio as defined by the user in the cinder configuration file, in addition to whether the volumes are thin-provisioned or not. This allows overprovisioning in thin-provisioned volumes in InfiniBox. Change-Id: I862ec2d06c169562aa8bbc95ab202cd5eb88440d - Clean up driver configuration reference Over the last few cycles we have removed drivers, but we did not always clean up the documentation from the openstack-manuals project. Those docs were moved over wholesale as part of the docs migration, so we ended up with them in the repo with no corresponding driver files. This removes those leftover docs and cleans up the generated documentation. Change-Id: Ib9fc4e14333548b84666e3f571e7b42fe20e0319 - Fix migration 112 to use live_data_migration API In the 112 db migration I was being lazy and generating and updating the newly added UUID column. I also didn't update the Service object (left that for the follow on patch). Turns out we're going to want/need the online_data_migration pieces for some follow up work and we might as well do this at least a little bit more efficiently/correctly now. This patch modifies the db migration to NOT try and populate the newly added UUID fields in the Service table, and it updates the Service object properly including adding the gen UUID components to service.create() This also fixes up what we had in place for the online_data_migration code in cmd/manage.py; note that we had a framework there/started but it wasn't being used up to this point. Change-Id: I6696a15cd2c8fbf851a59b8d6d60ae1981bb1b89 Closes-Bug: #1721837 - Merge "NEC driver: Never use target info in migration_status" - Enable using extra-specs for SF attributes There a number of use cases where it's desirable to do things with volumes out of band (ie not under Cinders control). One example is external backups without the use of c-backup. It's pretty simple to signify these sorts of things from Cinder through the use of extra-specs keys. For example, create a type 'daily-backup' with extra-specs 'SFAttribute:backup=daily' which may instruct some automation to query the SolidFire device for any volumes with the attribute "backup=daily" to be backed up on a daily schedule. These attributes are just metadata and can be used for anything. They don't effect Cinder's operation or change anything in how the volume behaves from Cinders perspective, but instead add additional information and signals for admins and automation outside of OpenStack/Cinder. The only requirement is the use of a key delimiter, in this case `SFAttribute` which instructs the scheduler to ignore the associated key for scheduling, and also is used as a sentinal for the SF driver to determine what to store in attributes. Change-Id: Ia02edfb6f30edfccb2bcdd41e8a3fdd7331cef5b Implements: blueprint enable-extraspec-keys-as-solidfire-attributes - Merge "DS8K: support clone volume asynchronously" - Merge "VMAX driver - concurrently deleting volumes can fail" - Add policy documentation and sample file This patch adds documentation and sample file for default policy in code feature. Change-Id: I597971a29ec61a1bf8c991b2715ec7644b2e2692 Partial-Implements: blueprint policy-in-code - Merge "VNX: Fix issue when creating without type" - Merge "Generate create_at date in usage in isoformat for backups/snapshots" - ScaleIO Driver - include snap usage in provisioned capacity Provisioned capacity of storage pools was not correctly accounting for space used by snapshots. Change-Id: I945300cac84658bbd25182ba615645af881920f8 Closes-Bug: #1724929 - VMAX driver - Deprecate backend xml configuration The use of xml files for vmax backend configuration is deprecated. Configuration parameters should be set in cinder.conf for security and uniformity. The xml file can still be used but will not be supported after the queens release. Change-Id: Ic7fc1827608190ec47db30b1265bebde616b616b Implements: blueprint backend-xml-deprecation - VMAX driver - Remove workload for next gen arrays The next release of VMAX no longer has an option to set 'Workload' on a storage group. Currently, the VMAX driver expects a workload to be set when the user creates a VMAX volume type, which will cause an issue for users using the next gen VMAX arrays. This patch rectifies the issue. Change-Id: I8ad7fbdca5a2695734b118d60a29a71064ae9b0b Closes-Bug: 1717289 - VMAX driver - Implement Tiramisu feature on VMAX In Tiramisu, a group construct is used to manage the group of volumes to be replicated together for the ease of management. This patch adds this support to the VMAX driver. Change-Id: I9fffa0c6dc3092f3230cfa5da1ea5f3ff1e3151b Implements: blueprint vmax-replication-group - Merge "Add Storwize replication group support" - Merge "Fix backup-import error when the deleted record in the same db" - Merge "[policy in code] Add support for volume, volume type resources" - Merge "DS8000 ConsistencyGroup failed to update group with volumes" - Merge "Remove the unnecessary pv_list assign during LVM object init" - Merge "Add index for reservations on (deleted, uuid)" - Merge "Revert "Move vol_db_empty to NFS driver"" - Merge "ScaleIO Driver: Backup volume via snapshot" - Merge "Api-ref: Add missing api response for volume transfer" - Merge "Change Install 'Tutorials' to 'Guides'" - Merge "Redundant alias in import statement" - Merge "Add display_name to solidfire volume attributes" - Revert "Move vol_db_empty to NFS driver" This reverts commit 9b81659128f18239c682a407dcfc9766f0ad307d. This was purposefully done in the volume manager because otherwise it requires direct database access from the driver, which is something we are better off avoiding. Change-Id: I9072e80f4e2817e48b4b5dd23790b727b3d7e4e4 - Change Install 'Tutorials' to 'Guides' It was decided by the documentation team that we should, for consistency, call our install documentation 'guides'. Our pages were listed as 'Tutorials'. This change corrects the inconsistency. Change-Id: Id5d915064aa24a5b0c66364ecd618561ed18df9b - Add index for reservations on (deleted, uuid) The query for uuid_reservations currently does a full table scan. This adds an index so frequent invocations of uuid does not bog down the database. Change-Id: I149a9de82fc1003b88e0c0852a0b64634f0c622e Closes-Bug: #1540750 - Redundant alias in import statement Change-Id: I8faa55ae7485363c982ce1622a06c05f63185d3b - RemoteFS: revert snapshot support This change implements the 'revert_to_snapshot' method at the remotefs base driver level in a generic way. This should work right away with most (if not all) remotefs based drivers. Note that we only consider the case in which the latest snapshot is being reverted (the Cinder API won't allow reverting volumes to other snapshots anyway, at least for the time being). The RemoteFS based drivers (e.g. NFS driver, SMB driver) use COW images (e.g. qcow2, differencing vhdx) in order to provide volume snapshot functionality. Reverting a volume to its latest snapshot is a trivial operation in this case and can be achived by simply cleaning up (e.g. recreating) the latest image from chain. In order to avoid breaking drivers, the 'revert_to_snapshot' method is implemented in a mixin that may be inherited by any RemoteFS based driver. Implements: blueprint remotefs-revert-snapshot Change-Id: Id66d3f0fe36cf7c32ef3875bf5fcb1c7a4678273 - DS8K: support clone volume asynchronously when cloning volume in DS8K, driver doesn't need to wait until flashcopy finished in some cases, so this patch provides an option in volume metadata that can be used to tell driver to wait for flashcopy completed or not. Implements: blueprint ds8k-async-clone Change-Id: I51829e7667d3ac148978e1799cecfea1920f838f - Move 'zoning_mode' back to DEFAULT section We moved 'zoning_mode' option to 'backend_defaults' section since patch: [1]. But it has two issues: 1. It can not work because we still fetch the value from the default section [2]. 2. From the view of our current design. It's only used in our framework code, which means it still can not work if we overwrite the default value in one specific backend section, such as: [backend_defaults] zoning_mode=fabric [lvmbackend_1] zoning_mode=other_value Move this option back to DEFAULT section until we need to. Closes-Bug: #1724418 [1]: https://review.openstack.org/#/c/453654/ [2]: https://github.com/openstack/cinder/blob/master/cinder/zonemanager/utils.py#L56 Change-Id: I5b31082296f5bff5089d0f42a62d44bb009d177d - Merge "Fix "import xx as xx" grammer" - Merge "Add v3 api-ref for updating specific extra specs for a volume type" - Merge "Run backup compression on native thread" - Merge "Fix backup compression unit tests" - Add display_name to solidfire volume attributes This just adds another mapping to the SolidFire volume attributes during create. We add a `cinder-name` key to the internal SolidFire volume attributes which has a value set to the cinder display_name attribute of the volume. In the case of a volume with no display_name we set the attribute value to an empty string. Change-Id: Idbfbf8be7ef34c134c7723891aba8b3baa2ab43a - FlashSystem: Add CMMVC6045E CLI error for multi-host mapping Add CMMVC6045E to list of CLI error codes indicating a multi-host map was attempted without the '-force' parameter. Re-raise on match failure to avert spurious success when an unexcepted CLI error is emitted. Add good and bad-path testing for multi-host map to test_flashsystem_map_vdisk_to_host Change-Id: I4b8d99966f387f51c1125ba72c1ce149229a8bc0 Closes-Bug: #1723188 - Merge "[policy in code] Add support for service, limits" - Merge "Make stringify header work under python2." - Add v3 api-ref for updating specific extra specs for a volume type This patch adds v3 api-ref for the following volume type API: Update specific extra specs assigned to a volume type. Change-Id: Ib8622870d53cbdc249aa465ce62ed45dea2b4089 - Fix "import xx as xx" grammer This is to fix the redundant "import xx as xx" grammer. Change-Id: Iefbf22fa4fb09f946e475dff3a4444381bd8df97 - NEC driver: Never use target info in migration_status NEC driver uses target info in migration_status at volume creation. The target info will be deleted from migration_status in future cinder version. This patch change the driver not to use target info in migration_status. Change-Id: I04b188d1300979b3b4b070781c6c2105f638b649 Partial-Bug: #1706729 - VMAX driver - detach volume shouldn't remove from volume groups Detaching a volume in VMAX removes the volume from all its current storage groups and returns it to its default storage group. This is not desired behaviour when the volume is a member of a generic volume group. The volume should only be removed from the storage group associated with the masking view related to the detach operation (or all masking views in the case of a force detach). This patch rectifies the issue. Change-Id: I065ffba9615af54998ae94a8d2d2fd3853f462cb Closes-Bug: 1721207 - VMAX driver - Volume identifier issues When creating a VMAX volume through cinder, a 'volume_identifier' is set on the device on the backend. This takes the form 'OS-<cinderUUID>'. There are a couple of issues with how this is currently being done: 1. When the VMAX driver retrieves the volume using the 'device_id' value saved in the provider location, it checks that the volume identifier matches OS-<cinderUUID>. However, the way this is currently being checked can cause an issue if the create volume operation ends up being retried in cinder - sometimes there can be two devices on the backend with the same volume identifier, and the code may not pick up the correct device. 2. On a deallocate operation, the volume identifier is not being unset on the device. This patch rectifies these issues. Change-Id: I8218768216e87f6fdda1dd77dd09ca2ca46111c7 Closes-Bug: 1717933 - VMAX driver - concurrently deleting volumes can fail When concurrently deleting volumes, sometimes the task fails leaving the volume in an 'error_deleting' state. This only occurs when image_volume_cache_enabled is True because a temp snapvx session is created. This same issue also occurs when there is a batch delete of snapshots from the same source volume. The fix locks the delete snapvx session using the source DeviceID as key. Change-Id: I1f72a8567faa78fec447b9e0a6f948514b43a864 Closes-Bug: #1714922 - Replace http with https for doc links in cinder 1) Update doc links according to OpenStack document migration 2) Use https instead of http for docs links For example: (1)http://docs.openstack.org/admin-guide/blockstorage_nfs_backend.html ->https://docs.openstack.org/cinder/latest/admin/blockstorage-nfs-backend.html (2)http://docs.openstack.org/oslo.i18n/latest/user/index.html ->https://docs.openstack.org/oslo.i18n/latest/user/index.html (3)http://docs.openstack.org/ --> https://docs.openstack.org/ (4)http://docs.openstack.org/admin-guide/blockstorage_multi_backend.html ->https://docs.openstack.org/cinder/latest/admin/blockstorage-multi-backend.html Change-Id: I7fcdc4453cb3bad713c7d770012411701cca742b Closes-Bug:#1710054 - [policy in code] Add support for volume, volume type resources This patch adds policy in code support for volume and volume type resources. Change-Id: I47d11a2f6423a76ca053abf075791ed70ee84b07 Partial-Implements: blueprint policy-in-code - DS8000 ConsistencyGroup failed to update group with volumes While adding a volume to ConsistencyGroup the failed with TypeError: sequence item 0: expected string, tuple found. This could have happened if the driver did not find the specified LSS pairs matching that of the available volume pools. The driver intended to throw an error message with available_lss_pairs but failed to concatinate the data to the error message with TypeError exception. The proposed fix attempts to address this issue by simplifying the concat of available_lss_pairs as string and then adding to error message. Closes-bug: #1722769 Change-Id: I4c154b15991fd624d91bd3e3472d25c714fb8525 - Merge "VMAX driver - documentation updates around versions" - Merge "Remove deprecated nova config options" - ScaleIO Driver: Backup volume via snapshot When a volume is in-use, the ScaleIO driver can achieve the backup of that volume through creating a temp snapshot, and then backing-up the snapshot. Change-Id: I6330cb1b6644de5f470b198f035933ff676c1bce - Run backup compression on native thread Backup data compression is a CPU bound operation that will not yield to other greenthreads, so given enough simultaneous backup operations they will lead to other threads' starvation. This is really problematic for DB connections, since starvation will lead to connections getting dropped with errors such as "Lost connection to MySQL server during query". Detailed information on why these connections get dropped can be found in comment "[31 Aug 2007 9:21] Magnus Blåudd" on this MySQL bug [1]. These DB issues may result in backups unnecessary ending in an "error" state. This patch fixes this by moving the compression to a native thread so the cooperative multitasking in Cinder Backup can continue switching threads. [1] https://bugs.mysql.com/bug.php?id=28359 Closes-Bug: #1692775 Closes-Bug: #1719580 Change-Id: I1946dc0ad9cb7a68072a39816fa9fa224c2eb6a5 - Fix backup compression unit tests Cinder backup tests for compression were incorrectly testing the size of the compression data, instead of testing against the compressed data they were checking the tuple (algorithm, compressed_data). This patches fixes those tests. Change-Id: I02f79a1ccc1af29e1f843e94c0618c8e4962bdae - Make stringify header work under python2. This fixes the following issue appearing during cinder-manage db online_data_migrations. Change-Id: Ic47f04e06b886656c9a0f0f7a0494a10fef93e80 Closes-Bug: #1723922 - Api-ref: Add missing api response for volume transfer The volume transfer accept and create API missed the api response, this change is to add them for both V2 and V3. Closes-bug: #1723867 Change-Id: I4f8005633ed1eb53ab08b3493cdc97d44103dafa - Merge "Switch from ostestr to stestr" - Merge "[policy in code] Add support for qos and quota resources" - Switch from ostestr to stestr This change just updates the tox.ini file to call stestr directly instead of going through ostestr. For more background you can read the ML posting: https://goo.gl/TFvcxy So now you won't need `--n` to run single tests, and you can also supply regex directly without even the `--`. For example: `tox -epy27 $regex` Change-Id: I75d4ca19f87fe1930cf54b554b7e232632a4a21c - Merge "[policy in code] Add support for group, g-snapshot resources" - Merge "Add v3 api-ref for showing all/specific extra specs for a volume type" - Merge "Updated from global requirements" - Merge "Update configuration names in ITRI DISCO volume driver" - Merge "Switch Rally Task To format V2" - Add v3 api-ref for showing all/specific extra specs for a volume type This patch adds v3 api-ref for two APIs: 1. Show all extra specs assigned to a volume type 2. Show specific extra specs assigned to a volume type Change-Id: Id5771ee7e52748374ae6a3167116589273000297 - Remove deprecated nova config options In Pike, the nova client converted to use the [nova] section. Remove the obsolete config options now. Change-Id: Ic112a68101c0dcb14da0db06c62ae190474a37d9 - Switch Rally Task To format V2 - Format V1 was deprecated - rally-jobs/cinder-fake.yaml is not used Change-Id: Idf69e0084334d25ccd73730428e36809573e2146 - Merge "[policy in code] Add support for backup resource" - Update configuration names in ITRI DISCO volume driver This commit is to update and deprecate the name of some configuration names: * "san_api_port" is new config option added in san driver * "rest_ip" is marked as deprecated and will be replaced with "san_ip" * "disco_src_api_port" is marked as deprecated and will be replaced with "san_ssh_port" It also includes the changes in the unit tests. Change-Id: I4c24cd397f513648e2c2214fc4f87cf5367233ac Implements: blueprint disco-driver-update-option-name - Kaminario K2: Add non discovery iSCSI multipath Current Kaminario K2 driver only supports iSCSI multipathing using discovery (sendtargets), which in some cases may be undesirable, since a broken primary path could prevent an attachment. This code adds the possibility of not using discovery mode and return all connection information when `initialize_connection` is called, which should provide increased reliability. Change-Id: I7932b1d952844b49cfdb504ed0ba188b489d7f44 - Merge "Add ability to specify backup driver via class name" - Fix backup-import error when the deleted record in the same db If we revive the deleted backup record, cinder-api will raise a DBDuplicateEntry error, this patch will allow user to import the deleted record either in the same db or not. Change-Id: I87a287f5db912e9aeaa401871178c49414098d06 Closes-Bug: #1696361 - Updated from global requirements Change-Id: I183ed48e3d66a45864a17bb9785745c64aefa626 - FlashSystems: permit snapshot/clone volumes larger than source Permit clone volumes and volumes created from snapshots to be larger than their source volumes; implemented in response to failures in the following CI tests: * VolumesSnapshotTestJSON.test_volume_from_snapshot * VolumesCloneTest.test_create_from_volume Change-Id: I21511e5c4db62563c61815c1671e8bb44ad3f427 Closes-Bug: #1560655 - Deprecate SolidFire Image Caching feature We've had a general solution to image-caching in Cinder for a while now and it works well, so we can remove the SolidFire specific implementation in favor of using the general solution. https://docs.openstack.org/cinder/latest/\ admin/blockstorage-image-volume-cache.html This patch marks the SolidFire config option as deprecated, and we'll remove the feature altogether in the next release. Change-Id: Iefc207955e4718a7d9c3b235b133a4c629977d03 - Merge "Replace the usage of some aliases in tempest" - [policy in code] Add support for service, limits This patch adds policy in code support for capabilities, hosts, services, limits and depends on the quota patch [1]. [1]: https://review.openstack.org/#/c/508091/ Change-Id: Ib2bac2d28d950c0d8b734a54e300dd4185d98ca9 Partial-Implements: blueprint policy-in-code - [policy in code] Add support for qos and quota resources This patch adds policy in code support for qos, quota, quota class resources and depends on the group&group snapshot patch. [1]: https://review.openstack.org/#/c/507812/ Change-Id: Idf27d5fd09365374330ad0d4c0448f68f3cc03e8 Partial-Implements: blueprint policy-in-code - Merge "Kaminario K2: Support duplicated FQDN in network" - Vzstorage: improvement of create_cloned_volume Prior to this patch Vzstorage driver left "tmp-snap-*.qemu_img_info" cache files, as _delete_snapshot from remotefs doesn't delete *.qemu_img_info files. If we rename create_snapshot in Vzstorage to _create_snapshot we 1) solve above problem 2) don't have to use locking decorator We also rename _create_cloned_volume so as it complies with its specific usage only for ploop volumes Change-Id: I5215c58966713cac0242c1cdb6cb1df9c3a710b3 - Merge "Add documentation for API 'validate_setup_for_nested_quota_use'" - Merge "Add .stestr.conf configuration" - [policy in code] Add support for group, g-snapshot resources This patch adds policy in code support for group&group snapshot resources and depends on the backup patch [1]. [1]: https://review.openstack.org/#/c/507015/ Change-Id: If95a8aaa70614902a06420d1afa487827f8a3f03 Partial-Implements: blueprint policy-in-code - Add ability to specify backup driver via class name This patch also deprecates backup driver initialization using module name. Change-Id: Id6bee9e7d0da8ead224a04f86fe79ddfb5b286cf Related-Blueprint: generic-backup-implementation - Add documentation for API 'validate_setup_for_nested_quota_use' Documentation for API 'validate_setup_for_nested_quota_use' is missing. Fix it. Change-Id: Ica3d468856bad045c2bdd30a0f86924cc0aeb572 - Merge "ScaleIO Driver - adding cache and refactoring tests" - [policy in code] Add support for backup resource This patch adds policy in code support for backup resources and depends on the basic patch [1]. [1]: https://review.openstack.org/#/c/506976/ Change-Id: I9a79b5ececc587e80129cc980930e168e805b139 Partial-Implements: blueprint policy-in-code - Merge "NEC driver: Fix exception in terminate_connection with no connector" - Merge "Add v3 api-ref for deleting extra spec for a volume type" - Merge "[policy in code] Add support for snapshot resource" - Merge "ibm-storage: enable FC zonning to all ports" - Merge "Remove Hitachi volume drivers" - VMAX driver - documentation updates around versions Correct the minimum versions for Solutions Enabler and Unisphere. Add QoS to the list of supported operations. Change-Id: Ief648a8a464d1bd6f463774d48438441ae9502e2 Closes-Bug: #1722497 - Add Storwize replication group support This patch adds consistent replication group support for Storwize/SVC driver. Supported operations: * Create replication consistency group * Add volume to existing replication consistency group * Adjust existing replication consistency group * Enable replication on group * Disable replication on group * Fail over replication group back and forth DocImpact Implements: blueprint replication-cg-svc Change-Id: Id8d886feca938e99df14c35b17826b24d7c2b584 - VNX: Fix issue when creating without type When creating a volume without type, a error will be thrown: AttributeError: 'NoneType' object has no attribute 'qos_specs' This issue was introduced in qos patch: https://review.openstack.org/#/c/441786/ Change-Id: I861d61dd11f982a8a54b57b6a6c895e6ebe399c0 Closes-bug: #1720063 - Remove deprecated VD base classes which are not used now Change-Id: I171022c0af01f4216c30630be7487f6f53d5fbca - Merge "Remove reserving quotas in c-vol's retype method" - Kaminario K2: Support duplicated FQDN in network The Kaminario K2 driver uses the FQDN of the node that is doing the attach as an unique identifier to map the volume. The problem is that the FQDN is not always unique, there are environments where the same FQDN can be found in different systems, and in those cases if both try to attach volumes the second system will fail. One example of this happening would be on a QA environment where you are creating VMs and they all have names like controller-0.localdomain and compute-0.localdomain. This patch adds a configuration option to the K2 driver called `unique_fqdn_network` to support these kind of environments. Closes-Bug: #1720147 Change-Id: I2099b804a2043078e50a5a9e14c1497861576f61 - NEC driver: Fix exception in terminate_connection with no connector NEC driver required the connector object not be None. This patch allows for the connector to be None by force detach. Change-Id: Ib83edf85d086305341f94f6810fcdecb21fc7937 Closes-Bug: #1721461 - Merge "Remove API check is_valid_body" - [policy in code] Add support for snapshot resource This patch adds policy in code support for snapshot resources and depends on the basic patch [1]. [1]: https://review.openstack.org/#/c/506976/ Change-Id: I8e1b544f510c1a0af30a5a0b672578226c9fd315 Partial-Implements: blueprint policy-in-code - Add v3 api-ref for deleting extra spec for a volume type This patch adds v3 api-ref for the API: delete a specific extra spec for a volume type. Change-Id: I9b0c1527247aaebe7dc1acc71a376cb41108ee69 - Merge "Delete limited_by_marker from api/common.py" - Merge "Do not load extendable routes for the Versions router" - Merge "Remove newton-compat upgrade code on service startup" - Switch base to the latest in doc link address Although we had some effort to fix these before, it still left lots of outdated link address, this patch is to fix them all. Change-Id: I2f9ee172306bf5a99575e0cb6f5eac0ea87b0483 - Replace the usage of some aliases in tempest In tempest, following aliases have been moved in version Pike and will be removed in version Queens:ad * manager > os_primary [1] * admin_manager > os_admin [2] * os_adm > os_admin [3] * os > os_primary [4] * alt_manager > os_alt [5] [1] https://review.openstack.org/#/c/468036/ [2] https://review.openstack.org/#/c/467852/ [3] https://review.openstack.org/#/c/467605/ [4] https://review.openstack.org/#/c/466991/ [5] https://review.openstack.org/#/c/457555/ Change-Id: Ie3b93dd2cf457a5cb42a53eadc9f9fd5cec1f118 - Update tenant to project in cli quota doc Replace tenant with project and keep the descriptions consistent Change-Id: I0aaf2775d3fe1d54e64be3616a0a528e452cfa50 - ScaleIO Driver - adding cache and refactoring tests Changing static lists to a simple cache. Refactoring some of the unit tests to simplify maintenance. Related-Bug: #1699573 Change-Id: Idff127801da9e286a6b634594e5577eeb9782571 - Remove API check is_valid_body This boolean check was kept around for compatibility for the v1 API. New APIs use (or should use) the assert_valid_body call that throws a valid exception for missing body elements. Now that the v1 API has been removed, this removes is_valid_body and makes sure all remaining instances to the assert call. Change-Id: I93d5610013c17c5344de27d7f3ed5d5b89ba83ee - Add .stestr.conf configuration os-testr has moved over to use stestr instead of testr. While this is usually compaible with existing settings, there is a warning that is emitted when .stestr.conf is not present. It is usually able to fall back to parsing the .testr.conf file, but to be more correct and to prevent future problems we should update the config. Change-Id: I11e43cff87cad20b9c880e276e20a04123f830fb - Merge "Dell EMC PS: Fix extend volume creating unmanaged snapsots" - Do not load extendable routes for the Versions router The Versions router is implicitly spending time loading up extension routes on startup which is unnecessary since the Versions router only cares about handling requests to "/" on the base endpoint. Change-Id: I7452bb2952459dca8cf0baf39fa76e0e39ad2ffd Partial-Bug: #1722326 - Remove newton-compat upgrade code on service startup This upgrade compat check code was marked for removal in Ocata. Since we're now in Queens, and this is burning time on every service start, let's remove it. Change-Id: I8528752630276bd6e2348f27721238115de504cd Related-Bug: #1722326 - Remove Hitachi volume drivers Hitachi has decided to provide their drivers out of tree [1]. The drivers were marked as unsupported in-tree in the Pike release and are now being removed. [1] http://lists.openstack.org/pipermail/openstack/2017-March/018812.html Change-Id: I23867aa98f68298beb5db4558c66c1ffd4e7d6f1 Closes-bug: #1652864 Closes-bug: #1671966 Closes-bug: #1677688 Closes-bug: #1677923 Closes-bug: #1645738 - Merge "Remove Tegile volume driver" - Merge "Brocade: Add HTTP connection cleanup" - Remove Tegile volume driver This driver was marked as deprecated and unsupported in Pike due to lack of CI. This has not change and it will now be removed. Change-Id: I1920f905fdf83b01840e86646dc948fd3a113536 - Merge "Remove ZTE volume driver" - Merge "ibm_storage - fix enable replication after disable" - Merge "[policy in code] Add support for message, worker, cluster resources" - Merge "Dell EMC PS: Optimize parsing of capacity info from backend" - Merge "Storwize: add NPIV support" - Merge "Fix v3 api-ref for updating extra specs of volume type" - Merge "Add backups v3 views" - Merge "Don't collect snapshots again when sync provider info" - Merge "[policy in code] Add support for attachment resource" - Remove ZTE volume driver This driver was marked as deprecated and unsupported in Pike due to lack of CI. This has not changed and it is now being removed. Change-Id: I39a450159becb4d32b63e6073c3fcd6f08bd93a3 - Remove X-IO volume driver This driver was marked deprecated and unsupported in Pike due to lack of CI. This has not changed and it is now removed. Change-Id: I475172f16784ab9cab2194589851ec7ce01d46a7 - Remove Violin volume drivers These drivers were marked as deprecated and unsupported in Pike due to lack of CI. This has not changed and they will now be removed. Change-Id: I935990d09f1374a8789b2a0dad8e8a334aa39abc - Merge "Add retries to LVM logical volume activation" - Merge "Add ploop to parallels naming conversion" - Merge "Update BlockBox" - Merge "Fix tempest test revet_client typo" - Add retries to LVM logical volume activation We are running into failures activating snapshots where the syslog shows the output "thin: Unable to activate thin device while pool is suspended" when attempting to use quickly after creation. This appears to be a race where there are still internal things being done after the snapshot is created. This is a bit of a punt, but with local testing the thin pool state either does not visibily change or transitions so fast that it is hard to capture the state transition in the vgdisplay. Since we know this operations works most of the time, it would seem we are just giving up before the pool gets back into the right state to do this activation. Rather than trying to get the thin pool state and parse the output of the command, just adding retries to the operation that back off between each attempt. Based on what we've seen with successful runs, this should allow it to fail while the pool is in this transitional state and attempt again later when hopefully things have settled. Change-Id: I3e7037b3571665251db8dee2cf22cab1297106c9 Closes-bug: #1642111 - Remove Reduxio volume driver This driver was marked as deprecated and unsupported in Pike due to lack of CI. This has not changed and it is now being removed. Change-Id: I463a490637e31745bd92bb048bc798a66bd260c7 - Merge "Doc: Configuration: Remove some outdated Ceph info" - Merge "docs: Fix typo error in blockstorage-driver-filter-weighing.rst" - Merge "Dell EMC PS: Fix over-subscription ratio stats" - Remove QNAP volume driver The QNAP driver was marked as deprecated and unsupported in Pike due to not meeting CI requirements. This situation has not changed and it will now be removed. Change-Id: I29a874ebe0ebaeca58b428faa0bab50482baf6f1 - Merge "Remove Infortrend drivers" - Merge "Add uuid to services entries" - Merge "Address importing directory issue" - Merge "Cleanup some todo's for refresh()" - Merge "Update provider parameter in sample json files" - Merge "Remove deprecated osapi_volume_base_URL" - Merge "Remove deprecated heartbeat options" - Merge "NetApp ONTAP: Fix reporting of provisioned_capacity_gb" - Merge "VMAX driver - remove WLP stats" - Merge "Fix Tempest Volume Revert test" - Merge "Clean up docs landing page" - Merge "Doc: Move generalized_filters to admin" - Cleanup some todo's for refresh() There were some TODO tags in the code to switch to using object refresh() calls once that was available. We have that now, so clean up and switch a few instances to call refresh instead of fetching a new object. Change-Id: I7d7c4f7d9f9cc94d9ef4e0d5d430513cb3581f16 - Merge "Remove legacy driver name mappings" - Update BlockBox There have been a number of changes to LOCI since the introduction of BlockBox. In particular LOCI now offers a `universal` Dockerfile and employees bindeps and new ARGS features of Docker to customize images. This patch modifies BlockBox to use the new universal LOCI repo and also cleans up a bunch of cruft and adds an updated conf entry with key-manager. This patch also removes the dev environment as it's out dated and doesn't seem to be gaining much usage. It's easy enough to set this up on your own, so rather than maintain it just remove it. Change-Id: Id03ff9310fd53c4e6df300f2866b7a17cba82561 - Brocade: Add HTTP connection cleanup Method for get device mapping opens connection to the switch but does not close the connection. Add finally block to close the session. Closes Bug: #1718762 Change-Id: Ic4c7fd66858039db3f9d09a0babd5601b25a95e3 - Remove Infortrend drivers The Infortrend drivers were marked as deprecated and unsupported in Pike due to lack of CI. This situation has not changed and they will now be removed. Change-Id: I0f1d12776cfa553b117c5b3698b2ae0c9c88735e - VMAX driver - remove WLP stats Workload Planner(WLP) headroom calculations are not always accurate for All Flash arrays. Because WLP is generally always enabled on Unisphere, it is best use SRP calculations instead. Change-Id: Id5e59fce2ea5958bfcd4fbadb609f8f6cad42aa8 Closes-Bug: #1714503 - Merge "Create custom assertTrue and assertFalse" - Merge "Stop overriding LVM overprovisioning ratio and deprecate" - Merge "Compact Newton database migrations" - Merge "Clear cached autogenerated docs before docs build" - Merge "Remove Glance v1 API support" - Merge "Remove FalconStor volume drivers" - Remove deprecated heartbeat options Cluster locking heartbeat options were marked deprecated in 42dafd2705a8cb4346c396376977c705e55d9e7c with the move to using the tooz built in hearbeating. These options are now removed. Note, in the release note for the deprecation we actually stated these options were removed, not deprecated, so this patch does not include an additional release note pointing this out. Change-Id: Iae30e9263044a7ef04fbe5b826cfcc7aa41add5a - Dell EMC PS: Fix extend volume creating unmanaged snapsots The Dell EMC PS driver's extend volume code is missing the no-snap option and creates unmanaged snapshots in the background. Added that option to fix it. Closes Bug: #1720454 Change-Id: I48398331fe086760a88bd5ca4c0f28f90e22bd0b - Remove deprecated osapi_volume_base_URL This config option was basically the same as public_endpoint and was deprecated in Pike in favor of using that option instead. This now removes it completely. Change-Id: I405a404add187ba62357e541dfa1e8b39703ba18 - Clean up docs landing page Reorganizes and cleans up the docs landing page so viewers eyes don't immediately start bleeding. Also tries to simplify things and put them in a more logical and consumable order. Change-Id: I1c3ee6ad21bd27a5ef7f6691ddd8dde25e9c4c01 - Dell EMC PS: Optimize parsing of capacity info from backend The backend api returns large amounts of information and times out when there are lots of volumes. Accelerated the process by terminating the parsing after the capacity info is retrieved. Closes Bug: #1661154 Change-Id: I1f0adaa8e25cd3ec74084b22bbe1573b92713959 - Dell EMC PS: Fix over-subscription ratio stats Fixed the provisioned_capacity_gb to use the VolumeReportedSpace to calculate the over-subscription ratio stats in the Dell EMC PS volume driver. Closes Bug: #1719659 Change-Id: I2caa5f2763ec343b0bc875e707924ff9b6424ce5 - Doc: Move generalized_filters to admin This is not a man page, so move it to the admin dir instead of "man". Change-Id: I6d128a5bc30b8d9ac1a0b7a200088b39a1777b05 - Doc: Configuration: Remove some outdated Ceph info A few small cleanups: - Remove irrelevant text about linux kernel - Remove recommendations about file systems - Remove outdated note about config option Closes-Bug: #1716991 Change-Id: I0c1593a72473f0db5fb8b5e4d436fee4c9f5c62a - Add ploop to parallels naming conversion It worked silently until src_format was started to be passed to convert_image in I4071927c491870626fe174b75ecaf8ef6da39cf5 Now we should also have ploop-to-parallels mapping as in upload_volume. Also, place all conversions to a single structure. Change-Id: I8ad66a625f12cc48e1daec51e9f8abe6ae8932d6 - Generate create_at date in usage in isoformat for backups/snapshots Change the format of the dates when generating notifications for snapshots and backups. This was generating a format problem when inserting events into Elasticsearch via Panko, due to an invalid format (YYYY-MM-DD HH:mm:ssZ to YYYY-MM-DDTHH:mm:ssZ) Change-Id: I651699e42c28c05fc8fd71cfeef54d98839c1a29 - Add uuid to services entries Our services ID column is still just an integer and that's *ok* for the most part. There are things that it would be nice to advertise a more meaningful and unique identifier to the users of services though. This change adds an indexable UUID column to the services, this will be useful for things like identifying backends without leaking details to end users. Change-Id: I67e52c6a8634b74bf5975290298d6fbcadc7dd50 - Fix tempest test revet_client typo TrivialFix Change-Id: Ib4a0c50f699edb1cc2ea669ac711eb2f537be417 - Fix Tempest Volume Revert test When we stopped using magic strings for the microversions in Cinder on change Ib3a80fee6caaabb49af097aa197f550c65d94985 we broke the Volume Revert Tempest test because we started sending requests to do the revert with API microversion 3.0 and the minimum version is 3.40. This patch fixes it. Closes-bug: 1720855 Change-Id: Ib85411c7f6f5cc9ad33e41f1aba18021703e4913 - Fix Reset a snapshot's status API Request Example Reset a snapshot's status API Request Example was syntax error with comma, so remove comma to syntax correct. Change-Id: I8b2c249aaf0f9729bc35b80ecd6cd28bb34835c0 Close-bug: #1720487 - Replace DbMigrationError with DBMigrationError DbMigrationError is deprecated and will NOT be thrown in oslo.db since oslo.db >=4.27.0, DBMigrationError will be thrown instead. Consumers should catch DBMigrationError instead of DbMigrationError Depends-On: Iab0566cf9f4552e91fa417e64472fa106e8bc86d Depends-On: I0ebd69c3d778acb5bec9e136627e345e7fcf2bd3 Change-Id: Ibb2f105c58252adb7dfe4f1a7d6643410ac031b3 - Fix description for volume_type object in API Ref Volume_type is a object containing all information about volume_type but its definition is wrong on API-ref side - http://developer.openstack.org/api-ref/block-storage/v2/#volume-types-types This commit correct that to understand the API clearly. Change-Id: I3384ad2f01917d71b3dfab46ef21d7e5c44cc904 Closes-bug: 1659443 - Mark Cisco FC ZM driver as unsupported The Cisco Fibre Channel Zone Manager CI has not run successfully during the required period: Checking name: Cisco CI first seen: 2017-02-14 06:07:46 (226 days, 11:04:34 old) last seen: 2017-03-03 16:52:40 (209 days, 0:19:40 old) last success: 2017-02-23 17:09:46 (217 days, 0:02:34 old) Job cisco_zm_cinder 48% success out of 250 comments S=122, F=128 last success: 2017-02-23 17:09:46 (217 days, 0:02:34 old) Per Cinder's non-compliance policy, this patch marks the driver as unsupported and deprecated. The driver will be removed in the next cycle if the problem is not corrected. Change-Id: I008cd9089568c5ba084f9c1dacb1ab6e47fc7362 - Fix v3 api-ref for updating extra specs of volume type In v3 api-ref for updating extra specs of volume type, the request and response contents are wrongly described, and also the HTTP method and URL are not correct. This patch addes new api-ref for it. Change-Id: I4263c25a0638a68d0d102c7966ebb77604c019fc - Merge "Add indexes to SQLAlchemy models" - Add backups v3 views This patch adds v3 views to backups and moves the metadata feature (min_version: 3.43) to backups v3 views, to avoid modifying the base viewbuilder class of backups. Also adds unit test for showing backup metadata. Change-Id: I884aebf76a67b215bb37ebe4b9a384d14abb315c - Storwize: add NPIV support The Storwize/svc release 7.7.0.0 introduced an NPIV feature, which when enabled provides for both virtual and physical wwpns. The patch enables the storwize cinder driver to make use of the virtual and physical wwpns that have been enabled for I/O operations. Change-Id: I673b43f9ebe335ced4981af6c53b320a886438c8 Closes-Bug: #1715275 - Address importing directory issue The import warning[1] occurs because the file 'config.py' and directory 'config/' exist simultaneously. The fact is that file __init__.py[2] is actually there and it just resulted from naming conflict. This patch gives an approach by renaming 'config.py' to address the issue. [1]http://logs.openstack.org/76/506976/8/check/gate-tempest-dsvm-full-devstack-plugin-ceph-ubuntu-xenial/a958f56/console.html#_2017-09-26_03_56_54_125829 [2]https://github.com/openstack/cinder/blob/master/cinder/tests/tempest/__init__.py Change-Id: Ia3fe38c7b2262eeac81bcec2b9378bf641ec6929 - Merge "Clean up api-ref index page" - Merge "Api-ref: change 'tenant' to 'project' in v2 doc" - Stop overriding LVM overprovisioning ratio and deprecate The LVM driver has its own config option for managing overprovisioning separate from our common overprovisioning ratio. It default to 1, causing it to always override the common default. This changes the LVM default to None so it does not override the common setting and marks this config option as deprecated to be removed in Rocky. Change-Id: Ib90cdb1f60741284ea171d1a84ad74beac43c7d3 Closes-bug: #1720004 - Clean up api-ref index page We had an extra section that had a useless index link and a link to the search page. To make search easier to find, moved that up to the top and got rid of the index link. Change-Id: I65d7a8930b7bb7db2f994fc615ff621956397e83 - Update provider parameter in sample json files In the sample json files, some examples of the provider value were wrong and showed a key manager class instead of an encryptor name. Other samples showed the legacy encryptor classes where the newer os-brick encryptor shorthand names should be used instead. I3eec91e221692177833909e0378116cea4966807 removes support for the legacy provider class names, so it is important that the samples reflect the updated shorthand names. Change-Id: I1c3879a5d12a8c9802deeac1c6e24b57310588d5 - Merge "Fix api-ref for reset group snapshot" - NetApp ONTAP: Fix reporting of provisioned_capacity_gb The ONTAP drivers in Cinder ("7mode" and "cmode") cannot reliably and efficiently track provisioned_capacity_gb as expected by the Cinder scheduler. The driver authors originally assumed that provisioned_capacity_gb is consumed space on the backend. This results in miscalculation of over subscription in the Cinder scheduler. The fix adopted here is to remove this wrong reporting and rely on calculation of the provisioned_capacity_gb in the scheduler. Change-Id: Ic106dbcae8ceaac265b710756ab1874e445ca826 Closes-Bug: #1714209 - Fix api-ref for reset group snapshot reset-group-snalshot api-ref not correct for 'status' attribute. That is mentioned as optional for request. 'status' in API request is mandatory attribute. Also 'project_id' is mentioned as body element instead of path. Those are confusing while implementing tests for this API - https://review.openstack.org/#/c/495735/ https://developer.openstack.org/api-ref/block-storage/v3/#reset-group-snapshot-status Closes-Bug: #1719930 Change-Id: Id2016f86d0eae60d96df7a12eda1bbec9d1129a8 - Remove legacy driver name mappings We have a mechanism to allow loading the correct volume driver even if the driver was renamed or moved but the deployment did not update their config to the new location. This removed driver mappings that have been changed over two releases. Change-Id: I943f54c9225c7969122b9686bf90ab3583cac83a - Api-ref: change 'tenant' to 'project' in v2 doc Since 'tenant' is the old term, all things should now refer to 'project'. Change-Id: I3a255df758583a3c4301041c8ebffb90b8263fef - Merge "3PAR: Cinder volume revert to snapshot support" - [policy in code] Add support for message, worker, cluster resources This patch adds policy in code support for message, worker and cluster resources and depends on the basic patch [1]. [1]: https://review.openstack.org/#/c/506976/ Change-Id: I04c0b79175c69d25ca6fcb50ec604123f3f09933 Partial-Implements: blueprint policy-in-code - Merge "[DOC] Update index page for Install tutorial" - Merge "nimble: fix for parent volume delete" - Merge "Updated from global requirements" - 3PAR: Cinder volume revert to snapshot support This commit implements reverting volume to a snapshot when backend_storage is 3PAR Change-Id: Ib89e68df8b93724e6042fa535139bd86fd232d92 - Compact Newton database migrations This compacts all database migrations up to Newton into one intial schema to remove the need to apply every database change along the way. Change-Id: I7b5833296292df2e6cc7d8d9306115e590fff25a - Add indexes to SQLAlchemy models We've added several index to tables, but we have not always updated that in the models. This should be defined there to help with optimal querying. Change-Id: Ia0f7587f568af1fc41d3bf1dbffca300f12474ca - Merge "Api-ref: fix v2/v3 hosts extension api doc" - Updated from global requirements Change-Id: I3a1bd8a1789e1b27ecc63c553fe83fa965d9d38b - [policy in code] Add support for attachment resource This is the basic patch which consits of the framework code for default policy in code feature as well as support in attachment resource. Change-Id: Ie3ff068e61ea8e0e8fff78deb732e183e036a10c Partial-Implements: blueprint policy-in-code - Api-ref: fix v2/v3 hosts extension api doc Supplement error response codes and fix parameters problem. Change-Id: Ia24c6980f437ab6838d64c345bc9c10a100762e1 Closes-Bug: #1715286 - Merge "Check for outstanding attachments during reserve" - Merge "[DOC] Remove duplicate build of module index" - nimble: fix for parent volume delete currently we make the volume in error state if it has dependent clones. Try to delete the volume and if it has dependent clones then catch the exception and online the volume and keep it available Change-Id: I0ba8f43f14f5f4bf318f00b916b787ecc9481505 Closes-Bug: 1718814 - Merge "HPE 3PAR: fix delete operation of replicated volume" - Check for outstanding attachments during reserve There are a number of places on the Nova side where we need to do things with volume connections like remove an attachment and immediately reserve a new one. This introduces a potential race where bad things can happen. To deal with that, we actually want to to create a new attachment to do a reserve, BEFORE we delete the current attachment. The problem is that the new Attachment code currently will toggle the volume status and attach status such that you will then not be able to remove the attachment in the future, and it also makes things such that the true state of the volume is not reflected properly. This patch adds a check on reserve for additional attachments and if there are attachments for a volume that have the volume as in-use we don't clear that status during the new reserve call. Change-Id: I8062897bd3d4fe20de9a5660eac6fec856cc3c1e Closes-Bug: #1717564 - Remove SCREEN_LOGDIR from devstack install setting Screen support has been completely removed from devstack. So we should remove this setting. Change-Id: I65da9c0ead5b437338af55c6b95bf88a8295b08f - Merge "Add default configuration files to data_files" - Merge "LVM: Activate thin snapshot before clone activation" - Merge "nimble: update config doc for unicode unsupported" - Merge "Use constants for microversion values" - nimble: update config doc for unicode unsupported nimble storage driver doesnt support unicode characters in volume name and description, update the configuration document accordingly Change-Id: Ia2e746d961b17c0bf983cf194eaf3be071c1b4a1 Closes-Bug: 1719030 - Use constants for microversion values We very often end up with merge conflicts for any patches that increment microversions due to conflicting numbers. We can't really solve that, but we can avoid the need to update version numbers throughout the code by defining a constant value in one place and using that variable instead. Change-Id: Ib3a80fee6caaabb49af097aa197f550c65d94985 - Add default configuration files to data_files In order to make it simpler to use the default configuration files when deploying services from source, the files are added to pbr's data_files section so that the files are included in the built wheels and therefore deployed with the code. Packaging and deployment tools can then more easily use the default files if they wish to. This pattern is already established with similar files for neutron and the glance metadefs as has been mentioned in the related bug report. Change-Id: Idbc616e9ca23b1b7187f39a1e157f56862851f6c Closes-Bug: #1718356 - HPE 3PAR: fix delete operation of replicated volume When QoS is set to the replicated volume, at Storage level the same volume becomes part of vvset This patch delete vvset if one volume per vvset else it remove volume from vvset. Then delete the volume Change-Id: Iebac77f569adbf763f0a5668cfdc5ea546846d67 Closes-Bug: #1717875 - Merge "Revert status to previous state on extend failure" - Merge "RBD: get provisioned capacity using same connection" - Revert status to previous state on extend failure When Cinder fails to schedule extend volume action, the status will be set to 'available' no matter what the previous status is. Change-Id: I830c11cda252fe25e1c069a425bdebe8c98f7a8d Closes-Bug: 1718374 - Clear cached autogenerated docs before docs build Leftover data in the autogenerated docs can result in build failure. Remove these files before every build to be safe. Change-Id: Iec3ff7334b7af80cb34019590544fab0b1c95240 Closes-bug: #1716478 - Switch to use key_manager.backend Castellan commit 8980bf7da55dd084ad84c84534fe937f0d43b9c0 deprecated the api_class option in favor of the new backend option. This causes doc build failures in Cinder due to us treating warnings as errors. This changes over to use backend (the library will still recognize api_class as an option) and removed some of the key manager code deprecated in Newton. Depends-on: I112f7a4654a65c3291526b408838d7b1c175b069 Closes-bug: #1718468 Change-Id: I8d3638a69f4efcc52053269c51c01667fb810172 - LVM: Activate thin snapshot before clone activation LVM may be configured to not automatically activate thin-provisioned LVs. Ensure they are activated before activating a clone, otherwise activating the clone may fail. Change-Id: Iaedeb3cdc706daa34db8d50c48cf738f6edb9bcf Related-Bug: #1642111 - Merge "Fix a migration issue of Huawei driver" - [DOC] Update index page for Install tutorial The index page for our install tutorial should point back to the top level OpenStack installation tutorial to give the user information on how to set up the base OpenStack environment before starting installation. This patch adds the link and notes that the setup in there is a prerequisite to executing the Cinder Install Tutorial. Change-Id: I42418b30b3978bac24a856c22342ce5db3e42282 - Merge "cinder incremental backup with ceph fails if last one deleted" - Merge "Add another hack from NOVA_GROUP to generate_cinder_opts.py" - Merge "api-ref: Clarify os-host GET behavior" - Merge "api-ref: Normalize response codes" - docs: Fix typo error in blockstorage-driver-filter-weighing.rst In the file doc/source/admin/blockstorage-driver-filter-weighing.rst, there is a typo error in the last example cinder.conf which will lead to wrong configuration. This patch is to fix the doc typo error. Change-Id: I632f91a419ab1439c91ed757bfce14005bc3f1a6 Related-Bug: #1715818 - Fix a migration issue of Huawei driver While migrating volume crossing backends by the host-based way, after data copying is done, Huawei driver's update_migrated_volume method doesn't return the provider_location property, which results old and new volumes' provider_locations aren't swapped as expected, afterwards, while deleting the old volume, new volume's provider_location will be used and the if-volume-exist-check fails because it verifies the new volume's LUN ID actually on the old backend, which certainly doesn't exist. This patch fixes this issue. Change-Id: Iee27c0368522c90525a4b8ad757f9fb89dc293a0 - Add another hack from NOVA_GROUP to generate_cinder_opts.py generate_cinder_opts.py doesn't really handle indirect variables in group names, so add manual handlig of NOVA_GROUP. Change-Id: I30a4666a058ebbf108fd42028fb0c39e5cb8bcae Closes-Bug: #1717008 - Remove FalconStor volume drivers These drivers were marked as deprecated and unsupported in the Pike release due to lack of CI. This situation has not changed, so per our CI policy they are now being removed. Change-Id: I7440c5feba238acb1c7f0435f107bc958aaee448 - RBD: get provisioned capacity using same connection Creating new connection on getting rbd image is significant overhead. Collecting provisioned capacity spends most of its time on new connection establishment. This patch reuses previously created connection. Change-Id: I2c54383a865727d0035a20dcf34d860bde3db4f9 Related-Bug: #1649956 - [DOC] Remove duplicate build of module index It was noticed that we had the module index built on both the main landing page as well as on the contributor/api/index.html page. This patch removes the module index from the main landing page. Change-Id: If10286046de36da3368c8c274e6c8fd5de353fa0 - Create custom assertTrue and assertFalse Python's unittest framework assertTrue and assertFalse methods don't check that the provided value is False or True, like the documentation says: Note that this is equivalent to bool(expr) is True and not to expr is True (use assertIs(expr, True) for the latter). According to the documentation we should try to avoid using it as much as possible: This method should also be avoided when more specific methods are available (e.g. assertEqual(a, b) instead of assertTrue(a == b)), because they provide a better error message in case of failure. But in our current code we keep abusing its use in many ways, among which we can easily find the following: - Thinking it only matches False/True - assertTrue(expected, actual) --> This will always be true as long as bool(expected) is True, because actual is interpreted as the message to return on failure. - Incorrectly testing values, like checking for a tuple of the form (True, {...}) instead of testing for True in the first position. This patch fixes incorrect some of the incorrect uses of the methods and overwrites default methods so that they behave the way many people think they do: - assertTrue(x) == assertIs(True,x) - assertFalse(x) == assertIs(False,x) This will hopefully help us prevent incorrect usage of the methods. Change-Id: I1e8c82702932e6b6d940bd83d0a2d4494576a81b - Remove Glance v1 API support The Glance v1 API is about to be removed. Cinder support for using the current v2 API was added in Pike, but we allowed selection of which version to use through the glance_api_version config option. That option was also deprecated in Pike. This removes the config option to allow selection and switches things over to only use Glance API v2. Change-Id: Ice379db9ae83420bacf9e96e242c7515930eae86 - ibm_storage - fix enable replication after disable running enable replication on a group that had its replication disabled raises an exception. we need to clean the replication object on the remote. Change-Id: Id68ecc95220a1abcfc01239f84dcb6ac1f9f858f Closes-bug: 1706355 - api-ref: Normalize response codes We had a mix of formatting for our API response codes. This makes it so all have a leading space, no trailing comma, and no empty Error response labels. This also addresses a formatting issue with due to the spacing between the Normal and Error lines that was causing the two to run together in the formatted HTML, making it harder to read. Change-Id: Ic411ee9f671c48ce60bda21984dafe55135685ba - api-ref: Clarify os-host GET behavior Getting all hosts returns every Cinder service host, regardless of which service is running on the host. But getting a specific host will fail if you try it for a host not running cinder-volume. This looks to be the behavior from the beginning, but there was nothing denoting this, causing errors and confusion for code that thought it could get a host from the list, then get detailed info about that host. The details return volume and snapshot counts, so it really only makes sense for cinder-volume, so the code ends up returning a 404 for anything else. This API design seems a little disjointed, but since this is how it appears to have always been, just make sure the api docs have the right details for potential API consumers to know what to expect. Change-Id: If53279cfcbbde1297bb2e55e17d17b473e7d0d6e Closes-bug: #1691144 - Don't collect snapshots again when sync provider info Cinder collects redundant snapshot copies during sync snapshot provider info. Remove it. Change-Id: Id40746d0bd6dffd67d8d7055c58e054139aaeffe - ibm-storage: enable FC zonning to all ports During 'initialize_connection' we rely on the storage ability to know which hosts can access it. This is in some cases not accurate. So we need to enable hosts to connect to all the storage FC ports. Change-Id: I41697632d48f7cbcbe008867671f8196b5543c94 Closes-Bug: #1702291 - cinder incremental backup with ceph fails if last one deleted If the last incremental backup is deleted then the backup snapshot is deleted but the source volume snapshot remains. Due to mismatch between the source volume snapshot and backup snapshot, there is an error when "rbd export-diff" and "rbd import-diff" is done. Hence, full backup happens. To fix this issue, all the previous source volume snapshots are preserved. When the last incremental backup is deleted, then its backup snapshot is deleted. But because all the source volume snaps exist, thus it can now update --from-snap for "rbd export-diff" to be the most recent source volume snapshot for which there exists a backup snapshot as well. This is how the incremental backup operation will go successful. For a user who upgrades to the new code, if the last backup snapshot and source volume snapshot are in sync, i.e. both of them exist, then the next create backup operation will continue as an incremental one. However, if there is no source volume snapshot for the last existing incremental backup (before the code was upgraded), then a full backup happens. After this full backup, all the next backups are incremental while all their corresponding source volume snapshots are also preserved. In this way, after a user upgrades, if he deletes the last incremental backup, the next create backup operation will be successful and be incremental. Since all the backup snapshots exist for all the backups, if the user wants to restore a backup, which was created before the code was upgraded, the user will not lose any data since the same base backup is used. Change-Id: Ia9c29bb720152d42bec273202fa49ca4b6a41ce2 Closes-Bug: #1703011 - Remove the unnecessary pv_list assign during LVM object init The pv_list of LVM object actually wanted to be a list of dict of physical volumes' info, but in the routine of creating a new vg, we assign a list of physical volumes' name to it, which is unnecessary, and also confuse people. Change-Id: I3e19c574aa76594898307682c4898d5459c2af76 - Fix scheduler_host_manager limitation We support customization of scheduler's host manager, driver, and filters, but when we made the scheduler Pool aware we greatly limited this possibility because now instead of passing BackendState (previously called HostState) to the filters we are passing PoolState, which cannot be easily customized. Prior to this if you wanted to have a custom BackendState class you would just have to extend HostManager class and define the class attribute backend_state_cls before using it in config's scheduler_host_manager. Now it will not be enough with that because PoolState class is hardcoded in the BackendState's methods, so you'll have to actually copy all the code from that class just so you can replace the PoolState class instantiations. This patch fixes this by creating an instance attribute on initialization method, this way extending classes will just have to call parent's initialization and then replace the value of the pool_state_cls attribute. Due to a circular dependency between BackendState and PoolState (which inherits from BackendState) we cannot just add it as a class attribute, so we do it as an instance attribute instead. If we want to add it as a class attribute we would have to add after the PoolState class definition the following: BackendState.pool_state_cls = PoolState Conceptually that's closer to what we want (a class attribute) but the implementation is worse because you end up assigning the class attribute 270 lines away from where it should have been defined. TrivialFix Change-Id: I2c63806c4e9b1305742c7f07f47b95ba243c1666 - Delete limited_by_marker from api/common.py The function limited_by_marker seems unused, untested and hasn't been edited in a significant manner since the fork out of Nova. This patch removes it. Change-Id: I79e974f5b53f3d2984792b8160e8ef5a978a918b - Remove reserving quotas in c-vol's retype method Code removed by this commit was there to keep backward compatibility between Liberty and Mitaka. As we're in Pike and we're only constrained to keep compatibility with X-1 release, it's safe to get rid of it. Right now we can assume that quota reservation will always be done in c-api and passed down to c-vol. Change-Id: I67b45662a52a55e88b920c2d0cbe9c20247a8d83
This commit is contained in:
parent
930678a32f
commit
bd325ad333
2
cinder
2
cinder
|
@ -1 +1 @@
|
|||
Subproject commit 131a3ef8e40d797d0e1e99ab40e5972169c39bc2
|
||||
Subproject commit 22b48d86397300e93e38d2d6a8d2093db6d84793
|
Loading…
Reference in New Issue