Add enable_network_adapter

Change-Id: Iae635a51c51adbfc6628a36f52520c5bdc0f0a72
Partially-Implements: blueprint json-network-config
This commit is contained in:
Alessandro Pilotti 2018-09-05 20:37:46 +03:00
parent 1fc57be0f7
commit 6e079d6fa4
3 changed files with 31 additions and 0 deletions

View File

@ -87,6 +87,9 @@ class BaseOSUtils(object):
def rename_network_adapter(self, old_name, new_name):
raise NotImplementedError()
def enable_network_adapter(self, name, enabled):
raise NotImplementedError()
def set_static_network_config(self, name, address, prefix_len_or_netmask,
gateway, dnsnameservers):
raise NotImplementedError()

View File

@ -888,6 +888,13 @@ class WindowsUtils(base.BaseOSUtils):
operation_options = {u'custom_options': custom_options}
dns_client.put(operation_options=operation_options)
def enable_network_adapter(self, name, enabled):
adapter = self._get_network_adapter(name)
if enabled:
adapter.Enable()
else:
adapter.Disable()
@staticmethod
def _set_static_network_config(name, address, prefix_len, gateway):
if netaddr.valid_ipv6(address):

View File

@ -590,6 +590,27 @@ class TestWindowsUtils(testutils.CloudbaseInitTestBase):
def test_get_network_adapters_xp_2003(self):
self._test_get_network_adapters(True)
@mock.patch('cloudbaseinit.osutils.windows.WindowsUtils'
'._get_network_adapter')
def _test_enable_network_adapter(self, mock_get_network_adapter, enabled):
self._winutils.enable_network_adapter(
mock.sentinel.adapter_name, enabled)
mock_get_network_adapter.assert_called_once_with(
mock.sentinel.adapter_name)
adapter = mock_get_network_adapter.return_value
if enabled:
adapter.Enable.assert_called_once_with()
else:
adapter.Disable.assert_called_once_with()
def test_enable_network_adapter(self):
self._test_enable_network_adapter(enabled=True)
def test_disable_network_adapter(self):
self._test_enable_network_adapter(enabled=False)
@mock.patch('cloudbaseinit.osutils.windows.WindowsUtils'
'.check_os_version')
def _test_set_static_network_config(self, mock_check_os_version,