From 9418c9444e2e46a298d8d382cd9ef0442ecee141 Mon Sep 17 00:00:00 2001 From: Peter Wang Date: Mon, 17 Jul 2017 14:26:50 +0800 Subject: [PATCH] VNX: ignore cg creation if group is not cg enabled When adding volume to a non-consistent group, driver will try to find/create the related CG on the VNX, this causes failure since the group has no associated CG. In this patch, driver will ignore the group id and only create volume only. Closes-bug: #1700892 Change-Id: I9668afa6c5553423464d3923728cffa5c7135f84 --- cinder/tests/unit/volume/drivers/dell_emc/vnx/res_mock.py | 5 ++++- cinder/volume/drivers/dell_emc/vnx/adapter.py | 7 ++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/cinder/tests/unit/volume/drivers/dell_emc/vnx/res_mock.py b/cinder/tests/unit/volume/drivers/dell_emc/vnx/res_mock.py index db889ca00f0..ad18e979cfa 100644 --- a/cinder/tests/unit/volume/drivers/dell_emc/vnx/res_mock.py +++ b/cinder/tests/unit/volume/drivers/dell_emc/vnx/res_mock.py @@ -100,6 +100,8 @@ class DriverResourceMock(dict): def _fake_volume_wrapper(*args, **kwargs): expected_attrs_key = {'volume_attachment': 'volume_attachment', 'volume_metadata': 'metadata'} + if 'group' in kwargs: + expected_attrs_key['group'] = kwargs['group'] return fake_volume.fake_volume_obj( context.get_admin_context(), expected_attrs=[ @@ -108,7 +110,8 @@ def _fake_volume_wrapper(*args, **kwargs): def _fake_cg_wrapper(*args, **kwargs): - return fake_consistencygroup.fake_consistencyobject_obj(None, **kwargs) + return fake_consistencygroup.fake_consistencyobject_obj( + 'fake_context', **kwargs) def _fake_snapshot_wrapper(*args, **kwargs): diff --git a/cinder/volume/drivers/dell_emc/vnx/adapter.py b/cinder/volume/drivers/dell_emc/vnx/adapter.py index f4a9c748c49..c8ef1ca30e3 100644 --- a/cinder/volume/drivers/dell_emc/vnx/adapter.py +++ b/cinder/volume/drivers/dell_emc/vnx/adapter.py @@ -35,6 +35,7 @@ from cinder.volume.drivers.dell_emc.vnx import client from cinder.volume.drivers.dell_emc.vnx import common from cinder.volume.drivers.dell_emc.vnx import taskflows as emc_taskflow from cinder.volume.drivers.dell_emc.vnx import utils +from cinder.volume import utils as vol_utils from cinder.zonemanager import utils as zm_utils @@ -238,7 +239,11 @@ class CommonAdapter(object): 'tier': tier}) qos_specs = utils.get_backend_qos_specs(volume) - cg_id = volume.group_id + if (volume.group and + vol_utils.is_group_a_cg_snapshot_type(volume.group)): + cg_id = volume.group_id + else: + cg_id = None lun = self.client.create_lun( pool, volume_name, volume_size, provision, tier, cg_id,