new_volume['name_id'] = new_volume['id']
vol = self.driver.create_volume_from_snapshot(
new_volume, test_snap)
- self.assertTrue(
- vol['provider_location'].find('type^smp') > 0)
+ self.assertIn('type^smp', vol['provider_location'])
expect_cmd = [
mock.call(
*self.testData.SNAP_COPY_CMD(
self.assertEqual(
self.configuration.replication_device[0]['managed_backend_name'],
model_update['host'])
- self.assertEqual(
- build_provider_location(
- '1', 'lun', rep_volume.name,
- self.target_device_id),
- model_update['provider_location'])
+ expected = build_provider_location('1', 'lun', rep_volume.name,
+ self.target_device_id)
+ provider_location = model_update['provider_location']
+ # Don't compare the exact string but the set of items: dictionary
+ # items are rendered in a random order because of the hash
+ # randomization
+ self.assertSetEqual(set(expected.split('|')),
+ set(provider_location.split('|')))
def test_failover_replication_from_secondary(self):
rep_volume = EMCVNXCLIDriverTestData.convert_volume(
return None
def __getattr__(self, value):
- return getattr(self.local_conf, value)
+ # Don't use self.local_conf to avoid reentrant call to __getattr__()
+ local_conf = object.__getattribute__(self, 'local_conf')
+ return getattr(local_conf, value)
cinder.tests.unit.test_dothill
cinder.tests.unit.test_drbdmanagedrv
cinder.tests.unit.test_emc_vmax
+cinder.tests.unit.test_emc_vnx
cinder.tests.unit.test_emc_vnxdirect
cinder.tests.unit.test_emc_xtremio
cinder.tests.unit.test_eqlx