Deprecate multiattach flag on volume create

This form of multiattach was never fully supported and is now being
replaced by the new mutliattach workflow with Nova. As part of this,
volume type extra specs will be used to indicate multiattach ability
and will allow retyping between volume types to change the flag after
creation.

That work is still in progress and has some potential to change. But
we know we are not going to support this old style, so we should get
that deprecated now so we can remove it and not cause any confusion.

Change-Id: Icbb9c0ca89b25620cedff6cac7a4723e7126eca6
This commit is contained in:
Sean McGinnis 2017-12-20 10:59:48 -06:00
parent 7b34445a3c
commit adb141a262
3 changed files with 25 additions and 2 deletions

@ -15,6 +15,8 @@
"""Volume interface (v2 extension)."""
import warnings
from cinderclient.apiclient import base as common_base
from cinderclient import base
@ -259,7 +261,7 @@ class VolumeManager(base.ManagerWithFind):
:param scheduler_hints: (optional extension) arbitrary key-value pairs
specified by the client to help boot an instance
:param multiattach: Allow the volume to be attached to more than
one instance
one instance (deprecated)
:rtype: :class:`Volume`
"""
if metadata is None:
@ -267,6 +269,13 @@ class VolumeManager(base.ManagerWithFind):
else:
volume_metadata = metadata
if multiattach:
warnings.warn('The ``multiattach`` volume create flag is '
'deprecated and will be removed in a future '
'release. Multiattach capability is now controlled '
'using volume type extra specs.',
DeprecationWarning)
body = {'volume': {'size': size,
'consistencygroup_id': consistencygroup_id,
'snapshot_id': snapshot_id,

@ -14,6 +14,8 @@
# under the License.
"""Volume interface (v3 extension)."""
import warnings
from cinderclient import api_versions
from cinderclient.apiclient import base as common_base
from cinderclient import base
@ -95,7 +97,7 @@ class VolumeManager(volumes.VolumeManager):
:param scheduler_hints: (optional extension) arbitrary key-value pairs
specified by the client to help boot an instance
:param multiattach: Allow the volume to be attached to more than
one instance
one instance (deprecated)
:param backup_id: ID of the backup
:rtype: :class:`Volume`
"""
@ -104,6 +106,13 @@ class VolumeManager(volumes.VolumeManager):
else:
volume_metadata = metadata
if multiattach:
warnings.warn('The ``multiattach`` volume create flag is '
'deprecated and will be removed in a future '
'release. Multiattach capability is now controlled '
'using volume type extra specs.',
DeprecationWarning)
body = {'volume': {'size': size,
'consistencygroup_id': consistencygroup_id,
'snapshot_id': snapshot_id,

@ -0,0 +1,5 @@
---
deprecations:
- |
The ``--allow-multiattach`` flag on volume creation has now been marked
deprecated and will be removed in a future release.