Merge "VNX: share server cannot be deleted" into stable/ocata
This commit is contained in:
commit
36495bb8f7
|
@ -1015,7 +1015,8 @@ class VDM(StorageObject):
|
|||
if_name = m_if.group('if').strip()
|
||||
if 'cifs' == m_if.group('type') and if_name != '':
|
||||
interfaces['cifs'].append(if_name)
|
||||
elif 'vdm' == m_if.group('type') and if_name != '':
|
||||
elif (m_if.group('type') in ('vdm', 'nfs')
|
||||
and if_name != ''):
|
||||
interfaces['nfs'].append(if_name)
|
||||
|
||||
return interfaces
|
||||
|
|
|
@ -758,8 +758,9 @@ class VDMTestData(StorageObjectTestData):
|
|||
'-vdm', self.vdm_name,
|
||||
]
|
||||
|
||||
def output_get_interfaces(self, cifs_interface=FakeData.interface_name1,
|
||||
nfs_interface=FakeData.interface_name2):
|
||||
def output_get_interfaces_vdm(self,
|
||||
cifs_interface=FakeData.interface_name1,
|
||||
nfs_interface=FakeData.interface_name2):
|
||||
return (
|
||||
"""id = %(vdmid)s
|
||||
name = %(name)s
|
||||
|
@ -782,6 +783,31 @@ class VDMTestData(StorageObjectTestData):
|
|||
'cifs_if_name': cifs_interface}
|
||||
)
|
||||
|
||||
def output_get_interfaces_nfs(self,
|
||||
cifs_interface=FakeData.interface_name1,
|
||||
nfs_interface=FakeData.interface_name2):
|
||||
return (
|
||||
"""id = %(vdmid)s
|
||||
name = %(name)s
|
||||
acl = 0
|
||||
type = vdm
|
||||
server = server_2
|
||||
rootfs = root_fs_vdm_vdm-fakeid
|
||||
I18N mode = UNICODE
|
||||
mountedfs =
|
||||
member_of =
|
||||
status :
|
||||
defined = enabled
|
||||
actual = loaded, active
|
||||
Interfaces to services mapping:
|
||||
interface=%(nfs_if_name)s :nfs
|
||||
interface=%(cifs_if_name)s :cifs""" %
|
||||
{'vdmid': self.vdm_id,
|
||||
'name': self.vdm_name,
|
||||
'nfs_if_name': nfs_interface,
|
||||
'cifs_if_name': cifs_interface}
|
||||
)
|
||||
|
||||
|
||||
class PoolTestData(StorageObjectTestData):
|
||||
def __init__(self):
|
||||
|
|
|
@ -716,7 +716,7 @@ class StorageConnectionTestCase(test.TestCase):
|
|||
xml_req_mock = utils.EMCMock(side_effect=hook)
|
||||
self.connection.manager.connectors['XML'].request = xml_req_mock
|
||||
ssh_hook = utils.SSHSideEffect()
|
||||
ssh_hook.append(self.vdm.output_get_interfaces(nfs_interface=''))
|
||||
ssh_hook.append(self.vdm.output_get_interfaces_vdm(nfs_interface=''))
|
||||
ssh_cmd_mock = mock.Mock(side_effect=ssh_hook)
|
||||
self.connection.manager.connectors['SSH'].run_ssh = ssh_cmd_mock
|
||||
|
||||
|
@ -755,7 +755,7 @@ class StorageConnectionTestCase(test.TestCase):
|
|||
self.connection.manager.connectors['XML'].request = xml_req_mock
|
||||
|
||||
ssh_hook = utils.SSHSideEffect()
|
||||
ssh_hook.append(self.vdm.output_get_interfaces(nfs_interface=''))
|
||||
ssh_hook.append(self.vdm.output_get_interfaces_vdm(nfs_interface=''))
|
||||
ssh_cmd_mock = mock.Mock(side_effect=ssh_hook)
|
||||
self.connection.manager.connectors['SSH'].run_ssh = ssh_cmd_mock
|
||||
|
||||
|
@ -805,7 +805,7 @@ class StorageConnectionTestCase(test.TestCase):
|
|||
self.connection.manager.connectors['XML'].request = xml_req_mock
|
||||
|
||||
ssh_hook = utils.SSHSideEffect()
|
||||
ssh_hook.append(self.vdm.output_get_interfaces())
|
||||
ssh_hook.append(self.vdm.output_get_interfaces_vdm())
|
||||
ssh_hook.append()
|
||||
ssh_cmd_mock = mock.Mock(side_effect=ssh_hook)
|
||||
self.connection.manager.connectors['SSH'].run_ssh = ssh_cmd_mock
|
||||
|
@ -848,7 +848,7 @@ class StorageConnectionTestCase(test.TestCase):
|
|||
self.connection.manager.connectors['XML'].request = xml_req_mock
|
||||
|
||||
ssh_hook = utils.SSHSideEffect()
|
||||
ssh_hook.append(self.vdm.output_get_interfaces())
|
||||
ssh_hook.append(self.vdm.output_get_interfaces_vdm())
|
||||
ssh_hook.append()
|
||||
ssh_cmd_mock = mock.Mock(side_effect=ssh_hook)
|
||||
self.connection.manager.connectors['SSH'].run_ssh = ssh_cmd_mock
|
||||
|
@ -906,7 +906,7 @@ class StorageConnectionTestCase(test.TestCase):
|
|||
self.connection.manager.connectors['XML'].request = xml_req_mock
|
||||
|
||||
ssh_hook = utils.SSHSideEffect()
|
||||
ssh_hook.append(self.vdm.output_get_interfaces())
|
||||
ssh_hook.append(self.vdm.output_get_interfaces_vdm())
|
||||
ssh_hook.append()
|
||||
ssh_cmd_mock = mock.Mock(side_effect=ssh_hook)
|
||||
self.connection.manager.connectors['SSH'].run_ssh = ssh_cmd_mock
|
||||
|
@ -947,7 +947,7 @@ class StorageConnectionTestCase(test.TestCase):
|
|||
self.connection.manager.connectors['XML'].request = xml_req_mock
|
||||
|
||||
ssh_hook = utils.SSHSideEffect()
|
||||
ssh_hook.append(self.vdm.output_get_interfaces())
|
||||
ssh_hook.append(self.vdm.output_get_interfaces_vdm())
|
||||
ssh_hook.append()
|
||||
ssh_cmd_mock = mock.Mock(side_effect=ssh_hook)
|
||||
self.connection.manager.connectors['SSH'].run_ssh = ssh_cmd_mock
|
||||
|
|
|
@ -851,6 +851,7 @@ class MountPointTestCase(StorageObjectTestCaseBase):
|
|||
context.conn['XML'].request.assert_has_calls(expected_calls)
|
||||
|
||||
|
||||
@ddt.ddt
|
||||
class VDMTestCase(StorageObjectTestCaseBase):
|
||||
def setUp(self):
|
||||
super(self.__class__, self).setUp()
|
||||
|
@ -1075,11 +1076,11 @@ class VDMTestCase(StorageObjectTestCaseBase):
|
|||
def test_detach_nfs_interface_with_error(self):
|
||||
self.ssh_hook.append(ex=processutils.ProcessExecutionError(
|
||||
stdout=self.vdm.fake_output))
|
||||
self.ssh_hook.append(self.vdm.output_get_interfaces(
|
||||
self.ssh_hook.append(self.vdm.output_get_interfaces_vdm(
|
||||
self.mover.interface_name2))
|
||||
self.ssh_hook.append(ex=processutils.ProcessExecutionError(
|
||||
stdout=self.vdm.fake_output))
|
||||
self.ssh_hook.append(self.vdm.output_get_interfaces(
|
||||
self.ssh_hook.append(self.vdm.output_get_interfaces_vdm(
|
||||
nfs_interface=fakes.FakeData.interface_name1))
|
||||
|
||||
context = self.manager.getStorageContext('VDM')
|
||||
|
@ -1101,8 +1102,10 @@ class VDMTestCase(StorageObjectTestCaseBase):
|
|||
]
|
||||
context.conn['SSH'].run_ssh.assert_has_calls(ssh_calls)
|
||||
|
||||
def test_get_cifs_nfs_interface(self):
|
||||
self.ssh_hook.append(self.vdm.output_get_interfaces())
|
||||
@ddt.data(fakes.VDMTestData().output_get_interfaces_vdm(),
|
||||
fakes.VDMTestData().output_get_interfaces_nfs())
|
||||
def test_get_cifs_nfs_interface(self, fake_output):
|
||||
self.ssh_hook.append(fake_output)
|
||||
|
||||
context = self.manager.getStorageContext('VDM')
|
||||
context.conn['SSH'].run_ssh = mock.Mock(side_effect=self.ssh_hook)
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
---
|
||||
fixes:
|
||||
- Fix the issue of deleting share server in VNX driver. The VNX driver failed
|
||||
to detect the NFS interface of share server, so the detach and deletion of
|
||||
NFS interface were skipped.
|
Loading…
Reference in New Issue