Merge "Fix for FC Initiator API in Nimble Storage Driver"
This commit is contained in:
commit
349bda1774
@ -1200,6 +1200,8 @@ class NimbleDriverConnectionTestCase(NimbleDriverBaseTestCase):
|
||||
'initiator_target_map': {'1000000000000000':
|
||||
['1111111111111101']}}}
|
||||
|
||||
self.driver._create_igroup_for_initiator("test-initiator3",
|
||||
[1111111111111101])
|
||||
self.assertEqual(
|
||||
expected_res,
|
||||
self.driver.initialize_connection(
|
||||
@ -1209,6 +1211,12 @@ class NimbleDriverConnectionTestCase(NimbleDriverBaseTestCase):
|
||||
{'initiator': 'test-initiator3',
|
||||
'wwpns': ['1000000000000000']}))
|
||||
|
||||
expected_calls = [mock.call.create_initiator_group_fc(
|
||||
'openstack-abcdefghijkl'),
|
||||
mock.call.add_initiator_to_igroup_fc('openstack-abcdefghijkl',
|
||||
1111111111111101)]
|
||||
self.mock_client_service.assert_has_calls(expected_calls)
|
||||
|
||||
@mock.patch(NIMBLE_URLLIB2)
|
||||
@mock.patch(NIMBLE_CLIENT)
|
||||
@mock.patch.object(obj_volume.VolumeList, 'get_all_by_host',
|
||||
|
@ -573,7 +573,7 @@ class NimbleBaseVolumeDriver(san.SanDriver):
|
||||
|
||||
pass
|
||||
|
||||
def _create_igroup_for_initiator(self, initiator_name, wwpn):
|
||||
def _create_igroup_for_initiator(self, initiator_name, wwpns):
|
||||
"""Creates igroup for an initiator and returns the igroup name."""
|
||||
igrp_name = 'openstack-' + self._generate_random_string(12)
|
||||
LOG.info(_LI('Creating initiator group %(grp)s '
|
||||
@ -583,7 +583,9 @@ class NimbleBaseVolumeDriver(san.SanDriver):
|
||||
self.APIExecutor.create_initiator_group(igrp_name)
|
||||
self.APIExecutor.add_initiator_to_igroup(igrp_name, initiator_name)
|
||||
elif self._storage_protocol == "FC":
|
||||
self.APIExecutor.create_initiator_group_fc(igrp_name, wwpn)
|
||||
self.APIExecutor.create_initiator_group_fc(igrp_name)
|
||||
for wwpn in wwpns:
|
||||
self.APIExecutor.add_initiator_to_igroup_fc(igrp_name, wwpn)
|
||||
return igrp_name
|
||||
|
||||
def _get_igroupname_for_initiator_fc(self, initiator_wwpns):
|
||||
@ -1213,18 +1215,13 @@ class NimbleRestAPIExecutor(object):
|
||||
r = self.post(api, data)
|
||||
return r['data']
|
||||
|
||||
def create_initiator_group_fc(self, initiator_grp_name, wwpns):
|
||||
def create_initiator_group_fc(self, initiator_grp_name):
|
||||
api = "initiator_groups"
|
||||
|
||||
data = {}
|
||||
data["data"] = {}
|
||||
data["data"]["name"] = initiator_grp_name
|
||||
data["data"]["access_protocol"] = "fc"
|
||||
data["data"]["fc_initiators"] = []
|
||||
for wwpn in wwpns:
|
||||
initiator = {}
|
||||
initiator["wwpn"] = self._format_to_wwpn(wwpn)
|
||||
data["data"]["fc_initiators"].append(initiator)
|
||||
r = self.post(api, data)
|
||||
return r['data']
|
||||
|
||||
@ -1246,6 +1243,17 @@ class NimbleRestAPIExecutor(object):
|
||||
r = self.post(api, data)
|
||||
return r['data']
|
||||
|
||||
def add_initiator_to_igroup_fc(self, initiator_grp_name, wwpn):
|
||||
initiator_group_id = self.get_initiator_grp_id(initiator_grp_name)
|
||||
api = "initiators"
|
||||
data = {"data": {
|
||||
"access_protocol": "fc",
|
||||
"initiator_group_id": initiator_group_id,
|
||||
"wwpn": self._format_to_wwpn(wwpn)
|
||||
}}
|
||||
r = self.post(api, data)
|
||||
return r['data']
|
||||
|
||||
def get_pool_id(self, pool_name):
|
||||
api = "pools/"
|
||||
filter = {'name': pool_name}
|
||||
|
Loading…
x
Reference in New Issue
Block a user