Modify test_hpe3par to support random hash

On Python 3, or on Python 2 with -R command line option, the hash
function is now randomized for security. Changes:

* Rename CommentMatcher to Comment and simplify it.
* Generalize the usage of Comment.

Change-Id: I0233bab571aee3c034f067e6c28e6b38dc017db9
This commit is contained in:
Victor Stinner 2015-11-05 15:18:58 +01:00
parent d199ab6b00
commit a61b0e6c22

View File

@ -71,18 +71,16 @@ QUEUE_LENGTH = 'queue_length'
AVG_BUSY_PERC = 'avg_busy_perc' AVG_BUSY_PERC = 'avg_busy_perc'
class Comment(object):
def __init__(self, expected):
self.expected = expected
def __eq__(self, actual):
return (dict(ast.literal_eval(actual)) == self.expected)
class HPE3PARBaseDriver(object): class HPE3PARBaseDriver(object):
class CommentMatcher(object):
def __init__(self, f, expect):
self.assertEqual = f
self.expect = expect
def __eq__(self, actual):
actual_as_dict = dict(ast.literal_eval(actual))
self.assertEqual(self.expect, actual_as_dict)
return True
VOLUME_ID = 'd03338a9-9115-48a3-8dfc-35cdfcdc15a7' VOLUME_ID = 'd03338a9-9115-48a3-8dfc-35cdfcdc15a7'
CLONE_ID = 'd03338a9-9115-48a3-8dfc-000000000000' CLONE_ID = 'd03338a9-9115-48a3-8dfc-000000000000'
VOLUME_TYPE_ID_DEDUP = 'd03338a9-9115-48a3-8dfc-11111111111' VOLUME_TYPE_ID_DEDUP = 'd03338a9-9115-48a3-8dfc-11111111111'
@ -660,10 +658,11 @@ class HPE3PARBaseDriver(object):
'_create_client') as mock_create_client: '_create_client') as mock_create_client:
mock_create_client.return_value = mock_client mock_create_client.return_value = mock_client
self.driver.create_volume(self.volume) self.driver.create_volume(self.volume)
comment = ( comment = Comment({
'{"display_name": "Foo Volume", "type": "OpenStack",' "display_name": "Foo Volume",
' "name": "volume-d03338a9-9115-48a3-8dfc-35cdfcdc15a7",' "type": "OpenStack",
' "volume_id": "d03338a9-9115-48a3-8dfc-35cdfcdc15a7"}') "name": "volume-d03338a9-9115-48a3-8dfc-35cdfcdc15a7",
"volume_id": "d03338a9-9115-48a3-8dfc-35cdfcdc15a7"})
expected = [ expected = [
mock.call.createVolume( mock.call.createVolume(
self.VOLUME_3PAR_NAME, self.VOLUME_3PAR_NAME,
@ -689,10 +688,11 @@ class HPE3PARBaseDriver(object):
mock_create_client.return_value = mock_client mock_create_client.return_value = mock_client
return_model = self.driver.create_volume(self.volume_pool) return_model = self.driver.create_volume(self.volume_pool)
comment = ( comment = Comment({
'{"display_name": "Foo Volume", "type": "OpenStack",' "display_name": "Foo Volume",
' "name": "volume-d03338a9-9115-48a3-8dfc-35cdfcdc15a7",' "type": "OpenStack",
' "volume_id": "d03338a9-9115-48a3-8dfc-35cdfcdc15a7"}') "name": "volume-d03338a9-9115-48a3-8dfc-35cdfcdc15a7",
"volume_id": "d03338a9-9115-48a3-8dfc-35cdfcdc15a7"})
expected = [ expected = [
mock.call.createVolume( mock.call.createVolume(
self.VOLUME_3PAR_NAME, self.VOLUME_3PAR_NAME,
@ -842,11 +842,14 @@ class HPE3PARBaseDriver(object):
mock_create_client.return_value = mock_client mock_create_client.return_value = mock_client
return_model = self.driver.create_volume(self.volume_qos) return_model = self.driver.create_volume(self.volume_qos)
comment = ( comment = Comment({
'{"volume_type_name": "gold", "display_name": "Foo Volume"' "volume_type_name": "gold",
', "name": "volume-d03338a9-9115-48a3-8dfc-35cdfcdc15a7' "display_name": "Foo Volume",
'", "volume_type_id": "gold", "volume_id": "d03338a9-91' "name": "volume-d03338a9-9115-48a3-8dfc-35cdfcdc15a7",
'15-48a3-8dfc-35cdfcdc15a7", "qos": {}, "type": "OpenStack"}') "volume_type_id": "gold",
"volume_id": "d03338a9-9115-48a3-8dfc-35cdfcdc15a7",
"qos": {},
"type": "OpenStack"})
expected = [ expected = [
mock.call.getCPG(HPE3PAR_CPG), mock.call.getCPG(HPE3PAR_CPG),
@ -886,12 +889,14 @@ class HPE3PARBaseDriver(object):
mock_create_client.return_value = mock_client mock_create_client.return_value = mock_client
return_model = self.driver.create_volume(self.volume_dedup) return_model = self.driver.create_volume(self.volume_dedup)
comment = ( comment = Comment({
'{"volume_type_name": "dedup", "display_name": "Foo Volume"' "volume_type_name": "dedup",
', "name": "volume-d03338a9-9115-48a3-8dfc-35cdfcdc15a7' "display_name": "Foo Volume",
'", "volume_type_id": "d03338a9-9115-48a3-8dfc-11111111111"' "name": "volume-d03338a9-9115-48a3-8dfc-35cdfcdc15a7",
', "volume_id": "d03338a9-9115-48a3-8dfc-35cdfcdc15a7"' "volume_type_id": "d03338a9-9115-48a3-8dfc-11111111111",
', "qos": {}, "type": "OpenStack"}') "volume_id": "d03338a9-9115-48a3-8dfc-35cdfcdc15a7",
"qos": {},
"type": "OpenStack"})
expected = [ expected = [
mock.call.getCPG(HPE3PAR_CPG), mock.call.getCPG(HPE3PAR_CPG),
@ -935,13 +940,13 @@ class HPE3PARBaseDriver(object):
mock_client.FLASH_CACHE_DISABLED = FLASH_CACHE_DISABLED mock_client.FLASH_CACHE_DISABLED = FLASH_CACHE_DISABLED
return_model = self.driver.create_volume(self.volume_flash_cache) return_model = self.driver.create_volume(self.volume_flash_cache)
comment = ( comment = Comment({
'{"volume_type_name": "flash-cache-on", ' "volume_type_name": "flash-cache-on",
'"display_name": "Foo Volume", ' "display_name": "Foo Volume",
'"name": "volume-d03338a9-9115-48a3-8dfc-35cdfcdc15a7", ' "name": "volume-d03338a9-9115-48a3-8dfc-35cdfcdc15a7",
'"volume_type_id": "d03338a9-9115-48a3-8dfc-22222222222", ' "volume_type_id": "d03338a9-9115-48a3-8dfc-22222222222",
'"volume_id": "d03338a9-9115-48a3-8dfc-35cdfcdc15a7", ' "volume_id": "d03338a9-9115-48a3-8dfc-35cdfcdc15a7",
'"qos": {}, "type": "OpenStack"}') "qos": {}, "type": "OpenStack"})
expected = [ expected = [
mock.call.getCPG(HPE3PAR_CPG), mock.call.getCPG(HPE3PAR_CPG),
@ -1468,10 +1473,12 @@ class HPE3PARBaseDriver(object):
osv_matcher = 'osv-' + volume_name_3par osv_matcher = 'osv-' + volume_name_3par
comment = Comment({"qos": {}, "display_name": "Foo Volume"})
expected = [ expected = [
mock.call.modifyVolume( mock.call.modifyVolume(
osv_matcher, osv_matcher,
{'comment': '{"qos": {}, "display_name": "Foo Volume"}', {'comment': comment,
'snapCPG': HPE3PAR_CPG_SNAP}), 'snapCPG': HPE3PAR_CPG_SNAP}),
mock.call.modifyVolume(osv_matcher, mock.call.modifyVolume(osv_matcher,
{'action': 6, {'action': 6,
@ -1533,17 +1540,17 @@ class HPE3PARBaseDriver(object):
osv_matcher = 'osv-' + volume_name_3par osv_matcher = 'osv-' + volume_name_3par
expected_comment = { expected_comment = Comment({
"display_name": display_name, "display_name": display_name,
"volume_type_id": self.RETYPE_VOLUME_TYPE_2['id'], "volume_type_id": self.RETYPE_VOLUME_TYPE_2['id'],
"volume_type_name": self.RETYPE_VOLUME_TYPE_2['name'], "volume_type_name": self.RETYPE_VOLUME_TYPE_2['name'],
"vvs": self.RETYPE_VOLUME_TYPE_2['extra_specs']['vvs'] "vvs": self.RETYPE_VOLUME_TYPE_2['extra_specs']['vvs']
} })
expected = [ expected = [
mock.call.modifyVolume( mock.call.modifyVolume(
osv_matcher, osv_matcher,
{'comment': self.CommentMatcher(self.assertEqual, {'comment': expected_comment,
expected_comment),
'snapCPG': self.RETYPE_VOLUME_TYPE_2 'snapCPG': self.RETYPE_VOLUME_TYPE_2
['extra_specs']['snap_cpg']}), ['extra_specs']['snap_cpg']}),
mock.call.modifyVolume( mock.call.modifyVolume(
@ -1635,20 +1642,22 @@ class HPE3PARBaseDriver(object):
osv_matcher = 'osv-' + volume_name_3par osv_matcher = 'osv-' + volume_name_3par
expected = [ comment = Comment({"qos": {}, "display_name": "Foo Volume"})
mock.call.modifyVolume(
osv_matcher,
{'comment': '{"qos": {}, "display_name": "Foo Volume"}',
'snapCPG': HPE3PAR_CPG_SNAP}),
mock.call.modifyVolume(osv_matcher,
{'action': 6,
'userCPG': 'CPG-FC1',
'conversionOperation': 1,
'tuneOperation': 1}),
mock.call.getTask(mock.ANY),
]
mock_client.assert_has_calls(expected + self.standard_logout) expected = [
mock.call.modifyVolume(
osv_matcher,
{'comment': comment,
'snapCPG': HPE3PAR_CPG_SNAP}),
mock.call.modifyVolume(osv_matcher,
{'action': 6,
'userCPG': 'CPG-FC1',
'conversionOperation': 1,
'tuneOperation': 1}),
mock.call.getTask(mock.ANY),
]
mock_client.assert_has_calls(expected + self.standard_logout)
@mock.patch.object(volume_types, 'get_volume_type') @mock.patch.object(volume_types, 'get_volume_type')
def test_migrate_volume_attached(self, _mock_volume_types): def test_migrate_volume_attached(self, _mock_volume_types):
@ -1685,12 +1694,13 @@ class HPE3PARBaseDriver(object):
result = self.driver.migrate_volume(context.get_admin_context(), result = self.driver.migrate_volume(context.get_admin_context(),
volume, host) volume, host)
new_comment = {"qos": {}, new_comment = Comment({
"retype_test": "test comment"} "qos": {},
"retype_test": "test comment",
})
expected = [ expected = [
mock.call.modifyVolume(osv_matcher, mock.call.modifyVolume(osv_matcher,
{'comment': self.CommentMatcher( {'comment': new_comment,
self.assertEqual, new_comment),
'snapCPG': 'OpenStackCPGSnap'}), 'snapCPG': 'OpenStackCPGSnap'}),
mock.call.modifyVolume(osv_matcher, mock.call.modifyVolume(osv_matcher,
{'action': 6, {'action': 6,
@ -1838,13 +1848,13 @@ class HPE3PARBaseDriver(object):
mock_create_client.return_value = mock_client mock_create_client.return_value = mock_client
self.driver.create_snapshot(self.snapshot) self.driver.create_snapshot(self.snapshot)
comment = ( comment = Comment({
'{"volume_id": "761fc5e5-5191-4ec7-aeba-33e36de44156",' "volume_id": "761fc5e5-5191-4ec7-aeba-33e36de44156",
' "display_name": "fakesnap",' "display_name": "fakesnap",
' "description": "test description name",' "description": "test description name",
' "volume_name":' "volume_name":
' "volume-d03338a9-9115-48a3-8dfc-35cdfcdc15a7"}') "volume-d03338a9-9115-48a3-8dfc-35cdfcdc15a7",
})
expected = [ expected = [
mock.call.createSnapshot( mock.call.createSnapshot(
'oss-L4I73ONuTci9Fd4ceij-MQ', 'oss-L4I73ONuTci9Fd4ceij-MQ',
@ -1924,11 +1934,11 @@ class HPE3PARBaseDriver(object):
self.snapshot) self.snapshot)
self.assertIsNone(model_update) self.assertIsNone(model_update)
comment = ( comment = Comment({
'{"snapshot_id": "2f823bdc-e36e-4dc8-bd15-de1c7a28ff31",' "snapshot_id": "2f823bdc-e36e-4dc8-bd15-de1c7a28ff31",
' "display_name": "Foo Volume",' "display_name": "Foo Volume",
' "volume_id": "d03338a9-9115-48a3-8dfc-35cdfcdc15a7"}') "volume_id": "d03338a9-9115-48a3-8dfc-35cdfcdc15a7",
})
expected = [ expected = [
mock.call.createSnapshot( mock.call.createSnapshot(
self.VOLUME_3PAR_NAME, self.VOLUME_3PAR_NAME,
@ -1971,11 +1981,11 @@ class HPE3PARBaseDriver(object):
self.snapshot) self.snapshot)
self.assertEqual(None, model_update) self.assertEqual(None, model_update)
comment = ( comment = Comment({
'{"snapshot_id": "2f823bdc-e36e-4dc8-bd15-de1c7a28ff31",' "snapshot_id": "2f823bdc-e36e-4dc8-bd15-de1c7a28ff31",
' "display_name": "Foo Volume",' "display_name": "Foo Volume",
' "volume_id": "d03338a9-9115-48a3-8dfc-35cdfcdc15a7"}') "volume_id": "d03338a9-9115-48a3-8dfc-35cdfcdc15a7",
})
volume_name_3par = common._encode_name(volume['id']) volume_name_3par = common._encode_name(volume['id'])
osv_matcher = 'osv-' + volume_name_3par osv_matcher = 'osv-' + volume_name_3par
omv_matcher = 'omv-' + volume_name_3par omv_matcher = 'omv-' + volume_name_3par
@ -2036,10 +2046,11 @@ class HPE3PARBaseDriver(object):
self.snapshot) self.snapshot)
self.assertEqual(None, model_update) self.assertEqual(None, model_update)
comment = ( comment = Comment({
'{"snapshot_id": "2f823bdc-e36e-4dc8-bd15-de1c7a28ff31",' "snapshot_id": "2f823bdc-e36e-4dc8-bd15-de1c7a28ff31",
' "display_name": "Foo Volume",' "display_name": "Foo Volume",
' "volume_id": "d03338a9-9115-48a3-8dfc-35cdfcdc15a7"}') "volume_id": "d03338a9-9115-48a3-8dfc-35cdfcdc15a7",
})
volume_name_3par = common._encode_name(volume['id']) volume_name_3par = common._encode_name(volume['id'])
osv_matcher = 'osv-' + volume_name_3par osv_matcher = 'osv-' + volume_name_3par
@ -2111,10 +2122,11 @@ class HPE3PARBaseDriver(object):
self.volume_qos, self.volume_qos,
self.snapshot) self.snapshot)
comment = ( comment = Comment({
'{"snapshot_id": "2f823bdc-e36e-4dc8-bd15-de1c7a28ff31",' "snapshot_id": "2f823bdc-e36e-4dc8-bd15-de1c7a28ff31",
' "display_name": "Foo Volume",' "display_name": "Foo Volume",
' "volume_id": "d03338a9-9115-48a3-8dfc-35cdfcdc15a7"}') "volume_id": "d03338a9-9115-48a3-8dfc-35cdfcdc15a7",
})
expected = [ expected = [
mock.call.createSnapshot( mock.call.createSnapshot(
@ -2472,11 +2484,12 @@ class HPE3PARBaseDriver(object):
_mock_volume_types.return_value = self.volume_type _mock_volume_types.return_value = self.volume_type
mock_client = self.setup_driver() mock_client = self.setup_driver()
new_comment = {"display_name": "Foo Volume", new_comment = Comment({
"name": "volume-007dbfce-7579-40bc-8f90-a20b3902283e", "display_name": "Foo Volume",
"volume_id": "007dbfce-7579-40bc-8f90-a20b3902283e", "name": "volume-007dbfce-7579-40bc-8f90-a20b3902283e",
"type": "OpenStack"} "volume_id": "007dbfce-7579-40bc-8f90-a20b3902283e",
"type": "OpenStack",
})
volume = {'display_name': None, volume = {'display_name': None,
'host': self.FAKE_CINDER_HOST, 'host': self.FAKE_CINDER_HOST,
'volume_type': 'gold', 'volume_type': 'gold',
@ -2505,11 +2518,10 @@ class HPE3PARBaseDriver(object):
mock.call.getVolume(existing_ref['source-name']), mock.call.getVolume(existing_ref['source-name']),
mock.call.modifyVolume(existing_ref['source-name'], mock.call.modifyVolume(existing_ref['source-name'],
{'newName': osv_matcher, {'newName': osv_matcher,
'comment': self.CommentMatcher( 'comment': new_comment}),
self.assertEqual, new_comment)}),
] ]
retype_comment_qos = { retype_comment_qos = Comment({
"display_name": "Foo Volume", "display_name": "Foo Volume",
"volume_type_name": self.volume_type['name'], "volume_type_name": self.volume_type['name'],
"volume_type_id": self.volume_type['id'], "volume_type_id": self.volume_type['id'],
@ -2521,14 +2533,12 @@ class HPE3PARBaseDriver(object):
'latency': '25', 'latency': '25',
'priority': 'low' 'priority': 'low'
} }
} })
expected_snap_cpg = HPE3PAR_CPG_SNAP expected_snap_cpg = HPE3PAR_CPG_SNAP
expected_retype_modify = [ expected_retype_modify = [
mock.call.modifyVolume(osv_matcher, mock.call.modifyVolume(osv_matcher,
{'comment': self.CommentMatcher( {'comment': retype_comment_qos,
self.assertEqual,
retype_comment_qos),
'snapCPG': expected_snap_cpg}), 'snapCPG': expected_snap_cpg}),
mock.call.deleteVolumeSet(vvs_matcher), mock.call.deleteVolumeSet(vvs_matcher),
] ]
@ -2561,10 +2571,12 @@ class HPE3PARBaseDriver(object):
_mock_volume_types.return_value = self.volume_type _mock_volume_types.return_value = self.volume_type
mock_client = self.setup_driver() mock_client = self.setup_driver()
new_comment = {"display_name": "Foo Volume", new_comment = Comment({
"name": "volume-007dbfce-7579-40bc-8f90-a20b3902283e", "display_name": "Foo Volume",
"volume_id": "007dbfce-7579-40bc-8f90-a20b3902283e", "name": "volume-007dbfce-7579-40bc-8f90-a20b3902283e",
"type": "OpenStack"} "volume_id": "007dbfce-7579-40bc-8f90-a20b3902283e",
"type": "OpenStack",
})
volume = {'display_name': None, volume = {'display_name': None,
'host': 'my-stack1@3parxxx#CPGNOTUSED', 'host': 'my-stack1@3parxxx#CPGNOTUSED',
@ -2594,8 +2606,7 @@ class HPE3PARBaseDriver(object):
mock.call.modifyVolume( mock.call.modifyVolume(
existing_ref['source-name'], existing_ref['source-name'],
{'newName': osv_matcher, {'newName': osv_matcher,
'comment': self.CommentMatcher(self.assertEqual, 'comment': new_comment,
new_comment),
# manage_existing() should be setting # manage_existing() should be setting
# blank snapCPG to the userCPG # blank snapCPG to the userCPG
'snapCPG': 'testUserCpg0'}) 'snapCPG': 'testUserCpg0'})
@ -2616,11 +2627,12 @@ class HPE3PARBaseDriver(object):
mock_client.getTask.return_value = self.STATUS_DONE mock_client.getTask.return_value = self.STATUS_DONE
id = '007abcde-7579-40bc-8f90-a20b3902283e' id = '007abcde-7579-40bc-8f90-a20b3902283e'
new_comment = {"display_name": "Test Volume", new_comment = Comment({
"name": ("volume-%s" % id), "display_name": "Test Volume",
"volume_id": id, "name": ("volume-%s" % id),
"type": "OpenStack"} "volume_id": id,
"type": "OpenStack",
})
volume = {'display_name': 'Test Volume', volume = {'display_name': 'Test Volume',
'host': 'my-stack1@3parxxx#CPGNOTUSED', 'host': 'my-stack1@3parxxx#CPGNOTUSED',
'volume_type': 'gold', 'volume_type': 'gold',
@ -2645,22 +2657,19 @@ class HPE3PARBaseDriver(object):
mock.call.getVolume(existing_ref['source-name']), mock.call.getVolume(existing_ref['source-name']),
mock.call.modifyVolume(existing_ref['source-name'], mock.call.modifyVolume(existing_ref['source-name'],
{'newName': osv_matcher, {'newName': osv_matcher,
'comment': self.CommentMatcher( 'comment': new_comment})
self.assertEqual, new_comment)})
] ]
retype_comment_vvs = { retype_comment_vvs = Comment({
"display_name": "Foo Volume", "display_name": "Foo Volume",
"volume_type_name": test_volume_type['name'], "volume_type_name": test_volume_type['name'],
"volume_type_id": test_volume_type['id'], "volume_type_id": test_volume_type['id'],
"vvs": vvs "vvs": vvs
} })
expected_retype = [ expected_retype = [
mock.call.modifyVolume(osv_matcher, mock.call.modifyVolume(osv_matcher,
{'comment': self.CommentMatcher( {'comment': retype_comment_vvs,
self.assertEqual,
retype_comment_vvs),
'snapCPG': 'OpenStackCPGSnap'}), 'snapCPG': 'OpenStackCPGSnap'}),
mock.call.deleteVolumeSet(vvs_matcher), mock.call.deleteVolumeSet(vvs_matcher),
mock.call.addVolumeToVolumeSet(vvs, osv_matcher), mock.call.addVolumeToVolumeSet(vvs, osv_matcher),
@ -2681,13 +2690,13 @@ class HPE3PARBaseDriver(object):
def test_manage_existing_no_volume_type(self): def test_manage_existing_no_volume_type(self):
mock_client = self.setup_driver() mock_client = self.setup_driver()
comment = ( comment = repr({"display_name": "Foo Volume"})
'{"display_name": "Foo Volume"}') new_comment = Comment({
new_comment = ( "type": "OpenStack",
'{"type": "OpenStack",' "display_name": "Foo Volume",
' "display_name": "Foo Volume",' "name": "volume-007dbfce-7579-40bc-8f90-a20b3902283e",
' "name": "volume-007dbfce-7579-40bc-8f90-a20b3902283e",' "volume_id": "007dbfce-7579-40bc-8f90-a20b3902283e",
' "volume_id": "007dbfce-7579-40bc-8f90-a20b3902283e"}') })
volume = {'display_name': None, volume = {'display_name': None,
'volume_type': None, 'volume_type': None,
'volume_type_id': None, 'volume_type_id': None,
@ -2798,8 +2807,7 @@ class HPE3PARBaseDriver(object):
def test_manage_existing_volume_type_exception(self): def test_manage_existing_volume_type_exception(self):
mock_client = self.setup_driver() mock_client = self.setup_driver()
comment = ( comment = repr({"display_name": "Foo Volume"})
'{"display_name": "Foo Volume"}')
volume = {'display_name': None, volume = {'display_name': None,
'volume_type': 'gold', 'volume_type': 'gold',
'volume_type_id': 'bcfa9fa4-54a0-4340-a3d8-bfcf19aea65e', 'volume_type_id': 'bcfa9fa4-54a0-4340-a3d8-bfcf19aea65e',
@ -3006,11 +3014,11 @@ class HPE3PARBaseDriver(object):
mock_client = self.setup_driver() mock_client = self.setup_driver()
comment = ( comment = Comment({
"{'display_name': 'cg_name'," 'display_name': 'cg_name',
" 'consistency_group_id':" 'consistency_group_id': self.CONSIS_GROUP_ID,
" '" + self.CONSIS_GROUP_ID + "'," 'description': 'consistency group',
" 'description': 'consistency group'}") })
with mock.patch.object(hpecommon.HPE3PARCommon, with mock.patch.object(hpecommon.HPE3PARCommon,
'_create_client') as mock_create_client: '_create_client') as mock_create_client:
@ -3046,18 +3054,20 @@ class HPE3PARBaseDriver(object):
mock_client = self.setup_driver() mock_client = self.setup_driver()
volume = self.volume volume = self.volume
cgsnap_comment = Comment({
"consistency_group_id": "6044fedf-c889-4752-900f-2039d247a5df",
"description": "cgsnapshot",
"cgsnapshot_id": "e91c5ed5-daee-4e84-8724-1c9e31e7a1f2",
})
cgsnap_optional = ( cgsnap_optional = (
{'comment': '{"consistency_group_id":' {'comment': cgsnap_comment,
' "6044fedf-c889-4752-900f-2039d247a5df",'
' "description": "cgsnapshot",'
' "cgsnapshot_id": "e91c5ed5-daee-4e84-8724-1c9e31e7a1f2"}',
'readOnly': False}) 'readOnly': False})
cg_comment = ( cg_comment = Comment({
"{'display_name': 'cg_name'," 'display_name': 'cg_name',
" 'consistency_group_id':" 'consistency_group_id': self.CONSIS_GROUP_ID,
" '" + self.CONSIS_GROUP_ID + "'," 'description': 'consistency group'})
" 'description': 'consistency group'}")
with mock.patch.object(hpecommon.HPE3PARCommon, with mock.patch.object(hpecommon.HPE3PARCommon,
'_create_client') as mock_create_client: '_create_client') as mock_create_client:
@ -3134,11 +3144,10 @@ class HPE3PARBaseDriver(object):
mock_client = self.setup_driver() mock_client = self.setup_driver()
comment = ( comment = Comment({
"{'display_name': 'cg_name'," 'display_name': 'cg_name',
" 'consistency_group_id':" 'consistency_group_id': self.CONSIS_GROUP_ID,
" '" + self.CONSIS_GROUP_ID + "'," 'description': 'consistency group'})
" 'description': 'consistency group'}")
with mock.patch.object(hpecommon.HPE3PARCommon, with mock.patch.object(hpecommon.HPE3PARCommon,
'_create_client') as mock_create_client: '_create_client') as mock_create_client:
@ -3191,11 +3200,10 @@ class HPE3PARBaseDriver(object):
mock_client = self.setup_driver() mock_client = self.setup_driver()
volume = self.volume volume = self.volume
comment = ( comment = Comment({
"{'display_name': 'cg_name'," 'display_name': 'cg_name',
" 'consistency_group_id':" 'consistency_group_id': self.CONSIS_GROUP_ID,
" '" + self.CONSIS_GROUP_ID + "'," 'description': 'consistency group'})
" 'description': 'consistency group'}")
with mock.patch.object(hpecommon.HPE3PARCommon, with mock.patch.object(hpecommon.HPE3PARCommon,
'_create_client') as mock_create_client: '_create_client') as mock_create_client:
@ -3250,11 +3258,10 @@ class HPE3PARBaseDriver(object):
mock_client = self.setup_driver() mock_client = self.setup_driver()
volume = self.volume volume = self.volume
comment = ( comment = Comment({
"{'display_name': 'cg_name'," 'display_name': 'cg_name',
" 'consistency_group_id':" 'consistency_group_id': self.CONSIS_GROUP_ID,
" '" + self.CONSIS_GROUP_ID + "'," 'description': 'consistency group'})
" 'description': 'consistency group'}")
with mock.patch.object(hpecommon.HPE3PARCommon, with mock.patch.object(hpecommon.HPE3PARCommon,
'_create_client') as mock_create_client: '_create_client') as mock_create_client:
@ -3327,17 +3334,18 @@ class HPE3PARBaseDriver(object):
mock_client = self.setup_driver() mock_client = self.setup_driver()
volume = self.volume volume = self.volume
cg_comment = ( cg_comment = Comment({
"{'display_name': 'cg_name'," 'display_name': 'cg_name',
" 'consistency_group_id':" 'consistency_group_id': self.CONSIS_GROUP_ID,
" '" + self.CONSIS_GROUP_ID + "'," 'description': 'consistency group'})
" 'description': 'consistency group'}")
cgsnap_comment = Comment({
"consistency_group_id": "6044fedf-c889-4752-900f-2039d247a5df",
"description": "cgsnapshot",
"cgsnapshot_id": "e91c5ed5-daee-4e84-8724-1c9e31e7a1f2"})
cgsnap_optional = ( cgsnap_optional = (
{'comment': '{"consistency_group_id":' {'comment': cgsnap_comment,
' "6044fedf-c889-4752-900f-2039d247a5df",'
' "description": "cgsnapshot",'
' "cgsnapshot_id": "e91c5ed5-daee-4e84-8724-1c9e31e7a1f2"}',
'readOnly': False}) 'readOnly': False})
with mock.patch.object(hpecommon.HPE3PARCommon, with mock.patch.object(hpecommon.HPE3PARCommon,
@ -3411,18 +3419,18 @@ class HPE3PARBaseDriver(object):
volume = self.volume volume = self.volume
cgsnapshot = self.cgsnapshot cgsnapshot = self.cgsnapshot
cg_comment = ( cg_comment = Comment({
"{'display_name': 'cg_name'," 'display_name': 'cg_name',
" 'consistency_group_id':" 'consistency_group_id': self.CONSIS_GROUP_ID,
" '" + self.CONSIS_GROUP_ID + "'," 'description': 'consistency group'})
" 'description': 'consistency group'}")
cgsnap_optional = ( cgsnap_comment = Comment({
{'comment': '{"consistency_group_id":' "consistency_group_id": "6044fedf-c889-4752-900f-2039d247a5df",
' "6044fedf-c889-4752-900f-2039d247a5df",' "description": "cgsnapshot",
' "description": "cgsnapshot",' "cgsnapshot_id": "e91c5ed5-daee-4e84-8724-1c9e31e7a1f2"})
' "cgsnapshot_id": "e91c5ed5-daee-4e84-8724-1c9e31e7a1f2"}',
'readOnly': False}) cgsnap_optional = {'comment': cgsnap_comment,
'readOnly': False}
with mock.patch.object(hpecommon.HPE3PARCommon, with mock.patch.object(hpecommon.HPE3PARCommon,
'_create_client') as mock_create_client: '_create_client') as mock_create_client: