Merge "Handle not having cinderclient.v1 available"

This commit is contained in:
Zuul 2018-10-15 22:07:43 +00:00 committed by Gerrit Code Review
commit 02f492ae4c
4 changed files with 18 additions and 20 deletions

View File

@ -15,8 +15,8 @@
import mock
from cinderclient.v1 import volume_snapshots
from cinderclient.v1 import volumes
from cinderclient.v3 import volume_snapshots
from cinderclient.v3 import volumes
from osc_lib import exceptions
from osc_lib import utils

View File

@ -131,7 +131,6 @@ class TestVolumeCreate(TestVolume):
imageRef=None,
source_volid=None,
consistencygroup_id=None,
multiattach=False,
scheduler_hints=None,
)
@ -149,7 +148,6 @@ class TestVolumeCreate(TestVolume):
'--availability-zone', self.new_volume.availability_zone,
'--consistency-group', consistency_group.id,
'--hint', 'k=v',
'--multi-attach',
self.new_volume.name,
]
verifylist = [
@ -159,7 +157,6 @@ class TestVolumeCreate(TestVolume):
('availability_zone', self.new_volume.availability_zone),
('consistency_group', consistency_group.id),
('hint', {'k': 'v'}),
('multi_attach', True),
('name', self.new_volume.name),
]
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
@ -180,7 +177,6 @@ class TestVolumeCreate(TestVolume):
imageRef=None,
source_volid=None,
consistencygroup_id=consistency_group.id,
multiattach=True,
scheduler_hints={'k': 'v'},
)
@ -251,7 +247,6 @@ class TestVolumeCreate(TestVolume):
imageRef=None,
source_volid=None,
consistencygroup_id=None,
multiattach=False,
scheduler_hints=None,
)
@ -290,7 +285,6 @@ class TestVolumeCreate(TestVolume):
imageRef=image.id,
source_volid=None,
consistencygroup_id=None,
multiattach=False,
scheduler_hints=None,
)
@ -329,7 +323,6 @@ class TestVolumeCreate(TestVolume):
imageRef=image.id,
source_volid=None,
consistencygroup_id=None,
multiattach=False,
scheduler_hints=None,
)
@ -367,7 +360,6 @@ class TestVolumeCreate(TestVolume):
imageRef=None,
source_volid=None,
consistencygroup_id=None,
multiattach=False,
scheduler_hints=None,
)
@ -406,7 +398,6 @@ class TestVolumeCreate(TestVolume):
imageRef=None,
source_volid=None,
consistencygroup_id=None,
multiattach=False,
scheduler_hints=None,
)
@ -449,7 +440,6 @@ class TestVolumeCreate(TestVolume):
imageRef=None,
source_volid=None,
consistencygroup_id=None,
multiattach=False,
scheduler_hints=None,
)
@ -501,7 +491,6 @@ class TestVolumeCreate(TestVolume):
imageRef=None,
source_volid=None,
consistencygroup_id=None,
multiattach=False,
scheduler_hints=None,
)

View File

@ -37,13 +37,20 @@ def make_client(instance):
# Defer client imports until we actually need them
from cinderclient import extension
from cinderclient.v1.contrib import list_extensions
from cinderclient.v1 import volume_snapshots
from cinderclient.v1 import volumes
from cinderclient.v3.contrib import list_extensions
from cinderclient.v3 import volume_snapshots
from cinderclient.v3 import volumes
# Monkey patch for v1 cinderclient
volumes.Volume.NAME_ATTR = 'display_name'
volume_snapshots.Snapshot.NAME_ATTR = 'display_name'
# Try a small import to check if cinderclient v1 is supported
try:
from cinderclient.v1 import services # noqa
except Exception:
del API_VERSIONS['1']
if instance._api_version[API_NAME] == '1':
# Monkey patch for v1 cinderclient
volumes.Volume.NAME_ATTR = 'display_name'
volume_snapshots.Snapshot.NAME_ATTR = 'display_name'
volume_client = utils.get_client_class(
API_NAME,

View File

@ -212,6 +212,9 @@ class CreateVolume(command.ShowOne):
raise exceptions.CommandError(
_("ERROR: --user is deprecated, please use"
" --os-username instead."))
if parsed_args.multi_attach:
LOG.warning(_("'--multi-attach' option is no longer supported by "
"the block storage service."))
volume = volume_client.volumes.create(
size=size,
@ -224,7 +227,6 @@ class CreateVolume(command.ShowOne):
imageRef=image,
source_volid=source_volume,
consistencygroup_id=consistency_group,
multiattach=parsed_args.multi_attach,
scheduler_hints=parsed_args.hint,
)