summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZuul <zuul@review.openstack.org>2018-10-15 22:07:43 +0000
committerGerrit Code Review <review@openstack.org>2018-10-15 22:07:43 +0000
commit02f492ae4cc52ed2642f42bc0c1e5e417ebfe527 (patch)
tree727dedeec375a966cccbcde0440dfa73372acdbd
parentc19aee4c705e8d9070c6649a1fa522da2d0778cc (diff)
parent651f0c38a1f364953dc3cb3f7458385410395fd8 (diff)
downloadpython-openstackclient-02f492ae4cc52ed2642f42bc0c1e5e417ebfe527.tar.gz
Merge "Handle not having cinderclient.v1 available"
-rw-r--r--openstackclient/tests/unit/volume/test_find_resource.py4
-rw-r--r--openstackclient/tests/unit/volume/v2/test_volume.py11
-rw-r--r--openstackclient/volume/client.py21
-rw-r--r--openstackclient/volume/v2/volume.py4
4 files changed, 19 insertions, 21 deletions
diff --git a/openstackclient/tests/unit/volume/test_find_resource.py b/openstackclient/tests/unit/volume/test_find_resource.py
index dbf9592f..60591eff 100644
--- a/openstackclient/tests/unit/volume/test_find_resource.py
+++ b/openstackclient/tests/unit/volume/test_find_resource.py
@@ -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
diff --git a/openstackclient/tests/unit/volume/v2/test_volume.py b/openstackclient/tests/unit/volume/v2/test_volume.py
index bb6263bb..183fb228 100644
--- a/openstackclient/tests/unit/volume/v2/test_volume.py
+++ b/openstackclient/tests/unit/volume/v2/test_volume.py
@@ -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,
)
diff --git a/openstackclient/volume/client.py b/openstackclient/volume/client.py
index c4b0dfca..e0e670a9 100644
--- a/openstackclient/volume/client.py
+++ b/openstackclient/volume/client.py
@@ -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
-
- # Monkey patch for v1 cinderclient
- volumes.Volume.NAME_ATTR = 'display_name'
- volume_snapshots.Snapshot.NAME_ATTR = 'display_name'
+ from cinderclient.v3.contrib import list_extensions
+ from cinderclient.v3 import volume_snapshots
+ from cinderclient.v3 import volumes
+
+ # 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,
diff --git a/openstackclient/volume/v2/volume.py b/openstackclient/volume/v2/volume.py
index 8ab61d2a..7a5c207a 100644
--- a/openstackclient/volume/v2/volume.py
+++ b/openstackclient/volume/v2/volume.py
@@ -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,
)