Merge "Add method returning vswitch extensions"
This commit is contained in:
commit
44320ca5f0
|
@ -17,6 +17,11 @@
|
|||
Hyper-V / Windows related constants.
|
||||
"""
|
||||
|
||||
CIM_STATE_UNKNOWN = 0
|
||||
CIM_STATE_OTHER = 1
|
||||
CIM_STATE_ENABLED = 2
|
||||
CIM_STATE_DISABLED = 3
|
||||
|
||||
HYPERV_VM_STATE_OTHER = 1
|
||||
HYPERV_VM_STATE_ENABLED = 2
|
||||
HYPERV_VM_STATE_DISABLED = 3
|
||||
|
|
|
@ -331,6 +331,31 @@ class NetworkUtilsTestCase(test_base.OsWinBaseTestCase):
|
|||
self.assertEqual(expected_cache, self.netutils._switches)
|
||||
self.assertEqual(self._FAKE_VSWITCH, vswitch)
|
||||
|
||||
@mock.patch.object(networkutils.NetworkUtils,
|
||||
'_get_vswitch')
|
||||
def test_get_vswitch_extensions(self, mock_get_vswitch):
|
||||
mock_vswitch = mock_get_vswitch.return_value
|
||||
mock_ext = mock.Mock()
|
||||
ext_cls = self.netutils._conn.Msvm_EthernetSwitchExtension
|
||||
ext_cls.return_value = [mock_ext] * 2
|
||||
|
||||
extensions = self.netutils.get_vswitch_extensions(
|
||||
mock.sentinel.vswitch_name)
|
||||
exp_extensions = [
|
||||
{'name': mock_ext.ElementName,
|
||||
'version': mock_ext.Version,
|
||||
'vendor': mock_ext.Vendor,
|
||||
'description': mock_ext.Description,
|
||||
'enabled_state': mock_ext.EnabledState,
|
||||
'extension_type': mock_ext.ExtensionType}] * 2
|
||||
|
||||
self.assertEqual(exp_extensions, extensions)
|
||||
|
||||
mock_get_vswitch.assert_called_once_with(
|
||||
mock.sentinel.vswitch_name)
|
||||
ext_cls.assert_called_once_with(
|
||||
SystemName=mock_vswitch.Name)
|
||||
|
||||
def test_get_vswitch_cache(self):
|
||||
self.netutils._switches = {
|
||||
self._FAKE_VSWITCH_NAME: mock.sentinel.vswitch}
|
||||
|
|
|
@ -175,6 +175,22 @@ class NetworkUtils(baseutils.BaseUtilsVirt):
|
|||
vswitch = self._get_vswitch(vswitch_name)
|
||||
return vswitch.Name
|
||||
|
||||
def get_vswitch_extensions(self, vswitch_name):
|
||||
vswitch = self._get_vswitch(vswitch_name)
|
||||
|
||||
extensions = self._conn.Msvm_EthernetSwitchExtension(
|
||||
SystemName=vswitch.Name)
|
||||
dict_ext_list = [
|
||||
{'name': ext.ElementName,
|
||||
'version': ext.Version,
|
||||
'vendor': ext.Vendor,
|
||||
'description': ext.Description,
|
||||
'enabled_state': ext.EnabledState,
|
||||
'extension_type': ext.ExtensionType}
|
||||
for ext in extensions]
|
||||
|
||||
return dict_ext_list
|
||||
|
||||
def get_vswitch_external_network_name(self, vswitch_name):
|
||||
ext_port = self._get_vswitch_external_port(vswitch_name)
|
||||
if ext_port:
|
||||
|
|
Loading…
Reference in New Issue