'display_name': 'vol1',
'display_description': 'test volume',
'volume_type_id': None,
- 'consistencygroup_id': None,
- 'volume_admin_metadata': [{'key': 'readonly', 'value': 'True'}]
+ 'consistencygroup_id': None
}
test_legacy_volume = {
'display_name': 'vol1',
'display_description': 'test volume',
'volume_type_id': None,
- 'consistencygroup_id': None,
- 'volume_admin_metadata': [{'key': 'readonly', 'value': 'True'}]
+ 'consistencygroup_id': None
}
test_volume_clone_cg = {
'display_name': 'vol1',
'display_description': 'test volume',
'volume_type_id': None,
- 'consistencygroup_id': None,
- 'volume_admin_metadata': [{'key': 'readonly', 'value': 'True'}]
+ 'consistencygroup_id': None
}
test_volume_cg = {
'display_name': 'vol1',
'display_description': 'test volume',
'volume_type_id': None,
- 'consistencygroup_id': 'cg_id',
- 'volume_admin_metadata': [{'key': 'readonly', 'value': 'True'}]
+ 'consistencygroup_id': 'cg_id'
}
test_volume_rw = {
'display_description': 'test volume',
'volume_type_id': None,
'consistencygroup_id': None,
- 'volume_admin_metadata': [{'key': 'attached_mode', 'value': 'rw'},
- {'key': 'readonly', 'value': 'False'}],
'provider_location': 'system^FNM11111|type^lun|id^1|version^05.03.00',
}
'id': '1181d1b2-cea3-4f55-8fa8-3360d026ce24',
'name': 'vol3',
'size': 2,
- 'volume_admin_metadata': [],
'status': 'available',
'volume_type_id':
'19fdd0dd-03b3-4d7c-b541-f4df46f308c8',
'id': '1181d1b2-cea3-4f55-8fa8-3360d026ce24',
'name': 'vol4',
'size': 2L,
- 'volume_admin_metadata': [],
'status': 'available',
'volume_type_id':
'19fdd0dd-03b3-4d7c-b541-f4df46f308c8',
'name_id': '1181d1b2-cea3-4f55-8fa8-3360d026ce25',
'name': 'vol5',
'size': 1,
- 'volume_admin_metadata': [],
'status': 'available',
'volume_type_id':
'19fdd0dd-03b3-4d7c-b541-f4df46f308c8',
"Port WWN: iqn.1992-04.com.emc:cx.fnm00124000215.a5\n" +
"iSCSI Alias: 0215.a5\n", 0)
- iscsi_connection_info_ro = \
- {'data': {'access_mode': 'ro',
- 'target_discovered': True,
- 'target_iqn':
- 'iqn.1992-04.com.emc:cx.fnm00124000215.a4',
- 'target_lun': 2,
- 'target_portal': '10.244.214.118:3260',
- 'volume_id': '1'},
- 'driver_volume_type': 'iscsi'}
-
- iscsi_connection_info_rw = \
- {'data': {'access_mode': 'rw',
- 'target_discovered': True,
+ iscsi_connection_info = \
+ {'data': {'target_discovered': True,
'target_iqn':
'iqn.1992-04.com.emc:cx.fnm00124000215.a4',
'target_lun': 2,
'driver_volume_type': 'iscsi'}
iscsi_connection_info_mp = \
- {'data': {'access_mode': 'rw',
- 'target_discovered': True,
+ {'data': {'target_discovered': True,
'target_iqns': [
'iqn.1992-04.com.emc:cx.fnm00124000215.a4',
'iqn.1992-04.com.emc:cx.fnm00124000215.a5'],
self.testData.test_volume,
self.testData.connector)
- self.assertEqual(self.testData.iscsi_connection_info_ro,
+ self.assertEqual(self.testData.iscsi_connection_info,
connection_info)
expected = [mock.call('storagegroup', '-list', '-gname', 'fakehost',
test_volume_rw,
self.testData.connector)
- self.assertEqual(self.testData.iscsi_connection_info_rw,
+ self.assertEqual(self.testData.iscsi_connection_info,
connection_info)
expected = [mock.call('storagegroup', '-list', '-gname', 'fakehost',
test_volume_rw,
self.testData.connector)
- self.assertEqual(self.testData.iscsi_connection_info_rw,
+ self.assertEqual(self.testData.iscsi_connection_info,
connection_info)
expected = [mock.call('storagegroup', '-list', '-gname', 'fakehost',
'project_id': 'project',
'display_name': 'vol_01',
'display_description': 'test volume',
- 'volume_type_id': None,
- 'volume_admin_metadata': [{'key': 'readonly', 'value': 'True'}]}
+ 'volume_type_id': None}
self.assertEqual(4, self.driver.cli.get_lun_id(volume_01))
@mock.patch(
'project_id': 'project',
'display_name': 'vol_02',
'display_description': 'test volume',
- 'volume_type_id': None,
- 'volume_admin_metadata': [{'key': 'readonly', 'value': 'True'}]}
+ 'volume_type_id': None}
self.assertEqual(2, self.driver.cli.get_lun_id(volume_02))
def test_create_consistency_group(self):
class EMCVnxCliBase(object):
"""This class defines the functions to use the native CLI functionality."""
- VERSION = '05.03.06'
+ VERSION = '05.03.07'
stats = {'driver_version': VERSION,
'storage_protocol': None,
'vendor_name': 'EMC',
return fc_properties
def initialize_connection(self, volume, connector):
- volume_metadata = {}
- for metadata in volume['volume_admin_metadata']:
- volume_metadata[metadata['key']] = metadata['value']
- access_mode = volume_metadata.get('attached_mode')
- if access_mode is None:
- access_mode = ('ro'
- if volume_metadata.get('readonly') == 'True'
- else 'rw')
- LOG.debug('Volume %(vol)s Access mode is: %(access)s.',
- {'vol': volume['name'],
- 'access': access_mode})
-
"""Initializes the connection and returns connection info."""
@lockutils.synchronized('emc-connection-' + connector['host'],
"emc-connection-", True)
device_number,
sg_data['raw_output']
)
- iscsi_properties['access_mode'] = access_mode
data = {'driver_volume_type': 'iscsi',
'data': iscsi_properties}
elif self.protocol == 'FC':
fc_properties = self.vnx_get_fc_properties(connector,
device_number)
fc_properties['volume_id'] = volume['id']
- fc_properties['access_mode'] = access_mode
data = {'driver_volume_type': 'fibre_channel',
'data': fc_properties}