Device Refactor.

Refactor devide with Vnf and clean references and unused code.

Change-Id: If5b06b7cbf2c46a5f2f82027ba97c7920855d0cd
This commit is contained in:
dharmendra 2018-12-12 12:08:46 +00:00
parent eab8c1b71f
commit 0e7b4d31bc
10 changed files with 22 additions and 54 deletions

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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