Merge ~freyes/ubuntu/+source/cinder:upstream into ~ubuntu-openstack-dev/ubuntu/+source/cinder:upstream
- Git
- lp:~freyes/ubuntu/+source/cinder
- upstream
- Merge into upstream
Proposed by
Felipe Reyes
Status: | Merged |
---|---|
Merged at revision: | 06914477d8f4d8f39cd982c771368d6b47efbcce |
Proposed branch: | ~freyes/ubuntu/+source/cinder:upstream |
Merge into: | ~ubuntu-openstack-dev/ubuntu/+source/cinder:upstream |
Diff against target: |
59561 lines (+7442/-18124) 429 files modified
.pylintrc (+0/-1) .zuul.yaml (+10/-41) AUTHORS (+1/-11) ChangeLog (+39/-233) PKG-INFO (+1/-1) api-ref/source/v2/ext-backups.inc (+2/-1) api-ref/source/v2/index.rst (+3/-18) api-ref/source/v2/samples/encryption-type-create-request.json (+1/-1) api-ref/source/v2/samples/encryption-type-create-response.json (+1/-1) api-ref/source/v2/samples/encryption-type-show-response.json (+1/-1) api-ref/source/v3/ext-backups.inc (+2/-1) api-ref/source/v3/os-vol-transfer-v3.inc (+5/-5) api-ref/source/v3/parameters.yaml (+5/-63) api-ref/source/v3/resource-filters.inc (+0/-2) api-ref/source/v3/samples/snapshots/snapshot-create-response.json (+1/-1) api-ref/source/v3/samples/snapshots/snapshot-show-response.json (+1/-1) api-ref/source/v3/samples/snapshots/snapshot-update-response.json (+1/-1) api-ref/source/v3/samples/snapshots/snapshots-list-detailed-response.json (+1/-1) api-ref/source/v3/samples/versions/version-show-response.json (+2/-2) api-ref/source/v3/samples/versions/versions-response.json (+26/-2) api-ref/source/v3/samples/volume_type/encryption-type-create-request.json (+1/-1) api-ref/source/v3/samples/volume_type/encryption-type-create-response.json (+1/-1) api-ref/source/v3/samples/volume_type/encryption-type-show-response.json (+1/-1) api-ref/source/v3/samples/volumes/volume-create-response.json (+1/-1) api-ref/source/v3/samples/volumes/volume-show-response.json (+1/-1) api-ref/source/v3/samples/volumes/volume-update-response.json (+1/-1) api-ref/source/v3/samples/volumes/volumes-list-detailed-response.json (+8/-2) api-ref/source/v3/vol-transfer-v3.inc (+1/-1) api-ref/source/v3/volumes-v3-snapshots.inc (+13/-29) api-ref/source/v3/volumes-v3-volumes.inc (+14/-38) cinder.egg-info/PKG-INFO (+1/-1) cinder.egg-info/SOURCES.txt (+35/-173) cinder.egg-info/entry_points.txt (+3/-0) cinder.egg-info/pbr.json (+1/-1) cinder.egg-info/requires.txt (+7/-7) cinder/api/__init__.py (+9/-10) cinder/api/api_utils.py (+0/-91) cinder/api/common.py (+1/-2) cinder/api/contrib/admin_actions.py (+1/-1) cinder/api/contrib/backups.py (+1/-1) cinder/api/contrib/quota_classes.py (+2/-2) cinder/api/contrib/types_extra_specs.py (+3/-8) cinder/api/contrib/types_manage.py (+3/-3) cinder/api/contrib/volume_actions.py (+1/-1) cinder/api/contrib/volume_image_metadata.py (+4/-5) cinder/api/contrib/volume_manage.py (+1/-1) cinder/api/contrib/volume_type_access.py (+1/-2) cinder/api/microversions.py (+2/-4) cinder/api/openstack/api_version_request.py (+8/-6) cinder/api/openstack/rest_api_version_history.rst (+2/-17) cinder/api/openstack/wsgi.py (+15/-5) cinder/api/v2/router.py (+93/-0) cinder/api/v2/types.py (+1/-14) cinder/api/v2/views/types.py (+1/-16) cinder/api/v2/volumes.py (+2/-9) cinder/api/v3/default_types.py (+21/-4) cinder/api/v3/group_specs.py (+5/-5) cinder/api/v3/group_types.py (+3/-3) cinder/api/v3/limits.py (+2/-3) cinder/api/v3/router.py (+2/-2) cinder/api/v3/snapshots.py (+6/-77) cinder/api/v3/views/snapshots.py (+3/-5) cinder/api/v3/views/volumes.py (+0/-3) cinder/api/v3/volumes.py (+14/-22) cinder/api/versions.py (+28/-2) cinder/backup/api.py (+2/-2) cinder/backup/chunkeddriver.py (+9/-14) cinder/backup/driver.py (+5/-5) cinder/backup/drivers/ceph.py (+2/-2) cinder/backup/drivers/gcs.py (+6/-8) cinder/backup/drivers/glusterfs.py (+3/-2) cinder/backup/drivers/nfs.py (+3/-2) cinder/backup/drivers/posix.py (+6/-8) cinder/backup/drivers/s3.py (+6/-8) cinder/backup/drivers/swift.py (+9/-36) cinder/backup/manager.py (+19/-122) cinder/brick/local_dev/lvm.py (+5/-2) cinder/cmd/manage.py (+37/-124) cinder/common/config.py (+7/-0) cinder/compute/nova.py (+0/-1) cinder/context.py (+16/-48) cinder/coordination.py (+2/-37) cinder/db/api.py (+0/-16) cinder/db/base.py (+22/-4) cinder/db/migration.py (+26/-135) cinder/db/sqlalchemy/api.py (+11/-108) cinder/db/sqlalchemy/migrate_repo/manage.py (+3/-2) cinder/db/sqlalchemy/migrate_repo/versions/123_cinder_init.py (+906/-0) cinder/db/sqlalchemy/migrate_repo/versions/124_placeholder.py (+22/-0) cinder/db/sqlalchemy/migrate_repo/versions/125_placeholder.py (+22/-0) cinder/db/sqlalchemy/migrate_repo/versions/126_placeholder.py (+22/-0) cinder/db/sqlalchemy/migrate_repo/versions/127_change_project_resource_attribute_for_quota_usages.py (+38/-0) cinder/db/sqlalchemy/migrate_repo/versions/128_add_project_id_and_accepted_to_transfer.py (+34/-0) cinder/db/sqlalchemy/migrate_repo/versions/129_placeholder.py (+2/-2) cinder/db/sqlalchemy/migrate_repo/versions/130_placeholder.py (+2/-2) cinder/db/sqlalchemy/migrate_repo/versions/131_placeholder.py (+2/-2) cinder/db/sqlalchemy/migrate_repo/versions/132_create_default_volume_type.py (+44/-0) cinder/db/sqlalchemy/migrate_repo/versions/133_placeholder.py (+22/-0) cinder/db/sqlalchemy/migrate_repo/versions/134_placeholder.py (+22/-0) cinder/db/sqlalchemy/migrate_repo/versions/135_placeholder.py (+22/-0) cinder/db/sqlalchemy/migrate_repo/versions/136_make_vol_type_col_non_nullable.py (+5/-5) cinder/db/sqlalchemy/migrate_repo/versions/140_create_project_default_volume_type.py (+13/-18) cinder/db/sqlalchemy/migrate_repo/versions/141_add_quota_usage_unique_constraint.py (+5/-6) cinder/db/sqlalchemy/models.py (+328/-390) cinder/exception.py (+6/-10) cinder/flow_utils.py (+3/-4) cinder/group/api.py (+2/-2) cinder/image/cache.py (+15/-52) cinder/image/glance.py (+5/-10) cinder/image/image_utils.py (+93/-168) cinder/interface/base.py (+8/-3) cinder/manager.py (+15/-22) cinder/message/api.py (+0/-34) cinder/message/message_field.py (+0/-36) cinder/objects/backup.py (+12/-1) cinder/objects/base.py (+68/-59) cinder/objects/cgsnapshot.py (+0/-1) cinder/objects/cleanup_request.py (+0/-1) cinder/objects/cluster.py (+15/-4) cinder/objects/consistencygroup.py (+13/-0) cinder/objects/dynamic_log.py (+0/-1) cinder/objects/group.py (+12/-1) cinder/objects/group_snapshot.py (+0/-1) cinder/objects/group_type.py (+0/-1) cinder/objects/manageableresources.py (+0/-2) cinder/objects/qos_specs.py (+0/-1) cinder/objects/request_spec.py (+15/-1) cinder/objects/service.py (+20/-1) cinder/objects/snapshot.py (+16/-20) cinder/objects/volume.py (+12/-41) cinder/objects/volume_attachment.py (+11/-1) cinder/objects/volume_type.py (+16/-1) cinder/opts.py (+2/-1) cinder/policies/attachments.py (+10/-43) cinder/policies/backups.py (+15/-57) cinder/policies/base.py (+68/-285) cinder/policies/default_types.py (+12/-33) cinder/policies/group_actions.py (+11/-51) cinder/policies/group_snapshots.py (+10/-42) cinder/policies/group_types.py (+10/-86) cinder/policies/groups.py (+9/-35) cinder/policies/limits.py (+2/-9) cinder/policies/messages.py (+6/-26) cinder/policies/quota_class.py (+4/-25) cinder/policies/quotas.py (+4/-12) cinder/policies/snapshot_actions.py (+4/-14) cinder/policies/snapshot_metadata.py (+7/-26) cinder/policies/snapshots.py (+12/-49) cinder/policies/type_extra_specs.py (+7/-57) cinder/policies/volume_access.py (+7/-39) cinder/policies/volume_actions.py (+34/-125) cinder/policies/volume_metadata.py (+20/-87) cinder/policies/volume_transfer.py (+10/-41) cinder/policies/volume_type.py (+68/-141) cinder/policies/volumes.py (+19/-76) cinder/policy.py (+1/-3) cinder/quota.py (+3/-2) cinder/quota_utils.py (+96/-0) cinder/rpc.py (+6/-15) cinder/scheduler/filter_scheduler.py (+22/-35) cinder/scheduler/manager.py (+5/-17) cinder/tests/fixtures.py (+0/-25) cinder/tests/functional/api_sample_tests/samples/versions/versions-response.json.tpl (+24/-0) cinder/tests/functional/api_sample_tests/samples/volume_type/encryption-type-create-request.json.tpl (+1/-1) cinder/tests/functional/api_sample_tests/samples/volume_type/encryption-type-create-response.json.tpl (+1/-1) cinder/tests/functional/api_sample_tests/samples/volume_type/encryption-type-show-response.json.tpl (+1/-1) cinder/tests/functional/api_sample_tests/samples/volumes/volumes-list-detailed-response.json.tpl (+8/-2) cinder/tests/functional/api_sample_tests/test_limits.py (+2/-2) cinder/tests/functional/api_sample_tests/test_qos.py (+2/-2) cinder/tests/functional/api_sample_tests/test_quota_classes.py (+2/-2) cinder/tests/functional/api_sample_tests/test_quota_sets.py (+2/-2) cinder/tests/functional/api_sample_tests/test_snapshots.py (+22/-42) cinder/tests/functional/api_sample_tests/test_volume_actions.py (+2/-2) cinder/tests/functional/api_sample_tests/test_volume_transfer.py (+2/-2) cinder/tests/functional/api_sample_tests/test_volumes.py (+49/-55) cinder/tests/functional/api_samples_test_base.py (+25/-47) cinder/tests/functional/functional_helpers.py (+2/-54) cinder/tests/functional/test_default_types.py (+24/-6) cinder/tests/functional/test_group_replication.py (+2/-1) cinder/tests/functional/test_group_snapshots.py (+2/-1) cinder/tests/functional/test_groups.py (+2/-1) cinder/tests/unit/api/contrib/test_admin_actions.py (+30/-23) cinder/tests/unit/api/contrib/test_backups.py (+82/-81) cinder/tests/unit/api/contrib/test_cgsnapshots.py (+15/-15) cinder/tests/unit/api/contrib/test_consistencygroups.py (+66/-64) cinder/tests/unit/api/contrib/test_extended_snapshot_attributes.py (+2/-2) cinder/tests/unit/api/contrib/test_qos_specs_manage.py (+53/-53) cinder/tests/unit/api/contrib/test_quotas.py (+1/-2) cinder/tests/unit/api/contrib/test_scheduler_hints.py (+11/-11) cinder/tests/unit/api/contrib/test_scheduler_stats.py (+3/-3) cinder/tests/unit/api/contrib/test_services.py (+9/-9) cinder/tests/unit/api/contrib/test_snapshot_actions.py (+6/-6) cinder/tests/unit/api/contrib/test_snapshot_manage.py (+4/-4) cinder/tests/unit/api/contrib/test_snapshot_unmanage.py (+3/-3) cinder/tests/unit/api/contrib/test_types_extra_specs.py (+55/-89) cinder/tests/unit/api/contrib/test_types_manage.py (+49/-68) cinder/tests/unit/api/contrib/test_volume_actions.py (+58/-58) cinder/tests/unit/api/contrib/test_volume_encryption_metadata.py (+11/-11) cinder/tests/unit/api/contrib/test_volume_host_attribute.py (+7/-7) cinder/tests/unit/api/contrib/test_volume_image_metadata.py (+16/-16) cinder/tests/unit/api/contrib/test_volume_manage.py (+41/-6) cinder/tests/unit/api/contrib/test_volume_migration_status_attribute.py (+7/-7) cinder/tests/unit/api/contrib/test_volume_tenant_attribute.py (+8/-8) cinder/tests/unit/api/contrib/test_volume_transfer.py (+25/-25) cinder/tests/unit/api/contrib/test_volume_type_access.py (+29/-29) cinder/tests/unit/api/contrib/test_volume_type_encryption.py (+16/-16) cinder/tests/unit/api/contrib/test_volume_unmanage.py (+3/-3) cinder/tests/unit/api/fakes.py (+11/-1) cinder/tests/unit/api/test_api_validation.py (+6/-1) cinder/tests/unit/api/test_common.py (+2/-3) cinder/tests/unit/api/test_versions.py (+51/-16) cinder/tests/unit/api/v2/test_snapshot_metadata.py (+42/-58) cinder/tests/unit/api/v2/test_snapshots.py (+15/-15) cinder/tests/unit/api/v2/test_types.py (+218/-85) cinder/tests/unit/api/v3/fakes.py (+0/-44) cinder/tests/unit/api/v3/test_attachments.py (+32/-1) cinder/tests/unit/api/v3/test_backups.py (+1/-1) cinder/tests/unit/api/v3/test_default_types.py (+38/-1) cinder/tests/unit/api/v3/test_groups.py (+0/-1) cinder/tests/unit/api/v3/test_snapshots.py (+9/-89) cinder/tests/unit/api/v3/test_types.py (+24/-34) cinder/tests/unit/api/v3/test_volumes.py (+3/-66) cinder/tests/unit/attachments/test_attachments_api.py (+24/-0) cinder/tests/unit/attachments/test_attachments_manager.py (+14/-20) cinder/tests/unit/backup/drivers/test_backup_swift.py (+0/-48) cinder/tests/unit/backup/fake_service.py (+2/-2) cinder/tests/unit/backup/fake_swift_client.py (+3/-5) cinder/tests/unit/backup/fake_swift_client2.py (+1/-1) cinder/tests/unit/backup/test_backup.py (+7/-15) cinder/tests/unit/brick/test_brick_lvm.py (+27/-27) cinder/tests/unit/cmd/test_status.py (+5/-1) cinder/tests/unit/db/test_migrations.py (+38/-132) cinder/tests/unit/db/test_purge.py (+33/-3) cinder/tests/unit/message/test_api.py (+0/-29) cinder/tests/unit/objects/test_backup.py (+6/-1) cinder/tests/unit/objects/test_base.py (+2/-3) cinder/tests/unit/objects/test_cgsnapshot.py (+6/-1) cinder/tests/unit/objects/test_cleanable.py (+13/-18) cinder/tests/unit/objects/test_cluster.py (+13/-0) cinder/tests/unit/objects/test_consistencygroup.py (+6/-1) cinder/tests/unit/objects/test_group.py (+23/-1) cinder/tests/unit/objects/test_group_snapshot.py (+6/-1) cinder/tests/unit/objects/test_group_type.py (+6/-1) cinder/tests/unit/objects/test_objects.py (+2/-6) cinder/tests/unit/objects/test_service.py (+6/-1) cinder/tests/unit/objects/test_snapshot.py (+29/-12) cinder/tests/unit/objects/test_volume.py (+48/-94) cinder/tests/unit/objects/test_volume_attachment.py (+26/-1) cinder/tests/unit/objects/test_volume_type.py (+18/-1) cinder/tests/unit/policies/test_default_volume_types.py (+58/-149) cinder/tests/unit/policies/test_volume.py (+2/-340) cinder/tests/unit/policies/test_volume_actions.py (+8/-694) cinder/tests/unit/policies/test_volume_metadata.py (+3/-316) cinder/tests/unit/policies/test_volume_type.py (+3/-138) cinder/tests/unit/policy.yaml (+180/-0) cinder/tests/unit/scheduler/test_scheduler.py (+8/-11) cinder/tests/unit/test.py (+19/-37) cinder/tests/unit/test_cmd.py (+2/-151) cinder/tests/unit/test_context.py (+0/-83) cinder/tests/unit/test_coordination.py (+9/-106) cinder/tests/unit/test_db_api.py (+1/-165) cinder/tests/unit/test_image_utils.py (+42/-6) cinder/tests/unit/test_quota_utils.py (+95/-5) cinder/tests/unit/test_rpc.py (+8/-9) cinder/tests/unit/test_service.py (+15/-4) cinder/tests/unit/test_utils.py (+16/-106) cinder/tests/unit/test_volume_transfer.py (+89/-114) cinder/tests/unit/test_volume_utils.py (+10/-19) cinder/tests/unit/utils.py (+5/-6) cinder/tests/unit/volume/__init__.py (+0/-4) cinder/tests/unit/volume/drivers/dell_emc/powermax/powermax_data.py (+4/-4) cinder/tests/unit/volume/drivers/dell_emc/powermax/test_powermax_common.py (+1/-1) cinder/tests/unit/volume/drivers/dell_emc/powermax/test_powermax_fc.py (+1/-2) cinder/tests/unit/volume/drivers/dell_emc/powermax/test_powermax_provision.py (+0/-18) cinder/tests/unit/volume/drivers/dell_emc/powermax/test_powermax_rest.py (+1/-23) cinder/tests/unit/volume/drivers/hitachi/test_hitachi_hbsd_rest_fc.py (+12/-187) cinder/tests/unit/volume/drivers/hitachi/test_hitachi_hbsd_rest_iscsi.py (+10/-186) cinder/tests/unit/volume/drivers/ibm/test_storwize_svc.py (+120/-2236) cinder/tests/unit/volume/drivers/inspur/instorage/test_common.py (+7/-4) cinder/tests/unit/volume/drivers/inspur/instorage/test_fc_driver.py (+3/-2) cinder/tests/unit/volume/drivers/inspur/instorage/test_iscsi_driver.py (+3/-2) cinder/tests/unit/volume/drivers/inspur/instorage/test_replication.py (+4/-2) cinder/tests/unit/volume/drivers/netapp/dataontap/client/fakes.py (+1/-101) cinder/tests/unit/volume/drivers/netapp/dataontap/client/test_client_cmode.py (+4/-363) cinder/tests/unit/volume/drivers/netapp/dataontap/fakes.py (+0/-30) cinder/tests/unit/volume/drivers/netapp/dataontap/test_block_base.py (+0/-14) cinder/tests/unit/volume/drivers/netapp/dataontap/test_block_cmode.py (+3/-733) cinder/tests/unit/volume/drivers/netapp/dataontap/test_nfs_base.py (+0/-35) cinder/tests/unit/volume/drivers/netapp/dataontap/test_nfs_cmode.py (+4/-480) cinder/tests/unit/volume/drivers/netapp/dataontap/utils/test_data_motion.py (+0/-297) cinder/tests/unit/volume/drivers/netapp/fakes.py (+2/-2) cinder/tests/unit/volume/drivers/open_e/test_iscsi.py (+6/-10) cinder/tests/unit/volume/drivers/solidfire/test_solidfire.py (+5/-6) cinder/tests/unit/volume/drivers/test_lvm_driver.py (+26/-18) cinder/tests/unit/volume/drivers/test_nimble.py (+4/-2) cinder/tests/unit/volume/drivers/test_pure.py (+3/-120) cinder/tests/unit/volume/drivers/test_quobyte.py (+3/-1) cinder/tests/unit/volume/drivers/test_rbd.py (+0/-31) cinder/tests/unit/volume/drivers/test_seagate.py (+4/-192) cinder/tests/unit/volume/drivers/toyou/test_acs5000.py (+5/-3) cinder/tests/unit/volume/drivers/vmware/test_vmware_datastore.py (+5/-3) cinder/tests/unit/volume/drivers/vmware/test_vmware_vmdk.py (+19/-21) cinder/tests/unit/volume/drivers/vmware/test_vmware_volumeops.py (+26/-20) cinder/tests/unit/volume/flows/test_create_volume_flow.py (+3/-111) cinder/tests/unit/volume/flows/test_manage_volume_flow.py (+7/-2) cinder/tests/unit/volume/test_driver.py (+0/-32) cinder/tests/unit/volume/test_image.py (+3/-4) cinder/tests/unit/volume/test_replication_manager.py (+2/-4) cinder/tests/unit/volume/test_snapshot.py (+6/-69) cinder/tests/unit/volume/test_volume.py (+31/-162) cinder/tests/unit/volume/test_volume_manager.py (+4/-4) cinder/tests/unit/volume/test_volume_migration.py (+2/-11) cinder/tests/unit/zonemanager/test_volume_driver.py (+7/-7) cinder/transfer/api.py (+2/-2) cinder/utils.py (+97/-157) cinder/volume/api.py (+16/-19) cinder/volume/driver.py (+3/-58) cinder/volume/drivers/dell_emc/powermax/fc.py (+3/-2) cinder/volume/drivers/dell_emc/powermax/iscsi.py (+2/-1) cinder/volume/drivers/dell_emc/powermax/provision.py (+1/-2) cinder/volume/drivers/dell_emc/powermax/rest.py (+3/-8) cinder/volume/drivers/dell_emc/powermax/utils.py (+0/-9) cinder/volume/drivers/dell_emc/unity/utils.py (+1/-1) cinder/volume/drivers/hitachi/hbsd_common.py (+2/-23) cinder/volume/drivers/hitachi/hbsd_fc.py (+0/-36) cinder/volume/drivers/hitachi/hbsd_iscsi.py (+0/-37) cinder/volume/drivers/hitachi/hbsd_rest.py (+0/-279) cinder/volume/drivers/hitachi/hbsd_rest_api.py (+0/-8) cinder/volume/drivers/hitachi/hbsd_utils.py (+0/-49) cinder/volume/drivers/hpe/hpe_3par_base.py (+0/-5) cinder/volume/drivers/hpe/hpe_3par_common.py (+11/-11) cinder/volume/drivers/ibm/storwize_svc/replication.py (+2/-22) cinder/volume/drivers/ibm/storwize_svc/storwize_const.py (+2/-2) cinder/volume/drivers/ibm/storwize_svc/storwize_svc_common.py (+226/-566) cinder/volume/drivers/ibm/storwize_svc/storwize_svc_fc.py (+7/-142) cinder/volume/drivers/ibm/storwize_svc/storwize_svc_iscsi.py (+6/-20) cinder/volume/drivers/linstordrv.py (+1/-0) cinder/volume/drivers/lvm.py (+1/-0) cinder/volume/drivers/netapp/dataontap/block_base.py (+0/-5) cinder/volume/drivers/netapp/dataontap/block_cmode.py (+1/-343) cinder/volume/drivers/netapp/dataontap/client/client_cmode.py (+6/-273) cinder/volume/drivers/netapp/dataontap/fc_cmode.py (+1/-20) cinder/volume/drivers/netapp/dataontap/iscsi_cmode.py (+0/-6) cinder/volume/drivers/netapp/dataontap/nfs_base.py (+0/-16) cinder/volume/drivers/netapp/dataontap/nfs_cmode.py (+1/-234) cinder/volume/drivers/netapp/dataontap/utils/data_motion.py (+0/-102) cinder/volume/drivers/netapp/dataontap/utils/utils.py (+0/-1) cinder/volume/drivers/netapp/options.py (+1/-20) cinder/volume/drivers/netapp/utils.py (+0/-4) cinder/volume/drivers/nimble.py (+6/-2) cinder/volume/drivers/open_e/iscsi.py (+116/-120) cinder/volume/drivers/open_e/jovian_common/jdss_common.py (+2/-2) cinder/volume/drivers/open_e/jovian_common/rest.py (+32/-39) cinder/volume/drivers/open_e/jovian_common/rest_proxy.py (+2/-2) cinder/volume/drivers/pure.py (+18/-36) cinder/volume/drivers/quobyte.py (+1/-1) cinder/volume/drivers/rbd.py (+8/-2) cinder/volume/drivers/remotefs.py (+2/-0) cinder/volume/drivers/san/hp/hpmsa_common.py (+0/-8) cinder/volume/drivers/san/hp/hpmsa_fc.py (+1/-1) cinder/volume/drivers/san/hp/hpmsa_iscsi.py (+1/-2) cinder/volume/drivers/spdk.py (+1/-0) cinder/volume/drivers/stx/client.py (+1/-60) cinder/volume/drivers/stx/common.py (+0/-92) cinder/volume/drivers/stx/fc.py (+0/-22) cinder/volume/drivers/stx/iscsi.py (+0/-22) cinder/volume/drivers/vmware/datastore.py (+9/-14) cinder/volume/drivers/vmware/vmdk.py (+9/-17) cinder/volume/drivers/vmware/volumeops.py (+4/-5) cinder/volume/flows/api/create_volume.py (+45/-130) cinder/volume/flows/common.py (+1/-3) cinder/volume/flows/manager/create_volume.py (+36/-96) cinder/volume/manager.py (+321/-403) cinder/volume/rpcapi.py (+8/-29) cinder/volume/targets/driver.py (+1/-4) cinder/volume/volume_types.py (+1/-2) cinder/volume/volume_utils.py (+98/-235) contrib/block-box/etc/api-paste.ini (+10/-0) dev/null (+0/-6) doc/source/admin/blockstorage-get-capabilities.rst (+1/-1) doc/source/admin/blockstorage-manage-volumes.rst (+0/-1) doc/source/admin/generalized_filters.rst (+1/-1) doc/source/admin/index.rst (+0/-1) doc/source/cli/cinder-manage.rst (+0/-42) doc/source/conf.py (+0/-4) doc/source/configuration/block-storage/drivers/dell-emc-powermax-driver.rst (+40/-52) doc/source/configuration/block-storage/drivers/dell-emc-powervault-me.rst (+3/-3) doc/source/configuration/block-storage/drivers/dell-emc-unity-driver.rst (+1/-1) doc/source/configuration/block-storage/drivers/dell-emc-vnx-driver.rst (+1/-1) doc/source/configuration/block-storage/drivers/hitachi-vsp-driver.rst (+0/-2) doc/source/configuration/block-storage/drivers/hpe-3par-driver.rst (+34/-34) doc/source/configuration/block-storage/drivers/ibm-flashsystem-volume-driver.rst (+3/-8) doc/source/configuration/block-storage/drivers/ibm-storwize-svc-driver.rst (+47/-56) doc/source/configuration/block-storage/drivers/nimble-volume-driver.rst (+17/-22) doc/source/configuration/block-storage/drivers/open-e-joviandss-driver.rst (+25/-26) doc/source/configuration/block-storage/policy-config-HOWTO.rst (+4/-7) doc/source/configuration/block-storage/samples/api-paste.ini.inc (+10/-0) doc/source/configuration/block-storage/samples/policy.yaml.rst (+5/-13) doc/source/configuration/block-storage/volume-encryption.rst (+7/-0) doc/source/configuration/index.rst (+0/-1) doc/source/contributor/addmethod.openstackapi.rst (+1/-1) doc/source/contributor/api_microversion_dev.rst (+0/-25) doc/source/contributor/contributing.rst (+2/-32) doc/source/contributor/gerrit.rst (+1/-52) doc/source/contributor/high_availability.rst (+0/-34) doc/source/contributor/index.rst (+0/-11) doc/source/contributor/releasenotes.rst (+9/-19) doc/source/install/cinder-controller-install-obs.rst (+75/-5) doc/source/install/cinder-controller-install-rdo.rst (+74/-4) doc/source/install/cinder-controller-install-ubuntu.rst (+75/-5) doc/source/install/cinder-storage-install-rdo.rst (+1/-1) doc/source/reference/support-matrix.ini (+9/-9) etc/cinder/api-paste.ini (+10/-0) etc/cinder/resource_filters.json (+3/-4) lower-constraints.txt (+155/-0) mypy-files.txt (+0/-12) rally-jobs/cinder.yaml (+45/-45) releasenotes/notes/cgroups-v1-status-note-b1eff0e1907aa0f2.yaml (+30/-0) releasenotes/notes/fix-transfer-accept-policy-7594806372b14284.yaml (+4/-3) releasenotes/notes/mtls-fix-for-glance-api-calls-469b992adc5f49ff.yaml (+12/-0) releasenotes/notes/wallaby-encryption-known-issues-4078b6b066e51553.yaml (+64/-0) releasenotes/notes/wallaby-prelude-661b619978e1b339.yaml (+5/-0) releasenotes/source/index.rst (+0/-1) reno.yaml (+10/-11) requirements.txt (+5/-5) setup.cfg (+6/-4) test-requirements.txt (+2/-2) tools/mypywrap.sh (+2/-2) tox.ini (+10/-4) |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Corey Bryant | Pending | ||
Review via email: mp+421882@code.launchpad.net |
Commit message
Description of the change
To post a comment you must log in.
Preview Diff
[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1 | diff --git a/.pylintrc b/.pylintrc |
2 | index 7ed8550..8c0091a 100644 |
3 | --- a/.pylintrc |
4 | +++ b/.pylintrc |
5 | @@ -222,7 +222,6 @@ additional-builtins=_ |
6 | [TYPECHECK] |
7 | # List of module names for which member attributes should not be checked |
8 | ignored-modules=six.moves,_MovedItems |
9 | -signature-mutators=unittest.mock.patch,unittest.mock.patch.object,sqlalchemy.util._preloaded.dependencies |
10 | |
11 | # This is for cinder.objects.*, and requests.packages.*, but due to |
12 | # https://github.com/PyCQA/pylint/issues/2498 |
13 | diff --git a/.zuul.yaml b/.zuul.yaml |
14 | index 435020c..a79713e 100644 |
15 | --- a/.zuul.yaml |
16 | +++ b/.zuul.yaml |
17 | @@ -1,7 +1,7 @@ |
18 | - project: |
19 | templates: |
20 | - - openstack-python3-xena-jobs |
21 | - - openstack-python3-xena-jobs-arm64 |
22 | + - openstack-python3-wallaby-jobs |
23 | + - openstack-python3-wallaby-jobs-arm64 |
24 | - publish-openstack-docs-pti |
25 | - periodic-stable-jobs |
26 | - check-requirements |
27 | @@ -11,13 +11,12 @@ |
28 | jobs: |
29 | - cinder-code-coverage: |
30 | voting: false |
31 | - - cinder-mypy: |
32 | - voting: false |
33 | - cinder-tox-bandit-baseline: |
34 | voting: false |
35 | - openstack-tox-functional-py36: |
36 | irrelevant-files: &functional-irrelevant-files |
37 | - ^.*\.rst$ |
38 | + - ^api-ref/.*$ |
39 | - ^cinder/locale/.*$ |
40 | - ^cinder/tests/hacking/.*$ |
41 | - ^cinder/tests/unit.*$ |
42 | @@ -31,18 +30,11 @@ |
43 | - openstack-tox-pylint: |
44 | voting: false |
45 | timeout: 5400 |
46 | - irrelevant-files: |
47 | - - ^.*\.rst$ |
48 | - - ^api-ref/.*$ |
49 | - - ^cinder/locale/.*$ |
50 | - - ^cinder/tests/hacking/.*$ |
51 | - - ^cinder/tests/unit.*$ |
52 | - - ^contrib/block-box.*$ |
53 | - - ^doc/.*$ |
54 | - - ^releasenotes/.*$ |
55 | + irrelevant-files: *functional-irrelevant-files |
56 | - cinder-plugin-ceph-tempest: |
57 | irrelevant-files: &gate-irrelevant-files |
58 | - ^(test-|)requirements.txt$ |
59 | + - ^lower-constraints.txt$ |
60 | - ^.*\.rst$ |
61 | - ^api-ref/.*$ |
62 | - ^cinder/cmd/status\.py$ |
63 | @@ -66,9 +58,6 @@ |
64 | - cinder-tempest-lvm-multibackend: |
65 | voting: false |
66 | irrelevant-files: *gate-irrelevant-files |
67 | - - cinder-for-glance-optimized: |
68 | - voting: false |
69 | - irrelevant-files: *gate-irrelevant-files |
70 | - devstack-plugin-nfs-tempest-full: |
71 | voting: false |
72 | irrelevant-files: *gate-irrelevant-files |
73 | @@ -83,7 +72,7 @@ |
74 | - openstacksdk-functional-devstack: |
75 | required-projects: |
76 | - name: opendev.org/openstack/openstacksdk |
77 | - override-branch: stable/xena |
78 | + override-branch: stable/wallaby |
79 | irrelevant-files: *gate-irrelevant-files |
80 | gate: |
81 | jobs: |
82 | @@ -100,10 +89,12 @@ |
83 | - openstacksdk-functional-devstack: |
84 | required-projects: |
85 | - name: opendev.org/openstack/openstacksdk |
86 | - override-branch: stable/xena |
87 | + override-branch: stable/wallaby |
88 | irrelevant-files: *gate-irrelevant-files |
89 | experimental: |
90 | jobs: |
91 | + - tempest-cinder-v2-api: |
92 | + irrelevant-files: *gate-irrelevant-files |
93 | - cinder-multibackend-matrix-migration: |
94 | irrelevant-files: *gate-irrelevant-files |
95 | - cinder-grenade-mn-sub-volschbak: |
96 | @@ -134,6 +125,7 @@ |
97 | timeout: 2400 |
98 | irrelevant-files: |
99 | - ^(test-|)requirements.txt$ |
100 | + - ^lower-constraints.txt$ |
101 | - ^.*\.rst$ |
102 | - ^api-ref/.*$ |
103 | - ^cinder/cmd/status\.py$ |
104 | @@ -295,29 +287,6 @@ |
105 | irrelevant-files: *gate-irrelevant-files |
106 | |
107 | - job: |
108 | - name: cinder-mypy |
109 | - parent: openstack-tox |
110 | - vars: |
111 | - tox_envlist: mypy |
112 | - |
113 | -- job: |
114 | - name: cinder-for-glance-optimized |
115 | - parent: cinder-tempest-plugin-basic |
116 | - description: | |
117 | - Configures glance with cinder as a backend for multiple glance cinder |
118 | - stores and with cinder configured to use the optimized workflow of |
119 | - moving image data directly in the backend. |
120 | - vars: |
121 | - devstack_localrc: |
122 | - USE_CINDER_FOR_GLANCE: True |
123 | - GLANCE_ENABLE_MULTIPLE_STORES: True |
124 | - CINDER_ENABLED_BACKENDS: lvm:lvmdriver-1 |
125 | - GLANCE_CINDER_DEFAULT_BACKEND: lvmdriver-1 |
126 | - GLANCE_SHOW_DIRECT_URL: True |
127 | - GLANCE_SHOW_MULTIPLE_LOCATIONS: True |
128 | - CINDER_ALLOWED_DIRECT_URL_SCHEMES: cinder |
129 | - |
130 | -- job: |
131 | name: cinder-multibackend-matrix-migration |
132 | parent: devstack-tempest |
133 | description: | |
134 | diff --git a/AUTHORS b/AUTHORS |
135 | index 733ae20..d1151a9 100644 |
136 | --- a/AUTHORS |
137 | +++ b/AUTHORS |
138 | @@ -14,6 +14,7 @@ Accela Zhao <bigzhao@cisco.com> |
139 | Adalberto Medeiros <adalbas@linux.vnet.ibm.com> |
140 | Adam Gandelman <adam.gandelman@canonical.com> |
141 | Adam Gandelman <adamg@canonical.com> |
142 | +Adam Harwell <flux.adam@gmail.com> |
143 | Adam Krpan <akrpan@purestorage.com> |
144 | Adam Spiers <aspiers@suse.com> |
145 | Adam Young <ayoung@redhat.com> |
146 | @@ -167,7 +168,6 @@ Christian Berendt <berendt@b1-systems.de> |
147 | Christian Berendt <berendt@betacloud-solutions.de> |
148 | Christian Rohmann <christian.rohmann@inovex.de> |
149 | Christoph Kassen <c.kassen@telekom.de> |
150 | -Christophe Drevet-Droguet <cdr@antemeta.fr> |
151 | Christopher J Schaefer <cjschaef@us.ibm.com> |
152 | Christopher MacGown <chris@pistoncloud.com> |
153 | Chuck Fouts <fchuck@netapp.com> |
154 | @@ -426,7 +426,6 @@ Joe Gordon <joe.gordon0@gmail.com> |
155 | Joe Gordon <jogo@cloudscaling.com> |
156 | Joel Coffman <joel.coffman@jhuapl.edu> |
157 | Joel Friedly <joelfriedly@gmail.com> |
158 | -Johannes Kulik <johannes.kulik@sap.com> |
159 | John Cates <jccates@us.ibm.com> |
160 | John Garbutt <john.garbutt@citrix.com> |
161 | John Griffith <john.griffith8@gmail.com> |
162 | @@ -805,8 +804,6 @@ Sreedhar Varma <sreedhar.varma.ctr@kaminario.com> |
163 | Stack <vijay.ladani@hpe.com> |
164 | Stefan Amann <stefan.amann@de.ibm.com> |
165 | Stefan Nica <snica@suse.com> |
166 | -Stephan Pampel <stephan.pampel@canonical.com> |
167 | -Stephen Finucane <stephenfin@redhat.com> |
168 | Stephen Mulcahy <stephen.mulcahy@hp.com> |
169 | Steve Kowalik <steven@wedontsleep.org> |
170 | Steve Noyes <steve.noyes@oracle.com> |
171 | @@ -853,7 +850,6 @@ Tin Lam <tl3438@att.com> |
172 | Tina <tina.tang@emc.com> |
173 | Tina Tang <tina.tang@emc.com> |
174 | Tingting Zha <zhatt.fnst@cn.fujitsu.com> |
175 | -Tobias Urdin <tobias.urdin@binero.se> |
176 | Tobias Urdin <tobias@busybox.se> |
177 | Tom Barron <tbarron@dyncloud.net> |
178 | Tom Barron <tbarron@netapp.com> |
179 | @@ -946,7 +942,6 @@ Yaguang Tang <yaguang.tang@canonical.com> |
180 | Yaguang Tang <ytang@mirantis.com> |
181 | Yaguo Zhou <zhouyaguo@gmail.com> |
182 | YanLin Ren <renylin@cn.ibm.com> |
183 | -Yandong Xuan <xuanyandong@inspur.com> |
184 | Yang Youseok <ileixe@gmail.com> |
185 | Yang Yu <yuyangbj@cn.ibm.com> |
186 | YangLei <yanglyy@cn.ibm.com> |
187 | @@ -1002,7 +997,6 @@ aimee.ukasick <au7569@att.com> |
188 | albertjone <guanalbertjone@gmail.com> |
189 | alexey-mr <alexey.morlang@gmail.com> |
190 | alonma <alonma@il.ibm.com> |
191 | -amar7ibm <amar.rajeev.singuluri@ibm.com> |
192 | amoturi <abhiram.moturi@oracle.com> |
193 | anastasia-karpinska <akarpinska@griddynamics.com> |
194 | anastasiya-zhyrkevich <anastasiya.zhyrkevich@gmail.com> |
195 | @@ -1037,7 +1031,6 @@ chihyuwu <chihyuwu@synology.com> |
196 | clayg <clay.gerrard@gmail.com> |
197 | czl389 <czl389@163.com> |
198 | daisy-ycguo <daisy.ycguo@gmail.com> |
199 | -dengzhaosen <dengzhaosen@inspur.com> |
200 | dhinesh <dhinesh@hedviginc.com> |
201 | diem_tran <diem.tran@oracle.com> |
202 | digvijay2016 <digvijay.ukirde@in.ibm.com> |
203 | @@ -1123,7 +1116,6 @@ lijing <lijing@gohighsec.com> |
204 | lijunbo <lijunbo@fiberhome.com> |
205 | lijunjie <lijunjie@cloudin.cn> |
206 | lijunli1 <lijunli@chinac.com> |
207 | -likui <likui@yovole.com> |
208 | limin0801 <limin.lc@inspur.com> |
209 | ling-yun <zengyunling@huawei.com> |
210 | lirenke <lvhancy@163.com> |
211 | @@ -1196,7 +1188,6 @@ ramakris <rama.kri.b@hp.com> |
212 | rick.chen <rick.chen@prophetstor.com> |
213 | ricolin <rico.lin.guanyu@gmail.com> |
214 | root <daniel.tadrzak@intel.com> |
215 | -root <gopalakrishna.krishna@ibm.com> |
216 | root <ranasheel2000@gmail.com> |
217 | root <root@lhx-ceph-1.novalocal> |
218 | root <root@localhost.localdomain> |
219 | @@ -1222,7 +1213,6 @@ smartu3 <zzj123389602@gmail.com> |
220 | sparkliu <spark.liu@cn.ibm.com> |
221 | srushti <srushti.gadadare@nttdata.com> |
222 | stack <kushal.wathore@hpe.com> |
223 | -stack <raghavendra.tilay@hpe.com> |
224 | stack <sumit.shatwara@hpe.com> |
225 | stack <vijay.ladani@hpe.com> |
226 | stack <yixuan_z@hotmail.com> |
227 | diff --git a/ChangeLog b/ChangeLog |
228 | index ec0cce7..69c16b3 100644 |
229 | --- a/ChangeLog |
230 | +++ b/ChangeLog |
231 | @@ -1,244 +1,68 @@ |
232 | CHANGES |
233 | ======= |
234 | |
235 | -19.1.0 |
236 | +18.2.0 |
237 | ------ |
238 | |
239 | -* Doc: Typos in Spectrum Virtulize family user guide |
240 | -* Doc: IBM flashsystem driver update |
241 | * [stable-only] Specify openstacksdk stable branch |
242 | +* Volume transfers: Remove duplicate policy check |
243 | * Fix: Race between attachment and volume deletion |
244 | * Expose volume\_attachments in Volume OVO |
245 | * Delete attachment on remove\_export failure |
246 | * Fix detach notification |
247 | -* Volume transfers: Remove duplicate policy check |
248 | * Reject bad img formats for uploaded encrypted vols |
249 | * NetApp ONTAP: Fix sub-clone zapi call |
250 | -* [stable-xena-only] update xena personas doc |
251 | -* Dell PowerVault: Fix "cinder manageable-list" |
252 | -* Seagate driver: fix get\_volume\_size() |
253 | +* Driver assisted migration on retype when it's safe |
254 | +* [Pure Storage] Add missing DB values when performing create CG from CG snap |
255 | * Fixed copy-on-write mode in GPFS NFS driver |
256 | -* [Pure Storage] Add check for NVMe-FC capable array |
257 | +* RBD: Call trash operation when plain deletion fails |
258 | * RBD: Open RBD images read-only where possible |
259 | -* PowerMax Driver - Fix for legacy PowerMax OS around generations |
260 | -* [Pure Storage] Add missing DB values when performing create CG from CG snap |
261 | -* Fix typo in message policy deprecations |
262 | -* PowerMax Docs - Xena release notes |
263 | +* Log connection info returned from driver |
264 | +* Native multibackend-matrix Zuul v3 job |
265 | +* PowerMax Driver - Allow for case mismatch in SGs |
266 | +* Change 'host' option from HostAddressOpt to StrOpt |
267 | |
268 | -19.0.0 |
269 | +18.1.0 |
270 | ------ |
271 | |
272 | -* Use os-brick 5.0.1 |
273 | -* Add "known issues" to xena release note |
274 | -* PowerMax Driver - Fix for GVG snapshot delete |
275 | -* PowerMax Driver - Port load balancing fix |
276 | -* Dell PowerVault driver: Fix documentation typos |
277 | -* Add warning about qcow2 version 2 format images |
278 | -* Fix cinder-manage db version |
279 | -* fixtures: Don't persist state in the Database fixture |
280 | -* Fix typo in release note file |
281 | -* Raise min of oslo.db to 11.0.0 |
282 | -* RBD: Call trash operation when plain deletion fails |
283 | -* Specify xena os-brick series in requirements |
284 | -* Add deprecation notices to deprecated policy rules |
285 | -* Update SQLAlchemy related requirements |
286 | -* Raise min of oslo.policy to 3.8.1 |
287 | -* Raise minimum oslo.log to 4.5.0 |
288 | -* Update TOX\_CONSTRAINTS\_FILE for stable/xena |
289 | -* Update .gitreview for stable/xena |
290 | - |
291 | -19.0.0.0rc1 |
292 | ------------ |
293 | - |
294 | -* Correct "Add release note about xena policy changes" |
295 | -* Correct "Clean up policy matrix for Xena release" |
296 | -* mypy: Fix unused type: ignore in manager.py |
297 | -* Add release note about xena policy changes |
298 | -* Clean up policy matrix for Xena release |
299 | -* Add release note prelude for the Xena release |
300 | -* Update policies related to user visible extra specs |
301 | -* Implement project personas for snapshot metadata |
302 | -* Implement Xena project personas for group snapshots |
303 | -* Implement project personas for backups API |
304 | -* Implement project personas for volume actions |
305 | -* Better workaround for policy file in PDF docs |
306 | -* Remove sample policy config from docs generation |
307 | -* [SVF] Fix extend issue for mirroring volumes |
308 | -* Implement Xena project personas for group\_actions |
309 | -* Add request method to test requests |
310 | -* [SVF]:Storwize HyperSwap snapshot clone is failing |
311 | -* Implement Xena personas for volume groups |
312 | -* Implement Xena project personas for volume types |
313 | -* Xena project personas for volume type access API |
314 | -* Implement project personas for snapshots |
315 | -* Implement secure RBAC for snapshot actions |
316 | -* Implement project personas for volume metadata API |
317 | -* Implement project personas for the limits API |
318 | -* Fix: Online migration for volume\_use\_quota\_online\_data\_migration |
319 | -* Implement project personas group\_types |
320 | -* Update project personas for default\_types |
321 | -* Implement project personas for volume API |
322 | -* Implement project personas for quotas and quota\_classes |
323 | -* Implement project personas for volume transfers |
324 | -* Native multibackend-matrix Zuul v3 job |
325 | -* [SVF]:HyperSwap volume service status update |
326 | -* Hitachi: Add generic volume groups |
327 | -* Nimble: Add Alletra 6k related information |
328 | -* [SVF] Update rccg details for mirror volumes |
329 | -* JovianDSS: add multiattach and 16K block support |
330 | -* JovianDSS: fix code style and naming |
331 | -* NetApp ONTAP: Add option to report storage provisioned capacity |
332 | -* Netapp ONTAP: Add support to revert to snapshot |
333 | -* Clean up user visible extra specs release note |
334 | -* Implement user visible extra specs |
335 | -* JovianDSS: fix iscsi target recovery function |
336 | -* HPE 3PAR: Add HPE Alletra 9k related information |
337 | -* Remove extraneous space from error message |
338 | -* Docs: Discourage using naked rechecks |
339 | -* NetApp ONTAP: Add storage assisted migration support |
340 | -* Implement project personas for attachments |
341 | -* Implement project personas for messages |
342 | -* Add infrastructure for testing new RBAC policies |
343 | -* Snapshot in-use volumes without force flag |
344 | -* Update mv version history document for 3.65 |
345 | -* [SVF] Manage GMCV volumes on separate pools |
346 | -* Update base policy file |
347 | -* Correct the rest api url of import\_record of backup |
348 | -* db: Remove 'db' argument from various managers |
349 | -* db: Remove 'db\_driver' option |
350 | -* db: Integrate alembic |
351 | -* db: Add all migrations to initial alembic migration |
352 | -* db: Add initial alembic migration |
353 | -* db: Add alembic boilerplate |
354 | -* db: Vendor 'oslo\_db.sqlalchemy.migration' |
355 | -* db: Move sqlalchemy-migrate migrations |
356 | -* Add user messages for backup operations |
357 | -* Test glance with cinder backend optimization |
358 | -* Expose volume & snapshot use\_quota field |
359 | -* Improve quota usage for temporary resources |
360 | -* Clear OVO history and compatibility |
361 | -* Fix notifications of migration temp volume |
362 | -* Change 'host' option from HostAddressOpt to StrOpt |
363 | -* Update snapshot api microversion docs and tests |
364 | -* [SVF]:Fix multiple lshost calls during attach |
365 | +* Fix: Schema validation for attachment create API |
366 | * Support Images API v2.11 |
367 | -* Log connection info returned from driver |
368 | -* [SVF]:Fix add volumes to GMCV group |
369 | -* [SVF]:Retype in-use hyperswap volume |
370 | -* [SVF] Fixed update\_rep\_properties for empty values |
371 | +* Allow removing NFS snapshots in error status |
372 | * LVM: Retry lvextend commands on code 139 |
373 | -* [SVF]:Fix create volume on drp |
374 | -* Add releasenote for schema validation fix |
375 | -* Doc: IBM Storages user documentation update |
376 | -* [SVF] Fix issue to get volume relationship details |
377 | -* mypy: continued manager, scheduler, rpcapi |
378 | -* conditional\_update(): disable false pylint error message |
379 | -* mypy: image cache |
380 | -* mypy: create\_volume flows |
381 | -* Fix cinder-manage clean\_locks command |
382 | * PowerMax Driver - Fix for create snapshot |
383 | -* [SVF]: Fix Enable Replication for Storwize\_V5000E |
384 | -* Doc: Remove backup\_id from backup import url and parameter |
385 | -* Add cinder permissions matrix |
386 | -* Remove 'enable\_v3\_api' option |
387 | -* Add cinder-manage command to remove file locks |
388 | -* Remove file locks once we delete a resource |
389 | * [Pure Storage] Resolve missing provider\_id issue (PowerVC) |
390 | * RBD: use correct stripe unit in clone operation |
391 | * [rbd] Fix create encrypted volume from snapshot |
392 | -* Allow removing NFS snapshots in error status |
393 | -* Replace deprecated tenacity.Retrying.call |
394 | -* Add openstacksdk-functional-devstack job in cinder gate |
395 | - |
396 | -19.0.0.0b1 |
397 | ----------- |
398 | - |
399 | -* Doc: api-ref doc update |
400 | * [Pure Storage] Fix CG cloning crash when very long volume names |
401 | -* Run cinder-mypy job in the check |
402 | -* Add installation of mypy stubs packages |
403 | -* db: Reorder initial migration |
404 | -* db: Use 'import sqlalchemy as sa' pattern |
405 | -* Tests: Fix InvalidUUID warnings |
406 | -* Drop lower-constraints jobs |
407 | * NFS: Update connection info on online snap create |
408 | -* mypy: image\_utils |
409 | -* LVM: Simplify version fetching |
410 | -* Tests: Simplify LVM fake\_execute |
411 | +* Add libcgroup related packages in bindep.txt |
412 | +* Abort volume creation when encryption spec is invalid |
413 | +* NetApp ONTAP: Fix QoS lost after moving volume |
414 | * [Pure Storage] Fix minimum SDK version required |
415 | -* Add backup\_swift\_create\_storage\_policy config opt |
416 | * LVM: Retry lvdisplay and lvcreate calls on segfault |
417 | -* Use mv.LIMITS\_ADMIN\_FILTER in the code |
418 | -* Retry "lvs" call on segfault for \_get\_thin\_pool\_free\_space |
419 | -* streamline \_report\_driver\_status method |
420 | -* Fix: Schema validation for attachment create API |
421 | * LVM: Use --readonly for lvdisplay in lv\_has\_snapshot |
422 | -* Fix typo in Dell EMC Unity driver documentation |
423 | -* Update decode\_cipher doc text about encryption ciphers |
424 | -* Add libcgroup related packages in bindep.txt |
425 | -* PowerMax Driver - Allow for case mismatch in SGs |
426 | -* Move require\_driver\_initialized / log\_unsupp to volume\_utils |
427 | -* NetApp ONTAP: Fix QoS lost after moving volume |
428 | -* Update Block Storage API v2 api-ref |
429 | -* Remove Block Storage API v2 |
430 | -* [SVF] Support volume-resize to hyperswap volume |
431 | -* [SVF] Fixed add volumes to clone group issue |
432 | -* [Pure Storage] Ensure multiattach volumes are not disconnected early |
433 | -* [SVF]: Fix extend issue for a clone of rep-volume |
434 | -* [SVF]:Bulk create Hyperswap volume is failing |
435 | -* Update volume api microversion doc and tests |
436 | -* PowerMax Docs - Corrections to QoS section |
437 | -* Update IRC info |
438 | -* Fix functional jobs |
439 | -* Doc: Remove incorrect note about encryption flag |
440 | -* Tests: Don't assert notifier not called |
441 | +* Fix instance locality scheduler filter |
442 | * PowerMax Driver - Fix for create group from source |
443 | -* Replace getargspec with getfullargspec |
444 | -* SQLA 1.4: Fix calculate\_resource\_count |
445 | -* SQLA 1.4: Fix conditional update Case |
446 | -* api-ref: Use key\_size 256 in API examples |
447 | -* Abort volume creation when encryption spec is invalid |
448 | -* remove the oslo\_utils.fnmatch |
449 | -* Tests: Fix oslo.i18n warning |
450 | -* zuul: fixes for the A/A job (nodeset, variables) |
451 | -* Fix PowerFlex volume type conversion |
452 | -* volume api: Remove unused get\_snapshot\_metadata\_value method |
453 | -* mypy: annotate volume\_utils / utils / exc |
454 | -* zuul: add mypy experimental job |
455 | -* Drop support for SQLite < 3.7 |
456 | -* image\_utils: Remove unused \_validate\_file\_format method |
457 | -* filter\_scheduler: Remove schedule() method |
458 | -* Remove references to 'sys.version\_info' |
459 | -* vmware: Use oslo.vmware's get\_moref\_value() |
460 | -* vmware tests: Support different moref backend representations |
461 | +* PowerMax Driver - Fix for deleting replication group |
462 | +* PowerMax Driver - Temporary snapshot enhancements |
463 | +* [Pure Storage] Ensure multiattach volumes are not disconnected early |
464 | +* Retry "lvs" call on segfault for \_get\_thin\_pool\_free\_space |
465 | +* Fix typo in Dell EMC Unity driver documentation |
466 | +* Add warning message about slow volume backend |
467 | * PowerMax Docs - Wallaby documentation |
468 | -* db: Compact migrations to Train |
469 | -* db: Remove 'cinder.database.migration\_backend' entrypoint |
470 | -* setup.cfg: Replace dashes with underscores |
471 | -* Tests: Add coverage for coordinator start/stop |
472 | -* Remove unused \_get\_non\_shared\_target\_hosts from cmd/manage |
473 | -* Unit test RBD clone depth calculation |
474 | -* api-ref: Fix "name" parameter |
475 | -* Update release note info |
476 | -* Add Python3 xena unit tests |
477 | -* Driver assisted migration on retype when it's safe |
478 | -* pylint: Fix migration E1120 no-value-for-parameter |
479 | -* pylint: Fix E0213 no-self-argument in tests |
480 | -* pylint: Fix E1120 no-value-for-parameter for mocks |
481 | +* Fix PowerFlex volume type conversion |
482 | +* zuul: fixes for the A/A job (nodeset, variables) |
483 | * Fix sporadic cleanup unit test failure |
484 | -* Fix instance locality scheduler filter |
485 | -* Pure Storage - bump version numbers for Xena |
486 | -* Remove uuid check/generate in service |
487 | * Open local image files with "rb" mode |
488 | -* Bug fix for free space calculation |
489 | -* Reserve migrations for DB backports |
490 | -* PowerMax Driver - Fix for deleting replication group |
491 | -* Update to pylint 2.7.4 |
492 | +* Drop lower-constraints job |
493 | + |
494 | +18.0.0 |
495 | +------ |
496 | + |
497 | +* Add known issue note about encrypted volumes |
498 | +* Add releasenote for glance mTLS fix |
499 | +* Add release note about cgroups v1 |
500 | * Fix: show volume by name for non-admins |
501 | -* Modify/Move project validation methods to api\_utils |
502 | -* api-ref: add additional info for mv 3.64 |
503 | -* Remove unused \_db\_error code from cmd/manage.py |
504 | -* Set Wallaby maximum mv in REST API version history |
505 | * Quota: Fix multiple race conditions |
506 | * Prevent quota and reservations to go into negative |
507 | * Update cinder manage quota commands |
508 | @@ -246,34 +70,27 @@ CHANGES |
509 | * Remove nested quota leftovers |
510 | * Quota: Fix until\_refresh config changes |
511 | * Remove unused quota python classes |
512 | -* Add quota utils to cinder-manage |
513 | -* Update help text for backup compression option |
514 | -* Use os-brick 4.3.1 |
515 | * LVM: Fix delete volume error due to lvs failure |
516 | +* Add quota utils to cinder-manage |
517 | * Change snapshots type with volume retype |
518 | +* Cinder - Creating clone of encrypted volume fails |
519 | +* Use os-brick 4.3.1 |
520 | +* Add prelude for Wallaby release notes |
521 | * Fix automatic quota sync for temporary volumes |
522 | -* Remove unnecessary DB read |
523 | -* Remove unused code path in attachment\_delete |
524 | -* Update master for stable/wallaby |
525 | +* Fix PowerStore iSCSI targets filtering |
526 | +* Update TOX\_CONSTRAINTS\_FILE for stable/wallaby |
527 | +* Update .gitreview for stable/wallaby |
528 | |
529 | 18.0.0.0rc1 |
530 | ----------- |
531 | |
532 | * Use os-brick 4.3.0 |
533 | -* Cinder - Creating clone of encrypted volume fails |
534 | -* PowerMax Driver - Temporary snapshot enhancements |
535 | -* api-ref: Fix "id" parameter |
536 | * NetApp ONTAP: Fix FlexGroup replication |
537 | * Imported Translations from Zanata |
538 | -* Make availability zone type exception easier to understand |
539 | -* Update contributor doc with additional meetings |
540 | * Support mTLS when calling the glance API |
541 | * Follow up NetApp ONTAP FlexGroup feature |
542 | -* Backup manager: Synchronously call remove\_export\_snapshot |
543 | * Backup manager: Synchronously call remove\_export |
544 | -* Fix PowerStore iSCSI targets filtering |
545 | * Bug fix for revert to snapshot feature |
546 | -* Remove six from quota.py |
547 | * JovianDSS: add certs and snapshot restore |
548 | * Update code layout and missing Zadara features |
549 | * doc: Remove cryptsetup reference for compute setup |
550 | @@ -298,8 +115,6 @@ CHANGES |
551 | * PowerMax Driver - Release notes for 761643 and 767172 |
552 | * Add Consistency Groups support in PowerStore driver |
553 | * Add OpenStack volume replication v2.1 support in PowerStore driver |
554 | -* Remove six from cinder.tests.unit.objects |
555 | -* Fix invalid yaml in reno template |
556 | * API validation: Add cinder\_host type to support ipv6 in manage |
557 | * [SVF] Set volume IOPS based on volume size |
558 | * Add QoS Suport for Pure Storage |
559 | @@ -318,8 +133,6 @@ CHANGES |
560 | * [Storwize] Provide IOPS based storage offering |
561 | * doc: add specs repo maintenance tasks |
562 | * PowerMax Driver - Extend replicated volume |
563 | -* Add warning message about slow volume backend |
564 | -* [doc] remove outdated package python-keystone |
565 | * Hitachi: Trace REST API input/output logs |
566 | * PowerMax Driver - Fix pylint errors in test\_common and provision |
567 | * PowerMax Driver - U4P Failover SerialNumber KeyError fix |
568 | @@ -327,7 +140,6 @@ CHANGES |
569 | * Fix in api-ref |
570 | * [Pure] Fix failing consistency group tempest tests |
571 | * Resolve SAWarning SQLAlchemy warning |
572 | -* [PURE] support IPv6 / add parameter pure\_iscsi\_cidr\_list |
573 | * Fix CI\_WIKI\_NAME entries |
574 | * Use TOX\_CONSTRAINTS\_FILE |
575 | * Drop policy check failures to DEBUG |
576 | @@ -350,7 +162,6 @@ CHANGES |
577 | * HPE: Add Peer Persistence support for Primera backend |
578 | * Use os-brick 4.2.0 |
579 | * Move trace methods from utils to volume\_utils |
580 | -* Tests: test\_backup - specify volume\_type\_id for snapshots |
581 | * Imported Translations from Zanata |
582 | * Bump pylint to 2.6.0 |
583 | * LVM: fix \_create\_vg |
584 | @@ -362,7 +173,6 @@ CHANGES |
585 | * doc: add rbd-iscsi-client info |
586 | * Fix RBD\_OPERATION\_FEATURE\_CLONE\_PARENT in unittest |
587 | * Require oslo.serialization 4.1.0 |
588 | -* image\_utils: Simplify fetch\_verify\_image |
589 | * Update ceph driver docs, mentioning Hyper-V support |
590 | * PowerMax Driver - Check for missing port group |
591 | * Add encryption\_key\_id to volume and backup details |
592 | @@ -376,7 +186,6 @@ CHANGES |
593 | * Tests: Add another mock psutil in quobyte tests |
594 | * Add ceph iscsi volume driver |
595 | * Add Cinder driver for TOYOU ACS5000 |
596 | -* Tests: Solidfire - Use UUIDs in object UUID fields |
597 | * Remove NestedQuotaDriver |
598 | * Label temporary files created by image\_utils |
599 | * Update SolidFire Storage assisted migration in support-matrix |
600 | @@ -384,7 +193,6 @@ CHANGES |
601 | * Add driver for Dell EMC PowerVault ME Series |
602 | * Imported Translations from Zanata |
603 | * Introduces MV to add volume type ID in volumes details |
604 | -* HPMSA: Report SAN driver options |
605 | * LVM: Support only LVM 2.02.107+ |
606 | * LVM: Use --readonly for lvs |
607 | * NetApp SolidFire: Refactor DuplicateSfVolumeNames exception |
608 | @@ -392,7 +200,6 @@ CHANGES |
609 | * Remove \_\_unicode\_\_() from CinderException |
610 | * doc: update release cycle tasks |
611 | * tox mypy: Call mypywrap.sh directly |
612 | -* Tests: Improve cascade delete coverage |
613 | * pylint: run coding-checks.sh with bash |
614 | * Hitachi: Wait until the volume can be deleted |
615 | * Basic volume QoS doc |
616 | @@ -807,7 +614,6 @@ CHANGES |
617 | * Fix a spelling mistake |
618 | * Do not rename rbd based volume after migration |
619 | * PowerMax Driver - Allowing for default volume type in group |
620 | -* Excess availability\_zone judgment code |
621 | * Vmware: Revert the volume stats revert |
622 | * Update weekly meeting location |
623 | * Imported Translations from Zanata |
624 | diff --git a/PKG-INFO b/PKG-INFO |
625 | index c4068a6..5aabd63 100644 |
626 | --- a/PKG-INFO |
627 | +++ b/PKG-INFO |
628 | @@ -1,6 +1,6 @@ |
629 | Metadata-Version: 2.1 |
630 | Name: cinder |
631 | -Version: 19.1.0 |
632 | +Version: 18.2.0 |
633 | Summary: OpenStack Block Storage |
634 | Home-page: https://docs.openstack.org/cinder/latest/ |
635 | Author: OpenStack |
636 | diff --git a/api-ref/source/v2/ext-backups.inc b/api-ref/source/v2/ext-backups.inc |
637 | index f6e5d50..98fd41e 100644 |
638 | --- a/api-ref/source/v2/ext-backups.inc |
639 | +++ b/api-ref/source/v2/ext-backups.inc |
640 | @@ -374,7 +374,7 @@ Response Example |
641 | Import backup |
642 | ~~~~~~~~~~~~~ |
643 | |
644 | -.. rest_method:: POST /v2/{project_id}/backups/import_record |
645 | +.. rest_method:: POST /v2/{project_id}/backups/{backup_id}/import_record |
646 | |
647 | Import information about a backup. |
648 | |
649 | @@ -396,6 +396,7 @@ Request |
650 | .. rest_parameters:: parameters.yaml |
651 | |
652 | - project_id: project_id_path |
653 | + - backup_id: backup_id |
654 | - backup-record: backup_record |
655 | - backup_service: backup_service |
656 | - backup_url: backup_url |
657 | diff --git a/api-ref/source/v2/index.rst b/api-ref/source/v2/index.rst |
658 | index ff8ab1d..7070c06 100644 |
659 | --- a/api-ref/source/v2/index.rst |
660 | +++ b/api-ref/source/v2/index.rst |
661 | @@ -1,23 +1,8 @@ |
662 | :tocdepth: 2 |
663 | |
664 | -============================== |
665 | -Block Storage API V2 (REMOVED) |
666 | -============================== |
667 | - |
668 | -.. note:: |
669 | - Version 2 of the Block Storage API was `deprecated in the Pike release |
670 | - <https://docs.openstack.org/releasenotes/cinder/pike.html#deprecation-notes>`_ |
671 | - and was removed during the Xena development cycle. `This document is |
672 | - maintained for historical purposes only.` |
673 | - |
674 | - `Version 3 |
675 | - <https://docs.openstack.org/api-ref/block-storage/v3/>`_ |
676 | - of the Block Storage API was `introduced in the Mitaka release |
677 | - <https://review.opendev.org/c/openstack/cinder/+/224910>`_. Version |
678 | - 3.0, which is the default microversion at the ``/v3`` endpoint, was |
679 | - designed to be identical to version 2. Thus, scripts using the Block |
680 | - Storage API v2 should be adaptable to version 3 with minimal changes. |
681 | - |
682 | +================================= |
683 | +Block Storage API V2 (DEPRECATED) |
684 | +================================= |
685 | |
686 | .. rest_expand_all:: |
687 | |
688 | diff --git a/api-ref/source/v2/samples/encryption-type-create-request.json b/api-ref/source/v2/samples/encryption-type-create-request.json |
689 | index 581a028..6b9f97e 100644 |
690 | --- a/api-ref/source/v2/samples/encryption-type-create-request.json |
691 | +++ b/api-ref/source/v2/samples/encryption-type-create-request.json |
692 | @@ -1,6 +1,6 @@ |
693 | { |
694 | "encryption":{ |
695 | - "key_size": 256, |
696 | + "key_size": 128, |
697 | "provider": "luks", |
698 | "control_location":"front-end", |
699 | "cipher": "aes-xts-plain64" |
700 | diff --git a/api-ref/source/v2/samples/encryption-type-create-response.json b/api-ref/source/v2/samples/encryption-type-create-response.json |
701 | index de0964b..ad7f5c8 100644 |
702 | --- a/api-ref/source/v2/samples/encryption-type-create-response.json |
703 | +++ b/api-ref/source/v2/samples/encryption-type-create-response.json |
704 | @@ -3,7 +3,7 @@ |
705 | "volume_type_id": "2d29462d-76cb-417c-8a9f-fb23140f1577", |
706 | "control_location": "front-end", |
707 | "encryption_id": "81e069c6-7394-4856-8df7-3b237ca61f74", |
708 | - "key_size": 256, |
709 | + "key_size": 128, |
710 | "provider": "luks", |
711 | "cipher": "aes-xts-plain64" |
712 | } |
713 | diff --git a/api-ref/source/v2/samples/encryption-type-show-response.json b/api-ref/source/v2/samples/encryption-type-show-response.json |
714 | index 3747f69..9a168bf 100644 |
715 | --- a/api-ref/source/v2/samples/encryption-type-show-response.json |
716 | +++ b/api-ref/source/v2/samples/encryption-type-show-response.json |
717 | @@ -5,7 +5,7 @@ |
718 | "created_at": "2016-12-28T02:32:25.000000", |
719 | "updated_at": null, |
720 | "encryption_id": "81e069c6-7394-4856-8df7-3b237ca61f74", |
721 | - "key_size": 256, |
722 | + "key_size": 128, |
723 | "provider": "luks", |
724 | "deleted_at": null, |
725 | "cipher": "aes-xts-plain64" |
726 | diff --git a/api-ref/source/v3/ext-backups.inc b/api-ref/source/v3/ext-backups.inc |
727 | index 7e67935..d120568 100644 |
728 | --- a/api-ref/source/v3/ext-backups.inc |
729 | +++ b/api-ref/source/v3/ext-backups.inc |
730 | @@ -475,7 +475,7 @@ Response Example |
731 | Import a backup |
732 | ~~~~~~~~~~~~~~~ |
733 | |
734 | -.. rest_method:: POST /v3/{project_id}/backups/import_record |
735 | +.. rest_method:: POST /v3/{project_id}/backups/{backup_id}/import_record |
736 | |
737 | Import information about a backup. |
738 | |
739 | @@ -499,6 +499,7 @@ Request |
740 | .. rest_parameters:: parameters.yaml |
741 | |
742 | - project_id: project_id_path |
743 | + - backup_id: backup_id_required |
744 | - backup-record: backup_record |
745 | - backup_service: backup_service |
746 | - backup_url: backup_url |
747 | diff --git a/api-ref/source/v3/os-vol-transfer-v3.inc b/api-ref/source/v3/os-vol-transfer-v3.inc |
748 | index 47a68f4..e9e0bed 100644 |
749 | --- a/api-ref/source/v3/os-vol-transfer-v3.inc |
750 | +++ b/api-ref/source/v3/os-vol-transfer-v3.inc |
751 | @@ -43,7 +43,7 @@ Response Parameters |
752 | |
753 | - transfer: transfer |
754 | - volume_id: volume_id |
755 | - - id: transfer_obj_id |
756 | + - id: id |
757 | - links: links |
758 | - name: name |
759 | |
760 | @@ -101,7 +101,7 @@ Response Parameters |
761 | - links: links |
762 | - created_at: created_at |
763 | - volume_id: volume_id |
764 | - - id: transfer_obj_id |
765 | + - id: id |
766 | - name: name |
767 | |
768 | Response Example |
769 | @@ -141,7 +141,7 @@ Response Parameters |
770 | .. rest_parameters:: parameters.yaml |
771 | |
772 | - volume_id: volume_id |
773 | - - id: transfer_obj_id |
774 | + - id: id |
775 | - links: links |
776 | - name: name |
777 | |
778 | @@ -184,7 +184,7 @@ Response Parameters |
779 | |
780 | - created_at: created_at |
781 | - volume_id: volume_id |
782 | - - id: transfer_obj_id |
783 | + - id: id |
784 | - links: links |
785 | - name: name |
786 | |
787 | @@ -250,7 +250,7 @@ Response Parameters |
788 | - transfers: transfers |
789 | - created_at: created_at |
790 | - volume_id: volume_id |
791 | - - id: transfer_obj_id |
792 | + - id: id |
793 | - links: links |
794 | - name: name |
795 | |
796 | diff --git a/api-ref/source/v3/parameters.yaml b/api-ref/source/v3/parameters.yaml |
797 | index f887e4b..3066a37 100644 |
798 | --- a/api-ref/source/v3/parameters.yaml |
799 | +++ b/api-ref/source/v3/parameters.yaml |
800 | @@ -214,18 +214,6 @@ detail: |
801 | in: query |
802 | required: false |
803 | type: boolean |
804 | -filter_consumes_quota: |
805 | - description: | |
806 | - Filters results by ``consumes_quota`` field. Resources that don't use |
807 | - quotas are usually temporary internal resources created to perform an |
808 | - operation. Default is to not filter by it. Filtering by this option may |
809 | - not be always possible in a cloud, see |
810 | - :ref:`List Resource Filters <resource-filters>` to determine whether this |
811 | - filter is available in your cloud. |
812 | - in: query |
813 | - required: false |
814 | - type: boolean |
815 | - min_version: 3.65 |
816 | filter_created_at: |
817 | description: | |
818 | Filters reuslts by a time that resources are created at with time |
819 | @@ -853,15 +841,6 @@ consumer: |
820 | in: body |
821 | required: false |
822 | type: string |
823 | -consumes_quota: |
824 | - description: | |
825 | - Whether this resource consumes quota or not. Resources that not counted |
826 | - for quota usage are usually temporary internal resources created to perform |
827 | - an operation. |
828 | - in: body |
829 | - required: false |
830 | - type: boolean |
831 | - min_version: 3.65 |
832 | container: |
833 | description: | |
834 | The container name or null. |
835 | @@ -1167,11 +1146,10 @@ encryption_id_body: |
836 | type: string |
837 | encryption_key_id: |
838 | description: | |
839 | - The UUID of the encryption key. Only included for encrypted volumes. |
840 | + The UUID of the encryption key. |
841 | in: body |
842 | required: false |
843 | type: string |
844 | - min_version: 3.64 |
845 | event_id: |
846 | description: | |
847 | The id of the event to this message, this id could |
848 | @@ -1292,7 +1270,6 @@ group_id_optional: |
849 | in: body |
850 | required: false |
851 | type: string |
852 | - min_version: 3.13 |
853 | group_name: |
854 | description: | |
855 | The group name. |
856 | @@ -1301,11 +1278,10 @@ group_name: |
857 | type: string |
858 | group_replication_status: |
859 | description: | |
860 | - The group replication status. |
861 | + The group replication status. Introduced with API microversion 3.38. |
862 | in: body |
863 | required: false |
864 | type: string |
865 | - min_version: 3.38 |
866 | group_snapshot: |
867 | description: | |
868 | The group snapshot. |
869 | @@ -1318,13 +1294,6 @@ group_snapshot_id: |
870 | in: body |
871 | required: false |
872 | type: string |
873 | -group_snapshot_id_3_14: |
874 | - description: | |
875 | - The ID of the group snapshot. |
876 | - in: body |
877 | - required: true |
878 | - type: string |
879 | - min_version: 3.14 |
880 | group_snapshot_id_req: |
881 | description: | |
882 | The ID of the group snapshot. |
883 | @@ -1461,7 +1430,7 @@ hosts: |
884 | type: object |
885 | id: |
886 | description: | |
887 | - The UUID of the object. |
888 | + The UUID of the volume transfer. |
889 | in: body |
890 | required: true |
891 | type: string |
892 | @@ -1923,9 +1892,9 @@ multiattach_resp: |
893 | type: boolean |
894 | name: |
895 | description: | |
896 | - The name of the object. |
897 | + The name of the Volume Transfer. |
898 | in: body |
899 | - required: false |
900 | + required: true |
901 | type: string |
902 | name_backend_pool: |
903 | description: | |
904 | @@ -2345,15 +2314,6 @@ provider: # required response parameter (get/create) |
905 | in: body |
906 | required: true |
907 | type: string |
908 | -provider_id: |
909 | - description: | |
910 | - The provider ID for the volume. The value is either a string set by the |
911 | - driver or ``null`` if the driver doesn't use the field or if it hasn't |
912 | - created it yet. Only returned for administrators. |
913 | - in: body |
914 | - required: false |
915 | - type: string |
916 | - min_version: 3.21 |
917 | provider_optional: # optional response parameter (update) |
918 | description: | |
919 | The class that provides encryption support. |
920 | @@ -2697,12 +2657,6 @@ snapshot_id_source_vol: |
921 | in: body |
922 | required: false |
923 | type: string |
924 | -snapshot_name: |
925 | - description: | |
926 | - The name of the snapshot. |
927 | - in: body |
928 | - required: false |
929 | - type: string |
930 | snapshot_obj: |
931 | description: | |
932 | A ``snapshot`` object. |
933 | @@ -2948,18 +2902,6 @@ transfer: |
934 | in: body |
935 | required: true |
936 | type: object |
937 | -transfer_name: |
938 | - description: | |
939 | - The name of the volume transfer. |
940 | - in: body |
941 | - required: true |
942 | - type: string |
943 | -transfer_obj_id: |
944 | - description: | |
945 | - The UUID of the volume transfer. |
946 | - in: body |
947 | - required: true |
948 | - type: string |
949 | transfers: |
950 | description: | |
951 | List of transfer details. |
952 | diff --git a/api-ref/source/v3/resource-filters.inc b/api-ref/source/v3/resource-filters.inc |
953 | index 37f662c..b5064e9 100644 |
954 | --- a/api-ref/source/v3/resource-filters.inc |
955 | +++ b/api-ref/source/v3/resource-filters.inc |
956 | @@ -1,7 +1,5 @@ |
957 | .. -*- rst -*- |
958 | |
959 | -.. _resource-filters: |
960 | - |
961 | Resource Filters (resource_filters) |
962 | =================================== |
963 | |
964 | diff --git a/api-ref/source/v3/samples/snapshots/snapshot-create-response.json b/api-ref/source/v3/samples/snapshots/snapshot-create-response.json |
965 | index e19e407..8819dd9 100644 |
966 | --- a/api-ref/source/v3/samples/snapshots/snapshot-create-response.json |
967 | +++ b/api-ref/source/v3/samples/snapshots/snapshot-create-response.json |
968 | @@ -12,4 +12,4 @@ |
969 | "updated_at": null, |
970 | "volume_id": "d291b81c-6e40-4525-8231-90aa1588121e" |
971 | } |
972 | -} |
973 | +} |
974 | \ No newline at end of file |
975 | diff --git a/api-ref/source/v3/samples/snapshots/snapshot-show-response.json b/api-ref/source/v3/samples/snapshots/snapshot-show-response.json |
976 | index b4979f3..da7e68d 100644 |
977 | --- a/api-ref/source/v3/samples/snapshots/snapshot-show-response.json |
978 | +++ b/api-ref/source/v3/samples/snapshots/snapshot-show-response.json |
979 | @@ -14,4 +14,4 @@ |
980 | "updated_at": null, |
981 | "volume_id": "b72c48f1-64b7-4cd8-9745-b12e0be82d37" |
982 | } |
983 | -} |
984 | +} |
985 | \ No newline at end of file |
986 | diff --git a/api-ref/source/v3/samples/snapshots/snapshot-update-response.json b/api-ref/source/v3/samples/snapshots/snapshot-update-response.json |
987 | index d69a8ae..5d9c9bb 100644 |
988 | --- a/api-ref/source/v3/samples/snapshots/snapshot-update-response.json |
989 | +++ b/api-ref/source/v3/samples/snapshots/snapshot-update-response.json |
990 | @@ -12,4 +12,4 @@ |
991 | "updated_at": null, |
992 | "volume_id": "070c942d-9909-42e9-a467-7a781f150c58" |
993 | } |
994 | -} |
995 | +} |
996 | \ No newline at end of file |
997 | diff --git a/api-ref/source/v3/samples/snapshots/snapshots-list-detailed-response.json b/api-ref/source/v3/samples/snapshots/snapshots-list-detailed-response.json |
998 | index a73af20..9c452f3 100644 |
999 | --- a/api-ref/source/v3/samples/snapshots/snapshots-list-detailed-response.json |
1000 | +++ b/api-ref/source/v3/samples/snapshots/snapshots-list-detailed-response.json |
1001 | @@ -16,4 +16,4 @@ |
1002 | "volume_id": "7acd675e-4e06-4653-af9f-2ecd546342d6" |
1003 | } |
1004 | ] |
1005 | -} |
1006 | +} |
1007 | \ No newline at end of file |
1008 | diff --git a/api-ref/source/v3/samples/snapshots/v3.14/snapshot-create-response.json b/api-ref/source/v3/samples/snapshots/v3.14/snapshot-create-response.json |
1009 | deleted file mode 100644 |
1010 | index 84e3a98..0000000 |
1011 | --- a/api-ref/source/v3/samples/snapshots/v3.14/snapshot-create-response.json |
1012 | +++ /dev/null |
1013 | @@ -1,16 +0,0 @@ |
1014 | -{ |
1015 | - "snapshot": { |
1016 | - "created_at": "2019-03-11T16:24:34.469003", |
1017 | - "description": "Daily backup", |
1018 | - "id": "b36476e5-d18b-47f9-ac69-4818cb43ee21", |
1019 | - "metadata": { |
1020 | - "key": "v3" |
1021 | - }, |
1022 | - "name": "snap-001", |
1023 | - "size": 10, |
1024 | - "status": "creating", |
1025 | - "updated_at": null, |
1026 | - "volume_id": "d291b81c-6e40-4525-8231-90aa1588121e", |
1027 | - "group_snapshot_id": null |
1028 | - } |
1029 | -} |
1030 | diff --git a/api-ref/source/v3/samples/snapshots/v3.14/snapshot-show-response.json b/api-ref/source/v3/samples/snapshots/v3.14/snapshot-show-response.json |
1031 | deleted file mode 100644 |
1032 | index b7c09aa..0000000 |
1033 | --- a/api-ref/source/v3/samples/snapshots/v3.14/snapshot-show-response.json |
1034 | +++ /dev/null |
1035 | @@ -1,18 +0,0 @@ |
1036 | -{ |
1037 | - "snapshot": { |
1038 | - "created_at": "2019-03-12T04:42:00.809352", |
1039 | - "description": "Daily backup", |
1040 | - "id": "4a584cae-e4ce-429b-9154-d4c9eb8fda4c", |
1041 | - "metadata": { |
1042 | - "key": "v3" |
1043 | - }, |
1044 | - "name": "snap-001", |
1045 | - "os-extended-snapshot-attributes:progress": "0%", |
1046 | - "os-extended-snapshot-attributes:project_id": "89afd400-b646-4bbc-b12b-c0a4d63e5bd3", |
1047 | - "size": 10, |
1048 | - "status": "creating", |
1049 | - "updated_at": null, |
1050 | - "volume_id": "b72c48f1-64b7-4cd8-9745-b12e0be82d37", |
1051 | - "group_snapshot_id": null |
1052 | - } |
1053 | -} |
1054 | diff --git a/api-ref/source/v3/samples/snapshots/v3.14/snapshot-update-response.json b/api-ref/source/v3/samples/snapshots/v3.14/snapshot-update-response.json |
1055 | deleted file mode 100644 |
1056 | index fc31078..0000000 |
1057 | --- a/api-ref/source/v3/samples/snapshots/v3.14/snapshot-update-response.json |
1058 | +++ /dev/null |
1059 | @@ -1,16 +0,0 @@ |
1060 | -{ |
1061 | - "snapshot": { |
1062 | - "created_at": "2019-03-12T04:53:53.426591", |
1063 | - "description": "This is yet, another snapshot.", |
1064 | - "id": "43666194-8e72-451a-b7bb-54fef763b2b8", |
1065 | - "metadata": { |
1066 | - "key": "v3" |
1067 | - }, |
1068 | - "name": "snap-002", |
1069 | - "size": 10, |
1070 | - "status": "creating", |
1071 | - "updated_at": null, |
1072 | - "volume_id": "070c942d-9909-42e9-a467-7a781f150c58", |
1073 | - "group_snapshot_id": null |
1074 | - } |
1075 | -} |
1076 | diff --git a/api-ref/source/v3/samples/snapshots/v3.14/snapshots-list-detailed-response.json b/api-ref/source/v3/samples/snapshots/v3.14/snapshots-list-detailed-response.json |
1077 | deleted file mode 100644 |
1078 | index 2d1e4b9..0000000 |
1079 | --- a/api-ref/source/v3/samples/snapshots/v3.14/snapshots-list-detailed-response.json |
1080 | +++ /dev/null |
1081 | @@ -1,20 +0,0 @@ |
1082 | -{ |
1083 | - "snapshots": [ |
1084 | - { |
1085 | - "created_at": "2019-03-11T16:24:36.464445", |
1086 | - "description": "Daily backup", |
1087 | - "id": "d0083dc5-8795-4c1a-bc9c-74f70006c205", |
1088 | - "metadata": { |
1089 | - "key": "v3" |
1090 | - }, |
1091 | - "name": "snap-001", |
1092 | - "os-extended-snapshot-attributes:progress": "0%", |
1093 | - "os-extended-snapshot-attributes:project_id": "89afd400-b646-4bbc-b12b-c0a4d63e5bd3", |
1094 | - "size": 10, |
1095 | - "status": "creating", |
1096 | - "updated_at": null, |
1097 | - "volume_id": "7acd675e-4e06-4653-af9f-2ecd546342d6", |
1098 | - "group_snapshot_id": null |
1099 | - } |
1100 | - ] |
1101 | -} |
1102 | diff --git a/api-ref/source/v3/samples/snapshots/v3.41/snapshot-create-response.json b/api-ref/source/v3/samples/snapshots/v3.41/snapshot-create-response.json |
1103 | deleted file mode 100644 |
1104 | index 08e06f6..0000000 |
1105 | --- a/api-ref/source/v3/samples/snapshots/v3.41/snapshot-create-response.json |
1106 | +++ /dev/null |
1107 | @@ -1,17 +0,0 @@ |
1108 | -{ |
1109 | - "snapshot": { |
1110 | - "created_at": "2019-03-11T16:24:34.469003", |
1111 | - "description": "Daily backup", |
1112 | - "id": "b36476e5-d18b-47f9-ac69-4818cb43ee21", |
1113 | - "metadata": { |
1114 | - "key": "v3" |
1115 | - }, |
1116 | - "name": "snap-001", |
1117 | - "size": 10, |
1118 | - "status": "creating", |
1119 | - "updated_at": null, |
1120 | - "volume_id": "d291b81c-6e40-4525-8231-90aa1588121e", |
1121 | - "group_snapshot_id": null, |
1122 | - "user_id": "c853ca26-e8ea-4797-8a52-ee124a013d0e" |
1123 | - } |
1124 | -} |
1125 | diff --git a/api-ref/source/v3/samples/snapshots/v3.41/snapshot-show-response.json b/api-ref/source/v3/samples/snapshots/v3.41/snapshot-show-response.json |
1126 | deleted file mode 100644 |
1127 | index 71368b0..0000000 |
1128 | --- a/api-ref/source/v3/samples/snapshots/v3.41/snapshot-show-response.json |
1129 | +++ /dev/null |
1130 | @@ -1,19 +0,0 @@ |
1131 | -{ |
1132 | - "snapshot": { |
1133 | - "created_at": "2019-03-12T04:42:00.809352", |
1134 | - "description": "Daily backup", |
1135 | - "id": "4a584cae-e4ce-429b-9154-d4c9eb8fda4c", |
1136 | - "metadata": { |
1137 | - "key": "v3" |
1138 | - }, |
1139 | - "name": "snap-001", |
1140 | - "os-extended-snapshot-attributes:progress": "0%", |
1141 | - "os-extended-snapshot-attributes:project_id": "89afd400-b646-4bbc-b12b-c0a4d63e5bd3", |
1142 | - "size": 10, |
1143 | - "status": "creating", |
1144 | - "updated_at": null, |
1145 | - "volume_id": "b72c48f1-64b7-4cd8-9745-b12e0be82d37", |
1146 | - "group_snapshot_id": null, |
1147 | - "user_id": "c853ca26-e8ea-4797-8a52-ee124a013d0e" |
1148 | - } |
1149 | -} |
1150 | diff --git a/api-ref/source/v3/samples/snapshots/v3.41/snapshot-update-response.json b/api-ref/source/v3/samples/snapshots/v3.41/snapshot-update-response.json |
1151 | deleted file mode 100644 |
1152 | index 307e694..0000000 |
1153 | --- a/api-ref/source/v3/samples/snapshots/v3.41/snapshot-update-response.json |
1154 | +++ /dev/null |
1155 | @@ -1,17 +0,0 @@ |
1156 | -{ |
1157 | - "snapshot": { |
1158 | - "created_at": "2019-03-12T04:53:53.426591", |
1159 | - "description": "This is yet, another snapshot.", |
1160 | - "id": "43666194-8e72-451a-b7bb-54fef763b2b8", |
1161 | - "metadata": { |
1162 | - "key": "v3" |
1163 | - }, |
1164 | - "name": "snap-002", |
1165 | - "size": 10, |
1166 | - "status": "creating", |
1167 | - "updated_at": null, |
1168 | - "volume_id": "070c942d-9909-42e9-a467-7a781f150c58", |
1169 | - "group_snapshot_id": null, |
1170 | - "user_id": "c853ca26-e8ea-4797-8a52-ee124a013d0e" |
1171 | - } |
1172 | -} |
1173 | diff --git a/api-ref/source/v3/samples/snapshots/v3.41/snapshots-list-detailed-response.json b/api-ref/source/v3/samples/snapshots/v3.41/snapshots-list-detailed-response.json |
1174 | deleted file mode 100644 |
1175 | index 1f9b123..0000000 |
1176 | --- a/api-ref/source/v3/samples/snapshots/v3.41/snapshots-list-detailed-response.json |
1177 | +++ /dev/null |
1178 | @@ -1,21 +0,0 @@ |
1179 | -{ |
1180 | - "snapshots": [ |
1181 | - { |
1182 | - "created_at": "2019-03-11T16:24:36.464445", |
1183 | - "description": "Daily backup", |
1184 | - "id": "d0083dc5-8795-4c1a-bc9c-74f70006c205", |
1185 | - "metadata": { |
1186 | - "key": "v3" |
1187 | - }, |
1188 | - "name": "snap-001", |
1189 | - "os-extended-snapshot-attributes:progress": "0%", |
1190 | - "os-extended-snapshot-attributes:project_id": "89afd400-b646-4bbc-b12b-c0a4d63e5bd3", |
1191 | - "size": 10, |
1192 | - "status": "creating", |
1193 | - "updated_at": null, |
1194 | - "volume_id": "7acd675e-4e06-4653-af9f-2ecd546342d6", |
1195 | - "group_snapshot_id": null, |
1196 | - "user_id": "c853ca26-e8ea-4797-8a52-ee124a013d0e" |
1197 | - } |
1198 | - ] |
1199 | -} |
1200 | diff --git a/api-ref/source/v3/samples/snapshots/v3.65/snapshot-create-response.json b/api-ref/source/v3/samples/snapshots/v3.65/snapshot-create-response.json |
1201 | deleted file mode 100644 |
1202 | index b38d662..0000000 |
1203 | --- a/api-ref/source/v3/samples/snapshots/v3.65/snapshot-create-response.json |
1204 | +++ /dev/null |
1205 | @@ -1,18 +0,0 @@ |
1206 | -{ |
1207 | - "snapshot": { |
1208 | - "created_at": "2019-03-11T16:24:34.469003", |
1209 | - "description": "Daily backup", |
1210 | - "id": "b36476e5-d18b-47f9-ac69-4818cb43ee21", |
1211 | - "metadata": { |
1212 | - "key": "v3" |
1213 | - }, |
1214 | - "name": "snap-001", |
1215 | - "size": 10, |
1216 | - "status": "creating", |
1217 | - "updated_at": null, |
1218 | - "volume_id": "d291b81c-6e40-4525-8231-90aa1588121e", |
1219 | - "group_snapshot_id": null, |
1220 | - "user_id": "c853ca26-e8ea-4797-8a52-ee124a013d0e", |
1221 | - "consumes_quota": true |
1222 | - } |
1223 | -} |
1224 | diff --git a/api-ref/source/v3/samples/snapshots/v3.65/snapshot-show-response.json b/api-ref/source/v3/samples/snapshots/v3.65/snapshot-show-response.json |
1225 | deleted file mode 100644 |
1226 | index 69be72e..0000000 |
1227 | --- a/api-ref/source/v3/samples/snapshots/v3.65/snapshot-show-response.json |
1228 | +++ /dev/null |
1229 | @@ -1,20 +0,0 @@ |
1230 | -{ |
1231 | - "snapshot": { |
1232 | - "created_at": "2019-03-12T04:42:00.809352", |
1233 | - "description": "Daily backup", |
1234 | - "id": "4a584cae-e4ce-429b-9154-d4c9eb8fda4c", |
1235 | - "metadata": { |
1236 | - "key": "v3" |
1237 | - }, |
1238 | - "name": "snap-001", |
1239 | - "os-extended-snapshot-attributes:progress": "0%", |
1240 | - "os-extended-snapshot-attributes:project_id": "89afd400-b646-4bbc-b12b-c0a4d63e5bd3", |
1241 | - "size": 10, |
1242 | - "status": "creating", |
1243 | - "updated_at": null, |
1244 | - "volume_id": "b72c48f1-64b7-4cd8-9745-b12e0be82d37", |
1245 | - "group_snapshot_id": null, |
1246 | - "user_id": "c853ca26-e8ea-4797-8a52-ee124a013d0e", |
1247 | - "consumes_quota": true |
1248 | - } |
1249 | -} |
1250 | diff --git a/api-ref/source/v3/samples/snapshots/v3.65/snapshot-update-response.json b/api-ref/source/v3/samples/snapshots/v3.65/snapshot-update-response.json |
1251 | deleted file mode 100644 |
1252 | index c097889..0000000 |
1253 | --- a/api-ref/source/v3/samples/snapshots/v3.65/snapshot-update-response.json |
1254 | +++ /dev/null |
1255 | @@ -1,18 +0,0 @@ |
1256 | -{ |
1257 | - "snapshot": { |
1258 | - "created_at": "2019-03-12T04:53:53.426591", |
1259 | - "description": "This is yet, another snapshot.", |
1260 | - "id": "43666194-8e72-451a-b7bb-54fef763b2b8", |
1261 | - "metadata": { |
1262 | - "key": "v3" |
1263 | - }, |
1264 | - "name": "snap-002", |
1265 | - "size": 10, |
1266 | - "status": "creating", |
1267 | - "updated_at": null, |
1268 | - "volume_id": "070c942d-9909-42e9-a467-7a781f150c58", |
1269 | - "group_snapshot_id": null, |
1270 | - "user_id": "c853ca26-e8ea-4797-8a52-ee124a013d0e", |
1271 | - "consumes_quota": true |
1272 | - } |
1273 | -} |
1274 | diff --git a/api-ref/source/v3/samples/snapshots/v3.65/snapshots-list-detailed-response.json b/api-ref/source/v3/samples/snapshots/v3.65/snapshots-list-detailed-response.json |
1275 | deleted file mode 100644 |
1276 | index 7c9e8d4..0000000 |
1277 | --- a/api-ref/source/v3/samples/snapshots/v3.65/snapshots-list-detailed-response.json |
1278 | +++ /dev/null |
1279 | @@ -1,22 +0,0 @@ |
1280 | -{ |
1281 | - "snapshots": [ |
1282 | - { |
1283 | - "created_at": "2019-03-11T16:24:36.464445", |
1284 | - "description": "Daily backup", |
1285 | - "id": "d0083dc5-8795-4c1a-bc9c-74f70006c205", |
1286 | - "metadata": { |
1287 | - "key": "v3" |
1288 | - }, |
1289 | - "name": "snap-001", |
1290 | - "os-extended-snapshot-attributes:progress": "0%", |
1291 | - "os-extended-snapshot-attributes:project_id": "89afd400-b646-4bbc-b12b-c0a4d63e5bd3", |
1292 | - "size": 10, |
1293 | - "status": "creating", |
1294 | - "updated_at": null, |
1295 | - "volume_id": "7acd675e-4e06-4653-af9f-2ecd546342d6", |
1296 | - "group_snapshot_id": null, |
1297 | - "user_id": "c853ca26-e8ea-4797-8a52-ee124a013d0e", |
1298 | - "consumes_quota": true |
1299 | - } |
1300 | - ] |
1301 | -} |
1302 | diff --git a/api-ref/source/v3/samples/versions/version-show-response.json b/api-ref/source/v3/samples/versions/version-show-response.json |
1303 | index 63d41fa..df31cb2 100644 |
1304 | --- a/api-ref/source/v3/samples/versions/version-show-response.json |
1305 | +++ b/api-ref/source/v3/samples/versions/version-show-response.json |
1306 | @@ -21,8 +21,8 @@ |
1307 | ], |
1308 | "min_version": "3.0", |
1309 | "status": "CURRENT", |
1310 | - "updated": "2021-09-16T00:00:00Z", |
1311 | - "version": "3.66" |
1312 | + "updated": "2021-02-03T00:00:00Z", |
1313 | + "version": "3.64" |
1314 | } |
1315 | ] |
1316 | } |
1317 | diff --git a/api-ref/source/v3/samples/versions/versions-response.json b/api-ref/source/v3/samples/versions/versions-response.json |
1318 | index 92bfafc..b1c96e5 100644 |
1319 | --- a/api-ref/source/v3/samples/versions/versions-response.json |
1320 | +++ b/api-ref/source/v3/samples/versions/versions-response.json |
1321 | @@ -1,6 +1,30 @@ |
1322 | { |
1323 | "versions": [ |
1324 | { |
1325 | + "id": "v2.0", |
1326 | + "links": [ |
1327 | + { |
1328 | + "href": "https://docs.openstack.org/", |
1329 | + "rel": "describedby", |
1330 | + "type": "text/html" |
1331 | + }, |
1332 | + { |
1333 | + "href": "http://127.0.0.1:45697/v2/", |
1334 | + "rel": "self" |
1335 | + } |
1336 | + ], |
1337 | + "media-types": [ |
1338 | + { |
1339 | + "base": "application/json", |
1340 | + "type": "application/vnd.openstack.volume+json;version=2" |
1341 | + } |
1342 | + ], |
1343 | + "min_version": "", |
1344 | + "status": "DEPRECATED", |
1345 | + "updated": "2017-02-25T12:00:00Z", |
1346 | + "version": "" |
1347 | + }, |
1348 | + { |
1349 | "id": "v3.0", |
1350 | "links": [ |
1351 | { |
1352 | @@ -21,8 +45,8 @@ |
1353 | ], |
1354 | "min_version": "3.0", |
1355 | "status": "CURRENT", |
1356 | - "updated": "2021-09-16T00:00:00Z", |
1357 | - "version": "3.66" |
1358 | + "updated": "2021-02-03T00:00:00Z", |
1359 | + "version": "3.64" |
1360 | } |
1361 | ] |
1362 | } |
1363 | diff --git a/api-ref/source/v3/samples/volume_type/encryption-type-create-request.json b/api-ref/source/v3/samples/volume_type/encryption-type-create-request.json |
1364 | index 581a028..6b9f97e 100644 |
1365 | --- a/api-ref/source/v3/samples/volume_type/encryption-type-create-request.json |
1366 | +++ b/api-ref/source/v3/samples/volume_type/encryption-type-create-request.json |
1367 | @@ -1,6 +1,6 @@ |
1368 | { |
1369 | "encryption":{ |
1370 | - "key_size": 256, |
1371 | + "key_size": 128, |
1372 | "provider": "luks", |
1373 | "control_location":"front-end", |
1374 | "cipher": "aes-xts-plain64" |
1375 | diff --git a/api-ref/source/v3/samples/volume_type/encryption-type-create-response.json b/api-ref/source/v3/samples/volume_type/encryption-type-create-response.json |
1376 | index de0964b..ad7f5c8 100644 |
1377 | --- a/api-ref/source/v3/samples/volume_type/encryption-type-create-response.json |
1378 | +++ b/api-ref/source/v3/samples/volume_type/encryption-type-create-response.json |
1379 | @@ -3,7 +3,7 @@ |
1380 | "volume_type_id": "2d29462d-76cb-417c-8a9f-fb23140f1577", |
1381 | "control_location": "front-end", |
1382 | "encryption_id": "81e069c6-7394-4856-8df7-3b237ca61f74", |
1383 | - "key_size": 256, |
1384 | + "key_size": 128, |
1385 | "provider": "luks", |
1386 | "cipher": "aes-xts-plain64" |
1387 | } |
1388 | diff --git a/api-ref/source/v3/samples/volume_type/encryption-type-show-response.json b/api-ref/source/v3/samples/volume_type/encryption-type-show-response.json |
1389 | index 3747f69..9a168bf 100644 |
1390 | --- a/api-ref/source/v3/samples/volume_type/encryption-type-show-response.json |
1391 | +++ b/api-ref/source/v3/samples/volume_type/encryption-type-show-response.json |
1392 | @@ -5,7 +5,7 @@ |
1393 | "created_at": "2016-12-28T02:32:25.000000", |
1394 | "updated_at": null, |
1395 | "encryption_id": "81e069c6-7394-4856-8df7-3b237ca61f74", |
1396 | - "key_size": 256, |
1397 | + "key_size": 128, |
1398 | "provider": "luks", |
1399 | "deleted_at": null, |
1400 | "cipher": "aes-xts-plain64" |
1401 | diff --git a/api-ref/source/v3/samples/volumes/v3.13/volume-create-response.json b/api-ref/source/v3/samples/volumes/v3.13/volume-create-response.json |
1402 | deleted file mode 100644 |
1403 | index 427f60d..0000000 |
1404 | --- a/api-ref/source/v3/samples/volumes/v3.13/volume-create-response.json |
1405 | +++ /dev/null |
1406 | @@ -1,35 +0,0 @@ |
1407 | -{ |
1408 | - "volume": { |
1409 | - "attachments": [], |
1410 | - "availability_zone": "nova", |
1411 | - "bootable": "false", |
1412 | - "consistencygroup_id": null, |
1413 | - "created_at": "2018-11-28T06:21:12.715987", |
1414 | - "description": null, |
1415 | - "encrypted": false, |
1416 | - "id": "2b955850-f177-45f7-9f49-ecb2c256d161", |
1417 | - "links": [ |
1418 | - { |
1419 | - "href": "http://127.0.0.1:33951/v3/89afd400-b646-4bbc-b12b-c0a4d63e5bd3/volumes/2b955850-f177-45f7-9f49-ecb2c256d161", |
1420 | - "rel": "self" |
1421 | - }, |
1422 | - { |
1423 | - "href": "http://127.0.0.1:33951/89afd400-b646-4bbc-b12b-c0a4d63e5bd3/volumes/2b955850-f177-45f7-9f49-ecb2c256d161", |
1424 | - "rel": "bookmark" |
1425 | - } |
1426 | - ], |
1427 | - "metadata": {}, |
1428 | - "migration_status": null, |
1429 | - "multiattach": false, |
1430 | - "name": null, |
1431 | - "replication_status": null, |
1432 | - "size": 10, |
1433 | - "snapshot_id": null, |
1434 | - "source_volid": null, |
1435 | - "status": "creating", |
1436 | - "updated_at": null, |
1437 | - "user_id": "c853ca26-e8ea-4797-8a52-ee124a013d0e", |
1438 | - "volume_type": "__DEFAULT__", |
1439 | - "group_id": null |
1440 | - } |
1441 | -} |
1442 | diff --git a/api-ref/source/v3/samples/volumes/v3.13/volume-show-response.json b/api-ref/source/v3/samples/volumes/v3.13/volume-show-response.json |
1443 | deleted file mode 100644 |
1444 | index 7358146..0000000 |
1445 | --- a/api-ref/source/v3/samples/volumes/v3.13/volume-show-response.json |
1446 | +++ /dev/null |
1447 | @@ -1,39 +0,0 @@ |
1448 | -{ |
1449 | - "volume": { |
1450 | - "attachments": [], |
1451 | - "availability_zone": "nova", |
1452 | - "bootable": "false", |
1453 | - "consistencygroup_id": null, |
1454 | - "created_at": "2018-11-29T06:50:07.770785", |
1455 | - "description": null, |
1456 | - "encrypted": false, |
1457 | - "id": "f7223234-1afc-4d19-bfa3-d19deb6235ef", |
1458 | - "links": [ |
1459 | - { |
1460 | - "href": "http://127.0.0.1:45839/v3/89afd400-b646-4bbc-b12b-c0a4d63e5bd3/volumes/f7223234-1afc-4d19-bfa3-d19deb6235ef", |
1461 | - "rel": "self" |
1462 | - }, |
1463 | - { |
1464 | - "href": "http://127.0.0.1:45839/89afd400-b646-4bbc-b12b-c0a4d63e5bd3/volumes/f7223234-1afc-4d19-bfa3-d19deb6235ef", |
1465 | - "rel": "bookmark" |
1466 | - } |
1467 | - ], |
1468 | - "metadata": {}, |
1469 | - "migration_status": null, |
1470 | - "multiattach": false, |
1471 | - "name": null, |
1472 | - "os-vol-host-attr:host": null, |
1473 | - "os-vol-mig-status-attr:migstat": null, |
1474 | - "os-vol-mig-status-attr:name_id": null, |
1475 | - "os-vol-tenant-attr:tenant_id": "89afd400-b646-4bbc-b12b-c0a4d63e5bd3", |
1476 | - "replication_status": null, |
1477 | - "size": 10, |
1478 | - "snapshot_id": null, |
1479 | - "source_volid": null, |
1480 | - "status": "creating", |
1481 | - "updated_at": null, |
1482 | - "user_id": "c853ca26-e8ea-4797-8a52-ee124a013d0e", |
1483 | - "volume_type": "__DEFAULT__", |
1484 | - "group_id": null |
1485 | - } |
1486 | -} |
1487 | diff --git a/api-ref/source/v3/samples/volumes/v3.13/volume-update-response.json b/api-ref/source/v3/samples/volumes/v3.13/volume-update-response.json |
1488 | deleted file mode 100644 |
1489 | index 906739a..0000000 |
1490 | --- a/api-ref/source/v3/samples/volumes/v3.13/volume-update-response.json |
1491 | +++ /dev/null |
1492 | @@ -1,37 +0,0 @@ |
1493 | -{ |
1494 | - "volume": { |
1495 | - "attachments": [], |
1496 | - "availability_zone": "nova", |
1497 | - "bootable": "false", |
1498 | - "consistencygroup_id": null, |
1499 | - "created_at": "2018-11-29T06:59:23.679903", |
1500 | - "description": "This is yet, another volume.", |
1501 | - "encrypted": false, |
1502 | - "id": "8b2459d1-0059-4e14-a89f-dfa73a452af6", |
1503 | - "links": [ |
1504 | - { |
1505 | - "href": "http://127.0.0.1:41467/v3/89afd400-b646-4bbc-b12b-c0a4d63e5bd3/volumes/8b2459d1-0059-4e14-a89f-dfa73a452af6", |
1506 | - "rel": "self" |
1507 | - }, |
1508 | - { |
1509 | - "href": "http://127.0.0.1:41467/89afd400-b646-4bbc-b12b-c0a4d63e5bd3/volumes/8b2459d1-0059-4e14-a89f-dfa73a452af6", |
1510 | - "rel": "bookmark" |
1511 | - } |
1512 | - ], |
1513 | - "metadata": { |
1514 | - "name": "metadata0" |
1515 | - }, |
1516 | - "migration_status": null, |
1517 | - "multiattach": false, |
1518 | - "name": "vol-003", |
1519 | - "replication_status": null, |
1520 | - "size": 10, |
1521 | - "snapshot_id": null, |
1522 | - "source_volid": null, |
1523 | - "status": "creating", |
1524 | - "updated_at": null, |
1525 | - "user_id": "c853ca26-e8ea-4797-8a52-ee124a013d0e", |
1526 | - "volume_type": "__DEFAULT__", |
1527 | - "group_id": null |
1528 | - } |
1529 | -} |
1530 | diff --git a/api-ref/source/v3/samples/volumes/v3.13/volumes-list-detailed-response.json b/api-ref/source/v3/samples/volumes/v3.13/volumes-list-detailed-response.json |
1531 | deleted file mode 100644 |
1532 | index 3f545d2..0000000 |
1533 | --- a/api-ref/source/v3/samples/volumes/v3.13/volumes-list-detailed-response.json |
1534 | +++ /dev/null |
1535 | @@ -1,41 +0,0 @@ |
1536 | -{ |
1537 | - "volumes": [ |
1538 | - { |
1539 | - "attachments": [], |
1540 | - "availability_zone": "nova", |
1541 | - "bootable": "false", |
1542 | - "consistencygroup_id": null, |
1543 | - "created_at": "2018-11-28T06:25:15.288987", |
1544 | - "description": null, |
1545 | - "encrypted": false, |
1546 | - "id": "cb49b381-9012-40cb-b8ee-80c19a4801b5", |
1547 | - "links": [ |
1548 | - { |
1549 | - "href": "http://127.0.0.1:43543/v3/89afd400-b646-4bbc-b12b-c0a4d63e5bd3/volumes/cb49b381-9012-40cb-b8ee-80c19a4801b5", |
1550 | - "rel": "self" |
1551 | - }, |
1552 | - { |
1553 | - "href": "http://127.0.0.1:43543/89afd400-b646-4bbc-b12b-c0a4d63e5bd3/volumes/cb49b381-9012-40cb-b8ee-80c19a4801b5", |
1554 | - "rel": "bookmark" |
1555 | - } |
1556 | - ], |
1557 | - "metadata": {}, |
1558 | - "migration_status": null, |
1559 | - "multiattach": false, |
1560 | - "name": null, |
1561 | - "os-vol-host-attr:host": null, |
1562 | - "os-vol-mig-status-attr:migstat": null, |
1563 | - "os-vol-mig-status-attr:name_id": null, |
1564 | - "os-vol-tenant-attr:tenant_id": "89afd400-b646-4bbc-b12b-c0a4d63e5bd3", |
1565 | - "replication_status": null, |
1566 | - "size": 10, |
1567 | - "snapshot_id": null, |
1568 | - "source_volid": null, |
1569 | - "status": "creating", |
1570 | - "updated_at": null, |
1571 | - "user_id": "c853ca26-e8ea-4797-8a52-ee124a013d0e", |
1572 | - "volume_type": "__DEFAULT__", |
1573 | - "group_id": null |
1574 | - } |
1575 | - ] |
1576 | -} |
1577 | diff --git a/api-ref/source/v3/samples/volumes/v3.21/volume-create-response.json b/api-ref/source/v3/samples/volumes/v3.21/volume-create-response.json |
1578 | deleted file mode 100644 |
1579 | index 3ac6eb6..0000000 |
1580 | --- a/api-ref/source/v3/samples/volumes/v3.21/volume-create-response.json |
1581 | +++ /dev/null |
1582 | @@ -1,36 +0,0 @@ |
1583 | -{ |
1584 | - "volume": { |
1585 | - "attachments": [], |
1586 | - "availability_zone": "nova", |
1587 | - "bootable": "false", |
1588 | - "consistencygroup_id": null, |
1589 | - "created_at": "2018-11-28T06:21:12.715987", |
1590 | - "description": null, |
1591 | - "encrypted": false, |
1592 | - "id": "2b955850-f177-45f7-9f49-ecb2c256d161", |
1593 | - "links": [ |
1594 | - { |
1595 | - "href": "http://127.0.0.1:33951/v3/89afd400-b646-4bbc-b12b-c0a4d63e5bd3/volumes/2b955850-f177-45f7-9f49-ecb2c256d161", |
1596 | - "rel": "self" |
1597 | - }, |
1598 | - { |
1599 | - "href": "http://127.0.0.1:33951/89afd400-b646-4bbc-b12b-c0a4d63e5bd3/volumes/2b955850-f177-45f7-9f49-ecb2c256d161", |
1600 | - "rel": "bookmark" |
1601 | - } |
1602 | - ], |
1603 | - "metadata": {}, |
1604 | - "migration_status": null, |
1605 | - "multiattach": false, |
1606 | - "name": null, |
1607 | - "replication_status": null, |
1608 | - "size": 10, |
1609 | - "snapshot_id": null, |
1610 | - "source_volid": null, |
1611 | - "status": "creating", |
1612 | - "updated_at": null, |
1613 | - "user_id": "c853ca26-e8ea-4797-8a52-ee124a013d0e", |
1614 | - "volume_type": "__DEFAULT__", |
1615 | - "group_id": null, |
1616 | - "provider_id": null |
1617 | - } |
1618 | -} |
1619 | diff --git a/api-ref/source/v3/samples/volumes/v3.21/volume-show-response.json b/api-ref/source/v3/samples/volumes/v3.21/volume-show-response.json |
1620 | deleted file mode 100644 |
1621 | index fa480be..0000000 |
1622 | --- a/api-ref/source/v3/samples/volumes/v3.21/volume-show-response.json |
1623 | +++ /dev/null |
1624 | @@ -1,40 +0,0 @@ |
1625 | -{ |
1626 | - "volume": { |
1627 | - "attachments": [], |
1628 | - "availability_zone": "nova", |
1629 | - "bootable": "false", |
1630 | - "consistencygroup_id": null, |
1631 | - "created_at": "2018-11-29T06:50:07.770785", |
1632 | - "description": null, |
1633 | - "encrypted": false, |
1634 | - "id": "f7223234-1afc-4d19-bfa3-d19deb6235ef", |
1635 | - "links": [ |
1636 | - { |
1637 | - "href": "http://127.0.0.1:45839/v3/89afd400-b646-4bbc-b12b-c0a4d63e5bd3/volumes/f7223234-1afc-4d19-bfa3-d19deb6235ef", |
1638 | - "rel": "self" |
1639 | - }, |
1640 | - { |
1641 | - "href": "http://127.0.0.1:45839/89afd400-b646-4bbc-b12b-c0a4d63e5bd3/volumes/f7223234-1afc-4d19-bfa3-d19deb6235ef", |
1642 | - "rel": "bookmark" |
1643 | - } |
1644 | - ], |
1645 | - "metadata": {}, |
1646 | - "migration_status": null, |
1647 | - "multiattach": false, |
1648 | - "name": null, |
1649 | - "os-vol-host-attr:host": null, |
1650 | - "os-vol-mig-status-attr:migstat": null, |
1651 | - "os-vol-mig-status-attr:name_id": null, |
1652 | - "os-vol-tenant-attr:tenant_id": "89afd400-b646-4bbc-b12b-c0a4d63e5bd3", |
1653 | - "replication_status": null, |
1654 | - "size": 10, |
1655 | - "snapshot_id": null, |
1656 | - "source_volid": null, |
1657 | - "status": "creating", |
1658 | - "updated_at": null, |
1659 | - "user_id": "c853ca26-e8ea-4797-8a52-ee124a013d0e", |
1660 | - "volume_type": "__DEFAULT__", |
1661 | - "group_id": null, |
1662 | - "provider_id": null |
1663 | - } |
1664 | -} |
1665 | diff --git a/api-ref/source/v3/samples/volumes/v3.21/volume-update-response.json b/api-ref/source/v3/samples/volumes/v3.21/volume-update-response.json |
1666 | deleted file mode 100644 |
1667 | index b861368..0000000 |
1668 | --- a/api-ref/source/v3/samples/volumes/v3.21/volume-update-response.json |
1669 | +++ /dev/null |
1670 | @@ -1,38 +0,0 @@ |
1671 | -{ |
1672 | - "volume": { |
1673 | - "attachments": [], |
1674 | - "availability_zone": "nova", |
1675 | - "bootable": "false", |
1676 | - "consistencygroup_id": null, |
1677 | - "created_at": "2018-11-29T06:59:23.679903", |
1678 | - "description": "This is yet, another volume.", |
1679 | - "encrypted": false, |
1680 | - "id": "8b2459d1-0059-4e14-a89f-dfa73a452af6", |
1681 | - "links": [ |
1682 | - { |
1683 | - "href": "http://127.0.0.1:41467/v3/89afd400-b646-4bbc-b12b-c0a4d63e5bd3/volumes/8b2459d1-0059-4e14-a89f-dfa73a452af6", |
1684 | - "rel": "self" |
1685 | - }, |
1686 | - { |
1687 | - "href": "http://127.0.0.1:41467/89afd400-b646-4bbc-b12b-c0a4d63e5bd3/volumes/8b2459d1-0059-4e14-a89f-dfa73a452af6", |
1688 | - "rel": "bookmark" |
1689 | - } |
1690 | - ], |
1691 | - "metadata": { |
1692 | - "name": "metadata0" |
1693 | - }, |
1694 | - "migration_status": null, |
1695 | - "multiattach": false, |
1696 | - "name": "vol-003", |
1697 | - "replication_status": null, |
1698 | - "size": 10, |
1699 | - "snapshot_id": null, |
1700 | - "source_volid": null, |
1701 | - "status": "creating", |
1702 | - "updated_at": null, |
1703 | - "user_id": "c853ca26-e8ea-4797-8a52-ee124a013d0e", |
1704 | - "volume_type": "__DEFAULT__", |
1705 | - "group_id": null, |
1706 | - "provider_id": null |
1707 | - } |
1708 | -} |
1709 | diff --git a/api-ref/source/v3/samples/volumes/v3.21/volumes-list-detailed-response.json b/api-ref/source/v3/samples/volumes/v3.21/volumes-list-detailed-response.json |
1710 | deleted file mode 100644 |
1711 | index ab72a30..0000000 |
1712 | --- a/api-ref/source/v3/samples/volumes/v3.21/volumes-list-detailed-response.json |
1713 | +++ /dev/null |
1714 | @@ -1,42 +0,0 @@ |
1715 | -{ |
1716 | - "volumes": [ |
1717 | - { |
1718 | - "attachments": [], |
1719 | - "availability_zone": "nova", |
1720 | - "bootable": "false", |
1721 | - "consistencygroup_id": null, |
1722 | - "created_at": "2018-11-28T06:25:15.288987", |
1723 | - "description": null, |
1724 | - "encrypted": false, |
1725 | - "id": "cb49b381-9012-40cb-b8ee-80c19a4801b5", |
1726 | - "links": [ |
1727 | - { |
1728 | - "href": "http://127.0.0.1:43543/v3/89afd400-b646-4bbc-b12b-c0a4d63e5bd3/volumes/cb49b381-9012-40cb-b8ee-80c19a4801b5", |
1729 | - "rel": "self" |
1730 | - }, |
1731 | - { |
1732 | - "href": "http://127.0.0.1:43543/89afd400-b646-4bbc-b12b-c0a4d63e5bd3/volumes/cb49b381-9012-40cb-b8ee-80c19a4801b5", |
1733 | - "rel": "bookmark" |
1734 | - } |
1735 | - ], |
1736 | - "metadata": {}, |
1737 | - "migration_status": null, |
1738 | - "multiattach": false, |
1739 | - "name": null, |
1740 | - "os-vol-host-attr:host": null, |
1741 | - "os-vol-mig-status-attr:migstat": null, |
1742 | - "os-vol-mig-status-attr:name_id": null, |
1743 | - "os-vol-tenant-attr:tenant_id": "89afd400-b646-4bbc-b12b-c0a4d63e5bd3", |
1744 | - "replication_status": null, |
1745 | - "size": 10, |
1746 | - "snapshot_id": null, |
1747 | - "source_volid": null, |
1748 | - "status": "creating", |
1749 | - "updated_at": null, |
1750 | - "user_id": "c853ca26-e8ea-4797-8a52-ee124a013d0e", |
1751 | - "volume_type": "__DEFAULT__", |
1752 | - "group_id": null, |
1753 | - "provider_id": null |
1754 | - } |
1755 | - ] |
1756 | -} |
1757 | diff --git a/api-ref/source/v3/samples/volumes/v3.48/volume-create-response.json b/api-ref/source/v3/samples/volumes/v3.48/volume-create-response.json |
1758 | deleted file mode 100644 |
1759 | index 92592a9..0000000 |
1760 | --- a/api-ref/source/v3/samples/volumes/v3.48/volume-create-response.json |
1761 | +++ /dev/null |
1762 | @@ -1,38 +0,0 @@ |
1763 | -{ |
1764 | - "volume": { |
1765 | - "attachments": [], |
1766 | - "availability_zone": "nova", |
1767 | - "bootable": "false", |
1768 | - "consistencygroup_id": null, |
1769 | - "created_at": "2018-11-28T06:21:12.715987", |
1770 | - "description": null, |
1771 | - "encrypted": false, |
1772 | - "id": "2b955850-f177-45f7-9f49-ecb2c256d161", |
1773 | - "links": [ |
1774 | - { |
1775 | - "href": "http://127.0.0.1:33951/v3/89afd400-b646-4bbc-b12b-c0a4d63e5bd3/volumes/2b955850-f177-45f7-9f49-ecb2c256d161", |
1776 | - "rel": "self" |
1777 | - }, |
1778 | - { |
1779 | - "href": "http://127.0.0.1:33951/89afd400-b646-4bbc-b12b-c0a4d63e5bd3/volumes/2b955850-f177-45f7-9f49-ecb2c256d161", |
1780 | - "rel": "bookmark" |
1781 | - } |
1782 | - ], |
1783 | - "metadata": {}, |
1784 | - "migration_status": null, |
1785 | - "multiattach": false, |
1786 | - "name": null, |
1787 | - "replication_status": null, |
1788 | - "size": 10, |
1789 | - "snapshot_id": null, |
1790 | - "source_volid": null, |
1791 | - "status": "creating", |
1792 | - "updated_at": null, |
1793 | - "user_id": "c853ca26-e8ea-4797-8a52-ee124a013d0e", |
1794 | - "volume_type": "__DEFAULT__", |
1795 | - "group_id": null, |
1796 | - "provider_id": null, |
1797 | - "service_uuid": null, |
1798 | - "shared_targets": true |
1799 | - } |
1800 | -} |
1801 | diff --git a/api-ref/source/v3/samples/volumes/v3.48/volume-show-response.json b/api-ref/source/v3/samples/volumes/v3.48/volume-show-response.json |
1802 | deleted file mode 100644 |
1803 | index 7657eab..0000000 |
1804 | --- a/api-ref/source/v3/samples/volumes/v3.48/volume-show-response.json |
1805 | +++ /dev/null |
1806 | @@ -1,42 +0,0 @@ |
1807 | -{ |
1808 | - "volume": { |
1809 | - "attachments": [], |
1810 | - "availability_zone": "nova", |
1811 | - "bootable": "false", |
1812 | - "consistencygroup_id": null, |
1813 | - "created_at": "2018-11-29T06:50:07.770785", |
1814 | - "description": null, |
1815 | - "encrypted": false, |
1816 | - "id": "f7223234-1afc-4d19-bfa3-d19deb6235ef", |
1817 | - "links": [ |
1818 | - { |
1819 | - "href": "http://127.0.0.1:45839/v3/89afd400-b646-4bbc-b12b-c0a4d63e5bd3/volumes/f7223234-1afc-4d19-bfa3-d19deb6235ef", |
1820 | - "rel": "self" |
1821 | - }, |
1822 | - { |
1823 | - "href": "http://127.0.0.1:45839/89afd400-b646-4bbc-b12b-c0a4d63e5bd3/volumes/f7223234-1afc-4d19-bfa3-d19deb6235ef", |
1824 | - "rel": "bookmark" |
1825 | - } |
1826 | - ], |
1827 | - "metadata": {}, |
1828 | - "migration_status": null, |
1829 | - "multiattach": false, |
1830 | - "name": null, |
1831 | - "os-vol-host-attr:host": null, |
1832 | - "os-vol-mig-status-attr:migstat": null, |
1833 | - "os-vol-mig-status-attr:name_id": null, |
1834 | - "os-vol-tenant-attr:tenant_id": "89afd400-b646-4bbc-b12b-c0a4d63e5bd3", |
1835 | - "replication_status": null, |
1836 | - "size": 10, |
1837 | - "snapshot_id": null, |
1838 | - "source_volid": null, |
1839 | - "status": "creating", |
1840 | - "updated_at": null, |
1841 | - "user_id": "c853ca26-e8ea-4797-8a52-ee124a013d0e", |
1842 | - "volume_type": "__DEFAULT__", |
1843 | - "provider_id": null, |
1844 | - "group_id": null, |
1845 | - "service_uuid": null, |
1846 | - "shared_targets": true |
1847 | - } |
1848 | -} |
1849 | diff --git a/api-ref/source/v3/samples/volumes/v3.48/volume-update-response.json b/api-ref/source/v3/samples/volumes/v3.48/volume-update-response.json |
1850 | deleted file mode 100644 |
1851 | index c76a1a9..0000000 |
1852 | --- a/api-ref/source/v3/samples/volumes/v3.48/volume-update-response.json |
1853 | +++ /dev/null |
1854 | @@ -1,40 +0,0 @@ |
1855 | -{ |
1856 | - "volume": { |
1857 | - "attachments": [], |
1858 | - "availability_zone": "nova", |
1859 | - "bootable": "false", |
1860 | - "consistencygroup_id": null, |
1861 | - "created_at": "2018-11-29T06:59:23.679903", |
1862 | - "description": "This is yet, another volume.", |
1863 | - "encrypted": false, |
1864 | - "id": "8b2459d1-0059-4e14-a89f-dfa73a452af6", |
1865 | - "links": [ |
1866 | - { |
1867 | - "href": "http://127.0.0.1:41467/v3/89afd400-b646-4bbc-b12b-c0a4d63e5bd3/volumes/8b2459d1-0059-4e14-a89f-dfa73a452af6", |
1868 | - "rel": "self" |
1869 | - }, |
1870 | - { |
1871 | - "href": "http://127.0.0.1:41467/89afd400-b646-4bbc-b12b-c0a4d63e5bd3/volumes/8b2459d1-0059-4e14-a89f-dfa73a452af6", |
1872 | - "rel": "bookmark" |
1873 | - } |
1874 | - ], |
1875 | - "metadata": { |
1876 | - "name": "metadata0" |
1877 | - }, |
1878 | - "migration_status": null, |
1879 | - "multiattach": false, |
1880 | - "name": "vol-003", |
1881 | - "replication_status": null, |
1882 | - "size": 10, |
1883 | - "snapshot_id": null, |
1884 | - "source_volid": null, |
1885 | - "status": "creating", |
1886 | - "updated_at": null, |
1887 | - "user_id": "c853ca26-e8ea-4797-8a52-ee124a013d0e", |
1888 | - "volume_type": "__DEFAULT__", |
1889 | - "group_id": null, |
1890 | - "provider_id": null, |
1891 | - "service_uuid": null, |
1892 | - "shared_targets": true |
1893 | - } |
1894 | -} |
1895 | diff --git a/api-ref/source/v3/samples/volumes/v3.48/volumes-list-detailed-response.json b/api-ref/source/v3/samples/volumes/v3.48/volumes-list-detailed-response.json |
1896 | deleted file mode 100644 |
1897 | index 1130e6d..0000000 |
1898 | --- a/api-ref/source/v3/samples/volumes/v3.48/volumes-list-detailed-response.json |
1899 | +++ /dev/null |
1900 | @@ -1,44 +0,0 @@ |
1901 | -{ |
1902 | - "volumes": [ |
1903 | - { |
1904 | - "attachments": [], |
1905 | - "availability_zone": "nova", |
1906 | - "bootable": "false", |
1907 | - "consistencygroup_id": null, |
1908 | - "created_at": "2018-11-28T06:25:15.288987", |
1909 | - "description": null, |
1910 | - "encrypted": false, |
1911 | - "id": "cb49b381-9012-40cb-b8ee-80c19a4801b5", |
1912 | - "links": [ |
1913 | - { |
1914 | - "href": "http://127.0.0.1:43543/v3/89afd400-b646-4bbc-b12b-c0a4d63e5bd3/volumes/cb49b381-9012-40cb-b8ee-80c19a4801b5", |
1915 | - "rel": "self" |
1916 | - }, |
1917 | - { |
1918 | - "href": "http://127.0.0.1:43543/89afd400-b646-4bbc-b12b-c0a4d63e5bd3/volumes/cb49b381-9012-40cb-b8ee-80c19a4801b5", |
1919 | - "rel": "bookmark" |
1920 | - } |
1921 | - ], |
1922 | - "metadata": {}, |
1923 | - "migration_status": null, |
1924 | - "multiattach": false, |
1925 | - "name": null, |
1926 | - "os-vol-host-attr:host": null, |
1927 | - "os-vol-mig-status-attr:migstat": null, |
1928 | - "os-vol-mig-status-attr:name_id": null, |
1929 | - "os-vol-tenant-attr:tenant_id": "89afd400-b646-4bbc-b12b-c0a4d63e5bd3", |
1930 | - "replication_status": null, |
1931 | - "size": 10, |
1932 | - "snapshot_id": null, |
1933 | - "source_volid": null, |
1934 | - "status": "creating", |
1935 | - "updated_at": null, |
1936 | - "user_id": "c853ca26-e8ea-4797-8a52-ee124a013d0e", |
1937 | - "volume_type": "__DEFAULT__", |
1938 | - "provider_id": null, |
1939 | - "group_id": null, |
1940 | - "service_uuid": null, |
1941 | - "shared_targets": true |
1942 | - } |
1943 | - ] |
1944 | -} |
1945 | diff --git a/api-ref/source/v3/samples/volumes/v3.61/volume-create-response.json b/api-ref/source/v3/samples/volumes/v3.61/volume-create-response.json |
1946 | deleted file mode 100644 |
1947 | index 53bf50b..0000000 |
1948 | --- a/api-ref/source/v3/samples/volumes/v3.61/volume-create-response.json |
1949 | +++ /dev/null |
1950 | @@ -1,39 +0,0 @@ |
1951 | -{ |
1952 | - "volume": { |
1953 | - "attachments": [], |
1954 | - "availability_zone": "nova", |
1955 | - "bootable": "false", |
1956 | - "consistencygroup_id": null, |
1957 | - "created_at": "2018-11-28T06:21:12.715987", |
1958 | - "description": null, |
1959 | - "encrypted": false, |
1960 | - "id": "2b955850-f177-45f7-9f49-ecb2c256d161", |
1961 | - "links": [ |
1962 | - { |
1963 | - "href": "http://127.0.0.1:33951/v3/89afd400-b646-4bbc-b12b-c0a4d63e5bd3/volumes/2b955850-f177-45f7-9f49-ecb2c256d161", |
1964 | - "rel": "self" |
1965 | - }, |
1966 | - { |
1967 | - "href": "http://127.0.0.1:33951/89afd400-b646-4bbc-b12b-c0a4d63e5bd3/volumes/2b955850-f177-45f7-9f49-ecb2c256d161", |
1968 | - "rel": "bookmark" |
1969 | - } |
1970 | - ], |
1971 | - "metadata": {}, |
1972 | - "migration_status": null, |
1973 | - "multiattach": false, |
1974 | - "name": null, |
1975 | - "replication_status": null, |
1976 | - "size": 10, |
1977 | - "snapshot_id": null, |
1978 | - "source_volid": null, |
1979 | - "status": "creating", |
1980 | - "updated_at": null, |
1981 | - "user_id": "c853ca26-e8ea-4797-8a52-ee124a013d0e", |
1982 | - "volume_type": "__DEFAULT__", |
1983 | - "group_id": null, |
1984 | - "provider_id": null, |
1985 | - "service_uuid": null, |
1986 | - "shared_targets": true, |
1987 | - "cluster_name": null |
1988 | - } |
1989 | -} |
1990 | diff --git a/api-ref/source/v3/samples/volumes/v3.61/volume-show-response.json b/api-ref/source/v3/samples/volumes/v3.61/volume-show-response.json |
1991 | deleted file mode 100644 |
1992 | index 4a77b01..0000000 |
1993 | --- a/api-ref/source/v3/samples/volumes/v3.61/volume-show-response.json |
1994 | +++ /dev/null |
1995 | @@ -1,43 +0,0 @@ |
1996 | -{ |
1997 | - "volume": { |
1998 | - "attachments": [], |
1999 | - "availability_zone": "nova", |
2000 | - "bootable": "false", |
2001 | - "consistencygroup_id": null, |
2002 | - "created_at": "2018-11-29T06:50:07.770785", |
2003 | - "description": null, |
2004 | - "encrypted": false, |
2005 | - "id": "f7223234-1afc-4d19-bfa3-d19deb6235ef", |
2006 | - "links": [ |
2007 | - { |
2008 | - "href": "http://127.0.0.1:45839/v3/89afd400-b646-4bbc-b12b-c0a4d63e5bd3/volumes/f7223234-1afc-4d19-bfa3-d19deb6235ef", |
2009 | - "rel": "self" |
2010 | - }, |
2011 | - { |
2012 | - "href": "http://127.0.0.1:45839/89afd400-b646-4bbc-b12b-c0a4d63e5bd3/volumes/f7223234-1afc-4d19-bfa3-d19deb6235ef", |
2013 | - "rel": "bookmark" |
2014 | - } |
2015 | - ], |
2016 | - "metadata": {}, |
2017 | - "migration_status": null, |
2018 | - "multiattach": false, |
2019 | - "name": null, |
2020 | - "os-vol-host-attr:host": null, |
2021 | - "os-vol-mig-status-attr:migstat": null, |
2022 | - "os-vol-mig-status-attr:name_id": null, |
2023 | - "os-vol-tenant-attr:tenant_id": "89afd400-b646-4bbc-b12b-c0a4d63e5bd3", |
2024 | - "replication_status": null, |
2025 | - "size": 10, |
2026 | - "snapshot_id": null, |
2027 | - "source_volid": null, |
2028 | - "status": "creating", |
2029 | - "updated_at": null, |
2030 | - "user_id": "c853ca26-e8ea-4797-8a52-ee124a013d0e", |
2031 | - "volume_type": "__DEFAULT__", |
2032 | - "provider_id": null, |
2033 | - "group_id": null, |
2034 | - "service_uuid": null, |
2035 | - "shared_targets": true, |
2036 | - "cluster_name": null |
2037 | - } |
2038 | -} |
2039 | diff --git a/api-ref/source/v3/samples/volumes/v3.61/volume-update-response.json b/api-ref/source/v3/samples/volumes/v3.61/volume-update-response.json |
2040 | deleted file mode 100644 |
2041 | index 7e64c11..0000000 |
2042 | --- a/api-ref/source/v3/samples/volumes/v3.61/volume-update-response.json |
2043 | +++ /dev/null |
2044 | @@ -1,41 +0,0 @@ |
2045 | -{ |
2046 | - "volume": { |
2047 | - "attachments": [], |
2048 | - "availability_zone": "nova", |
2049 | - "bootable": "false", |
2050 | - "consistencygroup_id": null, |
2051 | - "created_at": "2018-11-29T06:59:23.679903", |
2052 | - "description": "This is yet, another volume.", |
2053 | - "encrypted": false, |
2054 | - "id": "8b2459d1-0059-4e14-a89f-dfa73a452af6", |
2055 | - "links": [ |
2056 | - { |
2057 | - "href": "http://127.0.0.1:41467/v3/89afd400-b646-4bbc-b12b-c0a4d63e5bd3/volumes/8b2459d1-0059-4e14-a89f-dfa73a452af6", |
2058 | - "rel": "self" |
2059 | - }, |
2060 | - { |
2061 | - "href": "http://127.0.0.1:41467/89afd400-b646-4bbc-b12b-c0a4d63e5bd3/volumes/8b2459d1-0059-4e14-a89f-dfa73a452af6", |
2062 | - "rel": "bookmark" |
2063 | - } |
2064 | - ], |
2065 | - "metadata": { |
2066 | - "name": "metadata0" |
2067 | - }, |
2068 | - "migration_status": null, |
2069 | - "multiattach": false, |
2070 | - "name": "vol-003", |
2071 | - "replication_status": null, |
2072 | - "size": 10, |
2073 | - "snapshot_id": null, |
2074 | - "source_volid": null, |
2075 | - "status": "creating", |
2076 | - "updated_at": null, |
2077 | - "user_id": "c853ca26-e8ea-4797-8a52-ee124a013d0e", |
2078 | - "volume_type": "__DEFAULT__", |
2079 | - "group_id": null, |
2080 | - "provider_id": null, |
2081 | - "service_uuid": null, |
2082 | - "shared_targets": true, |
2083 | - "cluster_name": null |
2084 | - } |
2085 | -} |
2086 | diff --git a/api-ref/source/v3/samples/volumes/v3.61/volumes-list-detailed-response.json b/api-ref/source/v3/samples/volumes/v3.61/volumes-list-detailed-response.json |
2087 | deleted file mode 100644 |
2088 | index 4f36bf8..0000000 |
2089 | --- a/api-ref/source/v3/samples/volumes/v3.61/volumes-list-detailed-response.json |
2090 | +++ /dev/null |
2091 | @@ -1,45 +0,0 @@ |
2092 | -{ |
2093 | - "volumes": [ |
2094 | - { |
2095 | - "attachments": [], |
2096 | - "availability_zone": "nova", |
2097 | - "bootable": "false", |
2098 | - "consistencygroup_id": null, |
2099 | - "created_at": "2018-11-28T06:25:15.288987", |
2100 | - "description": null, |
2101 | - "encrypted": false, |
2102 | - "id": "cb49b381-9012-40cb-b8ee-80c19a4801b5", |
2103 | - "links": [ |
2104 | - { |
2105 | - "href": "http://127.0.0.1:43543/v3/89afd400-b646-4bbc-b12b-c0a4d63e5bd3/volumes/cb49b381-9012-40cb-b8ee-80c19a4801b5", |
2106 | - "rel": "self" |
2107 | - }, |
2108 | - { |
2109 | - "href": "http://127.0.0.1:43543/89afd400-b646-4bbc-b12b-c0a4d63e5bd3/volumes/cb49b381-9012-40cb-b8ee-80c19a4801b5", |
2110 | - "rel": "bookmark" |
2111 | - } |
2112 | - ], |
2113 | - "metadata": {}, |
2114 | - "migration_status": null, |
2115 | - "multiattach": false, |
2116 | - "name": null, |
2117 | - "os-vol-host-attr:host": null, |
2118 | - "os-vol-mig-status-attr:migstat": null, |
2119 | - "os-vol-mig-status-attr:name_id": null, |
2120 | - "os-vol-tenant-attr:tenant_id": "89afd400-b646-4bbc-b12b-c0a4d63e5bd3", |
2121 | - "replication_status": null, |
2122 | - "size": 10, |
2123 | - "snapshot_id": null, |
2124 | - "source_volid": null, |
2125 | - "status": "creating", |
2126 | - "updated_at": null, |
2127 | - "user_id": "c853ca26-e8ea-4797-8a52-ee124a013d0e", |
2128 | - "volume_type": "__DEFAULT__", |
2129 | - "provider_id": null, |
2130 | - "group_id": null, |
2131 | - "service_uuid": null, |
2132 | - "shared_targets": true, |
2133 | - "cluster_name": null |
2134 | - } |
2135 | - ] |
2136 | -} |
2137 | diff --git a/api-ref/source/v3/samples/volumes/v3.63/volume-create-response.json b/api-ref/source/v3/samples/volumes/v3.63/volume-create-response.json |
2138 | deleted file mode 100644 |
2139 | index 16808b7..0000000 |
2140 | --- a/api-ref/source/v3/samples/volumes/v3.63/volume-create-response.json |
2141 | +++ /dev/null |
2142 | @@ -1,40 +0,0 @@ |
2143 | -{ |
2144 | - "volume": { |
2145 | - "attachments": [], |
2146 | - "availability_zone": "nova", |
2147 | - "bootable": "false", |
2148 | - "consistencygroup_id": null, |
2149 | - "created_at": "2018-11-28T06:21:12.715987", |
2150 | - "description": null, |
2151 | - "encrypted": false, |
2152 | - "id": "2b955850-f177-45f7-9f49-ecb2c256d161", |
2153 | - "links": [ |
2154 | - { |
2155 | - "href": "http://127.0.0.1:33951/v3/89afd400-b646-4bbc-b12b-c0a4d63e5bd3/volumes/2b955850-f177-45f7-9f49-ecb2c256d161", |
2156 | - "rel": "self" |
2157 | - }, |
2158 | - { |
2159 | - "href": "http://127.0.0.1:33951/89afd400-b646-4bbc-b12b-c0a4d63e5bd3/volumes/2b955850-f177-45f7-9f49-ecb2c256d161", |
2160 | - "rel": "bookmark" |
2161 | - } |
2162 | - ], |
2163 | - "metadata": {}, |
2164 | - "migration_status": null, |
2165 | - "multiattach": false, |
2166 | - "name": null, |
2167 | - "replication_status": null, |
2168 | - "size": 10, |
2169 | - "snapshot_id": null, |
2170 | - "source_volid": null, |
2171 | - "status": "creating", |
2172 | - "updated_at": null, |
2173 | - "user_id": "c853ca26-e8ea-4797-8a52-ee124a013d0e", |
2174 | - "volume_type": "__DEFAULT__", |
2175 | - "group_id": null, |
2176 | - "provider_id": null, |
2177 | - "service_uuid": null, |
2178 | - "shared_targets": true, |
2179 | - "cluster_name": null, |
2180 | - "volume_type_id": "5fed9d7c-401d-46e2-8e80-f30c70cb7e1d" |
2181 | - } |
2182 | -} |
2183 | diff --git a/api-ref/source/v3/samples/volumes/v3.63/volume-show-response.json b/api-ref/source/v3/samples/volumes/v3.63/volume-show-response.json |
2184 | deleted file mode 100644 |
2185 | index 0057291..0000000 |
2186 | --- a/api-ref/source/v3/samples/volumes/v3.63/volume-show-response.json |
2187 | +++ /dev/null |
2188 | @@ -1,44 +0,0 @@ |
2189 | -{ |
2190 | - "volume": { |
2191 | - "attachments": [], |
2192 | - "availability_zone": "nova", |
2193 | - "bootable": "false", |
2194 | - "consistencygroup_id": null, |
2195 | - "created_at": "2018-11-29T06:50:07.770785", |
2196 | - "description": null, |
2197 | - "encrypted": false, |
2198 | - "id": "f7223234-1afc-4d19-bfa3-d19deb6235ef", |
2199 | - "links": [ |
2200 | - { |
2201 | - "href": "http://127.0.0.1:45839/v3/89afd400-b646-4bbc-b12b-c0a4d63e5bd3/volumes/f7223234-1afc-4d19-bfa3-d19deb6235ef", |
2202 | - "rel": "self" |
2203 | - }, |
2204 | - { |
2205 | - "href": "http://127.0.0.1:45839/89afd400-b646-4bbc-b12b-c0a4d63e5bd3/volumes/f7223234-1afc-4d19-bfa3-d19deb6235ef", |
2206 | - "rel": "bookmark" |
2207 | - } |
2208 | - ], |
2209 | - "metadata": {}, |
2210 | - "migration_status": null, |
2211 | - "multiattach": false, |
2212 | - "name": null, |
2213 | - "os-vol-host-attr:host": null, |
2214 | - "os-vol-mig-status-attr:migstat": null, |
2215 | - "os-vol-mig-status-attr:name_id": null, |
2216 | - "os-vol-tenant-attr:tenant_id": "89afd400-b646-4bbc-b12b-c0a4d63e5bd3", |
2217 | - "replication_status": null, |
2218 | - "size": 10, |
2219 | - "snapshot_id": null, |
2220 | - "source_volid": null, |
2221 | - "status": "creating", |
2222 | - "updated_at": null, |
2223 | - "user_id": "c853ca26-e8ea-4797-8a52-ee124a013d0e", |
2224 | - "volume_type": "__DEFAULT__", |
2225 | - "provider_id": null, |
2226 | - "group_id": null, |
2227 | - "service_uuid": null, |
2228 | - "shared_targets": true, |
2229 | - "cluster_name": null, |
2230 | - "volume_type_id": "5fed9d7c-401d-46e2-8e80-f30c70cb7e1d" |
2231 | - } |
2232 | -} |
2233 | diff --git a/api-ref/source/v3/samples/volumes/v3.63/volume-update-response.json b/api-ref/source/v3/samples/volumes/v3.63/volume-update-response.json |
2234 | deleted file mode 100644 |
2235 | index 29b5d06..0000000 |
2236 | --- a/api-ref/source/v3/samples/volumes/v3.63/volume-update-response.json |
2237 | +++ /dev/null |
2238 | @@ -1,42 +0,0 @@ |
2239 | -{ |
2240 | - "volume": { |
2241 | - "attachments": [], |
2242 | - "availability_zone": "nova", |
2243 | - "bootable": "false", |
2244 | - "consistencygroup_id": null, |
2245 | - "created_at": "2018-11-29T06:59:23.679903", |
2246 | - "description": "This is yet, another volume.", |
2247 | - "encrypted": false, |
2248 | - "id": "8b2459d1-0059-4e14-a89f-dfa73a452af6", |
2249 | - "links": [ |
2250 | - { |
2251 | - "href": "http://127.0.0.1:41467/v3/89afd400-b646-4bbc-b12b-c0a4d63e5bd3/volumes/8b2459d1-0059-4e14-a89f-dfa73a452af6", |
2252 | - "rel": "self" |
2253 | - }, |
2254 | - { |
2255 | - "href": "http://127.0.0.1:41467/89afd400-b646-4bbc-b12b-c0a4d63e5bd3/volumes/8b2459d1-0059-4e14-a89f-dfa73a452af6", |
2256 | - "rel": "bookmark" |
2257 | - } |
2258 | - ], |
2259 | - "metadata": { |
2260 | - "name": "metadata0" |
2261 | - }, |
2262 | - "migration_status": null, |
2263 | - "multiattach": false, |
2264 | - "name": "vol-003", |
2265 | - "replication_status": null, |
2266 | - "size": 10, |
2267 | - "snapshot_id": null, |
2268 | - "source_volid": null, |
2269 | - "status": "creating", |
2270 | - "updated_at": null, |
2271 | - "user_id": "c853ca26-e8ea-4797-8a52-ee124a013d0e", |
2272 | - "volume_type": "__DEFAULT__", |
2273 | - "group_id": null, |
2274 | - "provider_id": null, |
2275 | - "service_uuid": null, |
2276 | - "shared_targets": true, |
2277 | - "cluster_name": null, |
2278 | - "volume_type_id": "5fed9d7c-401d-46e2-8e80-f30c70cb7e1d" |
2279 | - } |
2280 | -} |
2281 | diff --git a/api-ref/source/v3/samples/volumes/v3.63/volumes-list-detailed-response.json b/api-ref/source/v3/samples/volumes/v3.63/volumes-list-detailed-response.json |
2282 | deleted file mode 100644 |
2283 | index b899e84..0000000 |
2284 | --- a/api-ref/source/v3/samples/volumes/v3.63/volumes-list-detailed-response.json |
2285 | +++ /dev/null |
2286 | @@ -1,46 +0,0 @@ |
2287 | -{ |
2288 | - "volumes": [ |
2289 | - { |
2290 | - "attachments": [], |
2291 | - "availability_zone": "nova", |
2292 | - "bootable": "false", |
2293 | - "consistencygroup_id": null, |
2294 | - "created_at": "2018-11-28T06:25:15.288987", |
2295 | - "description": null, |
2296 | - "encrypted": false, |
2297 | - "id": "cb49b381-9012-40cb-b8ee-80c19a4801b5", |
2298 | - "links": [ |
2299 | - { |
2300 | - "href": "http://127.0.0.1:43543/v3/89afd400-b646-4bbc-b12b-c0a4d63e5bd3/volumes/cb49b381-9012-40cb-b8ee-80c19a4801b5", |
2301 | - "rel": "self" |
2302 | - }, |
2303 | - { |
2304 | - "href": "http://127.0.0.1:43543/89afd400-b646-4bbc-b12b-c0a4d63e5bd3/volumes/cb49b381-9012-40cb-b8ee-80c19a4801b5", |
2305 | - "rel": "bookmark" |
2306 | - } |
2307 | - ], |
2308 | - "metadata": {}, |
2309 | - "migration_status": null, |
2310 | - "multiattach": false, |
2311 | - "name": null, |
2312 | - "os-vol-host-attr:host": null, |
2313 | - "os-vol-mig-status-attr:migstat": null, |
2314 | - "os-vol-mig-status-attr:name_id": null, |
2315 | - "os-vol-tenant-attr:tenant_id": "89afd400-b646-4bbc-b12b-c0a4d63e5bd3", |
2316 | - "replication_status": null, |
2317 | - "size": 10, |
2318 | - "snapshot_id": null, |
2319 | - "source_volid": null, |
2320 | - "status": "creating", |
2321 | - "updated_at": null, |
2322 | - "user_id": "c853ca26-e8ea-4797-8a52-ee124a013d0e", |
2323 | - "volume_type": "__DEFAULT__", |
2324 | - "provider_id": null, |
2325 | - "group_id": null, |
2326 | - "service_uuid": null, |
2327 | - "shared_targets": true, |
2328 | - "cluster_name": null, |
2329 | - "volume_type_id": "5fed9d7c-401d-46e2-8e80-f30c70cb7e1d" |
2330 | - } |
2331 | - ] |
2332 | -} |
2333 | diff --git a/api-ref/source/v3/samples/volumes/v3.65/volume-create-response.json b/api-ref/source/v3/samples/volumes/v3.65/volume-create-response.json |
2334 | deleted file mode 100644 |
2335 | index 4dc4775..0000000 |
2336 | --- a/api-ref/source/v3/samples/volumes/v3.65/volume-create-response.json |
2337 | +++ /dev/null |
2338 | @@ -1,41 +0,0 @@ |
2339 | -{ |
2340 | - "volume": { |
2341 | - "attachments": [], |
2342 | - "availability_zone": "nova", |
2343 | - "bootable": "false", |
2344 | - "consistencygroup_id": null, |
2345 | - "created_at": "2018-11-28T06:21:12.715987", |
2346 | - "description": null, |
2347 | - "encrypted": false, |
2348 | - "id": "2b955850-f177-45f7-9f49-ecb2c256d161", |
2349 | - "links": [ |
2350 | - { |
2351 | - "href": "http://127.0.0.1:33951/v3/89afd400-b646-4bbc-b12b-c0a4d63e5bd3/volumes/2b955850-f177-45f7-9f49-ecb2c256d161", |
2352 | - "rel": "self" |
2353 | - }, |
2354 | - { |
2355 | - "href": "http://127.0.0.1:33951/89afd400-b646-4bbc-b12b-c0a4d63e5bd3/volumes/2b955850-f177-45f7-9f49-ecb2c256d161", |
2356 | - "rel": "bookmark" |
2357 | - } |
2358 | - ], |
2359 | - "metadata": {}, |
2360 | - "migration_status": null, |
2361 | - "multiattach": false, |
2362 | - "name": null, |
2363 | - "replication_status": null, |
2364 | - "size": 10, |
2365 | - "snapshot_id": null, |
2366 | - "source_volid": null, |
2367 | - "status": "creating", |
2368 | - "updated_at": null, |
2369 | - "user_id": "c853ca26-e8ea-4797-8a52-ee124a013d0e", |
2370 | - "volume_type": "__DEFAULT__", |
2371 | - "group_id": null, |
2372 | - "provider_id": null, |
2373 | - "service_uuid": null, |
2374 | - "shared_targets": true, |
2375 | - "cluster_name": null, |
2376 | - "volume_type_id": "5fed9d7c-401d-46e2-8e80-f30c70cb7e1d", |
2377 | - "consumes_quota": true |
2378 | - } |
2379 | -} |
2380 | diff --git a/api-ref/source/v3/samples/volumes/v3.65/volume-show-response.json b/api-ref/source/v3/samples/volumes/v3.65/volume-show-response.json |
2381 | deleted file mode 100644 |
2382 | index 690bb22..0000000 |
2383 | --- a/api-ref/source/v3/samples/volumes/v3.65/volume-show-response.json |
2384 | +++ /dev/null |
2385 | @@ -1,45 +0,0 @@ |
2386 | -{ |
2387 | - "volume": { |
2388 | - "attachments": [], |
2389 | - "availability_zone": "nova", |
2390 | - "bootable": "false", |
2391 | - "consistencygroup_id": null, |
2392 | - "created_at": "2018-11-29T06:50:07.770785", |
2393 | - "description": null, |
2394 | - "encrypted": false, |
2395 | - "id": "f7223234-1afc-4d19-bfa3-d19deb6235ef", |
2396 | - "links": [ |
2397 | - { |
2398 | - "href": "http://127.0.0.1:45839/v3/89afd400-b646-4bbc-b12b-c0a4d63e5bd3/volumes/f7223234-1afc-4d19-bfa3-d19deb6235ef", |
2399 | - "rel": "self" |
2400 | - }, |
2401 | - { |
2402 | - "href": "http://127.0.0.1:45839/89afd400-b646-4bbc-b12b-c0a4d63e5bd3/volumes/f7223234-1afc-4d19-bfa3-d19deb6235ef", |
2403 | - "rel": "bookmark" |
2404 | - } |
2405 | - ], |
2406 | - "metadata": {}, |
2407 | - "migration_status": null, |
2408 | - "multiattach": false, |
2409 | - "name": null, |
2410 | - "os-vol-host-attr:host": null, |
2411 | - "os-vol-mig-status-attr:migstat": null, |
2412 | - "os-vol-mig-status-attr:name_id": null, |
2413 | - "os-vol-tenant-attr:tenant_id": "89afd400-b646-4bbc-b12b-c0a4d63e5bd3", |
2414 | - "replication_status": null, |
2415 | - "size": 10, |
2416 | - "snapshot_id": null, |
2417 | - "source_volid": null, |
2418 | - "status": "creating", |
2419 | - "updated_at": null, |
2420 | - "user_id": "c853ca26-e8ea-4797-8a52-ee124a013d0e", |
2421 | - "volume_type": "__DEFAULT__", |
2422 | - "provider_id": null, |
2423 | - "group_id": null, |
2424 | - "service_uuid": null, |
2425 | - "shared_targets": true, |
2426 | - "cluster_name": null, |
2427 | - "volume_type_id": "5fed9d7c-401d-46e2-8e80-f30c70cb7e1d", |
2428 | - "consumes_quota": true |
2429 | - } |
2430 | -} |
2431 | diff --git a/api-ref/source/v3/samples/volumes/v3.65/volume-update-response.json b/api-ref/source/v3/samples/volumes/v3.65/volume-update-response.json |
2432 | deleted file mode 100644 |
2433 | index 3d8f209..0000000 |
2434 | --- a/api-ref/source/v3/samples/volumes/v3.65/volume-update-response.json |
2435 | +++ /dev/null |
2436 | @@ -1,43 +0,0 @@ |
2437 | -{ |
2438 | - "volume": { |
2439 | - "attachments": [], |
2440 | - "availability_zone": "nova", |
2441 | - "bootable": "false", |
2442 | - "consistencygroup_id": null, |
2443 | - "created_at": "2018-11-29T06:59:23.679903", |
2444 | - "description": "This is yet, another volume.", |
2445 | - "encrypted": false, |
2446 | - "id": "8b2459d1-0059-4e14-a89f-dfa73a452af6", |
2447 | - "links": [ |
2448 | - { |
2449 | - "href": "http://127.0.0.1:41467/v3/89afd400-b646-4bbc-b12b-c0a4d63e5bd3/volumes/8b2459d1-0059-4e14-a89f-dfa73a452af6", |
2450 | - "rel": "self" |
2451 | - }, |
2452 | - { |
2453 | - "href": "http://127.0.0.1:41467/89afd400-b646-4bbc-b12b-c0a4d63e5bd3/volumes/8b2459d1-0059-4e14-a89f-dfa73a452af6", |
2454 | - "rel": "bookmark" |
2455 | - } |
2456 | - ], |
2457 | - "metadata": { |
2458 | - "name": "metadata0" |
2459 | - }, |
2460 | - "migration_status": null, |
2461 | - "multiattach": false, |
2462 | - "name": "vol-003", |
2463 | - "replication_status": null, |
2464 | - "size": 10, |
2465 | - "snapshot_id": null, |
2466 | - "source_volid": null, |
2467 | - "status": "creating", |
2468 | - "updated_at": null, |
2469 | - "user_id": "c853ca26-e8ea-4797-8a52-ee124a013d0e", |
2470 | - "volume_type": "__DEFAULT__", |
2471 | - "group_id": null, |
2472 | - "provider_id": null, |
2473 | - "service_uuid": null, |
2474 | - "shared_targets": true, |
2475 | - "cluster_name": null, |
2476 | - "volume_type_id": "5fed9d7c-401d-46e2-8e80-f30c70cb7e1d", |
2477 | - "consumes_quota": true |
2478 | - } |
2479 | -} |
2480 | diff --git a/api-ref/source/v3/samples/volumes/v3.65/volumes-list-detailed-response.json b/api-ref/source/v3/samples/volumes/v3.65/volumes-list-detailed-response.json |
2481 | deleted file mode 100644 |
2482 | index ceaa39c..0000000 |
2483 | --- a/api-ref/source/v3/samples/volumes/v3.65/volumes-list-detailed-response.json |
2484 | +++ /dev/null |
2485 | @@ -1,47 +0,0 @@ |
2486 | -{ |
2487 | - "volumes": [ |
2488 | - { |
2489 | - "attachments": [], |
2490 | - "availability_zone": "nova", |
2491 | - "bootable": "false", |
2492 | - "consistencygroup_id": null, |
2493 | - "created_at": "2018-11-28T06:25:15.288987", |
2494 | - "description": null, |
2495 | - "encrypted": false, |
2496 | - "id": "cb49b381-9012-40cb-b8ee-80c19a4801b5", |
2497 | - "links": [ |
2498 | - { |
2499 | - "href": "http://127.0.0.1:43543/v3/89afd400-b646-4bbc-b12b-c0a4d63e5bd3/volumes/cb49b381-9012-40cb-b8ee-80c19a4801b5", |
2500 | - "rel": "self" |
2501 | - }, |
2502 | - { |
2503 | - "href": "http://127.0.0.1:43543/89afd400-b646-4bbc-b12b-c0a4d63e5bd3/volumes/cb49b381-9012-40cb-b8ee-80c19a4801b5", |
2504 | - "rel": "bookmark" |
2505 | - } |
2506 | - ], |
2507 | - "metadata": {}, |
2508 | - "migration_status": null, |
2509 | - "multiattach": false, |
2510 | - "name": null, |
2511 | - "os-vol-host-attr:host": null, |
2512 | - "os-vol-mig-status-attr:migstat": null, |
2513 | - "os-vol-mig-status-attr:name_id": null, |
2514 | - "os-vol-tenant-attr:tenant_id": "89afd400-b646-4bbc-b12b-c0a4d63e5bd3", |
2515 | - "replication_status": null, |
2516 | - "size": 10, |
2517 | - "snapshot_id": null, |
2518 | - "source_volid": null, |
2519 | - "status": "creating", |
2520 | - "updated_at": null, |
2521 | - "user_id": "c853ca26-e8ea-4797-8a52-ee124a013d0e", |
2522 | - "volume_type": "__DEFAULT__", |
2523 | - "volume_type_id": "5fed9d7c-401d-46e2-8e80-f30c70cb7e1d", |
2524 | - "provider_id": null, |
2525 | - "group_id": null, |
2526 | - "service_uuid": null, |
2527 | - "shared_targets": true, |
2528 | - "cluster_name": null, |
2529 | - "consumes_quota": true |
2530 | - } |
2531 | - ] |
2532 | -} |
2533 | diff --git a/api-ref/source/v3/samples/volumes/volume-create-response.json b/api-ref/source/v3/samples/volumes/volume-create-response.json |
2534 | index 4bd8a6e..30feb2a 100644 |
2535 | --- a/api-ref/source/v3/samples/volumes/volume-create-response.json |
2536 | +++ b/api-ref/source/v3/samples/volumes/volume-create-response.json |
2537 | @@ -31,4 +31,4 @@ |
2538 | "user_id": "c853ca26-e8ea-4797-8a52-ee124a013d0e", |
2539 | "volume_type": "__DEFAULT__" |
2540 | } |
2541 | -} |
2542 | +} |
2543 | \ No newline at end of file |
2544 | diff --git a/api-ref/source/v3/samples/volumes/volume-show-response.json b/api-ref/source/v3/samples/volumes/volume-show-response.json |
2545 | index faf9be2..186411e 100644 |
2546 | --- a/api-ref/source/v3/samples/volumes/volume-show-response.json |
2547 | +++ b/api-ref/source/v3/samples/volumes/volume-show-response.json |
2548 | @@ -35,4 +35,4 @@ |
2549 | "user_id": "c853ca26-e8ea-4797-8a52-ee124a013d0e", |
2550 | "volume_type": "__DEFAULT__" |
2551 | } |
2552 | -} |
2553 | +} |
2554 | \ No newline at end of file |
2555 | diff --git a/api-ref/source/v3/samples/volumes/volume-update-response.json b/api-ref/source/v3/samples/volumes/volume-update-response.json |
2556 | index a41d41f..4a587f6 100644 |
2557 | --- a/api-ref/source/v3/samples/volumes/volume-update-response.json |
2558 | +++ b/api-ref/source/v3/samples/volumes/volume-update-response.json |
2559 | @@ -33,4 +33,4 @@ |
2560 | "user_id": "c853ca26-e8ea-4797-8a52-ee124a013d0e", |
2561 | "volume_type": "__DEFAULT__" |
2562 | } |
2563 | -} |
2564 | +} |
2565 | \ No newline at end of file |
2566 | diff --git a/api-ref/source/v3/samples/volumes/volumes-list-detailed-response.json b/api-ref/source/v3/samples/volumes/volumes-list-detailed-response.json |
2567 | index f077bec..82c73ee 100644 |
2568 | --- a/api-ref/source/v3/samples/volumes/volumes-list-detailed-response.json |
2569 | +++ b/api-ref/source/v3/samples/volumes/volumes-list-detailed-response.json |
2570 | @@ -34,7 +34,13 @@ |
2571 | "status": "creating", |
2572 | "updated_at": null, |
2573 | "user_id": "c853ca26-e8ea-4797-8a52-ee124a013d0e", |
2574 | - "volume_type": "__DEFAULT__" |
2575 | + "volume_type": "__DEFAULT__", |
2576 | + "volume_type_id": "5fed9d7c-401d-46e2-8e80-f30c70cb7e1d", |
2577 | + "provider_id": null, |
2578 | + "group_id": null, |
2579 | + "service_uuid": null, |
2580 | + "shared_targets": true, |
2581 | + "cluster_name": null |
2582 | } |
2583 | ] |
2584 | -} |
2585 | +} |
2586 | \ No newline at end of file |
2587 | diff --git a/api-ref/source/v3/vol-transfer-v3.inc b/api-ref/source/v3/vol-transfer-v3.inc |
2588 | index 4328bd6..62f5136 100644 |
2589 | --- a/api-ref/source/v3/vol-transfer-v3.inc |
2590 | +++ b/api-ref/source/v3/vol-transfer-v3.inc |
2591 | @@ -50,7 +50,7 @@ Response Parameters |
2592 | - volume_id: volume_id |
2593 | - id: id |
2594 | - links: links |
2595 | - - name: transfer_name |
2596 | + - name: name |
2597 | |
2598 | Response Example |
2599 | ---------------- |
2600 | diff --git a/api-ref/source/v3/volumes-v3-snapshots.inc b/api-ref/source/v3/volumes-v3-snapshots.inc |
2601 | index cede89a..246511a 100644 |
2602 | --- a/api-ref/source/v3/volumes-v3-snapshots.inc |
2603 | +++ b/api-ref/source/v3/volumes-v3-snapshots.inc |
2604 | @@ -67,7 +67,6 @@ Request |
2605 | - offset: offset |
2606 | - marker: marker |
2607 | - with_count: with_count |
2608 | - - consumes_quota: filter_consumes_quota |
2609 | |
2610 | |
2611 | Response Parameters |
2612 | @@ -89,13 +88,11 @@ Response Parameters |
2613 | - count: count |
2614 | - updated_at: updated_at |
2615 | - snapshots_links: links_snap |
2616 | - - group_snapshot_id: group_snapshot_id_3_14 |
2617 | - - consumes_quota: consumes_quota |
2618 | |
2619 | -Response Example (v3.65) |
2620 | ------------------------- |
2621 | +Response Example |
2622 | +---------------- |
2623 | |
2624 | -.. literalinclude:: ./samples/snapshots/v3.65/snapshots-list-detailed-response.json |
2625 | +.. literalinclude:: ./samples/snapshots/snapshots-list-detailed-response.json |
2626 | :language: javascript |
2627 | |
2628 | |
2629 | @@ -107,12 +104,6 @@ Create a snapshot |
2630 | Creates a volume snapshot, which is a point-in-time, complete copy of a volume. |
2631 | You can create a volume from a snapshot. |
2632 | |
2633 | -Prior to API version 3.66, a 'force' flag was required to create a snapshot of |
2634 | -an in-use volume, but this is no longer the case. From API version 3.66, the |
2635 | -'force' flag is invalid when passed in a volume snapshot request. (For |
2636 | -backward compatibility, however, a 'force' flag with a value evaluating to |
2637 | -True is silently ignored.) |
2638 | - |
2639 | Response codes |
2640 | -------------- |
2641 | |
2642 | @@ -156,13 +147,11 @@ Response Parameters |
2643 | - id: id_snap |
2644 | - size: size |
2645 | - updated_at: updated_at |
2646 | - - group_snapshot_id: group_snapshot_id_3_14 |
2647 | - - consumes_quota: consumes_quota |
2648 | |
2649 | -Response Example (v3.65) |
2650 | ------------------------- |
2651 | +Response Example |
2652 | +---------------- |
2653 | |
2654 | -.. literalinclude:: ./samples/snapshots/v3.65/snapshot-create-response.json |
2655 | +.. literalinclude:: ./samples/snapshots/snapshot-create-response.json |
2656 | :language: javascript |
2657 | |
2658 | |
2659 | @@ -198,7 +187,6 @@ Request |
2660 | - limit: limit |
2661 | - offset: offset |
2662 | - marker: marker |
2663 | - - consumes_quota: filter_consumes_quota |
2664 | - with_count: with_count |
2665 | |
2666 | |
2667 | @@ -397,13 +385,11 @@ Response Parameters |
2668 | - id: id_snap |
2669 | - metadata: metadata |
2670 | - updated_at: updated_at |
2671 | - - group_snapshot_id: group_snapshot_id_3_14 |
2672 | - - consumes_quota: consumes_quota |
2673 | |
2674 | -Response Example (v3.65) |
2675 | ------------------------- |
2676 | +Response Example |
2677 | +---------------- |
2678 | |
2679 | -.. literalinclude:: ./samples/snapshots/v3.65/snapshot-show-response.json |
2680 | +.. literalinclude:: ./samples/snapshots/snapshot-show-response.json |
2681 | :language: javascript |
2682 | |
2683 | |
2684 | @@ -431,7 +417,7 @@ Request |
2685 | - snapshot_id: snapshot_id_path |
2686 | - snapshot: snapshot_obj |
2687 | - description: description_snap |
2688 | - - name: snapshot_name |
2689 | + - name: name |
2690 | |
2691 | Request Example |
2692 | --------------- |
2693 | @@ -456,13 +442,11 @@ Response Parameters |
2694 | - volume_id: volume_id_snap |
2695 | - user_id: user_id_min |
2696 | - metadata: metadata |
2697 | - - group_snapshot_id: group_snapshot_id_3_14 |
2698 | - - consumes_quota: consumes_quota |
2699 | |
2700 | -Response Example (v3.65) |
2701 | ------------------------- |
2702 | +Response Example |
2703 | +---------------- |
2704 | |
2705 | -.. literalinclude:: ./samples/snapshots/v3.65/snapshot-update-response.json |
2706 | +.. literalinclude:: ./samples/snapshots/snapshot-update-response.json |
2707 | :language: javascript |
2708 | |
2709 | |
2710 | diff --git a/api-ref/source/v3/volumes-v3-volumes.inc b/api-ref/source/v3/volumes-v3-volumes.inc |
2711 | index 2d7d8f4..49cbc4b 100644 |
2712 | --- a/api-ref/source/v3/volumes-v3-volumes.inc |
2713 | +++ b/api-ref/source/v3/volumes-v3-volumes.inc |
2714 | @@ -4,9 +4,7 @@ Volumes (volumes) |
2715 | ================= |
2716 | |
2717 | A volume is a detachable block storage device similar to a USB hard |
2718 | -drive. You can attach a volume to an instance, and if the volume is |
2719 | -of an appropriate volume type, a volume can be attached to multiple |
2720 | -instances. |
2721 | +drive. You can attach a volume to one instance at a time. |
2722 | |
2723 | The ``snapshot_id`` and ``source_volid`` parameters specify the ID |
2724 | of the snapshot or volume from which this volume originates. If the |
2725 | @@ -98,7 +96,6 @@ Request |
2726 | - with_count: with_count |
2727 | - created_at: filter_created_at |
2728 | - updated_at: filter_updated_at |
2729 | - - consumes_quota: filter_consumes_quota |
2730 | |
2731 | |
2732 | Response Parameters |
2733 | @@ -137,18 +134,14 @@ Response Parameters |
2734 | - volume_type_id: volume_type_id_363 |
2735 | - group_id: group_id_optional |
2736 | - volumes_links: links_vol_optional |
2737 | - - provider_id: provider_id |
2738 | - - service_uuid: service_uuid |
2739 | - - shared_targets: shared_targets |
2740 | - - cluster_name: cluster_name |
2741 | - - consumes_quota: consumes_quota |
2742 | - count: count |
2743 | |
2744 | |
2745 | -Response Example (v3.65) |
2746 | ------------------------- |
2747 | |
2748 | -.. literalinclude:: ./samples/volumes/v3.65/volumes-list-detailed-response.json |
2749 | +Response Example |
2750 | +---------------- |
2751 | + |
2752 | +.. literalinclude:: ./samples/volumes/volumes-list-detailed-response.json |
2753 | :language: javascript |
2754 | |
2755 | |
2756 | @@ -254,18 +247,12 @@ Response Parameters |
2757 | - bootable: bootable_response |
2758 | - created_at: created_at |
2759 | - volume_type: volume_type_vol |
2760 | - - volume_type_id: volume_type_id_363 |
2761 | - group_id: group_id_optional |
2762 | - - provider_id: provider_id |
2763 | - - service_uuid: service_uuid |
2764 | - - shared_targets: shared_targets |
2765 | - - cluster_name: cluster_name |
2766 | - - consumes_quota: consumes_quota |
2767 | |
2768 | -Response Example (v3.65) |
2769 | ------------------------- |
2770 | +Response Example |
2771 | +---------------- |
2772 | |
2773 | -.. literalinclude:: ./samples/volumes/v3.65/volume-create-response.json |
2774 | +.. literalinclude:: ./samples/volumes/volume-create-response.json |
2775 | :language: javascript |
2776 | |
2777 | |
2778 | @@ -304,7 +291,6 @@ Request |
2779 | - marker: marker |
2780 | - with_count: with_count |
2781 | - created_at: filter_created_at |
2782 | - - consumes_quota: filter_consumes_quota |
2783 | - updated_at: filter_updated_at |
2784 | |
2785 | |
2786 | @@ -396,15 +382,12 @@ Response Parameters |
2787 | - service_uuid: service_uuid |
2788 | - shared_targets: shared_targets |
2789 | - cluster_name: cluster_name |
2790 | - - provider_id: provider_id |
2791 | - - group_id: group_id_optional |
2792 | - - consumes_quota: consumes_quota |
2793 | |
2794 | |
2795 | -Response Example (v3.65) |
2796 | ------------------------- |
2797 | +Response Example |
2798 | +---------------- |
2799 | |
2800 | -.. literalinclude:: ./samples/volumes/v3.65/volume-show-response.json |
2801 | +.. literalinclude:: ./samples/volumes/volume-show-response.json |
2802 | :language: javascript |
2803 | |
2804 | |
2805 | @@ -472,19 +455,12 @@ Response Parameters |
2806 | - bootable: bootable_response |
2807 | - created_at: created_at |
2808 | - volume_type: volume_type_vol |
2809 | - - volume_type_id: volume_type_id_363 |
2810 | - - group_id: group_id_optional |
2811 | - - provider_id: provider_id |
2812 | - - service_uuid: service_uuid |
2813 | - - shared_targets: shared_targets |
2814 | - - cluster_name: cluster_name |
2815 | - - consumes_quota: consumes_quota |
2816 | |
2817 | |
2818 | -Response Example (v3.65) |
2819 | ------------------------- |
2820 | +Response Example |
2821 | +---------------- |
2822 | |
2823 | -.. literalinclude:: ./samples/volumes/v3.65/volume-update-response.json |
2824 | +.. literalinclude:: ./samples/volumes/volume-update-response.json |
2825 | :language: javascript |
2826 | |
2827 | |
2828 | diff --git a/cinder.egg-info/PKG-INFO b/cinder.egg-info/PKG-INFO |
2829 | index c4068a6..5aabd63 100644 |
2830 | --- a/cinder.egg-info/PKG-INFO |
2831 | +++ b/cinder.egg-info/PKG-INFO |
2832 | @@ -1,6 +1,6 @@ |
2833 | Metadata-Version: 2.1 |
2834 | Name: cinder |
2835 | -Version: 19.1.0 |
2836 | +Version: 18.2.0 |
2837 | Summary: OpenStack Block Storage |
2838 | Home-page: https://docs.openstack.org/cinder/latest/ |
2839 | Author: OpenStack |
2840 | diff --git a/cinder.egg-info/SOURCES.txt b/cinder.egg-info/SOURCES.txt |
2841 | index cfb91e0..fdb5b7f 100644 |
2842 | --- a/cinder.egg-info/SOURCES.txt |
2843 | +++ b/cinder.egg-info/SOURCES.txt |
2844 | @@ -10,6 +10,7 @@ LICENSE |
2845 | README.rst |
2846 | bindep.txt |
2847 | driver-requirements.txt |
2848 | +lower-constraints.txt |
2849 | mypy-files.txt |
2850 | reno.yaml |
2851 | requirements.txt |
2852 | @@ -373,18 +374,6 @@ api-ref/source/v3/samples/snapshots/snapshot-update-request.json |
2853 | api-ref/source/v3/samples/snapshots/snapshot-update-response.json |
2854 | api-ref/source/v3/samples/snapshots/snapshots-list-detailed-response.json |
2855 | api-ref/source/v3/samples/snapshots/snapshots-list-response.json |
2856 | -api-ref/source/v3/samples/snapshots/v3.14/snapshot-create-response.json |
2857 | -api-ref/source/v3/samples/snapshots/v3.14/snapshot-show-response.json |
2858 | -api-ref/source/v3/samples/snapshots/v3.14/snapshot-update-response.json |
2859 | -api-ref/source/v3/samples/snapshots/v3.14/snapshots-list-detailed-response.json |
2860 | -api-ref/source/v3/samples/snapshots/v3.41/snapshot-create-response.json |
2861 | -api-ref/source/v3/samples/snapshots/v3.41/snapshot-show-response.json |
2862 | -api-ref/source/v3/samples/snapshots/v3.41/snapshot-update-response.json |
2863 | -api-ref/source/v3/samples/snapshots/v3.41/snapshots-list-detailed-response.json |
2864 | -api-ref/source/v3/samples/snapshots/v3.65/snapshot-create-response.json |
2865 | -api-ref/source/v3/samples/snapshots/v3.65/snapshot-show-response.json |
2866 | -api-ref/source/v3/samples/snapshots/v3.65/snapshot-update-response.json |
2867 | -api-ref/source/v3/samples/snapshots/v3.65/snapshots-list-detailed-response.json |
2868 | api-ref/source/v3/samples/versions/version-show-response.json |
2869 | api-ref/source/v3/samples/versions/versions-response.json |
2870 | api-ref/source/v3/samples/volume_actions/volume-upload-to-image-request.json |
2871 | @@ -435,30 +424,6 @@ api-ref/source/v3/samples/volumes/volume-update-response.json |
2872 | api-ref/source/v3/samples/volumes/volumes-list-detailed-response.json |
2873 | api-ref/source/v3/samples/volumes/volumes-list-response.json |
2874 | api-ref/source/v3/samples/volumes/volumes-list-summary-response.json |
2875 | -api-ref/source/v3/samples/volumes/v3.13/volume-create-response.json |
2876 | -api-ref/source/v3/samples/volumes/v3.13/volume-show-response.json |
2877 | -api-ref/source/v3/samples/volumes/v3.13/volume-update-response.json |
2878 | -api-ref/source/v3/samples/volumes/v3.13/volumes-list-detailed-response.json |
2879 | -api-ref/source/v3/samples/volumes/v3.21/volume-create-response.json |
2880 | -api-ref/source/v3/samples/volumes/v3.21/volume-show-response.json |
2881 | -api-ref/source/v3/samples/volumes/v3.21/volume-update-response.json |
2882 | -api-ref/source/v3/samples/volumes/v3.21/volumes-list-detailed-response.json |
2883 | -api-ref/source/v3/samples/volumes/v3.48/volume-create-response.json |
2884 | -api-ref/source/v3/samples/volumes/v3.48/volume-show-response.json |
2885 | -api-ref/source/v3/samples/volumes/v3.48/volume-update-response.json |
2886 | -api-ref/source/v3/samples/volumes/v3.48/volumes-list-detailed-response.json |
2887 | -api-ref/source/v3/samples/volumes/v3.61/volume-create-response.json |
2888 | -api-ref/source/v3/samples/volumes/v3.61/volume-show-response.json |
2889 | -api-ref/source/v3/samples/volumes/v3.61/volume-update-response.json |
2890 | -api-ref/source/v3/samples/volumes/v3.61/volumes-list-detailed-response.json |
2891 | -api-ref/source/v3/samples/volumes/v3.63/volume-create-response.json |
2892 | -api-ref/source/v3/samples/volumes/v3.63/volume-show-response.json |
2893 | -api-ref/source/v3/samples/volumes/v3.63/volume-update-response.json |
2894 | -api-ref/source/v3/samples/volumes/v3.63/volumes-list-detailed-response.json |
2895 | -api-ref/source/v3/samples/volumes/v3.65/volume-create-response.json |
2896 | -api-ref/source/v3/samples/volumes/v3.65/volume-show-response.json |
2897 | -api-ref/source/v3/samples/volumes/v3.65/volume-update-response.json |
2898 | -api-ref/source/v3/samples/volumes/v3.65/volumes-list-detailed-response.json |
2899 | cinder/__init__.py |
2900 | cinder/context.py |
2901 | cinder/coordination.py |
2902 | @@ -564,10 +529,14 @@ cinder/api/schemas/volumes.py |
2903 | cinder/api/schemas/workers.py |
2904 | cinder/api/v2/__init__.py |
2905 | cinder/api/v2/limits.py |
2906 | +cinder/api/v2/router.py |
2907 | +cinder/api/v2/snapshot_metadata.py |
2908 | cinder/api/v2/snapshots.py |
2909 | +cinder/api/v2/types.py |
2910 | cinder/api/v2/volume_metadata.py |
2911 | cinder/api/v2/volumes.py |
2912 | cinder/api/v2/views/__init__.py |
2913 | +cinder/api/v2/views/types.py |
2914 | cinder/api/v2/views/volumes.py |
2915 | cinder/api/v3/__init__.py |
2916 | cinder/api/v3/attachments.py |
2917 | @@ -585,9 +554,7 @@ cinder/api/v3/resource_common_manage.py |
2918 | cinder/api/v3/resource_filters.py |
2919 | cinder/api/v3/router.py |
2920 | cinder/api/v3/snapshot_manage.py |
2921 | -cinder/api/v3/snapshot_metadata.py |
2922 | cinder/api/v3/snapshots.py |
2923 | -cinder/api/v3/types.py |
2924 | cinder/api/v3/volume_manage.py |
2925 | cinder/api/v3/volume_metadata.py |
2926 | cinder/api/v3/volume_transfer.py |
2927 | @@ -604,7 +571,6 @@ cinder/api/v3/views/groups.py |
2928 | cinder/api/v3/views/messages.py |
2929 | cinder/api/v3/views/resource_filters.py |
2930 | cinder/api/v3/views/snapshots.py |
2931 | -cinder/api/v3/views/types.py |
2932 | cinder/api/v3/views/volumes.py |
2933 | cinder/api/v3/views/workers.py |
2934 | cinder/api/validation/__init__.py |
2935 | @@ -659,34 +625,36 @@ cinder/common/sqlalchemyutils.py |
2936 | cinder/compute/__init__.py |
2937 | cinder/compute/nova.py |
2938 | cinder/db/__init__.py |
2939 | -cinder/db/alembic.ini |
2940 | cinder/db/api.py |
2941 | cinder/db/base.py |
2942 | cinder/db/migration.py |
2943 | -cinder/db/legacy_migrations/README |
2944 | -cinder/db/legacy_migrations/__init__.py |
2945 | -cinder/db/legacy_migrations/manage.py |
2946 | -cinder/db/legacy_migrations/migrate.cfg |
2947 | -cinder/db/legacy_migrations/versions/135_cinder_init.py |
2948 | -cinder/db/legacy_migrations/versions/136_make_vol_type_col_non_nullable.py |
2949 | -cinder/db/legacy_migrations/versions/137_placeholder.py |
2950 | -cinder/db/legacy_migrations/versions/138_placeholder.py |
2951 | -cinder/db/legacy_migrations/versions/139_placeholder.py |
2952 | -cinder/db/legacy_migrations/versions/140_create_project_default_volume_type.py |
2953 | -cinder/db/legacy_migrations/versions/141_add_quota_usage_unique_constraint.py |
2954 | -cinder/db/legacy_migrations/versions/142_placeholder.py |
2955 | -cinder/db/legacy_migrations/versions/143_placeholder.py |
2956 | -cinder/db/legacy_migrations/versions/144_placeholder.py |
2957 | -cinder/db/legacy_migrations/versions/145_add_use_quota_fields.py |
2958 | -cinder/db/legacy_migrations/versions/__init__.py |
2959 | -cinder/db/migrations/__init__.py |
2960 | -cinder/db/migrations/env.py |
2961 | -cinder/db/migrations/script.py.mako |
2962 | -cinder/db/migrations/versions/921e1a36b076_initial.py |
2963 | -cinder/db/migrations/versions/__init__.py |
2964 | cinder/db/sqlalchemy/__init__.py |
2965 | cinder/db/sqlalchemy/api.py |
2966 | cinder/db/sqlalchemy/models.py |
2967 | +cinder/db/sqlalchemy/migrate_repo/README |
2968 | +cinder/db/sqlalchemy/migrate_repo/__init__.py |
2969 | +cinder/db/sqlalchemy/migrate_repo/manage.py |
2970 | +cinder/db/sqlalchemy/migrate_repo/migrate.cfg |
2971 | +cinder/db/sqlalchemy/migrate_repo/versions/123_cinder_init.py |
2972 | +cinder/db/sqlalchemy/migrate_repo/versions/124_placeholder.py |
2973 | +cinder/db/sqlalchemy/migrate_repo/versions/125_placeholder.py |
2974 | +cinder/db/sqlalchemy/migrate_repo/versions/126_placeholder.py |
2975 | +cinder/db/sqlalchemy/migrate_repo/versions/127_change_project_resource_attribute_for_quota_usages.py |
2976 | +cinder/db/sqlalchemy/migrate_repo/versions/128_add_project_id_and_accepted_to_transfer.py |
2977 | +cinder/db/sqlalchemy/migrate_repo/versions/129_placeholder.py |
2978 | +cinder/db/sqlalchemy/migrate_repo/versions/130_placeholder.py |
2979 | +cinder/db/sqlalchemy/migrate_repo/versions/131_placeholder.py |
2980 | +cinder/db/sqlalchemy/migrate_repo/versions/132_create_default_volume_type.py |
2981 | +cinder/db/sqlalchemy/migrate_repo/versions/133_placeholder.py |
2982 | +cinder/db/sqlalchemy/migrate_repo/versions/134_placeholder.py |
2983 | +cinder/db/sqlalchemy/migrate_repo/versions/135_placeholder.py |
2984 | +cinder/db/sqlalchemy/migrate_repo/versions/136_make_vol_type_col_non_nullable.py |
2985 | +cinder/db/sqlalchemy/migrate_repo/versions/137_placeholder.py |
2986 | +cinder/db/sqlalchemy/migrate_repo/versions/138_placeholder.py |
2987 | +cinder/db/sqlalchemy/migrate_repo/versions/139_placeholder.py |
2988 | +cinder/db/sqlalchemy/migrate_repo/versions/140_create_project_default_volume_type.py |
2989 | +cinder/db/sqlalchemy/migrate_repo/versions/141_add_quota_usage_unique_constraint.py |
2990 | +cinder/db/sqlalchemy/migrate_repo/versions/__init__.py |
2991 | cinder/group/__init__.py |
2992 | cinder/group/api.py |
2993 | cinder/image/__init__.py |
2994 | @@ -893,18 +861,6 @@ cinder/tests/functional/api_sample_tests/samples/snapshots/snapshot-update-reque |
2995 | cinder/tests/functional/api_sample_tests/samples/snapshots/snapshot-update-response.json.tpl |
2996 | cinder/tests/functional/api_sample_tests/samples/snapshots/snapshots-list-detailed-response.json.tpl |
2997 | cinder/tests/functional/api_sample_tests/samples/snapshots/snapshots-list-response.json.tpl |
2998 | -cinder/tests/functional/api_sample_tests/samples/snapshots/v3.14/snapshot-create-response.json.tpl |
2999 | -cinder/tests/functional/api_sample_tests/samples/snapshots/v3.14/snapshot-show-response.json.tpl |
3000 | -cinder/tests/functional/api_sample_tests/samples/snapshots/v3.14/snapshot-update-response.json.tpl |
3001 | -cinder/tests/functional/api_sample_tests/samples/snapshots/v3.14/snapshots-list-detailed-response.json.tpl |
3002 | -cinder/tests/functional/api_sample_tests/samples/snapshots/v3.41/snapshot-create-response.json.tpl |
3003 | -cinder/tests/functional/api_sample_tests/samples/snapshots/v3.41/snapshot-show-response.json.tpl |
3004 | -cinder/tests/functional/api_sample_tests/samples/snapshots/v3.41/snapshot-update-response.json.tpl |
3005 | -cinder/tests/functional/api_sample_tests/samples/snapshots/v3.41/snapshots-list-detailed-response.json.tpl |
3006 | -cinder/tests/functional/api_sample_tests/samples/snapshots/v3.65/snapshot-create-response.json.tpl |
3007 | -cinder/tests/functional/api_sample_tests/samples/snapshots/v3.65/snapshot-show-response.json.tpl |
3008 | -cinder/tests/functional/api_sample_tests/samples/snapshots/v3.65/snapshot-update-response.json.tpl |
3009 | -cinder/tests/functional/api_sample_tests/samples/snapshots/v3.65/snapshots-list-detailed-response.json.tpl |
3010 | cinder/tests/functional/api_sample_tests/samples/versions/version-show-response.json.tpl |
3011 | cinder/tests/functional/api_sample_tests/samples/versions/versions-response.json.tpl |
3012 | cinder/tests/functional/api_sample_tests/samples/volume_actions/volume-upload-to-image-request.json.tpl |
3013 | @@ -952,30 +908,6 @@ cinder/tests/functional/api_sample_tests/samples/volumes/volume-update-request.j |
3014 | cinder/tests/functional/api_sample_tests/samples/volumes/volume-update-response.json.tpl |
3015 | cinder/tests/functional/api_sample_tests/samples/volumes/volumes-list-detailed-response.json.tpl |
3016 | cinder/tests/functional/api_sample_tests/samples/volumes/volumes-list-response.json.tpl |
3017 | -cinder/tests/functional/api_sample_tests/samples/volumes/v3.13/volume-create-response.json.tpl |
3018 | -cinder/tests/functional/api_sample_tests/samples/volumes/v3.13/volume-show-response.json.tpl |
3019 | -cinder/tests/functional/api_sample_tests/samples/volumes/v3.13/volume-update-response.json.tpl |
3020 | -cinder/tests/functional/api_sample_tests/samples/volumes/v3.13/volumes-list-detailed-response.json.tpl |
3021 | -cinder/tests/functional/api_sample_tests/samples/volumes/v3.21/volume-create-response.json.tpl |
3022 | -cinder/tests/functional/api_sample_tests/samples/volumes/v3.21/volume-show-response.json.tpl |
3023 | -cinder/tests/functional/api_sample_tests/samples/volumes/v3.21/volume-update-response.json.tpl |
3024 | -cinder/tests/functional/api_sample_tests/samples/volumes/v3.21/volumes-list-detailed-response.json.tpl |
3025 | -cinder/tests/functional/api_sample_tests/samples/volumes/v3.48/volume-create-response.json.tpl |
3026 | -cinder/tests/functional/api_sample_tests/samples/volumes/v3.48/volume-show-response.json.tpl |
3027 | -cinder/tests/functional/api_sample_tests/samples/volumes/v3.48/volume-update-response.json.tpl |
3028 | -cinder/tests/functional/api_sample_tests/samples/volumes/v3.48/volumes-list-detailed-response.json.tpl |
3029 | -cinder/tests/functional/api_sample_tests/samples/volumes/v3.61/volume-create-response.json.tpl |
3030 | -cinder/tests/functional/api_sample_tests/samples/volumes/v3.61/volume-show-response.json.tpl |
3031 | -cinder/tests/functional/api_sample_tests/samples/volumes/v3.61/volume-update-response.json.tpl |
3032 | -cinder/tests/functional/api_sample_tests/samples/volumes/v3.61/volumes-list-detailed-response.json.tpl |
3033 | -cinder/tests/functional/api_sample_tests/samples/volumes/v3.63/volume-create-response.json.tpl |
3034 | -cinder/tests/functional/api_sample_tests/samples/volumes/v3.63/volume-show-response.json.tpl |
3035 | -cinder/tests/functional/api_sample_tests/samples/volumes/v3.63/volume-update-response.json.tpl |
3036 | -cinder/tests/functional/api_sample_tests/samples/volumes/v3.63/volumes-list-detailed-response.json.tpl |
3037 | -cinder/tests/functional/api_sample_tests/samples/volumes/v3.65/volume-create-response.json.tpl |
3038 | -cinder/tests/functional/api_sample_tests/samples/volumes/v3.65/volume-show-response.json.tpl |
3039 | -cinder/tests/functional/api_sample_tests/samples/volumes/v3.65/volume-update-response.json.tpl |
3040 | -cinder/tests/functional/api_sample_tests/samples/volumes/v3.65/volumes-list-detailed-response.json.tpl |
3041 | cinder/tests/hacking/__init__.py |
3042 | cinder/tests/hacking/checks.py |
3043 | cinder/tests/stubs/oslo_i18n/__init__.pyi |
3044 | @@ -1088,7 +1020,9 @@ cinder/tests/unit/api/openstack/test_wsgi.py |
3045 | cinder/tests/unit/api/v2/__init__.py |
3046 | cinder/tests/unit/api/v2/fakes.py |
3047 | cinder/tests/unit/api/v2/test_limits.py |
3048 | +cinder/tests/unit/api/v2/test_snapshot_metadata.py |
3049 | cinder/tests/unit/api/v2/test_snapshots.py |
3050 | +cinder/tests/unit/api/v2/test_types.py |
3051 | cinder/tests/unit/api/v2/test_volume_metadata.py |
3052 | cinder/tests/unit/api/v2/test_volumes.py |
3053 | cinder/tests/unit/api/v3/__init__.py |
3054 | @@ -1107,10 +1041,8 @@ cinder/tests/unit/api/v3/test_limits.py |
3055 | cinder/tests/unit/api/v3/test_messages.py |
3056 | cinder/tests/unit/api/v3/test_resource_filters.py |
3057 | cinder/tests/unit/api/v3/test_snapshot_manage.py |
3058 | -cinder/tests/unit/api/v3/test_snapshot_metadata.py |
3059 | cinder/tests/unit/api/v3/test_snapshots.py |
3060 | cinder/tests/unit/api/v3/test_types.py |
3061 | -cinder/tests/unit/api/v3/test_types_orig.py |
3062 | cinder/tests/unit/api/v3/test_volume_manage.py |
3063 | cinder/tests/unit/api/v3/test_volume_metadata.py |
3064 | cinder/tests/unit/api/v3/test_volume_transfer.py |
3065 | @@ -1130,7 +1062,6 @@ cinder/tests/unit/backup/fake_service.py |
3066 | cinder/tests/unit/backup/fake_swift_client.py |
3067 | cinder/tests/unit/backup/fake_swift_client2.py |
3068 | cinder/tests/unit/backup/test_backup.py |
3069 | -cinder/tests/unit/backup/test_backup_messages.py |
3070 | cinder/tests/unit/backup/test_chunkeddriver.py |
3071 | cinder/tests/unit/backup/test_rpcapi.py |
3072 | cinder/tests/unit/backup/drivers/__init__.py |
3073 | @@ -1155,7 +1086,6 @@ cinder/tests/unit/consistencygroup/fake_consistencygroup.py |
3074 | cinder/tests/unit/db/__init__.py |
3075 | cinder/tests/unit/db/test_cluster.py |
3076 | cinder/tests/unit/db/test_default_types.py |
3077 | -cinder/tests/unit/db/test_migration.py |
3078 | cinder/tests/unit/db/test_migrations.py |
3079 | cinder/tests/unit/db/test_name_id.py |
3080 | cinder/tests/unit/db/test_orm_relationships.py |
3081 | @@ -1208,28 +1138,11 @@ cinder/tests/unit/objects/test_volume.py |
3082 | cinder/tests/unit/objects/test_volume_attachment.py |
3083 | cinder/tests/unit/objects/test_volume_type.py |
3084 | cinder/tests/unit/policies/__init__.py |
3085 | -cinder/tests/unit/policies/base.py |
3086 | -cinder/tests/unit/policies/test_attachments.py |
3087 | -cinder/tests/unit/policies/test_backups.py |
3088 | cinder/tests/unit/policies/test_base.py |
3089 | cinder/tests/unit/policies/test_default_volume_types.py |
3090 | -cinder/tests/unit/policies/test_group_actions.py |
3091 | -cinder/tests/unit/policies/test_group_snapshots.py |
3092 | -cinder/tests/unit/policies/test_group_types.py |
3093 | -cinder/tests/unit/policies/test_groups.py |
3094 | -cinder/tests/unit/policies/test_limits.py |
3095 | -cinder/tests/unit/policies/test_messages.py |
3096 | -cinder/tests/unit/policies/test_quota_class.py |
3097 | -cinder/tests/unit/policies/test_quotas.py |
3098 | -cinder/tests/unit/policies/test_snapshot_actions.py |
3099 | -cinder/tests/unit/policies/test_snapshot_metadata.py |
3100 | -cinder/tests/unit/policies/test_snapshots.py |
3101 | -cinder/tests/unit/policies/test_type_extra_specs.py |
3102 | cinder/tests/unit/policies/test_volume.py |
3103 | -cinder/tests/unit/policies/test_volume_access.py |
3104 | cinder/tests/unit/policies/test_volume_actions.py |
3105 | cinder/tests/unit/policies/test_volume_metadata.py |
3106 | -cinder/tests/unit/policies/test_volume_transfers.py |
3107 | cinder/tests/unit/policies/test_volume_type.py |
3108 | cinder/tests/unit/scheduler/__init__.py |
3109 | cinder/tests/unit/scheduler/fake_hosts.py |
3110 | @@ -1391,7 +1304,6 @@ cinder/tests/unit/volume/drivers/fusionstorage/test_dsware.py |
3111 | cinder/tests/unit/volume/drivers/fusionstorage/test_fs_client.py |
3112 | cinder/tests/unit/volume/drivers/fusionstorage/test_fs_conf.py |
3113 | cinder/tests/unit/volume/drivers/fusionstorage/test_utils.py |
3114 | -cinder/tests/unit/volume/drivers/hitachi/__init__.py |
3115 | cinder/tests/unit/volume/drivers/hitachi/test_hitachi_hbsd_rest_fc.py |
3116 | cinder/tests/unit/volume/drivers/hitachi/test_hitachi_hbsd_rest_iscsi.py |
3117 | cinder/tests/unit/volume/drivers/hpe/__init__.py |
3118 | @@ -1433,8 +1345,6 @@ cinder/tests/unit/volume/drivers/netapp/dataontap/fakes.py |
3119 | cinder/tests/unit/volume/drivers/netapp/dataontap/test_block_base.py |
3120 | cinder/tests/unit/volume/drivers/netapp/dataontap/test_block_cmode.py |
3121 | cinder/tests/unit/volume/drivers/netapp/dataontap/test_block_driver_interfaces.py |
3122 | -cinder/tests/unit/volume/drivers/netapp/dataontap/test_fc_cmode.py |
3123 | -cinder/tests/unit/volume/drivers/netapp/dataontap/test_iscsi_cmode.py |
3124 | cinder/tests/unit/volume/drivers/netapp/dataontap/test_nfs_base.py |
3125 | cinder/tests/unit/volume/drivers/netapp/dataontap/test_nfs_cmode.py |
3126 | cinder/tests/unit/volume/drivers/netapp/dataontap/client/__init__.py |
3127 | @@ -1477,7 +1387,6 @@ cinder/tests/unit/volume/drivers/toyou/test_acs5000.py |
3128 | cinder/tests/unit/volume/drivers/veritas_access/__init__.py |
3129 | cinder/tests/unit/volume/drivers/veritas_access/test_veritas_iscsi.py |
3130 | cinder/tests/unit/volume/drivers/vmware/__init__.py |
3131 | -cinder/tests/unit/volume/drivers/vmware/fake.py |
3132 | cinder/tests/unit/volume/drivers/vmware/test_fcd.py |
3133 | cinder/tests/unit/volume/drivers/vmware/test_vmware_datastore.py |
3134 | cinder/tests/unit/volume/drivers/vmware/test_vmware_vmdk.py |
3135 | @@ -1612,7 +1521,6 @@ cinder/volume/drivers/hedvig/__init__.py |
3136 | cinder/volume/drivers/hedvig/config.py |
3137 | cinder/volume/drivers/hedvig/hedvig_cinder.py |
3138 | cinder/volume/drivers/hedvig/rest_client.py |
3139 | -cinder/volume/drivers/hitachi/__init__.py |
3140 | cinder/volume/drivers/hitachi/hbsd_common.py |
3141 | cinder/volume/drivers/hitachi/hbsd_fc.py |
3142 | cinder/volume/drivers/hitachi/hbsd_iscsi.py |
3143 | @@ -1889,7 +1797,6 @@ doc/source/admin/blockstorage-over-subscription.rst |
3144 | doc/source/admin/blockstorage-ratelimit-volume-copy-bandwidth.rst |
3145 | doc/source/admin/blockstorage-security.rst |
3146 | doc/source/admin/blockstorage-troubleshoot.rst |
3147 | -doc/source/admin/blockstorage-user-visible-extra-specs.rst |
3148 | doc/source/admin/blockstorage-volume-backed-image.rst |
3149 | doc/source/admin/blockstorage-volume-backups-export-import.rst |
3150 | doc/source/admin/blockstorage-volume-backups.rst |
3151 | @@ -1925,7 +1832,6 @@ doc/source/configuration/block-storage/config-options.rst |
3152 | doc/source/configuration/block-storage/fc-zoning.rst |
3153 | doc/source/configuration/block-storage/logs.rst |
3154 | doc/source/configuration/block-storage/policy-config-HOWTO.rst |
3155 | -doc/source/configuration/block-storage/policy-personas.rst |
3156 | doc/source/configuration/block-storage/policy.rst |
3157 | doc/source/configuration/block-storage/scheduler-filters.rst |
3158 | doc/source/configuration/block-storage/scheduler-weights.rst |
3159 | @@ -2143,7 +2049,6 @@ releasenotes/notes/ZadaraStorage-13a5fff6f4fa1710.yaml |
3160 | releasenotes/notes/a7401ead26a7c83b-keystone-url.yaml |
3161 | releasenotes/notes/add-availability_zone-filter-for-snapshot-8e1494212276abde.yaml |
3162 | releasenotes/notes/add-backup-project-attribute-3f57051ef9159b08.yaml |
3163 | -releasenotes/notes/add-backup-swift-container-storage-policy-8d4a268ed61b9fe2.yaml |
3164 | releasenotes/notes/add-cg-capability-to-groups-2eb3e71682a88600.yaml |
3165 | releasenotes/notes/add-cluster-name-to-volume-details-ce01dd828faafcde.yaml |
3166 | releasenotes/notes/add-coho-driver-b4472bff3f64aa41.yaml |
3167 | @@ -2193,7 +2098,6 @@ releasenotes/notes/backup-path-removal-c411bb6c0d3887f1.yaml |
3168 | releasenotes/notes/backup-snapshot-6e7447db930c31f6.yaml |
3169 | releasenotes/notes/backup-snapshots-2f547c8788bc11e1.yaml |
3170 | releasenotes/notes/backup-update-d0b0db6a7b1c2a5b.yaml |
3171 | -releasenotes/notes/backup-user-messages-5ee0c7ead3def8f9.yaml |
3172 | releasenotes/notes/backup_driver_init_state-d4834fa927e502ab.yaml |
3173 | releasenotes/notes/backup_max_operations-27753c748ba1dc1a.yaml |
3174 | releasenotes/notes/backup_s3_driver-238e3612acd7cc06.yaml |
3175 | @@ -2319,27 +2223,11 @@ releasenotes/notes/bug-1907964-9277e5ddec2abeda.yaml |
3176 | releasenotes/notes/bug-1908315-020fea3e244d49bb.yaml |
3177 | releasenotes/notes/bug-1912451-ibm-svf-update-replication-properties-68c4f9ea56df212d.yaml |
3178 | releasenotes/notes/bug-1912564-strowize-hyperswap-volume-is-not-deleting-a94291248f8f59cd.yaml |
3179 | -releasenotes/notes/bug-1913363-ibm-svf_Fix_multiple_lshost_calls_during_attach-528f92b44a0ff6b8.yaml |
3180 | releasenotes/notes/bug-1913449-4796b366ae7e871b.yaml |
3181 | -releasenotes/notes/bug-1917605-ibm-svf_Bulk_create_Hyperswap_volume_is_failing-79a9ec2108612240.yaml |
3182 | -releasenotes/notes/bug-1918229-0aa9fd75c5e843d5.yaml |
3183 | -releasenotes/notes/bug-1920099-ibm-svf-fix_extend_to_clone_rep_volumes-015e030332f2e714.yaml |
3184 | releasenotes/notes/bug-1920237-backup-remove-export-race-941e2ab1f056e54c.yaml |
3185 | releasenotes/notes/bug-1920729-powerstore-iscsi-targets-filtering-9623ac03da5c6721.yaml |
3186 | -releasenotes/notes/bug-1920870-ibm-svf-fix-extend-issue-for-mirroring-volumes-31b1a9119c49e112.yaml |
3187 | -releasenotes/notes/bug-1920890-ibm-svf-Retype-in-use-hyperswap-volume-95a6c033e493ee59.yaml |
3188 | -releasenotes/notes/bug-1920912-add_volumes_to_clone_group_fix-1cc9668ea077831e.yaml |
3189 | -releasenotes/notes/bug-1922013-ibm-svf-fix_addvol_gmcv_grp-caa0bc2035747d99.yaml |
3190 | -releasenotes/notes/bug-1922255-dell-powervault-manage-volumes.rst |
3191 | releasenotes/notes/bug-1922408-create-encryption-volume-from-snapshot-skip-resize-bb5d77c5e912b5c1.yaml |
3192 | -releasenotes/notes/bug-1924568-ibm-svf-fix_drp_vol_create_issue-d1b75c4befb0e993.yaml |
3193 | -releasenotes/notes/bug-1924602-ibm-svf_Storwize_HyperSwap_snapshot_clone_is_failing-c144e6b99d56de64.yaml |
3194 | -releasenotes/notes/bug-1926286-ibm-svf-fix-volume-relationship-properties-fetch-issue-6b443f8521cbb15c.yaml |
3195 | -releasenotes/notes/bug-1926491-ibm-svf-update-rccg-info-for-mirror-volumes-67fbec05d803745d.yaml |
3196 | -releasenotes/notes/bug-1931968-ibm-svf-HyperSwap_volume_service_status_update-293dea5d0f750824.yaml |
3197 | -releasenotes/notes/bug-1935670-svc_update_rep_properties_for_empty_values_fix-a2faabbf2139195e.yaml |
3198 | releasenotes/notes/bug-193688-bb045badcd5aecad.yaml |
3199 | -releasenotes/notes/bug-1938212-ibm-svf-fix-to-add-replication-support-for-V5000E-e88df9c8eb22c2a8.yaml |
3200 | releasenotes/notes/bug-1939139-02ab552420813e70.yaml |
3201 | releasenotes/notes/bug-1941815-RBD-call-trash-operation-when-plain-deletion-fails-50cef4a8a8010ba9.yaml |
3202 | releasenotes/notes/bug-1947518-rbd-open-readonly-ba523c4b0ddbba76.yaml |
3203 | @@ -2361,6 +2249,7 @@ releasenotes/notes/castellan-backend-0c49591a54821c45.yaml |
3204 | releasenotes/notes/ceph-iscsi-driver-b515bd7fb73ce13b.yaml |
3205 | releasenotes/notes/cg-scheduler-change-180a36b77e8cc26b.yaml |
3206 | releasenotes/notes/cg_api_volume_type-7db1856776e707c7.yaml |
3207 | +releasenotes/notes/cgroups-v1-status-note-b1eff0e1907aa0f2.yaml |
3208 | releasenotes/notes/change-default-rbd_exclusive_cinder_pool-e59c528c7f728780.yaml |
3209 | releasenotes/notes/change-encryption-key-on-clone-3be7cdb0e27386e0.yaml |
3210 | releasenotes/notes/check-displayname-displaydescription-123sd5gef91acb12.yaml |
3211 | @@ -2377,8 +2266,6 @@ releasenotes/notes/cinder-status-check-backup_driver-fe009985df2bc32f.yaml |
3212 | releasenotes/notes/cinder-status-check-policyjson-ef61826eab95372b.yaml |
3213 | releasenotes/notes/cinder-status-check-stein_removed_drivers-8184abe8ce82f373.yaml |
3214 | releasenotes/notes/cinder-status-check-windows_iscsi_driver-5f4e0b93c7b92f53.yaml |
3215 | -releasenotes/notes/clean-file-locks-on-remove-e5898012f4114d3c.yaml |
3216 | -releasenotes/notes/clean-file-locks-tool-3a62ba05ef2d2239.yaml |
3217 | releasenotes/notes/cleanup-rbd-temp-file-during-convert-fail-3848e9dbe7e15fc6.yaml |
3218 | releasenotes/notes/cloudbyte-retype-support-4b9f79f351465279.yaml |
3219 | releasenotes/notes/cluster_job_distribution-f916dd2e4cce6c1b.yaml |
3220 | @@ -2446,7 +2333,6 @@ releasenotes/notes/drbd-linstor-rest-update-52fd52f6c09a4dd3.yaml |
3221 | releasenotes/notes/drbd-linstor-volume-driver-20273a9ad3783cf5.yaml |
3222 | releasenotes/notes/drbd-resource-options-88599c0a8fc5b8a3.yaml |
3223 | releasenotes/notes/driver_reinitialization-b26a8b3e665567ec.yaml |
3224 | -releasenotes/notes/drop-db_driver-opt-b644963bf3b6aced.yaml |
3225 | releasenotes/notes/drop-py2-377a91a5b66165ab.yaml |
3226 | releasenotes/notes/ds8k-allow-multi-attach-41fa7bddbbd719ec.yaml |
3227 | releasenotes/notes/ds8k-replication-group-3f2e8cd3c2e291a3.yaml |
3228 | @@ -2469,7 +2355,6 @@ releasenotes/notes/fix-3par-migrate-rename-662d984e070a1de2.yaml |
3229 | releasenotes/notes/fix-abort-backup-df196e9dcb992586.yaml |
3230 | releasenotes/notes/fix-backup-handling-of-encryption-key-id-f2fa56cadd80d582.yaml |
3231 | releasenotes/notes/fix-cross-az-migration-ce97eff61280e1c7.yaml |
3232 | -releasenotes/notes/fix-ensure-export-3cccf107a82b35a0.yaml |
3233 | releasenotes/notes/fix-extend-volume-939e30f2e9e516bc.yaml |
3234 | releasenotes/notes/fix-extend-volume-in-thin-pools-57a3d53be4d47704.yaml |
3235 | releasenotes/notes/fix-groups-actions-in-a-a-mode-5d554b30a26da22c.yaml |
3236 | @@ -2491,7 +2376,6 @@ releasenotes/notes/fix-retype-with-az-e048123d982f213d.yaml |
3237 | releasenotes/notes/fix-schema-validation-attachment-create-3488914cb52d44d2.yaml |
3238 | releasenotes/notes/fix-show-transfer-for-non-admins-be001d79975b325d.yaml |
3239 | releasenotes/notes/fix-show-volume-non-admins-1bc5238398e73981.yaml |
3240 | -releasenotes/notes/fix-size-reporting-seagate-driver.rst |
3241 | releasenotes/notes/fix-solidfire-provisioning-report-880141e64c1ea52f.yaml |
3242 | releasenotes/notes/fix-solidfire-python3-support-ee02ff2c1ec920f2.yaml |
3243 | releasenotes/notes/fix-solidfire-replication-dcb3e59b29950933.yaml |
3244 | @@ -2523,7 +2407,6 @@ releasenotes/notes/healthcheck-449ed4292e6bfa22.yaml |
3245 | releasenotes/notes/hedvig-cinder-driver-e7b98f4bc214bc49.yaml |
3246 | releasenotes/notes/hgst-mark-unsupported-b2886de36421c8b0.yaml |
3247 | releasenotes/notes/hitachi-fix-delete-volume-issues-e648525e597505fd.yaml |
3248 | -releasenotes/notes/hitachi-generic-volume-groups-434a27b290d51bf3.yaml |
3249 | releasenotes/notes/hitachi-storage-driver-d38dbd990730388d.yaml |
3250 | releasenotes/notes/hitachi-unsupported-drivers-37601e5bfabcdb8f.yaml |
3251 | releasenotes/notes/hitachi-vsp-driver-87659bb496bb459b.yaml |
3252 | @@ -2538,7 +2421,6 @@ releasenotes/notes/hnas-list-manageable-9329866618fa9a9c.yaml |
3253 | releasenotes/notes/hnas-manage-unmanage-snapshot-support-40c8888cc594a7be.yaml |
3254 | releasenotes/notes/hnas-remove-iscsi-driver-419e9c08133f9f0a.yaml |
3255 | releasenotes/notes/hnas_deprecate_xml-16840b5a8c25d15e.yaml |
3256 | -releasenotes/notes/hpe-3par-add-alletra-9k-info-5e1d09e083d3faa9.yaml |
3257 | releasenotes/notes/hpe-3par-peer-persistence.yaml-91cc84bf89dbb462.yaml |
3258 | releasenotes/notes/hpe-3par-pp-primera-a3442d004545b3a9.yaml |
3259 | releasenotes/notes/hpe-3par-pp-rcg-policy-options-53271f38c315779f.yaml |
3260 | @@ -2569,9 +2451,7 @@ releasenotes/notes/ibm-storwize-removehostmappings-e7eeaf898786c6bf.yaml |
3261 | releasenotes/notes/ibm-storwize-supported-6518628fb78d58a4.yaml |
3262 | releasenotes/notes/ibm-storwize-unsupported-e79cfd27523f013c.yaml |
3263 | releasenotes/notes/ibm-storwzie-mirror-volume-ffe4c9bde78cdf1d.yaml |
3264 | -releasenotes/notes/ibm-svf-manage-gmcv-change-volumes-on-childpools-9d2217e1e6f07a0e.yaml |
3265 | releasenotes/notes/ibm-svf-provide-IOPs-based-storage-offering-1b7532f42fd6d76e.yaml |
3266 | -releasenotes/notes/ibm-svf-support-hyperswap-volume-extend-f578efa02314faff.yaml |
3267 | releasenotes/notes/ibmsvciogrpselection-e607739b6f655a27.yaml |
3268 | releasenotes/notes/iet-deprecation-f8059417c6adbb78.yaml |
3269 | releasenotes/notes/image-volume-type-c91b7cff3cb41c13.yaml |
3270 | @@ -2647,8 +2527,8 @@ releasenotes/notes/move-scaleio-driver-to-dell-emc-dir-c195374ca6b7e98d.yaml |
3271 | releasenotes/notes/move-xtremio-driver-to-dell-emc-dir-f7e07a502cafd78f.yaml |
3272 | releasenotes/notes/msa-multiattach-5407eb60093de8f1.yaml |
3273 | releasenotes/notes/msa2060-99150398a9c416f6.yaml |
3274 | +releasenotes/notes/mtls-fix-for-glance-api-calls-469b992adc5f49ff.yaml |
3275 | releasenotes/notes/multiple_clone-82bd7f80ae439080.yaml |
3276 | -releasenotes/notes/mv-use_quota-b8e010f8f68a1eaa.yaml |
3277 | releasenotes/notes/mv-volume-type-name-and-id-5f4fd8480874fe9b.yaml |
3278 | releasenotes/notes/nec-allow-more-than-4iSCSI-portals-8342defe64491f81.yaml |
3279 | releasenotes/notes/nec-auto-accesscontrol-55f4b090e8128f5e.yaml |
3280 | @@ -2670,7 +2550,6 @@ releasenotes/notes/netapp-log-filter-f3256f55c3ac3faa.yaml |
3281 | releasenotes/notes/netapp-migrated-qos-c0c8aae50d010c75.yaml |
3282 | releasenotes/notes/netapp-nfs-consistency-group-support-83eccc2da91ee19b.yaml |
3283 | releasenotes/notes/netapp-non-discovery-19af4e10f7b190ea.yaml |
3284 | -releasenotes/notes/netapp-ontap-add-revert-to-snapshot-ce20810bcf094fce.yaml |
3285 | releasenotes/notes/netapp-ontap-fix-detach-multiattach-d99d33dff2fefb4c.yaml |
3286 | releasenotes/notes/netapp-ontap-fix-force-detach-55be3f4ac962b493.yaml |
3287 | releasenotes/notes/netapp-ontap-use_exact_size-d03c90efbb8a30ac.yaml |
3288 | @@ -2695,7 +2574,6 @@ releasenotes/notes/nexentastor5_nfs-bcc8848716daea63.yaml |
3289 | releasenotes/notes/nfs-online-snapshot-c05e6c8113bbded6.yaml |
3290 | releasenotes/notes/nfs-snapshots-21b641300341cba1.yaml |
3291 | releasenotes/notes/nfs_backup_no_overwrite-be7b545453baf7a3.yaml |
3292 | -releasenotes/notes/nimble-add-alletra-6k-info-8d242a809e6044a5.yaml |
3293 | releasenotes/notes/nimble-add-fc-support-0007fdbd647be947.yaml |
3294 | releasenotes/notes/nimble-add-force-backup-539e1e5c72f84e61.yaml |
3295 | releasenotes/notes/nimble-consistency-groups-support-7c932d5557fa725e.yaml |
3296 | @@ -2706,9 +2584,6 @@ releasenotes/notes/nimble-qos-specs-8cd006777c66a64e.yaml |
3297 | releasenotes/notes/nimble-rest-api-support-75c2324ee462d026.yaml |
3298 | releasenotes/notes/nimble-retype-support-18f717072948ba6d.yaml |
3299 | releasenotes/notes/online-migration-checks-64b0d1732901e78e.yaml |
3300 | -releasenotes/notes/ontap-add-provisioned-capacity-option-2f8122663eec51ae.yaml |
3301 | -releasenotes/notes/ontap-add-storage-assisted-migration-70f6fb95dbb7e580.yaml |
3302 | -releasenotes/notes/open-e-joviandss-enable-multiattach-b1d38ffcc53bf59c.yaml |
3303 | releasenotes/notes/operate-migrated-groups-with-cp-apis-e5835c6673191805.yaml |
3304 | releasenotes/notes/oracle-zfssa-unsupported-4ce035213fa0e097.yaml |
3305 | releasenotes/notes/orphaned_unmanaged_volume-db63ec0509b70b8f.yaml |
3306 | @@ -2741,7 +2616,6 @@ releasenotes/notes/powermax-train-tag-removal-1dfa77df7440e5f5.yaml |
3307 | releasenotes/notes/powermax-user-defined-hostname-portgroup-0b01aaaa730dfaaf.yaml |
3308 | releasenotes/notes/powermax-vol-metadata-acd2555818d25b72.yaml |
3309 | releasenotes/notes/powermax_initiator_check-249279d30e3f8322.yaml |
3310 | -releasenotes/notes/powermax_legacy_generation_fix-09e437f955cd9d70.yaml |
3311 | releasenotes/notes/powermax_port-check_enhancement-c95dd94328f31524.yaml |
3312 | releasenotes/notes/privsep-rocky-35bdfe70ed62a826.yaml |
3313 | releasenotes/notes/project-default-types-3a14ad0d653e604e.yaml |
3314 | @@ -2751,7 +2625,6 @@ releasenotes/notes/prophetstor-generic-groups-c7136c32b2f75c0a.yaml |
3315 | releasenotes/notes/ps-removedriver-5ba447c50f2474e7.yaml |
3316 | releasenotes/notes/pure-active-active-support-dbd0d3da3ab64e64.yaml |
3317 | releasenotes/notes/pure-active-cluster-edf8e7e80739b0f8.yaml |
3318 | -releasenotes/notes/pure-check-nvmefc-ports-cf2aec3952d8192f.yaml |
3319 | releasenotes/notes/pure-configure-pg-pod-names-525a4ce8e2f46b69.yaml |
3320 | releasenotes/notes/pure-custom-user-agent-dcca4cb44b69e763.yaml |
3321 | releasenotes/notes/pure-default-replica-interval-07de0a56f61c7c1e.yaml |
3322 | @@ -2761,7 +2634,6 @@ releasenotes/notes/pure-fc-wwpn-case-c1d97f3fa7663acf.yaml |
3323 | releasenotes/notes/pure-generic-volume-groups-2b0941103f7c01cb.yaml |
3324 | releasenotes/notes/pure-host-personality-3512f7ccd961d4ad.yaml |
3325 | releasenotes/notes/pure-iscsi-cidr-cbc1afb3850a9217.yaml |
3326 | -releasenotes/notes/pure-iscsi-cidrs-7195eda9f7214fce.yaml |
3327 | releasenotes/notes/pure-list-mangeable-fed4a1b23212f545.yaml |
3328 | releasenotes/notes/pure-storage-add-qos-37958a90beff12d6.yaml |
3329 | releasenotes/notes/pure-storage-multiattach-support-994da363e181d627.yaml |
3330 | @@ -2787,7 +2659,6 @@ releasenotes/notes/quobyte_vol-snap-cache-baf607f14d916ec7.yaml |
3331 | releasenotes/notes/quota-on-retype-with-snapshots-2d9fc7b2c75f899d.yaml |
3332 | releasenotes/notes/quota-sync-migrating-2c99e134e117a945.yaml |
3333 | releasenotes/notes/quota-sync-temporary-b4103ebc2c484c89.yaml |
3334 | -releasenotes/notes/quota-temp-snapshots-9d032f97f80050c5.yaml |
3335 | releasenotes/notes/quota-until_refresh-updated-d35e8530f30c5522.yaml |
3336 | releasenotes/notes/quota-usage-duplicates-c00725089da7bbd8.yaml |
3337 | releasenotes/notes/quota-volume-transfer-abd1f418c6c63db0.yaml |
3338 | @@ -2814,12 +2685,10 @@ releasenotes/notes/redundancy-in-volume-url-4282087232e6e6f1.yaml |
3339 | releasenotes/notes/reduxio-iscsci-driver-5827c32a0c498949.yaml |
3340 | releasenotes/notes/refactor-disco-volume-driver-3ff0145707ec0f3e.yaml |
3341 | releasenotes/notes/reject-volume_clear_size-settings-larger-than-1024MiB-30b38811da048948.yaml |
3342 | -releasenotes/notes/remove-api-v2-dadd877ee5457f79.yaml |
3343 | releasenotes/notes/remove-backup-service-to-driver-mapping-4d2ed6f868a64175.yaml |
3344 | releasenotes/notes/remove-block-device-driver-14f76dca2ee9bd38.yaml |
3345 | releasenotes/notes/remove-cinder-manage-logs-cmds-40fb8f475b37fb2f.yaml |
3346 | releasenotes/notes/remove-cinder-manage-shell-6d6f42e5a4ee8c5c.yaml |
3347 | -releasenotes/notes/remove-configurable-migration-backend-aaee5a2f808c9b36.yaml |
3348 | releasenotes/notes/remove-datacore-300c667e9f504590.yaml |
3349 | releasenotes/notes/remove-deprecated-driver-mappings-b927d8ef9fc3b713.yaml |
3350 | releasenotes/notes/remove-deprecated-keymgr-d11a25c620862ed6.yaml |
3351 | @@ -2925,7 +2794,6 @@ releasenotes/notes/smbfs-pools-support-bc43c653cfb1a34f.yaml |
3352 | releasenotes/notes/smbfs-removed-options-2c86101340273252.yaml |
3353 | releasenotes/notes/smbfs-revert-snapshot-5b265ed5ded951dc.yaml |
3354 | releasenotes/notes/smbfs-snapshot-attach-14742fe8f5864ac6.yaml |
3355 | -releasenotes/notes/snapshot-in-use-without-force-86c6d74ebc9c0d60.yaml |
3356 | releasenotes/notes/snapshot_backing_up_status_support-164fbbb2a564e137.yaml |
3357 | releasenotes/notes/solidfire-active-active-replication-support-f77e0e12320f8b21.yaml |
3358 | releasenotes/notes/solidfire-scaled-qos-9b8632453909e2db.yaml |
3359 | @@ -2976,7 +2844,6 @@ releasenotes/notes/support_sort_backup_by_name-0b080bcb60c0eaa0.yaml |
3360 | releasenotes/notes/support_sort_snapshot_with_name-7b66a2d8e587275d.yaml |
3361 | releasenotes/notes/supported-drivers-9c95dd2378cd308d.yaml |
3362 | releasenotes/notes/svf-revert-to-snapshot-globalmirror-volume-e70fdb9115020283.yaml |
3363 | -releasenotes/notes/switch-to-alembic-2bbe27749fde70ff.yaml |
3364 | releasenotes/notes/sync-bump-versions-a1e6f6359173892e.yaml |
3365 | releasenotes/notes/synology-support-uc-model-9cda442828c2eb32.yaml |
3366 | releasenotes/notes/synology-volume-driver-c5e0f655b04390ce.yaml |
3367 | @@ -3011,7 +2878,6 @@ releasenotes/notes/upload-volume-to-multiple-stores-ab130774897e41c3.yaml |
3368 | releasenotes/notes/use-castellan-key-manager-4911c3c4908ca633.yaml |
3369 | releasenotes/notes/use-glance-v2-api-and-deprecate-glance_api_version-1a3b698429cb754e.yaml |
3370 | releasenotes/notes/use-oslo_middleware_sizelimit-5f171cf1c44444f8.yaml |
3371 | -releasenotes/notes/user-visible-extra-specs-6cf7e49c6be57a01.yaml |
3372 | releasenotes/notes/ussuri-release-prelude-ceeb11bc7fe46191.yaml |
3373 | releasenotes/notes/ussuri-unsupported-drivers-not-removed-8cfb3e01b720e9d1.yaml |
3374 | releasenotes/notes/validate-expired-user-tokens-40b15322197653ae.yaml |
3375 | @@ -3092,7 +2958,6 @@ releasenotes/notes/vnx-revert-to-snapshot-e5494b6fb5ad5a1e.yaml |
3376 | releasenotes/notes/vnx-update-sg-in-cache-3ecb673727bea79b.yaml |
3377 | releasenotes/notes/vnx_clone_cg-db74ee2ea71bedcb.yaml |
3378 | releasenotes/notes/volume-filtering-for-quoted-display-name-7f5e8ac888a73001.yaml |
3379 | -releasenotes/notes/volume-migrate-create-delete-notification-f567cae5522852ec.yaml |
3380 | releasenotes/notes/volume-type-encryption-api-policy-base-4334ca94d73df238.yaml |
3381 | releasenotes/notes/volume-type-encryption-api-policy-granularity-7071e45f4c7894c5.yaml |
3382 | releasenotes/notes/volume_init_max_objects_retrieval-966f607c46190946.yaml |
3383 | @@ -3107,13 +2972,11 @@ releasenotes/notes/vxflexos-support-compression-9139e556677ac093.yaml |
3384 | releasenotes/notes/vxflexos_drop_deprecated_opt-3231a222e458fa92.yaml |
3385 | releasenotes/notes/vzstorage-log-path-7539342e562a2e4a.yaml |
3386 | releasenotes/notes/vzstorage-volume-format-cde85d3ad02f6bb4.yaml |
3387 | +releasenotes/notes/wallaby-encryption-known-issues-4078b6b066e51553.yaml |
3388 | +releasenotes/notes/wallaby-prelude-661b619978e1b339.yaml |
3389 | releasenotes/notes/win-iscsi-config-portals-51895294228d7883.yaml |
3390 | releasenotes/notes/windows-multiple-backends-9aa83631ad3d42f2.yaml |
3391 | releasenotes/notes/windows-volume-backup-b328858a20f5a499.yaml |
3392 | -releasenotes/notes/xena-known-issues-d33a6a5e10fc16f0.yaml |
3393 | -releasenotes/notes/xena-policy-changes-7a563020337f6be9.yaml |
3394 | -releasenotes/notes/xena-qcow2-v2-warning-9381189b1c04734f.yaml |
3395 | -releasenotes/notes/xena-release-prelude-2190d8c515dbedc1.yaml |
3396 | releasenotes/notes/xiv-ds8k-replication-2.1-996c871391152e31.yaml |
3397 | releasenotes/notes/xiv-generic-volume-group-4609cdc86d6aaf81.yaml |
3398 | releasenotes/notes/xiv-new-qos-independent-type-58885c77efe24798.yaml |
3399 | @@ -3142,7 +3005,6 @@ releasenotes/source/train.rst |
3400 | releasenotes/source/unreleased.rst |
3401 | releasenotes/source/ussuri.rst |
3402 | releasenotes/source/victoria.rst |
3403 | -releasenotes/source/wallaby.rst |
3404 | releasenotes/source/_static/.placeholder |
3405 | releasenotes/source/_templates/.placeholder |
3406 | releasenotes/source/locale/en_GB/LC_MESSAGES/releasenotes.po |
3407 | diff --git a/cinder.egg-info/entry_points.txt b/cinder.egg-info/entry_points.txt |
3408 | index 147aba8..d7805bb 100644 |
3409 | --- a/cinder.egg-info/entry_points.txt |
3410 | +++ b/cinder.egg-info/entry_points.txt |
3411 | @@ -1,3 +1,6 @@ |
3412 | +[cinder.database.migration_backend] |
3413 | +sqlalchemy = oslo_db.sqlalchemy.migration |
3414 | + |
3415 | [cinder.scheduler.filters] |
3416 | AvailabilityZoneFilter = cinder.scheduler.filters.availability_zone_filter:AvailabilityZoneFilter |
3417 | CapabilitiesFilter = cinder.scheduler.filters.capabilities_filter:CapabilitiesFilter |
3418 | diff --git a/cinder.egg-info/pbr.json b/cinder.egg-info/pbr.json |
3419 | index 5425b4e..e3aedeb 100644 |
3420 | --- a/cinder.egg-info/pbr.json |
3421 | +++ b/cinder.egg-info/pbr.json |
3422 | @@ -1 +1 @@ |
3423 | -{"git_version": "59b8b516c", "is_release": true} |
3424 | \ No newline at end of file |
3425 | +{"git_version": "0a6d43a7c", "is_release": true} |
3426 | \ No newline at end of file |
3427 | diff --git a/cinder.egg-info/requires.txt b/cinder.egg-info/requires.txt |
3428 | index ff12642..f3eed49 100644 |
3429 | --- a/cinder.egg-info/requires.txt |
3430 | +++ b/cinder.egg-info/requires.txt |
3431 | @@ -1,7 +1,7 @@ |
3432 | Paste>=3.4.3 |
3433 | PasteDeploy>=2.1.0 |
3434 | Routes>=2.4.1 |
3435 | -SQLAlchemy>=1.4.23 |
3436 | +SQLAlchemy>=1.3.19 |
3437 | WebOb>=1.8.6 |
3438 | boto3>=1.16.51 |
3439 | castellan>=3.6.0 |
3440 | @@ -18,17 +18,17 @@ keystoneauth1>=4.2.1 |
3441 | keystonemiddleware>=9.1.0 |
3442 | lxml>=4.5.2 |
3443 | oauth2client>=4.1.3 |
3444 | -os-brick>=5.0.1 |
3445 | +os-brick>=4.3.1 |
3446 | os-win>=5.4.0 |
3447 | oslo.concurrency>=4.4.0 |
3448 | oslo.config>=8.3.2 |
3449 | oslo.context>=3.1.1 |
3450 | -oslo.db>=11.0.0 |
3451 | +oslo.db>=8.4.0 |
3452 | oslo.i18n>=5.0.1 |
3453 | -oslo.log>=4.5.0 |
3454 | +oslo.log>=4.4.0 |
3455 | oslo.messaging>=12.5.0 |
3456 | oslo.middleware>=4.1.1 |
3457 | -oslo.policy>=3.8.1 |
3458 | +oslo.policy>=3.6.2 |
3459 | oslo.privsep>=2.4.0 |
3460 | oslo.reports>=2.2.0 |
3461 | oslo.rootwrap>=6.2.0 |
3462 | @@ -118,7 +118,7 @@ storpool>=4.0.0 |
3463 | |
3464 | [test] |
3465 | PyMySQL>=0.10.0 |
3466 | -SQLAlchemy-Utils>=0.37.8 |
3467 | +SQLAlchemy-Utils>=0.36.8 |
3468 | bandit==1.6.0 |
3469 | coverage>=5.5 |
3470 | ddt>=1.4.1 |
3471 | @@ -128,7 +128,7 @@ flake8-import-order |
3472 | flake8-logging-format>=0.6.0 |
3473 | hacking<4.1.0,>=4.0.0 |
3474 | moto>=1.3.15 |
3475 | -mypy>=0.910 |
3476 | +mypy>=0.782 |
3477 | oslotest>=4.4.1 |
3478 | psycopg2>=2.8.5 |
3479 | stestr>=3.1.0 |
3480 | diff --git a/cinder/api/__init__.py b/cinder/api/__init__.py |
3481 | index ea01b86..7351dfa 100644 |
3482 | --- a/cinder/api/__init__.py |
3483 | +++ b/cinder/api/__init__.py |
3484 | @@ -26,19 +26,18 @@ LOG = logging.getLogger(__name__) |
3485 | |
3486 | def root_app_factory(loader, global_conf, **local_conf): |
3487 | # To support upgrades from previous api-paste config files, we need |
3488 | - # to check for and remove any legacy references to the v1 or v2 API |
3489 | + # to check for and remove any legacy references to the v1 API |
3490 | if '/v1' in local_conf: |
3491 | LOG.warning('The v1 API has been removed and is no longer ' |
3492 | - 'available. Client applications should be ' |
3493 | - 'using v3, which is currently the only supported ' |
3494 | - 'version of the Block Storage API.') |
3495 | + 'available. Client applications should now be ' |
3496 | + 'moving to v3. Ensure enable_v3_api=true in your ' |
3497 | + 'cinder.conf file.') |
3498 | del local_conf['/v1'] |
3499 | |
3500 | - if '/v2' in local_conf: |
3501 | - LOG.warning('The v2 API has been removed and is no longer available. ' |
3502 | - 'Client applications must now use the v3 API only. ' |
3503 | - 'The \'enable_v2_api\' option has been removed and is ' |
3504 | - 'ignored in the cinder.conf file.') |
3505 | + if CONF.enable_v2_api: |
3506 | + LOG.warning('The v2 API is deprecated and is not under active ' |
3507 | + 'development. You should set enable_v2_api=false ' |
3508 | + 'and enable_v3_api=true in your cinder.conf file.') |
3509 | + else: |
3510 | del local_conf['/v2'] |
3511 | - |
3512 | return paste.urlmap.urlmap_factory(loader, global_conf, **local_conf) |
3513 | diff --git a/cinder/api/api_utils.py b/cinder/api/api_utils.py |
3514 | index 05a1c7a..0fcba43 100644 |
3515 | --- a/cinder/api/api_utils.py |
3516 | +++ b/cinder/api/api_utils.py |
3517 | @@ -10,23 +10,13 @@ |
3518 | # License for the specific language governing permissions and limitations |
3519 | # under the License. |
3520 | |
3521 | -from keystoneauth1 import exceptions as ks_exc |
3522 | -from keystoneauth1 import identity |
3523 | -from keystoneauth1 import loading as ka_loading |
3524 | -from keystoneclient import client |
3525 | -from oslo_config import cfg |
3526 | from oslo_log import log as logging |
3527 | from oslo_utils import strutils |
3528 | import webob |
3529 | from webob import exc |
3530 | |
3531 | -from cinder import exception |
3532 | from cinder.i18n import _ |
3533 | |
3534 | -CONF = cfg.CONF |
3535 | -CONF.import_group('keystone_authtoken', |
3536 | - 'keystonemiddleware.auth_token.__init__') |
3537 | - |
3538 | LOG = logging.getLogger(__name__) |
3539 | |
3540 | |
3541 | @@ -152,84 +142,3 @@ def walk_class_hierarchy(clazz, encountered=None): |
3542 | for subsubclass in walk_class_hierarchy(subclass, encountered): |
3543 | yield subsubclass |
3544 | yield subclass |
3545 | - |
3546 | - |
3547 | -def _keystone_client(context, version=(3, 0)): |
3548 | - """Creates and returns an instance of a generic keystone client. |
3549 | - |
3550 | - :param context: The request context |
3551 | - :param version: version of Keystone to request |
3552 | - :return: keystoneclient.client.Client object |
3553 | - """ |
3554 | - if context.system_scope is not None: |
3555 | - auth_plugin = identity.Token( |
3556 | - auth_url=CONF.keystone_authtoken.auth_url, |
3557 | - token=context.auth_token, |
3558 | - system_scope=context.system_scope |
3559 | - ) |
3560 | - elif context.domain_id is not None: |
3561 | - auth_plugin = identity.Token( |
3562 | - auth_url=CONF.keystone_authtoken.auth_url, |
3563 | - token=context.auth_token, |
3564 | - domain_id=context.domain_id |
3565 | - ) |
3566 | - elif context.project_id is not None: |
3567 | - auth_plugin = identity.Token( |
3568 | - auth_url=CONF.keystone_authtoken.auth_url, |
3569 | - token=context.auth_token, |
3570 | - project_id=context.project_id |
3571 | - ) |
3572 | - else: |
3573 | - # We're dealing with an unscoped token from keystone that doesn't |
3574 | - # carry any authoritative power outside of the user simplify proving |
3575 | - # they know their own password. This token isn't associated with any |
3576 | - # authorization target (e.g., system, domain, or project). |
3577 | - auth_plugin = context.get_auth_plugin() |
3578 | - |
3579 | - client_session = ka_loading.session.Session().load_from_options( |
3580 | - auth=auth_plugin, |
3581 | - insecure=CONF.keystone_authtoken.insecure, |
3582 | - cacert=CONF.keystone_authtoken.cafile, |
3583 | - key=CONF.keystone_authtoken.keyfile, |
3584 | - cert=CONF.keystone_authtoken.certfile, |
3585 | - split_loggers=CONF.service_user.split_loggers) |
3586 | - return client.Client(auth_url=CONF.keystone_authtoken.auth_url, |
3587 | - session=client_session, version=version) |
3588 | - |
3589 | - |
3590 | -class GenericProjectInfo(object): |
3591 | - """Abstraction layer for Keystone V2 and V3 project objects""" |
3592 | - def __init__(self, project_id, project_keystone_api_version, |
3593 | - domain_id=None, name=None, description=None): |
3594 | - self.id = project_id |
3595 | - self.keystone_api_version = project_keystone_api_version |
3596 | - self.domain_id = domain_id |
3597 | - self.name = name |
3598 | - self.description = description |
3599 | - |
3600 | - |
3601 | -def get_project(context, project_id): |
3602 | - """Method to verify project exists in keystone""" |
3603 | - keystone = _keystone_client(context) |
3604 | - generic_project = GenericProjectInfo(project_id, keystone.version) |
3605 | - project = keystone.projects.get(project_id) |
3606 | - generic_project.domain_id = project.domain_id |
3607 | - generic_project.name = project.name |
3608 | - generic_project.description = project.description |
3609 | - return generic_project |
3610 | - |
3611 | - |
3612 | -def validate_project_and_authorize(context, project_id, policy_check=None, |
3613 | - validate_only=False): |
3614 | - try: |
3615 | - target_project = get_project(context, project_id) |
3616 | - if not validate_only: |
3617 | - target_project = {'project_id': target_project.id} |
3618 | - context.authorize(policy_check, target=target_project) |
3619 | - except ks_exc.http.NotFound: |
3620 | - explanation = _("Project with id %s not found." % project_id) |
3621 | - raise exc.HTTPNotFound(explanation=explanation) |
3622 | - except exception.NotAuthorized: |
3623 | - explanation = _("You are not authorized to perform this " |
3624 | - "operation.") |
3625 | - raise exc.HTTPForbidden(explanation=explanation) |
3626 | diff --git a/cinder/api/common.py b/cinder/api/common.py |
3627 | index 7479237..4320527 100644 |
3628 | --- a/cinder/api/common.py |
3629 | +++ b/cinder/api/common.py |
3630 | @@ -49,8 +49,7 @@ LOG = logging.getLogger(__name__) |
3631 | _FILTERS_COLLECTION = None |
3632 | |
3633 | ATTRIBUTE_CONVERTERS = {'name~': 'display_name~', |
3634 | - 'description~': 'display_description~', |
3635 | - 'consumes_quota': 'use_quota'} |
3636 | + 'description~': 'display_description~'} |
3637 | |
3638 | |
3639 | METADATA_TYPES = enum.Enum('METADATA_TYPES', 'user image') |
3640 | diff --git a/cinder/api/contrib/admin_actions.py b/cinder/api/contrib/admin_actions.py |
3641 | index 37beb31..ffb7e62 100644 |
3642 | --- a/cinder/api/contrib/admin_actions.py |
3643 | +++ b/cinder/api/contrib/admin_actions.py |
3644 | @@ -202,7 +202,7 @@ class VolumeAdminController(AdminController): |
3645 | |
3646 | @wsgi.response(HTTPStatus.ACCEPTED) |
3647 | @wsgi.action('os-migrate_volume') |
3648 | - @validation.schema(admin_actions.migrate_volume, mv.BASE_VERSION, |
3649 | + @validation.schema(admin_actions.migrate_volume, mv.V2_BASE_VERSION, |
3650 | mv.get_prior_version(mv.VOLUME_MIGRATE_CLUSTER)) |
3651 | @validation.schema(admin_actions.migrate_volume_v316, |
3652 | mv.VOLUME_MIGRATE_CLUSTER) |
3653 | diff --git a/cinder/api/contrib/backups.py b/cinder/api/contrib/backups.py |
3654 | index baba04d..2951a1e 100644 |
3655 | --- a/cinder/api/contrib/backups.py |
3656 | +++ b/cinder/api/contrib/backups.py |
3657 | @@ -145,7 +145,7 @@ class BackupsController(wsgi.Controller): |
3658 | # immediately |
3659 | # - maybe also do validation of swift container name |
3660 | @wsgi.response(HTTPStatus.ACCEPTED) |
3661 | - @validation.schema(backup.create, mv.BASE_VERSION, |
3662 | + @validation.schema(backup.create, mv.V2_BASE_VERSION, |
3663 | mv.get_prior_version(mv.BACKUP_METADATA)) |
3664 | @validation.schema(backup.create_backup_v343, mv.BACKUP_METADATA, |
3665 | mv.get_prior_version(mv.BACKUP_AZ)) |
3666 | diff --git a/cinder/api/contrib/quota_classes.py b/cinder/api/contrib/quota_classes.py |
3667 | index 54cfafa..0d98c57 100644 |
3668 | --- a/cinder/api/contrib/quota_classes.py |
3669 | +++ b/cinder/api/contrib/quota_classes.py |
3670 | @@ -40,7 +40,7 @@ class QuotaClassSetsController(wsgi.Controller): |
3671 | |
3672 | def show(self, req, id): |
3673 | context = req.environ['cinder.context'] |
3674 | - context.authorize(policy.GET_POLICY) |
3675 | + context.authorize(policy.MANAGE_POLICY) |
3676 | try: |
3677 | db.sqlalchemy.api.authorize_quota_class_context(context, id) |
3678 | except exception.NotAuthorized: |
3679 | @@ -54,7 +54,7 @@ class QuotaClassSetsController(wsgi.Controller): |
3680 | @validation.schema(quota_class.update_quota_class) |
3681 | def update(self, req, id, body): |
3682 | context = req.environ['cinder.context'] |
3683 | - context.authorize(policy.UPDATE_POLICY) |
3684 | + context.authorize(policy.MANAGE_POLICY) |
3685 | self.validate_string_length(id, 'quota_class_name', |
3686 | min_length=1, max_length=255) |
3687 | |
3688 | diff --git a/cinder/api/contrib/types_extra_specs.py b/cinder/api/contrib/types_extra_specs.py |
3689 | index a7790ee..45233e5 100644 |
3690 | --- a/cinder/api/contrib/types_extra_specs.py |
3691 | +++ b/cinder/api/contrib/types_extra_specs.py |
3692 | @@ -38,14 +38,9 @@ class VolumeTypeExtraSpecsController(wsgi.Controller): |
3693 | |
3694 | def _get_extra_specs(self, context, type_id): |
3695 | extra_specs = db.volume_type_extra_specs_get(context, type_id) |
3696 | - if context.authorize(policy.READ_SENSITIVE_POLICY, fatal=False): |
3697 | - specs_dict = extra_specs |
3698 | - else: |
3699 | - # Limit the response to contain only user visible specs. |
3700 | - specs_dict = {} |
3701 | - for uv_spec in policy.USER_VISIBLE_EXTRA_SPECS: |
3702 | - if uv_spec in extra_specs: |
3703 | - specs_dict[uv_spec] = extra_specs[uv_spec] |
3704 | + specs_dict = {} |
3705 | + for key, value in extra_specs.items(): |
3706 | + specs_dict[key] = value |
3707 | return dict(extra_specs=specs_dict) |
3708 | |
3709 | def _check_type(self, context, type_id): |
3710 | diff --git a/cinder/api/contrib/types_manage.py b/cinder/api/contrib/types_manage.py |
3711 | index a5298a4..09306b4 100644 |
3712 | --- a/cinder/api/contrib/types_manage.py |
3713 | +++ b/cinder/api/contrib/types_manage.py |
3714 | @@ -54,7 +54,7 @@ class VolumeTypesManageController(wsgi.Controller): |
3715 | def _create(self, req, body): |
3716 | """Creates a new volume type.""" |
3717 | context = req.environ['cinder.context'] |
3718 | - context.authorize(policy.CREATE_POLICY) |
3719 | + context.authorize(policy.MANAGE_POLICY) |
3720 | vol_type = body['volume_type'] |
3721 | name = vol_type['name'] |
3722 | description = vol_type.get('description') |
3723 | @@ -89,7 +89,7 @@ class VolumeTypesManageController(wsgi.Controller): |
3724 | def _update(self, req, id, body): |
3725 | # Update description for a given volume type. |
3726 | context = req.environ['cinder.context'] |
3727 | - context.authorize(policy.UPDATE_POLICY) |
3728 | + context.authorize(policy.MANAGE_POLICY) |
3729 | vol_type = body['volume_type'] |
3730 | description = vol_type.get('description') |
3731 | name = vol_type.get('name') |
3732 | @@ -140,7 +140,7 @@ class VolumeTypesManageController(wsgi.Controller): |
3733 | def _delete(self, req, id): |
3734 | """Deletes an existing volume type.""" |
3735 | context = req.environ['cinder.context'] |
3736 | - context.authorize(policy.DELETE_POLICY) |
3737 | + context.authorize(policy.MANAGE_POLICY) |
3738 | |
3739 | try: |
3740 | vol_type = volume_types.get_volume_type(context, id) |
3741 | diff --git a/cinder/api/contrib/volume_actions.py b/cinder/api/contrib/volume_actions.py |
3742 | index da09d07..deb326b 100644 |
3743 | --- a/cinder/api/contrib/volume_actions.py |
3744 | +++ b/cinder/api/contrib/volume_actions.py |
3745 | @@ -192,7 +192,7 @@ class VolumeActionsController(wsgi.Controller): |
3746 | |
3747 | @wsgi.response(HTTPStatus.ACCEPTED) |
3748 | @wsgi.action('os-volume_upload_image') |
3749 | - @validation.schema(volume_action.volume_upload_image, mv.BASE_VERSION, |
3750 | + @validation.schema(volume_action.volume_upload_image, mv.V2_BASE_VERSION, |
3751 | mv.get_prior_version(mv.UPLOAD_IMAGE_PARAMS)) |
3752 | @validation.schema(volume_action.volume_upload_image_v31, |
3753 | mv.UPLOAD_IMAGE_PARAMS) |
3754 | diff --git a/cinder/api/contrib/volume_image_metadata.py b/cinder/api/contrib/volume_image_metadata.py |
3755 | index b12525a..2e86f2f 100644 |
3756 | --- a/cinder/api/contrib/volume_image_metadata.py |
3757 | +++ b/cinder/api/contrib/volume_image_metadata.py |
3758 | @@ -72,13 +72,13 @@ class VolumeImageMetadataController(wsgi.Controller): |
3759 | @wsgi.extends |
3760 | def show(self, req, resp_obj, id): |
3761 | context = req.environ['cinder.context'] |
3762 | - if context.authorize(policy.IMAGE_METADATA_SHOW_POLICY, fatal=False): |
3763 | + if context.authorize(policy.IMAGE_METADATA_POLICY, fatal=False): |
3764 | self._add_image_metadata(context, [resp_obj.obj['volume']]) |
3765 | |
3766 | @wsgi.extends |
3767 | def detail(self, req, resp_obj): |
3768 | context = req.environ['cinder.context'] |
3769 | - if context.authorize(policy.IMAGE_METADATA_SHOW_POLICY, fatal=False): |
3770 | + if context.authorize(policy.IMAGE_METADATA_POLICY, fatal=False): |
3771 | # Just get the image metadata of those volumes in response. |
3772 | volumes = list(resp_obj.obj.get('volumes', [])) |
3773 | if volumes: |
3774 | @@ -89,7 +89,7 @@ class VolumeImageMetadataController(wsgi.Controller): |
3775 | def create(self, req, id, body): |
3776 | context = req.environ['cinder.context'] |
3777 | volume = objects.Volume.get_by_id(context, id) |
3778 | - if context.authorize(policy.IMAGE_METADATA_SET_POLICY, |
3779 | + if context.authorize(policy.IMAGE_METADATA_POLICY, |
3780 | target_obj=volume): |
3781 | metadata = body['os-set_image_metadata']['metadata'] |
3782 | new_metadata = self._update_volume_image_metadata(context, |
3783 | @@ -131,8 +131,7 @@ class VolumeImageMetadataController(wsgi.Controller): |
3784 | """Deletes an existing image metadata.""" |
3785 | context = req.environ['cinder.context'] |
3786 | volume = objects.Volume.get_by_id(context, id) |
3787 | - if context.authorize(policy.IMAGE_METADATA_REMOVE_POLICY, |
3788 | - target_obj=volume): |
3789 | + if context.authorize(policy.IMAGE_METADATA_POLICY, target_obj=volume): |
3790 | key = body['os-unset_image_metadata']['key'] |
3791 | |
3792 | vol, metadata = self._get_image_metadata(context, id) |
3793 | diff --git a/cinder/api/contrib/volume_manage.py b/cinder/api/contrib/volume_manage.py |
3794 | index 02b4ce1..959654a 100644 |
3795 | --- a/cinder/api/contrib/volume_manage.py |
3796 | +++ b/cinder/api/contrib/volume_manage.py |
3797 | @@ -46,7 +46,7 @@ class VolumeManageController(wsgi.Controller): |
3798 | self._list_manageable_view = list_manageable_view.ViewBuilder() |
3799 | |
3800 | @wsgi.response(HTTPStatus.ACCEPTED) |
3801 | - @validation.schema(volume_manage.volume_manage_create, mv.BASE_VERSION, |
3802 | + @validation.schema(volume_manage.volume_manage_create, mv.V2_BASE_VERSION, |
3803 | mv.get_prior_version(mv.VOLUME_MIGRATE_CLUSTER)) |
3804 | @validation.schema(volume_manage.volume_manage_create_v316, |
3805 | mv.VOLUME_MIGRATE_CLUSTER) |
3806 | diff --git a/cinder/api/contrib/volume_type_access.py b/cinder/api/contrib/volume_type_access.py |
3807 | index 1ac1017..344f58b 100644 |
3808 | --- a/cinder/api/contrib/volume_type_access.py |
3809 | +++ b/cinder/api/contrib/volume_type_access.py |
3810 | @@ -40,7 +40,7 @@ class VolumeTypeAccessController(object): |
3811 | |
3812 | def index(self, req, type_id): |
3813 | context = req.environ['cinder.context'] |
3814 | - context.authorize(policy.TYPE_ACCESS_WHO_POLICY) |
3815 | + context.authorize(policy.TYPE_ACCESS_POLICY) |
3816 | |
3817 | # Not found exception will be handled at the wsgi level |
3818 | vol_type = volume_types.get_volume_type( |
3819 | @@ -77,7 +77,6 @@ class VolumeTypeActionController(wsgi.Controller): |
3820 | vol_type = req.cached_resource_by_id(type_id, name='types') |
3821 | self._extend_vol_type(vol_type_rval, vol_type) |
3822 | |
3823 | - # TODO: remove this, there is no /types/detail call for this to extend |
3824 | @wsgi.extends |
3825 | def detail(self, req, resp_obj): |
3826 | context = req.environ['cinder.context'] |
3827 | diff --git a/cinder/api/microversions.py b/cinder/api/microversions.py |
3828 | index 0c06e6c..e8605c6 100644 |
3829 | --- a/cinder/api/microversions.py |
3830 | +++ b/cinder/api/microversions.py |
3831 | @@ -37,6 +37,8 @@ from cinder import exception |
3832 | |
3833 | # Add new constants here for each new microversion. |
3834 | |
3835 | +V2_BASE_VERSION = '2.0' |
3836 | + |
3837 | BASE_VERSION = '3.0' |
3838 | |
3839 | UPLOAD_IMAGE_PARAMS = '3.1' |
3840 | @@ -167,10 +169,6 @@ VOLUME_TYPE_ID_IN_VOLUME_DETAIL = '3.63' |
3841 | |
3842 | ENCRYPTION_KEY_ID_IN_DETAILS = '3.64' |
3843 | |
3844 | -USE_QUOTA = '3.65' |
3845 | - |
3846 | -SNAPSHOT_IN_USE = '3.66' |
3847 | - |
3848 | |
3849 | def get_mv_header(version): |
3850 | """Gets a formatted HTTP microversion header. |
3851 | diff --git a/cinder/api/openstack/api_version_request.py b/cinder/api/openstack/api_version_request.py |
3852 | index 183e904..bde0205 100644 |
3853 | --- a/cinder/api/openstack/api_version_request.py |
3854 | +++ b/cinder/api/openstack/api_version_request.py |
3855 | @@ -148,18 +148,16 @@ REST_API_VERSION_HISTORY = """ |
3856 | ("GET /v3/{project_id}/volumes/detail") and volume-show |
3857 | ("GET /v3/{project_id}/volumes/{volume_id}") calls. |
3858 | * 3.64 - Include 'encryption_key_id' in volume and backup details |
3859 | - * 3.65 - Include 'consumes_quota' in volume and snapshot details |
3860 | - - Accept 'consumes_quota' filter in volume and snapshot list |
3861 | - operation. |
3862 | - * 3.66 - Allow snapshotting in-use volumes without force flag. |
3863 | """ |
3864 | |
3865 | # The minimum and maximum versions of the API supported |
3866 | # The default api version request is defined to be the |
3867 | # minimum version of the API supported. |
3868 | +# Explicitly using /v2 endpoints will still work |
3869 | _MIN_API_VERSION = "3.0" |
3870 | -_MAX_API_VERSION = "3.66" |
3871 | -UPDATED = "2021-09-16T00:00:00Z" |
3872 | +_MAX_API_VERSION = "3.64" |
3873 | +_LEGACY_API_VERSION2 = "2.0" |
3874 | +UPDATED = "2021-02-03T00:00:00Z" |
3875 | |
3876 | |
3877 | # NOTE(cyeoh): min and max versions declared as functions so we can |
3878 | @@ -173,6 +171,10 @@ def max_api_version(): |
3879 | return APIVersionRequest(_MAX_API_VERSION) |
3880 | |
3881 | |
3882 | +def legacy_api_version2(): |
3883 | + return APIVersionRequest(_LEGACY_API_VERSION2) |
3884 | + |
3885 | + |
3886 | class APIVersionRequest(utils.ComparableMixin): |
3887 | """This class represents an API Version Request. |
3888 | |
3889 | diff --git a/cinder/api/openstack/rest_api_version_history.rst b/cinder/api/openstack/rest_api_version_history.rst |
3890 | index 666771a..c4d1c41 100644 |
3891 | --- a/cinder/api/openstack/rest_api_version_history.rst |
3892 | +++ b/cinder/api/openstack/rest_api_version_history.rst |
3893 | @@ -486,22 +486,7 @@ Includes volume type ID in the volume-show and volume-detail-list JSON |
3894 | responses. Before this microversion, Cinder returns only the volume type name |
3895 | in the volume details. |
3896 | |
3897 | -3.64 (Maximum in Wallaby) |
3898 | -------------------------- |
3899 | +3.64 |
3900 | +---- |
3901 | Include the ``encryption_key_id`` in volume and backup details when the |
3902 | associated volume is encrypted. |
3903 | - |
3904 | -3.65 |
3905 | ----- |
3906 | -Include a ``consumes_quota`` field in volume and snapshot details to indicate |
3907 | -whether the resource is consuming quota or not. Also, accept a |
3908 | -``consumes_quota`` filter, which takes a boolean value, in the volume and |
3909 | -snapshot list requests. (The default listing behavior is not to use this |
3910 | -filter.) |
3911 | - |
3912 | -3.66 (Maximum in Xena) |
3913 | ----------------------- |
3914 | -Volume snapshots of in-use volumes can be created without the 'force' flag. |
3915 | -Although the 'force' flag is now considered invalid when passed in a volume |
3916 | -snapshot request, for backward compatibility, the 'force' flag with a value |
3917 | -evaluating to True is silently ignored. |
3918 | diff --git a/cinder/api/openstack/wsgi.py b/cinder/api/openstack/wsgi.py |
3919 | index 2c3dc16..ab9e027 100644 |
3920 | --- a/cinder/api/openstack/wsgi.py |
3921 | +++ b/cinder/api/openstack/wsgi.py |
3922 | @@ -275,9 +275,16 @@ class Request(webob.Request): |
3923 | return self.accept_language.best_match(all_languages) |
3924 | |
3925 | def set_api_version_request(self, url): |
3926 | - """Set API version request based on the request header information.""" |
3927 | - |
3928 | - if API_VERSION_REQUEST_HEADER in self.headers: |
3929 | + """Set API version request based on the request header information. |
3930 | + |
3931 | + Microversions starts with /v3, so if a client sends a request for |
3932 | + version 1.0 or 2.0 with the /v3 endpoint, throw an exception. |
3933 | + Sending a header with any microversion to a /v2 endpoint will |
3934 | + be ignored. |
3935 | + Note that a microversion must be set for the legacy endpoint. This |
3936 | + will appear as 2.0 for /v2. |
3937 | + """ |
3938 | + if API_VERSION_REQUEST_HEADER in self.headers and 'v3' in url: |
3939 | hdr_string = self.headers[API_VERSION_REQUEST_HEADER] |
3940 | # 'latest' is a special keyword which is equivalent to requesting |
3941 | # the maximum version of the API supported |
3942 | @@ -307,8 +314,11 @@ class Request(webob.Request): |
3943 | max_ver=api_version.max_api_version().get_string()) |
3944 | |
3945 | else: |
3946 | - self.api_version_request = api_version.APIVersionRequest( |
3947 | - api_version._MIN_API_VERSION) |
3948 | + if 'v2' in url: |
3949 | + self.api_version_request = api_version.legacy_api_version2() |
3950 | + else: |
3951 | + self.api_version_request = api_version.APIVersionRequest( |
3952 | + api_version._MIN_API_VERSION) |
3953 | |
3954 | |
3955 | class ActionDispatcher(object): |
3956 | diff --git a/cinder/api/v2/router.py b/cinder/api/v2/router.py |
3957 | new file mode 100644 |
3958 | index 0000000..3a5ba81 |
3959 | --- /dev/null |
3960 | +++ b/cinder/api/v2/router.py |
3961 | @@ -0,0 +1,93 @@ |
3962 | +# Copyright 2011 OpenStack Foundation |
3963 | +# Copyright 2011 United States Government as represented by the |
3964 | +# Administrator of the National Aeronautics and Space Administration. |
3965 | +# All Rights Reserved. |
3966 | +# |
3967 | +# Licensed under the Apache License, Version 2.0 (the "License"); you may |
3968 | +# not use this file except in compliance with the License. You may obtain |
3969 | +# a copy of the License at |
3970 | +# |
3971 | +# http://www.apache.org/licenses/LICENSE-2.0 |
3972 | +# |
3973 | +# Unless required by applicable law or agreed to in writing, software |
3974 | +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT |
3975 | +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the |
3976 | +# License for the specific language governing permissions and limitations |
3977 | +# under the License. |
3978 | + |
3979 | +""" |
3980 | +WSGI middleware for OpenStack Volume API. |
3981 | +""" |
3982 | + |
3983 | +from cinder.api import extensions |
3984 | +import cinder.api.openstack |
3985 | +from cinder.api.v2 import limits |
3986 | +from cinder.api.v2 import snapshot_metadata |
3987 | +from cinder.api.v2 import snapshots |
3988 | +from cinder.api.v2 import types |
3989 | +from cinder.api.v2 import volume_metadata |
3990 | +from cinder.api.v2 import volumes |
3991 | +from cinder.api import versions |
3992 | + |
3993 | + |
3994 | +class APIRouter(cinder.api.openstack.APIRouter): |
3995 | + """Routes requests on the API to the appropriate controller and method.""" |
3996 | + ExtensionManager = extensions.ExtensionManager |
3997 | + |
3998 | + def _setup_routes(self, mapper, ext_mgr): |
3999 | + self.resources['versions'] = versions.create_resource() |
4000 | + mapper.connect("versions", "/", |
4001 | + controller=self.resources['versions'], |
4002 | + action='index') |
4003 | + |
4004 | + mapper.redirect("", "/") |
4005 | + |
4006 | + self.resources['volumes'] = volumes.create_resource(ext_mgr) |
4007 | + mapper.resource("volume", "volumes", |
4008 | + controller=self.resources['volumes'], |
4009 | + collection={'detail': 'GET'}, |
4010 | + member={'action': 'POST'}) |
4011 | + |
4012 | + self.resources['types'] = types.create_resource() |
4013 | + mapper.resource("type", "types", |
4014 | + controller=self.resources['types'], |
4015 | + member={'action': 'POST'}) |
4016 | + |
4017 | + self.resources['snapshots'] = snapshots.create_resource(ext_mgr) |
4018 | + mapper.resource("snapshot", "snapshots", |
4019 | + controller=self.resources['snapshots'], |
4020 | + collection={'detail': 'GET'}, |
4021 | + member={'action': 'POST'}) |
4022 | + |
4023 | + self.resources['limits'] = limits.create_resource() |
4024 | + mapper.resource("limit", "limits", |
4025 | + controller=self.resources['limits']) |
4026 | + |
4027 | + self.resources['snapshot_metadata'] = \ |
4028 | + snapshot_metadata.create_resource() |
4029 | + snapshot_metadata_controller = self.resources['snapshot_metadata'] |
4030 | + |
4031 | + mapper.resource("snapshot_metadata", "metadata", |
4032 | + controller=snapshot_metadata_controller, |
4033 | + parent_resource=dict(member_name='snapshot', |
4034 | + collection_name='snapshots')) |
4035 | + |
4036 | + mapper.connect("metadata", |
4037 | + "/{project_id}/snapshots/{snapshot_id}/metadata", |
4038 | + controller=snapshot_metadata_controller, |
4039 | + action='update_all', |
4040 | + conditions={"method": ['PUT']}) |
4041 | + |
4042 | + self.resources['volume_metadata'] = volume_metadata.create_resource() |
4043 | + volume_metadata_controller = self.resources['volume_metadata'] |
4044 | + |
4045 | + mapper.resource("volume_metadata", "metadata", |
4046 | + controller=volume_metadata_controller, |
4047 | + parent_resource=dict(member_name='volume', |
4048 | + collection_name='volumes')) |
4049 | + |
4050 | + mapper.connect("metadata", |
4051 | + "/{project_id}/volumes/{volume_id}/metadata", |
4052 | + controller=volume_metadata_controller, |
4053 | + action='update_all', |
4054 | + conditions={"method": ['PUT']}) |
4055 | diff --git a/cinder/api/v3/snapshot_metadata.py b/cinder/api/v2/snapshot_metadata.py |
4056 | similarity index 100% |
4057 | rename from cinder/api/v3/snapshot_metadata.py |
4058 | rename to cinder/api/v2/snapshot_metadata.py |
4059 | diff --git a/cinder/api/v3/types.py b/cinder/api/v2/types.py |
4060 | similarity index 93% |
4061 | rename from cinder/api/v3/types.py |
4062 | rename to cinder/api/v2/types.py |
4063 | index abd160e..ae19cbe 100644 |
4064 | --- a/cinder/api/v3/types.py |
4065 | +++ b/cinder/api/v2/types.py |
4066 | @@ -23,10 +23,9 @@ from cinder.api import api_utils |
4067 | from cinder.api import common |
4068 | from cinder.api import microversions as mv |
4069 | from cinder.api.openstack import wsgi |
4070 | -from cinder.api.v3.views import types as views_types |
4071 | +from cinder.api.v2.views import types as views_types |
4072 | from cinder import exception |
4073 | from cinder.i18n import _ |
4074 | -from cinder.policies import type_extra_specs as extra_specs_policy |
4075 | from cinder.policies import volume_type as type_policy |
4076 | from cinder.volume import volume_types |
4077 | |
4078 | @@ -101,18 +100,6 @@ class VolumeTypesController(wsgi.Controller): |
4079 | except (ValueError, SyntaxError): |
4080 | LOG.debug('Could not evaluate "extra_specs" %s, assuming ' |
4081 | 'dictionary string.', filters['extra_specs']) |
4082 | - |
4083 | - # Do not allow sensitive extra specs to be used in a filter if |
4084 | - # the context only allows access to user visible extra specs. |
4085 | - # Removing the filter would yield inaccurate results, so an |
4086 | - # empty result is returned because as far as an unauthorized |
4087 | - # user goes, the list of volume-types meeting their filtering |
4088 | - # criteria is empty. |
4089 | - if not context.authorize(extra_specs_policy.READ_SENSITIVE_POLICY, |
4090 | - fatal=False): |
4091 | - for k in filters['extra_specs'].keys(): |
4092 | - if k not in extra_specs_policy.USER_VISIBLE_EXTRA_SPECS: |
4093 | - return [] |
4094 | limited_types = volume_types.get_all_types(context, |
4095 | filters=filters, |
4096 | marker=marker, limit=limit, |
4097 | diff --git a/cinder/api/v3/views/types.py b/cinder/api/v2/views/types.py |
4098 | similarity index 85% |
4099 | rename from cinder/api/v3/views/types.py |
4100 | rename to cinder/api/v2/views/types.py |
4101 | index 2d1c80c..e9064b7 100644 |
4102 | --- a/cinder/api/v3/views/types.py |
4103 | +++ b/cinder/api/v2/views/types.py |
4104 | @@ -15,7 +15,6 @@ |
4105 | # under the License. |
4106 | |
4107 | from cinder.api import common |
4108 | -from cinder.policies import type_extra_specs as extra_specs_policy |
4109 | from cinder.policies import volume_type as policy |
4110 | |
4111 | |
4112 | @@ -28,24 +27,10 @@ class ViewBuilder(common.ViewBuilder): |
4113 | name=volume_type.get('name'), |
4114 | is_public=volume_type.get('is_public'), |
4115 | description=volume_type.get('description')) |
4116 | - |
4117 | if context.authorize(policy.EXTRA_SPEC_POLICY, fatal=False): |
4118 | - extra_specs = volume_type.get('extra_specs', {}) |
4119 | - if context.authorize(extra_specs_policy.READ_SENSITIVE_POLICY, |
4120 | - fatal=False): |
4121 | - trimmed_specs = extra_specs |
4122 | - else: |
4123 | - # Limit the response to contain only user visible specs. |
4124 | - trimmed_specs = {} |
4125 | - for uv_spec in extra_specs_policy.USER_VISIBLE_EXTRA_SPECS: |
4126 | - if uv_spec in extra_specs: |
4127 | - trimmed_specs[uv_spec] = extra_specs[uv_spec] |
4128 | - |
4129 | - trimmed['extra_specs'] = trimmed_specs |
4130 | - |
4131 | + trimmed['extra_specs'] = volume_type.get('extra_specs') |
4132 | if context.authorize(policy.QOS_POLICY, fatal=False): |
4133 | trimmed['qos_specs_id'] = volume_type.get('qos_specs_id') |
4134 | - |
4135 | return trimmed if brief else dict(volume_type=trimmed) |
4136 | |
4137 | def index(self, request, volume_types): |
4138 | diff --git a/cinder/api/v2/volumes.py b/cinder/api/v2/volumes.py |
4139 | index ddff047..fb2e015 100644 |
4140 | --- a/cinder/api/v2/volumes.py |
4141 | +++ b/cinder/api/v2/volumes.py |
4142 | @@ -177,14 +177,8 @@ class VolumeController(wsgi.Controller): |
4143 | "access requested image.") |
4144 | raise exc.HTTPBadRequest(explanation=msg) |
4145 | |
4146 | - # NOTE: using mv.BASE_VERSION (which is 3.0) is a bit nonstandard, |
4147 | - # but this class is no longer consumed by the v2 API, though it is |
4148 | - # a superclass of cinder.api.v3.volumes. Although create() is |
4149 | - # overridden in the subclass, I didn't want to remove it from |
4150 | - # here until we are sure that the v3 unit tests for create() test |
4151 | - # everything that the v2 unit tests covered. |
4152 | @wsgi.response(HTTPStatus.ACCEPTED) |
4153 | - @validation.schema(volumes.create, mv.BASE_VERSION) |
4154 | + @validation.schema(volumes.create, mv.V2_BASE_VERSION) |
4155 | def create(self, req, body): |
4156 | """Creates a new volume.""" |
4157 | |
4158 | @@ -285,8 +279,7 @@ class VolumeController(wsgi.Controller): |
4159 | """Return volume search options allowed by non-admin.""" |
4160 | return common.get_enabled_resource_filters('volume').get('volume', []) |
4161 | |
4162 | - # NOTE: see NOTE for create(), above |
4163 | - @validation.schema(volumes.update, mv.BASE_VERSION, |
4164 | + @validation.schema(volumes.update, mv.V2_BASE_VERSION, |
4165 | mv.get_prior_version(mv.SUPPORT_VOLUME_SCHEMA_CHANGES)) |
4166 | @validation.schema(volumes.update_volume_v353, |
4167 | mv.SUPPORT_VOLUME_SCHEMA_CHANGES) |
4168 | diff --git a/cinder/api/v3/default_types.py b/cinder/api/v3/default_types.py |
4169 | index 536f52e..ffdf607 100644 |
4170 | --- a/cinder/api/v3/default_types.py |
4171 | +++ b/cinder/api/v3/default_types.py |
4172 | @@ -16,9 +16,9 @@ |
4173 | """The resource filters api.""" |
4174 | from http import HTTPStatus |
4175 | |
4176 | +from keystoneauth1 import exceptions as ks_exc |
4177 | from webob import exc |
4178 | |
4179 | -from cinder.api import api_utils as utils |
4180 | from cinder.api import microversions as mv |
4181 | from cinder.api.openstack import wsgi |
4182 | from cinder.api.schemas import default_types |
4183 | @@ -29,6 +29,7 @@ from cinder import exception |
4184 | from cinder.i18n import _ |
4185 | from cinder import objects |
4186 | from cinder.policies import default_types as policy |
4187 | +from cinder import quota_utils |
4188 | |
4189 | |
4190 | class DefaultTypesController(wsgi.Controller): |
4191 | @@ -36,6 +37,22 @@ class DefaultTypesController(wsgi.Controller): |
4192 | |
4193 | _view_builder_class = default_types_view.ViewBuilder |
4194 | |
4195 | + def _validate_project_and_authorize(self, context, project_id, |
4196 | + policy_check): |
4197 | + try: |
4198 | + target_project = quota_utils.get_project_hierarchy(context, |
4199 | + project_id) |
4200 | + target_project = {'project_id': target_project.id, |
4201 | + 'domain_id': target_project.domain_id} |
4202 | + context.authorize(policy_check, target=target_project) |
4203 | + except ks_exc.http.NotFound: |
4204 | + explanation = _("Project with id %s not found." % project_id) |
4205 | + raise exc.HTTPNotFound(explanation=explanation) |
4206 | + except exception.NotAuthorized: |
4207 | + explanation = _("You are not authorized to perform this " |
4208 | + "operation.") |
4209 | + raise exc.HTTPForbidden(explanation=explanation) |
4210 | + |
4211 | @wsgi.response(HTTPStatus.OK) |
4212 | @wsgi.Controller.api_version(mv.DEFAULT_TYPE_OVERRIDES) |
4213 | @validation.schema(default_types.create_or_update) |
4214 | @@ -46,7 +63,7 @@ class DefaultTypesController(wsgi.Controller): |
4215 | project_id = id |
4216 | volume_type_id = body['default_type']['volume_type'] |
4217 | |
4218 | - utils.validate_project_and_authorize(context, project_id, |
4219 | + self._validate_project_and_authorize(context, project_id, |
4220 | policy.CREATE_UPDATE_POLICY) |
4221 | try: |
4222 | volume_type_id = objects.VolumeType.get_by_name_or_id( |
4223 | @@ -68,7 +85,7 @@ class DefaultTypesController(wsgi.Controller): |
4224 | context = req.environ['cinder.context'] |
4225 | |
4226 | project_id = id |
4227 | - utils.validate_project_and_authorize(context, project_id, |
4228 | + self._validate_project_and_authorize(context, project_id, |
4229 | policy.GET_POLICY) |
4230 | default_type = db.project_default_volume_type_get(context, project_id) |
4231 | if not default_type: |
4232 | @@ -100,7 +117,7 @@ class DefaultTypesController(wsgi.Controller): |
4233 | context = req.environ['cinder.context'] |
4234 | |
4235 | project_id = id |
4236 | - utils.validate_project_and_authorize(context, project_id, |
4237 | + self._validate_project_and_authorize(context, project_id, |
4238 | policy.DELETE_POLICY) |
4239 | db.project_default_volume_type_unset(context, id) |
4240 | |
4241 | diff --git a/cinder/api/v3/group_specs.py b/cinder/api/v3/group_specs.py |
4242 | index 90102c3..60daa1b 100644 |
4243 | --- a/cinder/api/v3/group_specs.py |
4244 | +++ b/cinder/api/v3/group_specs.py |
4245 | @@ -49,7 +49,7 @@ class GroupTypeSpecsController(wsgi.Controller): |
4246 | def index(self, req, group_type_id): |
4247 | """Returns the list of group specs for a given group type.""" |
4248 | context = req.environ['cinder.context'] |
4249 | - context.authorize(policy.SPEC_GET_ALL_POLICY) |
4250 | + context.authorize(policy.SPEC_POLICY) |
4251 | self._check_type(context, group_type_id) |
4252 | return self._get_group_specs(context, group_type_id) |
4253 | |
4254 | @@ -58,7 +58,7 @@ class GroupTypeSpecsController(wsgi.Controller): |
4255 | @validation.schema(group_specs.create) |
4256 | def create(self, req, group_type_id, body): |
4257 | context = req.environ['cinder.context'] |
4258 | - context.authorize(policy.SPEC_CREATE_POLICY) |
4259 | + context.authorize(policy.SPEC_POLICY) |
4260 | |
4261 | self._check_type(context, group_type_id) |
4262 | specs = body['group_specs'] |
4263 | @@ -75,7 +75,7 @@ class GroupTypeSpecsController(wsgi.Controller): |
4264 | @validation.schema(group_specs.update) |
4265 | def update(self, req, group_type_id, id, body): |
4266 | context = req.environ['cinder.context'] |
4267 | - context.authorize(policy.SPEC_UPDATE_POLICY) |
4268 | + context.authorize(policy.SPEC_POLICY) |
4269 | |
4270 | self._check_type(context, group_type_id) |
4271 | if id not in body: |
4272 | @@ -96,7 +96,7 @@ class GroupTypeSpecsController(wsgi.Controller): |
4273 | def show(self, req, group_type_id, id): |
4274 | """Return a single extra spec item.""" |
4275 | context = req.environ['cinder.context'] |
4276 | - context.authorize(policy.SPEC_GET_POLICY) |
4277 | + context.authorize(policy.SPEC_POLICY) |
4278 | |
4279 | self._check_type(context, group_type_id) |
4280 | specs = self._get_group_specs(context, group_type_id) |
4281 | @@ -111,7 +111,7 @@ class GroupTypeSpecsController(wsgi.Controller): |
4282 | def delete(self, req, group_type_id, id): |
4283 | """Deletes an existing group spec.""" |
4284 | context = req.environ['cinder.context'] |
4285 | - context.authorize(policy.SPEC_DELETE_POLICY) |
4286 | + context.authorize(policy.SPEC_POLICY) |
4287 | |
4288 | self._check_type(context, group_type_id) |
4289 | |
4290 | diff --git a/cinder/api/v3/group_types.py b/cinder/api/v3/group_types.py |
4291 | index 6383220..cc7c4c6 100644 |
4292 | --- a/cinder/api/v3/group_types.py |
4293 | +++ b/cinder/api/v3/group_types.py |
4294 | @@ -57,7 +57,7 @@ class GroupTypesController(wsgi.Controller): |
4295 | def create(self, req, body): |
4296 | """Creates a new group type.""" |
4297 | context = req.environ['cinder.context'] |
4298 | - context.authorize(policy.CREATE_POLICY) |
4299 | + context.authorize(policy.MANAGE_POLICY) |
4300 | |
4301 | grp_type = body['group_type'] |
4302 | name = grp_type['name'] |
4303 | @@ -93,7 +93,7 @@ class GroupTypesController(wsgi.Controller): |
4304 | def update(self, req, id, body): |
4305 | # Update description for a given group type. |
4306 | context = req.environ['cinder.context'] |
4307 | - context.authorize(policy.UPDATE_POLICY) |
4308 | + context.authorize(policy.MANAGE_POLICY) |
4309 | |
4310 | grp_type = body['group_type'] |
4311 | description = grp_type.get('description') |
4312 | @@ -142,7 +142,7 @@ class GroupTypesController(wsgi.Controller): |
4313 | def delete(self, req, id): |
4314 | """Deletes an existing group type.""" |
4315 | context = req.environ['cinder.context'] |
4316 | - context.authorize(policy.DELETE_POLICY) |
4317 | + context.authorize(policy.MANAGE_POLICY) |
4318 | |
4319 | try: |
4320 | grp_type = group_types.get_group_type(context, id) |
4321 | diff --git a/cinder/api/v3/limits.py b/cinder/api/v3/limits.py |
4322 | index d0f2186..2e7b698 100644 |
4323 | --- a/cinder/api/v3/limits.py |
4324 | +++ b/cinder/api/v3/limits.py |
4325 | @@ -33,9 +33,8 @@ class LimitsController(limits_v2.LimitsController): |
4326 | |
4327 | # TODO(wangxiyuan): Support "tenant_id" here to keep the backwards |
4328 | # compatibility. Remove it once we drop all support for "tenant". |
4329 | - if (req_version.matches(None, |
4330 | - mv.get_prior_version(mv.LIMITS_ADMIN_FILTER)) |
4331 | - or not context.is_admin): |
4332 | + if req_version.matches(None, |
4333 | + mv.GROUP_REPLICATION) or not context.is_admin: |
4334 | params.pop('project_id', None) |
4335 | params.pop('tenant_id', None) |
4336 | project_id = params.get( |
4337 | diff --git a/cinder/api/v3/router.py b/cinder/api/v3/router.py |
4338 | index 4ad2acf..dad5585 100644 |
4339 | --- a/cinder/api/v3/router.py |
4340 | +++ b/cinder/api/v3/router.py |
4341 | @@ -21,6 +21,8 @@ WSGI middleware for OpenStack Volume API. |
4342 | |
4343 | from cinder.api import extensions |
4344 | import cinder.api.openstack |
4345 | +from cinder.api.v2 import snapshot_metadata |
4346 | +from cinder.api.v2 import types |
4347 | from cinder.api.v3 import attachments |
4348 | from cinder.api.v3 import backups |
4349 | from cinder.api.v3 import clusters |
4350 | @@ -34,9 +36,7 @@ from cinder.api.v3 import limits |
4351 | from cinder.api.v3 import messages |
4352 | from cinder.api.v3 import resource_filters |
4353 | from cinder.api.v3 import snapshot_manage |
4354 | -from cinder.api.v3 import snapshot_metadata |
4355 | from cinder.api.v3 import snapshots |
4356 | -from cinder.api.v3 import types |
4357 | from cinder.api.v3 import volume_manage |
4358 | from cinder.api.v3 import volume_metadata |
4359 | from cinder.api.v3 import volume_transfer |
4360 | diff --git a/cinder/api/v3/snapshots.py b/cinder/api/v3/snapshots.py |
4361 | index 159cd30..9debfce 100644 |
4362 | --- a/cinder/api/v3/snapshots.py |
4363 | +++ b/cinder/api/v3/snapshots.py |
4364 | @@ -16,30 +16,19 @@ |
4365 | """The volumes snapshots V3 API.""" |
4366 | |
4367 | import ast |
4368 | -from http import HTTPStatus |
4369 | |
4370 | from oslo_log import log as logging |
4371 | -from oslo_utils import strutils |
4372 | -from webob import exc |
4373 | |
4374 | from cinder.api import api_utils |
4375 | from cinder.api import common |
4376 | from cinder.api import microversions as mv |
4377 | from cinder.api.openstack import wsgi |
4378 | -from cinder.api.schemas import snapshots as snapshot |
4379 | from cinder.api.v2 import snapshots as snapshots_v2 |
4380 | from cinder.api.v3.views import snapshots as snapshot_views |
4381 | -from cinder.api import validation |
4382 | from cinder import utils |
4383 | |
4384 | LOG = logging.getLogger(__name__) |
4385 | |
4386 | -SNAPSHOT_IN_USE_FLAG_MSG = ( |
4387 | - f"Since microversion {mv.SNAPSHOT_IN_USE} the 'force' flag is " |
4388 | - "invalid for this request. For backward compatability, however, when " |
4389 | - "the 'force' flag is passed with a value evaluating to True, it is " |
4390 | - "silently ignored.") |
4391 | - |
4392 | |
4393 | class SnapshotsController(snapshots_v2.SnapshotsController): |
4394 | """The Snapshots API controller for the OpenStack API.""" |
4395 | @@ -64,24 +53,16 @@ class SnapshotsController(snapshots_v2.SnapshotsController): |
4396 | LOG.debug('Could not evaluate value %s, assuming string', |
4397 | search_opts['metadata']) |
4398 | |
4399 | - if 'use_quota' in search_opts: |
4400 | - search_opts['use_quota'] = utils.get_bool_param('use_quota', |
4401 | - search_opts) |
4402 | - |
4403 | - MV_ADDED_FILTERS = ( |
4404 | - (mv.get_prior_version(mv.SNAPSHOT_LIST_METADATA_FILTER), 'metadata'), |
4405 | - # REST API receives consumes_quota, but process_general_filtering |
4406 | - # transforms it into use_quota |
4407 | - (mv.get_prior_version(mv.USE_QUOTA), 'use_quota'), |
4408 | - ) |
4409 | - |
4410 | @common.process_general_filtering('snapshot') |
4411 | def _process_snapshot_filtering(self, context=None, filters=None, |
4412 | req_version=None): |
4413 | """Formats allowed filters""" |
4414 | - for version, field in self.MV_ADDED_FILTERS: |
4415 | - if req_version.matches(None, version): |
4416 | - filters.pop(field, None) |
4417 | + |
4418 | + # if the max version is less than SNAPSHOT_LIST_METADATA_FILTER |
4419 | + # metadata based filtering is not supported |
4420 | + if req_version.matches( |
4421 | + None, mv.get_prior_version(mv.SNAPSHOT_LIST_METADATA_FILTER)): |
4422 | + filters.pop('metadata', None) |
4423 | |
4424 | # Filter out invalid options |
4425 | allowed_search_options = self._get_snapshot_filter_options() |
4426 | @@ -142,58 +123,6 @@ class SnapshotsController(snapshots_v2.SnapshotsController): |
4427 | total_count) |
4428 | return snapshots |
4429 | |
4430 | - @wsgi.response(HTTPStatus.ACCEPTED) |
4431 | - @validation.schema(snapshot.create) |
4432 | - def create(self, req, body): |
4433 | - """Creates a new snapshot.""" |
4434 | - kwargs = {} |
4435 | - context = req.environ['cinder.context'] |
4436 | - snapshot = body['snapshot'] |
4437 | - kwargs['metadata'] = snapshot.get('metadata', None) |
4438 | - volume_id = snapshot['volume_id'] |
4439 | - volume = self.volume_api.get(context, volume_id) |
4440 | - req_version = req.api_version_request |
4441 | - force_flag = snapshot.get('force') |
4442 | - force = False |
4443 | - if force_flag is not None: |
4444 | - # note: this won't raise because it passed schema validation |
4445 | - force = strutils.bool_from_string(force_flag, strict=True) |
4446 | - |
4447 | - if req_version.matches(mv.SNAPSHOT_IN_USE): |
4448 | - # strictly speaking, the 'force' flag is invalid for |
4449 | - # mv.SNAPSHOT_IN_USE, but we silently ignore a True |
4450 | - # value for backward compatibility |
4451 | - if force is False: |
4452 | - raise exc.HTTPBadRequest( |
4453 | - explanation=SNAPSHOT_IN_USE_FLAG_MSG) |
4454 | - |
4455 | - LOG.info("Create snapshot from volume %s", volume_id) |
4456 | - |
4457 | - self.validate_name_and_description(snapshot, check_length=False) |
4458 | - if 'name' in snapshot: |
4459 | - snapshot['display_name'] = snapshot.pop('name') |
4460 | - |
4461 | - if force: |
4462 | - new_snapshot = self.volume_api.create_snapshot_force( |
4463 | - context, |
4464 | - volume, |
4465 | - snapshot.get('display_name'), |
4466 | - snapshot.get('description'), |
4467 | - **kwargs) |
4468 | - else: |
4469 | - if req_version.matches(mv.SNAPSHOT_IN_USE): |
4470 | - kwargs['allow_in_use'] = True |
4471 | - |
4472 | - new_snapshot = self.volume_api.create_snapshot( |
4473 | - context, |
4474 | - volume, |
4475 | - snapshot.get('display_name'), |
4476 | - snapshot.get('description'), |
4477 | - **kwargs) |
4478 | - req.cache_db_snapshot(new_snapshot) |
4479 | - |
4480 | - return self._view_builder.detail(req, new_snapshot) |
4481 | - |
4482 | |
4483 | def create_resource(ext_mgr): |
4484 | return wsgi.Resource(SnapshotsController(ext_mgr)) |
4485 | diff --git a/cinder/api/v3/views/snapshots.py b/cinder/api/v3/views/snapshots.py |
4486 | index cd09f9c..857df05 100644 |
4487 | --- a/cinder/api/v3/views/snapshots.py |
4488 | +++ b/cinder/api/v3/views/snapshots.py |
4489 | @@ -27,11 +27,9 @@ class ViewBuilder(views_v2.ViewBuilder): |
4490 | req_version = request.api_version_request |
4491 | # Add group_snapshot_id if min version is greater than or equal |
4492 | # to GROUP_SNAPSHOTS. |
4493 | - snap = snapshot_ref['snapshot'] |
4494 | if req_version.matches(mv.GROUP_SNAPSHOTS, None): |
4495 | - snap['group_snapshot_id'] = snapshot.get('group_snapshot_id') |
4496 | + snapshot_ref['snapshot']['group_snapshot_id'] = ( |
4497 | + snapshot.get('group_snapshot_id')) |
4498 | if req_version.matches(mv.SNAPSHOT_LIST_USER_ID, None): |
4499 | - snap['user_id'] = snapshot.get('user_id') |
4500 | - if req_version.matches(mv.USE_QUOTA): |
4501 | - snap['consumes_quota'] = snapshot.get('use_quota') |
4502 | + snapshot_ref['snapshot']['user_id'] = snapshot.get('user_id') |
4503 | return snapshot_ref |
4504 | diff --git a/cinder/api/v3/views/volumes.py b/cinder/api/v3/views/volumes.py |
4505 | index ded603a..ed171c7 100644 |
4506 | --- a/cinder/api/v3/views/volumes.py |
4507 | +++ b/cinder/api/v3/views/volumes.py |
4508 | @@ -77,9 +77,6 @@ class ViewBuilder(views_v2.ViewBuilder): |
4509 | encryption_key_id != cinder_constants.FIXED_KEY_ID): |
4510 | volume_ref['volume']['encryption_key_id'] = encryption_key_id |
4511 | |
4512 | - if req_version.matches(mv.USE_QUOTA): |
4513 | - volume_ref['volume']['consumes_quota'] = volume.get('use_quota') |
4514 | - |
4515 | return volume_ref |
4516 | |
4517 | def _list_view(self, func, request, volumes, volume_count, |
4518 | diff --git a/cinder/api/v3/volumes.py b/cinder/api/v3/volumes.py |
4519 | index 0d2841c..09b5738 100644 |
4520 | --- a/cinder/api/v3/volumes.py |
4521 | +++ b/cinder/api/v3/volumes.py |
4522 | @@ -80,23 +80,18 @@ class VolumeController(volumes_v2.VolumeController): |
4523 | |
4524 | return webob.Response(status_int=HTTPStatus.ACCEPTED) |
4525 | |
4526 | - MV_ADDED_FILTERS = ( |
4527 | - (mv.get_prior_version(mv.VOLUME_LIST_GLANCE_METADATA), |
4528 | - 'glance_metadata'), |
4529 | - (mv.get_prior_version(mv.VOLUME_LIST_GROUP), 'group_id'), |
4530 | - (mv.get_prior_version(mv.VOLUME_TIME_COMPARISON_FILTER), 'created_at'), |
4531 | - (mv.get_prior_version(mv.VOLUME_TIME_COMPARISON_FILTER), 'updated_at'), |
4532 | - # REST API receives consumes_quota, but process_general_filtering |
4533 | - # transforms it into use_quota |
4534 | - (mv.get_prior_version(mv.USE_QUOTA), 'use_quota'), |
4535 | - ) |
4536 | - |
4537 | @common.process_general_filtering('volume') |
4538 | def _process_volume_filtering(self, context=None, filters=None, |
4539 | req_version=None): |
4540 | - for version, field in self.MV_ADDED_FILTERS: |
4541 | - if req_version.matches(None, version): |
4542 | - filters.pop(field, None) |
4543 | + if req_version.matches(None, mv.MESSAGES): |
4544 | + filters.pop('glance_metadata', None) |
4545 | + |
4546 | + if req_version.matches(None, mv.BACKUP_UPDATE): |
4547 | + filters.pop('group_id', None) |
4548 | + |
4549 | + if req_version.matches(None, mv.SUPPORT_TRANSFER_PAGINATION): |
4550 | + filters.pop('created_at', None) |
4551 | + filters.pop('updated_at', None) |
4552 | |
4553 | api_utils.remove_invalid_filter_options( |
4554 | context, filters, |
4555 | @@ -152,17 +147,13 @@ class VolumeController(volumes_v2.VolumeController): |
4556 | self._process_volume_filtering(context=context, filters=filters, |
4557 | req_version=req_version) |
4558 | |
4559 | - # NOTE: it's 'name' in the REST API, but 'display_name' in the |
4560 | - # database layer, so we need to do this translation |
4561 | + # NOTE(thingee): v2 API allows name instead of display_name |
4562 | if 'name' in sort_keys: |
4563 | sort_keys[sort_keys.index('name')] = 'display_name' |
4564 | |
4565 | if 'name' in filters: |
4566 | filters['display_name'] = filters.pop('name') |
4567 | |
4568 | - if 'use_quota' in filters: |
4569 | - filters['use_quota'] = utils.get_bool_param('use_quota', filters) |
4570 | - |
4571 | self._handle_time_comparison_filters(filters) |
4572 | |
4573 | strict = req.api_version_request.matches( |
4574 | @@ -311,11 +302,12 @@ class VolumeController(volumes_v2.VolumeController): |
4575 | kwargs = {} |
4576 | self.validate_name_and_description(volume, check_length=False) |
4577 | |
4578 | - # NOTE: it's 'name'/'description' in the REST API, but |
4579 | - # 'display_name'/display_description' in the database layer, |
4580 | - # so we need to do this translation |
4581 | + # NOTE(thingee): v2 API allows name instead of display_name |
4582 | if 'name' in volume: |
4583 | volume['display_name'] = volume.pop('name') |
4584 | + |
4585 | + # NOTE(thingee): v2 API allows description instead of |
4586 | + # display_description |
4587 | if 'description' in volume: |
4588 | volume['display_description'] = volume.pop('description') |
4589 | |
4590 | diff --git a/cinder/api/versions.py b/cinder/api/versions.py |
4591 | index 90f9b4d..24b9197 100644 |
4592 | --- a/cinder/api/versions.py |
4593 | +++ b/cinder/api/versions.py |
4594 | @@ -38,6 +38,18 @@ _LINKS = [{ |
4595 | |
4596 | |
4597 | _KNOWN_VERSIONS = { |
4598 | + "v2.0": { |
4599 | + "id": "v2.0", |
4600 | + "status": "DEPRECATED", |
4601 | + "version": "", |
4602 | + "min_version": "", |
4603 | + "updated": "2017-02-25T12:00:00Z", |
4604 | + "links": _LINKS, |
4605 | + "media-types": [{ |
4606 | + "base": "application/json", |
4607 | + "type": "application/vnd.openstack.volume+json;version=2", |
4608 | + }] |
4609 | + }, |
4610 | "v3.0": { |
4611 | "id": "v3.0", |
4612 | "status": "CURRENT", |
4613 | @@ -81,15 +93,24 @@ class VersionsController(wsgi.Controller): |
4614 | def __init__(self): |
4615 | super(VersionsController, self).__init__(None) |
4616 | |
4617 | - @wsgi.Controller.api_version('3.0') |
4618 | + @wsgi.Controller.api_version('2.0') |
4619 | + def index(self, req): # pylint: disable=E0102 |
4620 | + """Return versions supported prior to the microversions epoch.""" |
4621 | + builder = views_versions.get_view_builder(req) |
4622 | + known_versions = copy.deepcopy(_KNOWN_VERSIONS) |
4623 | + known_versions.pop('v3.0') |
4624 | + return builder.build_versions(known_versions) |
4625 | + |
4626 | + @index.api_version('3.0') |
4627 | def index(self, req): # pylint: disable=E0102 |
4628 | """Return versions supported after the start of microversions.""" |
4629 | builder = views_versions.get_view_builder(req) |
4630 | known_versions = copy.deepcopy(_KNOWN_VERSIONS) |
4631 | + known_versions.pop('v2.0') |
4632 | return builder.build_versions(known_versions) |
4633 | |
4634 | # NOTE (cknight): Calling the versions API without |
4635 | - # /v3 in the URL will lead to this unversioned |
4636 | + # /v2 or /v3 in the URL will lead to this unversioned |
4637 | # method, which should always return info about all |
4638 | # available versions. |
4639 | @wsgi.response(HTTPStatus.MULTIPLE_CHOICES) |
4640 | @@ -98,6 +119,11 @@ class VersionsController(wsgi.Controller): |
4641 | builder = views_versions.get_view_builder(req) |
4642 | known_versions = copy.deepcopy(_KNOWN_VERSIONS) |
4643 | |
4644 | + if not CONF.enable_v2_api: |
4645 | + known_versions.pop('v2.0') |
4646 | + if not CONF.enable_v3_api: |
4647 | + known_versions.pop('v3.0') |
4648 | + |
4649 | return builder.build_versions(known_versions) |
4650 | |
4651 | |
4652 | diff --git a/cinder/backup/api.py b/cinder/backup/api.py |
4653 | index f04f33f..7e03348 100644 |
4654 | --- a/cinder/backup/api.py |
4655 | +++ b/cinder/backup/api.py |
4656 | @@ -59,11 +59,11 @@ IMPORT_VOLUME_ID = '00000000-0000-0000-0000-000000000000' |
4657 | class API(base.Base): |
4658 | """API for interacting with the volume backup manager.""" |
4659 | |
4660 | - def __init__(self): |
4661 | + def __init__(self, db=None): |
4662 | self.backup_rpcapi = backup_rpcapi.BackupAPI() |
4663 | self.scheduler_rpcapi = scheduler_rpcapi.SchedulerAPI() |
4664 | self.volume_api = cinder.volume.API() |
4665 | - super().__init__() |
4666 | + super(API, self).__init__(db) |
4667 | |
4668 | def get(self, context, backup_id): |
4669 | backup = objects.Backup.get_by_id(context, backup_id) |
4670 | diff --git a/cinder/backup/chunkeddriver.py b/cinder/backup/chunkeddriver.py |
4671 | index df094a3..b780d51 100644 |
4672 | --- a/cinder/backup/chunkeddriver.py |
4673 | +++ b/cinder/backup/chunkeddriver.py |
4674 | @@ -51,15 +51,11 @@ backup_opts = [ |
4675 | cfg.StrOpt('backup_compression_algorithm', |
4676 | default='zlib', |
4677 | ignore_case=True, |
4678 | - choices=[('none', 'Do not use compression'), |
4679 | - ('off', "Same as 'none'"), |
4680 | - ('no', "Same as 'none'"), |
4681 | - ('zlib', 'Use the Deflate compression algorithm'), |
4682 | - ('gzip', "Same as 'zlib'"), |
4683 | - ('bz2', 'Use Burrows-Wheeler transform compression'), |
4684 | - ('bzip2', "Same as 'bz2'"), |
4685 | - ('zstd', 'Use the Zstandard compression algorithm')], |
4686 | - help="Compression algorithm for backups ('none' to disable)"), |
4687 | + choices=['none', 'off', 'no', |
4688 | + 'zlib', 'gzip', |
4689 | + 'bz2', 'bzip2', |
4690 | + 'zstd'], |
4691 | + help='Compression algorithm ("none" to disable)'), |
4692 | ] |
4693 | |
4694 | CONF = cfg.CONF |
4695 | @@ -111,11 +107,10 @@ class ChunkedBackupDriver(driver.BackupDriver, metaclass=abc.ABCMeta): |
4696 | err = _('unsupported compression algorithm: %s') % algorithm |
4697 | raise ValueError(err) |
4698 | |
4699 | - def __init__( |
4700 | - self, context, chunk_size_bytes, sha_block_size_bytes, |
4701 | - backup_default_container, enable_progress_timer, |
4702 | - ): |
4703 | - super(ChunkedBackupDriver, self).__init__(context) |
4704 | + def __init__(self, context, chunk_size_bytes, sha_block_size_bytes, |
4705 | + backup_default_container, enable_progress_timer, |
4706 | + db=None): |
4707 | + super(ChunkedBackupDriver, self).__init__(context, db) |
4708 | self.chunk_size_bytes = chunk_size_bytes |
4709 | self.sha_block_size_bytes = sha_block_size_bytes |
4710 | self.backup_default_container = backup_default_container |
4711 | diff --git a/cinder/backup/driver.py b/cinder/backup/driver.py |
4712 | index f4dc24d..621695c 100644 |
4713 | --- a/cinder/backup/driver.py |
4714 | +++ b/cinder/backup/driver.py |
4715 | @@ -52,8 +52,8 @@ class BackupMetadataAPI(base.Base): |
4716 | TYPE_TAG_VOL_META = 'volume-metadata' |
4717 | TYPE_TAG_VOL_GLANCE_META = 'volume-glance-metadata' |
4718 | |
4719 | - def __init__(self, context): |
4720 | - super().__init__() |
4721 | + def __init__(self, context, db=None): |
4722 | + super(BackupMetadataAPI, self).__init__(db) |
4723 | self.context = context |
4724 | self._key_mgr = None |
4725 | |
4726 | @@ -347,10 +347,10 @@ class BackupMetadataAPI(base.Base): |
4727 | |
4728 | class BackupDriver(base.Base, metaclass=abc.ABCMeta): |
4729 | |
4730 | - def __init__(self, context): |
4731 | - super().__init__() |
4732 | + def __init__(self, context, db=None): |
4733 | + super(BackupDriver, self).__init__(db) |
4734 | self.context = context |
4735 | - self.backup_meta_api = BackupMetadataAPI(context) |
4736 | + self.backup_meta_api = BackupMetadataAPI(context, db) |
4737 | # This flag indicates if backup driver supports force |
4738 | # deletion. So it should be set to True if the driver that inherits |
4739 | # from BackupDriver supports the force deletion function. |
4740 | diff --git a/cinder/backup/drivers/ceph.py b/cinder/backup/drivers/ceph.py |
4741 | index 21a2a3a..e6f13ac 100644 |
4742 | --- a/cinder/backup/drivers/ceph.py |
4743 | +++ b/cinder/backup/drivers/ceph.py |
4744 | @@ -174,8 +174,8 @@ class CephBackupDriver(driver.BackupDriver): |
4745 | gain. |
4746 | """ |
4747 | |
4748 | - def __init__(self, context, execute=None): |
4749 | - super().__init__(context) |
4750 | + def __init__(self, context, db=None, execute=None): |
4751 | + super(CephBackupDriver, self).__init__(context, db) |
4752 | self.rbd = rbd |
4753 | self.rados = rados |
4754 | self.chunk_size = CONF.backup_ceph_chunk_size |
4755 | diff --git a/cinder/backup/drivers/gcs.py b/cinder/backup/drivers/gcs.py |
4756 | index c7288f3..d673fd5 100644 |
4757 | --- a/cinder/backup/drivers/gcs.py |
4758 | +++ b/cinder/backup/drivers/gcs.py |
4759 | @@ -163,20 +163,18 @@ def _get_dist_version(name): |
4760 | class GoogleBackupDriver(chunkeddriver.ChunkedBackupDriver): |
4761 | """Provides backup, restore and delete of backup objects within GCS.""" |
4762 | |
4763 | - def __init__(self, context): |
4764 | + def __init__(self, context, db=None): |
4765 | global OAUTH_EXCEPTIONS |
4766 | backup_bucket = CONF.backup_gcs_bucket |
4767 | self.gcs_project_id = CONF.backup_gcs_project_id |
4768 | chunk_size_bytes = CONF.backup_gcs_object_size |
4769 | sha_block_size_bytes = CONF.backup_gcs_block_size |
4770 | enable_progress_timer = CONF.backup_gcs_enable_progress_timer |
4771 | - super().__init__( |
4772 | - context, |
4773 | - chunk_size_bytes, |
4774 | - sha_block_size_bytes, |
4775 | - backup_bucket, |
4776 | - enable_progress_timer, |
4777 | - ) |
4778 | + super(GoogleBackupDriver, self).__init__(context, chunk_size_bytes, |
4779 | + sha_block_size_bytes, |
4780 | + backup_bucket, |
4781 | + enable_progress_timer, |
4782 | + db) |
4783 | self.reader_chunk_size = CONF.backup_gcs_reader_chunk_size |
4784 | self.writer_chunk_size = CONF.backup_gcs_writer_chunk_size |
4785 | self.bucket_location = CONF.backup_gcs_bucket_location |
4786 | diff --git a/cinder/backup/drivers/glusterfs.py b/cinder/backup/drivers/glusterfs.py |
4787 | index 6e712a3..36420a7 100644 |
4788 | --- a/cinder/backup/drivers/glusterfs.py |
4789 | +++ b/cinder/backup/drivers/glusterfs.py |
4790 | @@ -46,13 +46,14 @@ CONF.register_opts(glusterfsbackup_service_opts) |
4791 | class GlusterfsBackupDriver(posix.PosixBackupDriver): |
4792 | """Provides backup, restore and delete using GlusterFS repository.""" |
4793 | |
4794 | - def __init__(self, context): |
4795 | + def __init__(self, context, db=None): |
4796 | self.backup_mount_point_base = CONF.glusterfs_backup_mount_point |
4797 | self.backup_share = CONF.glusterfs_backup_share |
4798 | self._execute = putils.execute |
4799 | self._root_helper = utils.get_root_helper() |
4800 | backup_path = self._init_backup_repo_path() |
4801 | - super().__init__(context, backup_path=backup_path) |
4802 | + super(GlusterfsBackupDriver, self).__init__(context, |
4803 | + backup_path=backup_path) |
4804 | |
4805 | @staticmethod |
4806 | def get_driver_options(): |
4807 | diff --git a/cinder/backup/drivers/nfs.py b/cinder/backup/drivers/nfs.py |
4808 | index a3b9b1f..886c2cb 100644 |
4809 | --- a/cinder/backup/drivers/nfs.py |
4810 | +++ b/cinder/backup/drivers/nfs.py |
4811 | @@ -58,7 +58,7 @@ CONF.register_opts(nfsbackup_service_opts) |
4812 | class NFSBackupDriver(posix.PosixBackupDriver): |
4813 | """Provides backup, restore and delete using NFS supplied repository.""" |
4814 | |
4815 | - def __init__(self, context): |
4816 | + def __init__(self, context, db=None): |
4817 | self.backup_mount_point_base = CONF.backup_mount_point_base |
4818 | self.backup_share = CONF.backup_share |
4819 | self.mount_options = CONF.backup_mount_options |
4820 | @@ -66,7 +66,8 @@ class NFSBackupDriver(posix.PosixBackupDriver): |
4821 | self._root_helper = utils.get_root_helper() |
4822 | backup_path = self._init_backup_repo_path() |
4823 | LOG.debug("Using NFS backup repository: %s", backup_path) |
4824 | - super().__init__(context, backup_path=backup_path) |
4825 | + super(NFSBackupDriver, self).__init__(context, |
4826 | + backup_path=backup_path) |
4827 | |
4828 | def check_for_setup_error(self): |
4829 | """Raises error if any required configuration flag is missing.""" |
4830 | diff --git a/cinder/backup/drivers/posix.py b/cinder/backup/drivers/posix.py |
4831 | index e5967b5..4004f8c 100644 |
4832 | --- a/cinder/backup/drivers/posix.py |
4833 | +++ b/cinder/backup/drivers/posix.py |
4834 | @@ -70,18 +70,16 @@ CONF.register_opts(posixbackup_service_opts) |
4835 | class PosixBackupDriver(chunkeddriver.ChunkedBackupDriver): |
4836 | """Provides backup, restore and delete using a Posix file system.""" |
4837 | |
4838 | - def __init__(self, context, backup_path=None): |
4839 | + def __init__(self, context, db=None, backup_path=None): |
4840 | chunk_size_bytes = CONF.backup_file_size |
4841 | sha_block_size_bytes = CONF.backup_sha_block_size_bytes |
4842 | backup_default_container = CONF.backup_container |
4843 | enable_progress_timer = CONF.backup_enable_progress_timer |
4844 | - super().__init__( |
4845 | - context, |
4846 | - chunk_size_bytes, |
4847 | - sha_block_size_bytes, |
4848 | - backup_default_container, |
4849 | - enable_progress_timer, |
4850 | - ) |
4851 | + super(PosixBackupDriver, self).__init__(context, chunk_size_bytes, |
4852 | + sha_block_size_bytes, |
4853 | + backup_default_container, |
4854 | + enable_progress_timer, |
4855 | + db) |
4856 | self.backup_path = backup_path |
4857 | if not backup_path: |
4858 | self.backup_path = CONF.backup_posix_path |
4859 | diff --git a/cinder/backup/drivers/s3.py b/cinder/backup/drivers/s3.py |
4860 | index 3288822..91a897f 100644 |
4861 | --- a/cinder/backup/drivers/s3.py |
4862 | +++ b/cinder/backup/drivers/s3.py |
4863 | @@ -170,18 +170,16 @@ def _wrap_exception(func): |
4864 | class S3BackupDriver(chunkeddriver.ChunkedBackupDriver): |
4865 | """Provides backup, restore and delete of backup objects within S3.""" |
4866 | |
4867 | - def __init__(self, context): |
4868 | + def __init__(self, context, db=None): |
4869 | chunk_size_bytes = CONF.backup_s3_object_size |
4870 | sha_block_size_bytes = CONF.backup_s3_block_size |
4871 | backup_bucket = CONF.backup_s3_store_bucket |
4872 | enable_progress_timer = CONF.backup_s3_enable_progress_timer |
4873 | - super().__init__( |
4874 | - context, |
4875 | - chunk_size_bytes, |
4876 | - sha_block_size_bytes, |
4877 | - backup_bucket, |
4878 | - enable_progress_timer, |
4879 | - ) |
4880 | + super(S3BackupDriver, self).__init__(context, chunk_size_bytes, |
4881 | + sha_block_size_bytes, |
4882 | + backup_bucket, |
4883 | + enable_progress_timer, |
4884 | + db) |
4885 | config_args = dict( |
4886 | connect_timeout=CONF.backup_s3_timeout, |
4887 | read_timeout=CONF.backup_s3_timeout, |
4888 | diff --git a/cinder/backup/drivers/swift.py b/cinder/backup/drivers/swift.py |
4889 | index cf93b46..4afc5ba 100644 |
4890 | --- a/cinder/backup/drivers/swift.py |
4891 | +++ b/cinder/backup/drivers/swift.py |
4892 | @@ -51,7 +51,6 @@ from oslo_log import log as logging |
4893 | from oslo_utils import secretutils |
4894 | from oslo_utils import timeutils |
4895 | from swiftclient import client as swift |
4896 | -from swiftclient import exceptions as swift_exc |
4897 | |
4898 | from cinder.backup import chunkeddriver |
4899 | from cinder import exception |
4900 | @@ -109,11 +108,6 @@ swiftbackup_service_opts = [ |
4901 | cfg.StrOpt('backup_swift_container', |
4902 | default='volumebackups', |
4903 | help='The default Swift container to use'), |
4904 | - cfg.StrOpt('backup_swift_create_storage_policy', |
4905 | - default=None, |
4906 | - help='The storage policy to use when creating the Swift ' |
4907 | - 'container. If the container already exists the ' |
4908 | - 'storage policy cannot be enforced'), |
4909 | cfg.IntOpt('backup_swift_object_size', |
4910 | default=52428800, |
4911 | help='The size in bytes of Swift backup objects'), |
4912 | @@ -151,18 +145,16 @@ CONF.register_opts(swiftbackup_service_opts) |
4913 | class SwiftBackupDriver(chunkeddriver.ChunkedBackupDriver): |
4914 | """Provides backup, restore and delete of backup objects within Swift.""" |
4915 | |
4916 | - def __init__(self, context): |
4917 | + def __init__(self, context, db=None): |
4918 | chunk_size_bytes = CONF.backup_swift_object_size |
4919 | sha_block_size_bytes = CONF.backup_swift_block_size |
4920 | backup_default_container = CONF.backup_swift_container |
4921 | enable_progress_timer = CONF.backup_swift_enable_progress_timer |
4922 | - super().__init__( |
4923 | - context, |
4924 | - chunk_size_bytes, |
4925 | - sha_block_size_bytes, |
4926 | - backup_default_container, |
4927 | - enable_progress_timer, |
4928 | - ) |
4929 | + super(SwiftBackupDriver, self).__init__(context, chunk_size_bytes, |
4930 | + sha_block_size_bytes, |
4931 | + backup_default_container, |
4932 | + enable_progress_timer, |
4933 | + db) |
4934 | |
4935 | # Do not intialize the instance created when the backup service |
4936 | # starts up. The context will be missing information to do things |
4937 | @@ -326,31 +318,12 @@ class SwiftBackupDriver(chunkeddriver.ChunkedBackupDriver): |
4938 | return body |
4939 | |
4940 | def put_container(self, container): |
4941 | - """Create the container if needed. |
4942 | - |
4943 | - Check if the container exist by issuing a HEAD request, if |
4944 | - the container does not exist we create it. |
4945 | - |
4946 | - We cannot enforce a new storage policy on an |
4947 | - existing container. |
4948 | - """ |
4949 | + """Create the container if needed. No failure if it pre-exists.""" |
4950 | try: |
4951 | - self.conn.head_container(container) |
4952 | - except swift_exc.ClientException as e: |
4953 | - if e.http_status == 404: |
4954 | - try: |
4955 | - storage_policy = CONF.backup_swift_create_storage_policy |
4956 | - headers = ({'X-Storage-Policy': storage_policy} |
4957 | - if storage_policy else None) |
4958 | - self.conn.put_container(container, headers=headers) |
4959 | - except socket.error as err: |
4960 | - raise exception.SwiftConnectionFailed(reason=err) |
4961 | - return |
4962 | - LOG.warning("Failed to HEAD container to determine if it " |
4963 | - "exists and should be created.") |
4964 | - raise exception.SwiftConnectionFailed(reason=e) |
4965 | + self.conn.put_container(container) |
4966 | except socket.error as err: |
4967 | raise exception.SwiftConnectionFailed(reason=err) |
4968 | + return |
4969 | |
4970 | def get_container_entries(self, container, prefix): |
4971 | """Get container entry names""" |
4972 | diff --git a/cinder/backup/manager.py b/cinder/backup/manager.py |
4973 | index 137a19d..1d58c73 100644 |
4974 | --- a/cinder/backup/manager.py |
4975 | +++ b/cinder/backup/manager.py |
4976 | @@ -51,8 +51,6 @@ from cinder import exception |
4977 | from cinder.i18n import _ |
4978 | from cinder.keymgr import migration as key_migration |
4979 | from cinder import manager |
4980 | -from cinder.message import api as message_api |
4981 | -from cinder.message import message_field |
4982 | from cinder import objects |
4983 | from cinder.objects import fields |
4984 | from cinder import quota |
4985 | @@ -137,7 +135,6 @@ class BackupManager(manager.SchedulerDependentManager): |
4986 | self.driver_name, new_name) |
4987 | self.driver_name = new_name |
4988 | self.service = importutils.import_class(self.driver_name) |
4989 | - self.message_api = message_api.API() |
4990 | |
4991 | def init_host(self, **kwargs): |
4992 | """Run initialization needed for a standalone service.""" |
4993 | @@ -158,7 +155,7 @@ class BackupManager(manager.SchedulerDependentManager): |
4994 | self.publish_service_capabilities(ctxt) |
4995 | |
4996 | def _setup_backup_driver(self, ctxt): |
4997 | - backup_service = self.service(context=ctxt) |
4998 | + backup_service = self.service(context=ctxt, db=self.db) |
4999 | backup_service.check_for_setup_error() |
5000 | self.is_initialized = True |
The diff has been truncated for viewing.