From 0e7b4d31bc76ae5b993b16bf6647f6ac42673ec8 Mon Sep 17 00:00:00 2001 From: dharmendra Date: Wed, 12 Dec 2018 12:08:46 +0000 Subject: [PATCH] Device Refactor. Refactor devide with Vnf and clean references and unused code. Change-Id: If5b06b7cbf2c46a5f2f82027ba97c7920855d0cd --- setup.cfg | 6 ++-- tacker/agent/linux/utils.py | 32 ------------------- tacker/tests/unit/vnfm/test_monitor.py | 22 ++++++------- tacker/vnfm/infra_drivers/abstract_driver.py | 2 +- .../kubernetes/kubernetes_driver.py | 2 +- tacker/vnfm/infra_drivers/noop.py | 4 +-- .../vnfm/infra_drivers/openstack/openstack.py | 2 +- tacker/vnfm/mgmt_drivers/abstract_driver.py | 2 +- tacker/vnfm/mgmt_drivers/noop.py | 2 +- tacker/vnfm/mgmt_drivers/openwrt/openwrt.py | 2 +- 10 files changed, 22 insertions(+), 54 deletions(-) diff --git a/setup.cfg b/setup.cfg index 11012afdb..3aa4be038 100644 --- a/setup.cfg +++ b/setup.cfg @@ -55,12 +55,12 @@ tacker.nfvo.vim.drivers = tacker.openstack.common.cache.backends = memory = tacker.openstack.common.cache._backends.memory:MemoryBackend tacker.tacker.vnfm.drivers = - noop = tacker.vnfm.infra_drivers.noop:DeviceNoop + noop = tacker.vnfm.infra_drivers.noop:VnfNoop openstack = tacker.vnfm.infra_drivers.openstack.openstack:OpenStack kubernetes = tacker.vnfm.infra_drivers.kubernetes.kubernetes_driver:Kubernetes tacker.tacker.mgmt.drivers = - noop = tacker.vnfm.mgmt_drivers.noop:DeviceMgmtNoop - openwrt = tacker.vnfm.mgmt_drivers.openwrt.openwrt:DeviceMgmtOpenWRT + noop = tacker.vnfm.mgmt_drivers.noop:VnfMgmtNoop + openwrt = tacker.vnfm.mgmt_drivers.openwrt.openwrt:VnfMgmtOpenWRT tacker.tacker.monitor.drivers = ping = tacker.vnfm.monitor_drivers.ping.ping:VNFMonitorPing http_ping = tacker.vnfm.monitor_drivers.http_ping.http_ping:VNFMonitorHTTPPing diff --git a/tacker/agent/linux/utils.py b/tacker/agent/linux/utils.py index 021585c1c..9a861c7dd 100644 --- a/tacker/agent/linux/utils.py +++ b/tacker/agent/linux/utils.py @@ -13,12 +13,8 @@ # License for the specific language governing permissions and limitations # under the License. -import fcntl import os import shlex -import socket -import struct -import tempfile from eventlet.green import subprocess from eventlet import greenthread @@ -86,34 +82,6 @@ def execute(cmd, root_helper=None, process_input=None, addl_env=None, return return_stderr and (_stdout, _stderr) or _stdout -def get_interface_mac(interface): - DEVICE_NAME_LEN = 15 - MAC_START = 18 - MAC_END = 24 - s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) - info = fcntl.ioctl(s.fileno(), 0x8927, - struct.pack('256s', interface[:DEVICE_NAME_LEN])) - return ''.join(['%02x:' % ord(char) - for char in info[MAC_START:MAC_END]])[:-1] - - -def replace_file(file_name, data): - """Replaces the contents of file_name with data in a safe manner. - - First write to a temp file and then rename. Since POSIX renames are - atomic, the file is unlikely to be corrupted by competing writes. - - We create the tempfile on the same device to ensure that it can be renamed. - """ - - base_dir = os.path.dirname(os.path.abspath(file_name)) - tmp_file = tempfile.NamedTemporaryFile('w+', dir=base_dir, delete=False) - tmp_file.write(data) - tmp_file.close() - os.chmod(tmp_file.name, 0o644) - os.rename(tmp_file.name, file_name) - - def find_child_pids(pid): """Retrieve a list of the pids of child processes of the given pid.""" diff --git a/tacker/tests/unit/vnfm/test_monitor.py b/tacker/tests/unit/vnfm/test_monitor.py index d087070a4..caabb2029 100644 --- a/tacker/tests/unit/vnfm/test_monitor.py +++ b/tacker/tests/unit/vnfm/test_monitor.py @@ -22,9 +22,9 @@ from tacker.db.common_services import common_services_db_plugin from tacker.plugins.common import constants from tacker.vnfm import monitor -MOCK_DEVICE_ID = 'a737497c-761c-11e5-89c3-9cb6541d805d' -MOCK_VNF_DEVICE = { - 'id': MOCK_DEVICE_ID, +MOCK_VNF_ID = 'a737497c-761c-11e5-89c3-9cb6541d805d' +MOCK_VNF = { + 'id': MOCK_VNF_ID, 'management_ip_addresses': { 'vdu1': 'a.b.c.d' }, @@ -65,22 +65,22 @@ class TestVNFMonitor(testtools.TestCase): def test_to_hosting_vnf(self): test_vnf_dict = { - 'id': MOCK_DEVICE_ID, + 'id': MOCK_VNF_ID, 'mgmt_url': '{"vdu1": "a.b.c.d"}', 'attributes': { 'monitoring_policy': json.dumps( - MOCK_VNF_DEVICE['monitoring_policy']) + MOCK_VNF['monitoring_policy']) } } action_cb = mock.MagicMock() expected_output = { - 'id': MOCK_DEVICE_ID, + 'id': MOCK_VNF_ID, 'action_cb': action_cb, 'management_ip_addresses': { 'vdu1': 'a.b.c.d' }, 'vnf': test_vnf_dict, - 'monitoring_policy': MOCK_VNF_DEVICE['monitoring_policy'] + 'monitoring_policy': MOCK_VNF['monitoring_policy'] } output_dict = monitor.VNFMonitor.to_hosting_vnf(test_vnf_dict, action_cb) @@ -89,11 +89,11 @@ class TestVNFMonitor(testtools.TestCase): @mock.patch('tacker.vnfm.monitor.VNFMonitor.__run__') def test_add_hosting_vnf(self, mock_monitor_run): test_vnf_dict = { - 'id': MOCK_DEVICE_ID, + 'id': MOCK_VNF_ID, 'mgmt_url': '{"vdu1": "a.b.c.d"}', 'attributes': { 'monitoring_policy': json.dumps( - MOCK_VNF_DEVICE['monitoring_policy']) + MOCK_VNF['monitoring_policy']) }, 'status': 'ACTIVE' } @@ -103,7 +103,7 @@ class TestVNFMonitor(testtools.TestCase): new_dict = test_vnfmonitor.to_hosting_vnf(test_vnf_dict, action_cb) test_vnfmonitor.add_hosting_vnf(new_dict) test_vnf_id = list(test_vnfmonitor._hosting_vnfs.keys())[0] - self.assertEqual(MOCK_DEVICE_ID, test_vnf_id) + self.assertEqual(MOCK_VNF_ID, test_vnf_id) self._cos_db_plugin.create_event.assert_called_with( mock.ANY, res_id=mock.ANY, res_type=constants.RES_TYPE_VNF, res_state=mock.ANY, evt_type=constants.RES_EVT_MONITOR, @@ -111,7 +111,7 @@ class TestVNFMonitor(testtools.TestCase): @mock.patch('tacker.vnfm.monitor.VNFMonitor.__run__') def test_run_monitor(self, mock_monitor_run): - test_hosting_vnf = MOCK_VNF_DEVICE + test_hosting_vnf = MOCK_VNF test_hosting_vnf['vnf'] = {} test_boot_wait = 30 mock_kwargs = { diff --git a/tacker/vnfm/infra_drivers/abstract_driver.py b/tacker/vnfm/infra_drivers/abstract_driver.py index 50847ccbb..e4c38e9be 100644 --- a/tacker/vnfm/infra_drivers/abstract_driver.py +++ b/tacker/vnfm/infra_drivers/abstract_driver.py @@ -22,7 +22,7 @@ from tacker.api import extensions @six.add_metaclass(abc.ABCMeta) -class DeviceAbstractDriver(extensions.PluginInterface): +class VnfAbstractDriver(extensions.PluginInterface): @abc.abstractmethod def get_type(self): diff --git a/tacker/vnfm/infra_drivers/kubernetes/kubernetes_driver.py b/tacker/vnfm/infra_drivers/kubernetes/kubernetes_driver.py index b166ba524..9f55a922f 100644 --- a/tacker/vnfm/infra_drivers/kubernetes/kubernetes_driver.py +++ b/tacker/vnfm/infra_drivers/kubernetes/kubernetes_driver.py @@ -58,7 +58,7 @@ def get_scaling_policy_name(action, policy_name): return '%s_scale_%s' % (policy_name, action) -class Kubernetes(abstract_driver.DeviceAbstractDriver, +class Kubernetes(abstract_driver.VnfAbstractDriver, scale_driver.VnfScaleAbstractDriver): """Kubernetes infra driver for hosting containerized vnfs""" diff --git a/tacker/vnfm/infra_drivers/noop.py b/tacker/vnfm/infra_drivers/noop.py index f17eecfd2..f7fe9be20 100644 --- a/tacker/vnfm/infra_drivers/noop.py +++ b/tacker/vnfm/infra_drivers/noop.py @@ -25,12 +25,12 @@ from tacker.vnfm.infra_drivers import abstract_driver LOG = logging.getLogger(__name__) -class DeviceNoop(abstract_driver.DeviceAbstractDriver): +class VnfNoop(abstract_driver.VnfAbstractDriver): """Noop driver of hosting vnf for tests.""" def __init__(self): - super(DeviceNoop, self).__init__() + super(VnfNoop, self).__init__() self._instances = set() def get_type(self): diff --git a/tacker/vnfm/infra_drivers/openstack/openstack.py b/tacker/vnfm/infra_drivers/openstack/openstack.py index 4d98542a4..4093ce29d 100644 --- a/tacker/vnfm/infra_drivers/openstack/openstack.py +++ b/tacker/vnfm/infra_drivers/openstack/openstack.py @@ -75,7 +75,7 @@ def get_scaling_policy_name(action, policy_name): return '%s_scale_%s' % (policy_name, action) -class OpenStack(abstract_driver.DeviceAbstractDriver, +class OpenStack(abstract_driver.VnfAbstractDriver, scale_driver.VnfScaleAbstractDriver): """Openstack infra driver for hosting vnfs""" diff --git a/tacker/vnfm/mgmt_drivers/abstract_driver.py b/tacker/vnfm/mgmt_drivers/abstract_driver.py index eb3801928..5ef3e7b4d 100644 --- a/tacker/vnfm/mgmt_drivers/abstract_driver.py +++ b/tacker/vnfm/mgmt_drivers/abstract_driver.py @@ -22,7 +22,7 @@ from tacker.api import extensions @six.add_metaclass(abc.ABCMeta) -class DeviceMGMTAbstractDriver(extensions.PluginInterface): +class VnfMGMTAbstractDriver(extensions.PluginInterface): @abc.abstractmethod def get_type(self): diff --git a/tacker/vnfm/mgmt_drivers/noop.py b/tacker/vnfm/mgmt_drivers/noop.py index ecdafd150..aa81a6b58 100644 --- a/tacker/vnfm/mgmt_drivers/noop.py +++ b/tacker/vnfm/mgmt_drivers/noop.py @@ -22,7 +22,7 @@ from tacker.vnfm.mgmt_drivers import abstract_driver LOG = logging.getLogger(__name__) -class DeviceMgmtNoop(abstract_driver.DeviceMGMTAbstractDriver): +class VnfMgmtNoop(abstract_driver.VnfMGMTAbstractDriver): def get_type(self): return 'noop' diff --git a/tacker/vnfm/mgmt_drivers/openwrt/openwrt.py b/tacker/vnfm/mgmt_drivers/openwrt/openwrt.py index 3c5bd21f8..717bd1cf3 100644 --- a/tacker/vnfm/mgmt_drivers/openwrt/openwrt.py +++ b/tacker/vnfm/mgmt_drivers/openwrt/openwrt.py @@ -38,7 +38,7 @@ def config_opts(): return [('openwrt', OPTS)] -class DeviceMgmtOpenWRT(abstract_driver.DeviceMGMTAbstractDriver): +class VnfMgmtOpenWRT(abstract_driver.VnfMGMTAbstractDriver): def get_type(self): return 'openwrt'