Merge "Add method returning vswitch extensions"

This commit is contained in:
Zuul 2017-10-27 09:22:11 +00:00 committed by Gerrit Code Review
commit 44320ca5f0
3 changed files with 46 additions and 0 deletions

View File

@ -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

View File

@ -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}

View File

@ -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: