def bad_test_instantiate(self, ssh, mock_time):
     prox_approx_vnf = ProxApproxVnf(NAME, self.VNFD0)
     prox_approx_vnf.scenario_helper = mock.MagicMock()
     prox_approx_vnf.setup_helper = mock.MagicMock()
     # we can't mock super
     prox_approx_vnf.instantiate(self.SCENARIO_CFG, self.CONTEXT_CFG)
     prox_approx_vnf.setup_helper.build_config.assert_called_once()
    def test__vnf_up_post(self, ssh, mock_time):
        mock_ssh(ssh)
        prox_approx_vnf = ProxApproxVnf(NAME, self.VNFD0)
        prox_approx_vnf.resource_helper = resource_helper = mock.Mock()

        prox_approx_vnf._vnf_up_post()
        self.assertEqual(resource_helper.up_post.call_count, 1)
Example #3
0
    def test_instantiate(self, ssh, mock_find, mock_cpu_sys_cores, mock_time):
        mock_ssh(ssh)

        mock_cpu_sys_cores.get_core_socket.return_value = {'0': '01234'}

        prox_approx_vnf = ProxApproxVnf(NAME, self.VNFD0)
        prox_approx_vnf.ssh_helper = mock.MagicMock(
            **{"execute.return_value": (0, "", ""), "bin_path": ""})
        prox_approx_vnf.setup_helper._setup_resources = mock.MagicMock()
        prox_approx_vnf.setup_helper._find_used_drivers = mock.MagicMock()
        prox_approx_vnf.setup_helper.used_drivers = {}
        prox_approx_vnf.setup_helper.bound_pci = []
        prox_approx_vnf._run_prox = mock.MagicMock(return_value=0)
        prox_approx_vnf.resource_helper = mock.MagicMock()
        prox_approx_vnf.resource_helper.get_process_args.return_value = {
                    '-e': '',
                    '-t': '',
                }, 'configs/l3-gen-2.cfg', '/root/dppd-PROX-v035/build/prox'

        prox_approx_vnf.copy_to_target = mock.MagicMock()
        prox_approx_vnf.upload_prox_config = mock.MagicMock()
        prox_approx_vnf.generate_prox_config_file = mock.MagicMock()
        prox_approx_vnf.q_out.put("PROX started")
        prox_approx_vnf.WAIT_TIME = 0

        # if process it still running exitcode will be None
        expected = 0, None
        result = prox_approx_vnf.instantiate(self.SCENARIO_CFG, self.CONTEXT_CFG)
        self.assertIn(result, expected)
    def test_collect_kpi(self, ssh, mock_time):
        mock_ssh(ssh)

        resource_helper = mock.MagicMock()
        resource_helper.execute.return_value = list(range(12))
        resource_helper.collect_collectd_kpi.return_value = {
            'core': {
                'result': 234
            }
        }

        prox_approx_vnf = ProxApproxVnf(NAME, self.VNFD0)
        prox_approx_vnf.resource_helper = resource_helper

        expected = {
            'packets_in': 7,
            'packets_dropped': 1,
            'packets_fwd': 6,
            'collect_stats': {
                'core': {
                    'result': 234
                }
            },
        }
        result = prox_approx_vnf.collect_kpi()
        self.assertEqual(result, expected)
Example #5
0
 def test_wait_for_instantiate_panic(self, ssh, mock_time):
     mock_ssh(ssh, exec_result=(1, "", ""))
     prox_approx_vnf = ProxApproxVnf(NAME, self.VNFD0)
     prox_approx_vnf._vnf_process = mock.MagicMock(**{"is_alive.return_value": True})
     prox_approx_vnf._run_prox = mock.Mock(return_value=0)
     prox_approx_vnf.WAIT_TIME = 0
     prox_approx_vnf.q_out.put("PANIC")
     with self.assertRaises(RuntimeError):
         prox_approx_vnf.wait_for_instantiate()
    def test_terminate(self, ssh, mock_socket, mock_time):
        mock_ssh(ssh)
        prox_approx_vnf = ProxApproxVnf(NAME, self.VNFD0)
        prox_approx_vnf._vnf_process = mock.MagicMock()
        prox_approx_vnf._vnf_process.terminate = mock.Mock()
        prox_approx_vnf.ssh_helper = mock.MagicMock()
        prox_approx_vnf.setup_helper = mock.Mock()
        prox_approx_vnf.resource_helper = mock.MagicMock()

        self.assertIsNone(prox_approx_vnf.terminate())
    def test_collect_kpi_error(self, ssh, mock_time):
        mock_ssh(ssh)

        resource_helper = mock.MagicMock()

        prox_approx_vnf = ProxApproxVnf(NAME, deepcopy(self.VNFD0))
        prox_approx_vnf.resource_helper = resource_helper
        prox_approx_vnf.vnfd_helper['vdu'][0]['external-interface'] = []

        with self.assertRaises(RuntimeError):
            prox_approx_vnf.collect_kpi()
Example #8
0
    def test_collect_kpi_no_client(self, ssh, mock_time):
        mock_ssh(ssh)

        prox_approx_vnf = ProxApproxVnf(NAME, self.VNFD0)
        prox_approx_vnf.resource_helper = None
        expected = {
            'packets_in': 0,
            'packets_dropped': 0,
            'packets_fwd': 0,
            'collect_stats': {'core': {}},
        }
        result = prox_approx_vnf.collect_kpi()
        self.assertEqual(result, expected)
    def test_vnf_execute_oserror(self, ssh, mock_time):
        mock_ssh(ssh)
        prox_approx_vnf = ProxApproxVnf(NAME, self.VNFD0)
        prox_approx_vnf.resource_helper = resource_helper = mock.Mock()

        resource_helper.execute.side_effect = OSError(errno.EPIPE, "")
        prox_approx_vnf.vnf_execute("", _ignore_errors=True)

        resource_helper.execute.side_effect = OSError(errno.ESHUTDOWN, "")
        prox_approx_vnf.vnf_execute("", _ignore_errors=True)

        resource_helper.execute.side_effect = OSError(errno.EADDRINUSE, "")
        with self.assertRaises(OSError):
            prox_approx_vnf.vnf_execute("", _ignore_errors=True)
    def test_run_prox(self, ssh, *_):
        mock_ssh(ssh)

        prox_approx_vnf = ProxApproxVnf(NAME, self.VNFD0)
        prox_approx_vnf.scenario_helper.scenario_cfg = self.SCENARIO_CFG
        prox_approx_vnf.ssh_helper.provision_tool.return_value = '/tool_path12/tool_file34'
        prox_approx_vnf.setup_helper.remote_path = 'configs/file56.cfg'

        expected = "sudo bash -c 'cd /tool_path12; " \
                   "/tool_path12/tool_file34 -o cli -t  -f /tmp/l3-swap-2.cfg '"

        prox_approx_vnf._run()
        result = prox_approx_vnf.ssh_helper.run.call_args[0][0]
        self.assertEqual(result, expected)
Example #11
0
    def __init__(self, name, vnfd, setup_env_helper_type=None, resource_helper_type=None):
        # don't call superclass, use custom wrapper of ProxApproxVnf
        self._vnf_wrapper = ProxApproxVnf(name, vnfd, setup_env_helper_type, resource_helper_type)
        self.bin_path = get_nsb_option('bin_path', '')
        self.name = self._vnf_wrapper.name
        self.ssh_helper = self._vnf_wrapper.ssh_helper
        self.setup_helper = self._vnf_wrapper.setup_helper
        self.resource_helper = self._vnf_wrapper.resource_helper
        self.scenario_helper = self._vnf_wrapper.scenario_helper

        self.runs_traffic = True
        self.traffic_finished = False
        self._tg_process = None
        self._traffic_process = None
Example #12
0
    def __init__(self, name, vnfd, setup_env_helper_type=None,
                 resource_helper_type=None):
        vnfd_cpy = copy.deepcopy(vnfd)
        super(ProxIrq, self).__init__(name, vnfd_cpy)

        self._vnf_wrapper = ProxApproxVnf(
            name, vnfd, setup_env_helper_type, resource_helper_type)
        self.bin_path = get_nsb_option('bin_path', '')
        self.name = self._vnf_wrapper.name
        self.ssh_helper = self._vnf_wrapper.ssh_helper
        self.setup_helper = self._vnf_wrapper.setup_helper
        self.resource_helper = self._vnf_wrapper.resource_helper
        self.scenario_helper = self._vnf_wrapper.scenario_helper
        self.irq_cores = None
Example #13
0
    def test_run_prox(self, ssh, mock_time):
        mock_ssh(ssh)

        prox_approx_vnf = ProxApproxVnf(NAME, self.VNFD0)

        filewrapper = mock.MagicMock()
        config_path = self.SCENARIO_CFG['options']["vnf__1"]["prox_config"]
        prox_path = self.SCENARIO_CFG['options']["vnf__1"]["prox_path"]
        prox_args = self.SCENARIO_CFG['options']["vnf__1"]["prox_args"]
        prox_approx_vnf.WAIT_TIME = 0
        prox_approx_vnf._run_prox(filewrapper, config_path, prox_path, prox_args)

        self.assertEqual(prox_approx_vnf.ssh_helper.run.call_args[0][0],
                         "sudo bash -c 'cd /root/dppd-PROX-v035/build; "
                         "/root/dppd-PROX-v035/build/prox -o cli -t  -f configs/l3-swap-2.cfg '")
Example #14
0
    def __init__(self, name, vnfd, setup_env_helper_type=None,
                 resource_helper_type=None):
        vnfd_cpy = copy.deepcopy(vnfd)
        super(ProxTrafficGen, self).__init__(name, vnfd_cpy)

        self._vnf_wrapper = ProxApproxVnf(
            name, vnfd, setup_env_helper_type, resource_helper_type)
        self.bin_path = get_nsb_option('bin_path', '')
        self.name = self._vnf_wrapper.name
        self.ssh_helper = self._vnf_wrapper.ssh_helper
        self.setup_helper = self._vnf_wrapper.setup_helper
        self.resource_helper = self._vnf_wrapper.resource_helper
        self.scenario_helper = self._vnf_wrapper.scenario_helper

        self.runs_traffic = True
        self.traffic_finished = False
        self._tg_process = None
        self._traffic_process = None
 def test_scale(self, ssh, mock_time):
     mock_ssh(ssh)
     prox_approx_vnf = ProxApproxVnf(NAME, self.VNFD0)
     with self.assertRaises(NotImplementedError):
         prox_approx_vnf.scale()
 def test___init__(self, ssh, mock_time):
     mock_ssh(ssh)
     prox_approx_vnf = ProxApproxVnf(NAME, self.VNFD0)
     self.assertIsNone(prox_approx_vnf._vnf_process)