コード例 #1
0
    def test_run_vpe(self, ssh):
        test_base.mock_ssh(ssh)

        vpe_approx_vnf = vpe_vnf.VpeApproxVnf(NAME, self.VNFD_0)
        vpe_approx_vnf.tc_file_name = get_file_abspath(TEST_FILE_YAML)
        vpe_approx_vnf.vnf_cfg = {
            'lb_config': 'SW',
            'lb_count': 1,
            'worker_config': '1C/1T',
            'worker_threads': 1,
        }
        vpe_approx_vnf.scenario_helper.scenario_cfg = {
            'options': {
                NAME: {
                    'traffic_type': '4',
                    'topology': 'nsb_test_case.yaml',
                    'vnf_config': 'vpe_config',
                }
            }
        }
        vpe_approx_vnf.topology = "nsb_test_case.yaml"
        vpe_approx_vnf.nfvi_type = "baremetal"
        vpe_approx_vnf._provide_config_file = mock.Mock()
        vpe_approx_vnf._build_config = mock.MagicMock()

        self.assertIsInstance(vpe_approx_vnf.ssh_helper, mock.Mock)
        self.assertIsInstance(vpe_approx_vnf.ssh_helper, mock.Mock)
        self.assertIsNone(vpe_approx_vnf._run())
コード例 #2
0
 def test_vnf_execute(self, ssh):
     test_base.mock_ssh(ssh)
     vpe_approx_vnf = vpe_vnf.VpeApproxVnf(NAME, self.VNFD_0)
     vpe_approx_vnf.q_in = mock.MagicMock()
     vpe_approx_vnf.q_out = mock.MagicMock()
     vpe_approx_vnf.q_out.qsize = mock.Mock(return_value=0)
     self.assertEqual(vpe_approx_vnf.vnf_execute("quit", 0), '')
コード例 #3
0
    def test_collect_kpi_sa_running(self, ssh, *args):
        test_base.mock_ssh(ssh)

        resource = mock.Mock(autospec=ResourceProfile)
        resource.check_if_system_agent_running.return_value = 0, '1234'
        resource.amqp_collect_nfvi_kpi.return_value = {'foo': 234}

        vpe_approx_vnf = vpe_vnf.VpeApproxVnf(NAME, self.VNFD_0)
        vpe_approx_vnf.scenario_helper.scenario_cfg = {
            'nodes': {
                vpe_approx_vnf.name: "mock"
            }
        }
        vpe_approx_vnf.q_in = mock.MagicMock()
        vpe_approx_vnf.q_out = mock.MagicMock()
        vpe_approx_vnf.q_out.qsize = mock.Mock(return_value=0)
        vpe_approx_vnf.resource_helper.resource = resource

        expected = {
            'physical_node': 'mock_node',
            'pkt_in_down_stream': 0,
            'pkt_in_up_stream': 0,
            'pkt_drop_down_stream': 0,
            'pkt_drop_up_stream': 0,
            'collect_stats': {
                'core': {
                    'foo': 234
                }
            },
        }
        self.assertEqual(vpe_approx_vnf.collect_kpi(), expected)
コード例 #4
0
    def test_terminate(self, ssh):
        test_base.mock_ssh(ssh)

        vpe_approx_vnf = vpe_vnf.VpeApproxVnf(NAME, self.VNFD_0)
        vpe_approx_vnf._vnf_process = mock.MagicMock()
        vpe_approx_vnf._resource_collect_stop = mock.Mock()
        vpe_approx_vnf.resource_helper = mock.MagicMock()

        self.assertIsNone(vpe_approx_vnf.terminate())
コード例 #5
0
    def test_wait_for_instantiate_crash(self, ssh):
        test_base.mock_ssh(ssh, exec_result=(1, "", ""))

        mock_process = mock.Mock(autospec=Process)
        mock_process.is_alive.return_value = False
        mock_process.exitcode = 432

        mock_resource = mock.MagicMock()

        vpe_approx_vnf = vpe_vnf.VpeApproxVnf(NAME, self.VNFD_0)
        vpe_approx_vnf._vnf_process = mock_process
        vpe_approx_vnf.resource_helper.resource = mock_resource

        with self.assertRaises(RuntimeError) as raised:
            vpe_approx_vnf.wait_for_instantiate()

        self.assertIn('VNF process died', str(raised.exception))
コード例 #6
0
    def test_wait_for_instantiate_panic(self, ssh):
        test_base.mock_ssh(ssh, exec_result=(1, "", ""))

        mock_process = mock.Mock(autospec=Process)
        mock_process.is_alive.return_value = True
        mock_process.exitcode = 432

        mock_resource = mock.MagicMock()

        vpe_approx_vnf = vpe_vnf.VpeApproxVnf(NAME, self.VNFD_0, 'task_id')
        vpe_approx_vnf._vnf_process = mock_process
        vpe_approx_vnf.resource_helper.resource = mock_resource

        vpe_approx_vnf.q_out.put("PANIC")
        with self.assertRaises(RuntimeError) as raised:
            vpe_approx_vnf.wait_for_instantiate()

        self.assertIn('Error starting', str(raised.exception))
コード例 #7
0
    def test_wait_for_instantiate_fragmented(self, ssh):
        test_base.mock_ssh(ssh)

        mock_process = mock.Mock(autospec=Process)
        mock_process.is_alive.return_value = True
        mock_process.exitcode = 432

        # test that fragmented pipeline prompt is recognized
        mock_q_out = mock.Mock(autospec=Queue)
        mock_q_out.get.side_effect = iter(["wow pipel", "ine>"])
        mock_q_out.qsize.side_effect = range(2, -1, -1)

        mock_resource = mock.MagicMock()

        vpe_approx_vnf = vpe_vnf.VpeApproxVnf(NAME, self.VNFD_0)
        vpe_approx_vnf._vnf_process = mock_process
        vpe_approx_vnf.q_out = mock_q_out
        vpe_approx_vnf.queue_wrapper = mock.Mock(
            autospec=vnf_base.QueueFileWrapper)
        vpe_approx_vnf.resource_helper.resource = mock_resource

        self.assertEqual(vpe_approx_vnf.wait_for_instantiate(), 432)
コード例 #8
0
    def test_wait_for_instantiate(self, ssh):
        test_base.mock_ssh(ssh)

        mock_process = mock.Mock(autospec=Process)
        mock_process.is_alive.return_value = True
        mock_process.exitcode = 432

        mock_q_out = mock.Mock(autospec=Queue)
        mock_q_out.get.side_effect = iter(["pipeline>"])
        mock_q_out.qsize.side_effect = range(1, -1, -1)

        mock_resource = mock.MagicMock()

        vpe_approx_vnf = vpe_vnf.VpeApproxVnf(NAME, self.VNFD_0, 'task_id')
        vpe_approx_vnf._vnf_process = mock_process
        vpe_approx_vnf.q_out = mock_q_out
        vpe_approx_vnf.queue_wrapper = mock.Mock(
            autospec=vnf_base.QueueFileWrapper)
        vpe_approx_vnf.resource_helper.resource = mock_resource

        vpe_approx_vnf.q_out.put("pipeline>")
        self.assertEqual(vpe_approx_vnf.wait_for_instantiate(), 432)
コード例 #9
0
    def test_wait_for_instantiate_panic_fragmented(self, ssh):
        test_base.mock_ssh(ssh, exec_result=(1, "", ""))

        mock_process = mock.Mock(autospec=Process)
        mock_process.is_alive.return_value = True
        mock_process.exitcode = 432

        # test that fragmented PANIC is recognized
        mock_q_out = mock.Mock(autospec=Queue)
        mock_q_out.get.side_effect = iter(["omg PA", "NIC this is bad"])
        mock_q_out.qsize.side_effect = range(2, -1, -1)

        mock_resource = mock.MagicMock()

        vpe_approx_vnf = vpe_vnf.VpeApproxVnf(NAME, self.VNFD_0)
        vpe_approx_vnf._vnf_process = mock_process
        vpe_approx_vnf.q_out = mock_q_out
        vpe_approx_vnf.resource_helper.resource = mock_resource

        with self.assertRaises(RuntimeError) as raised:
            vpe_approx_vnf.wait_for_instantiate()

        self.assertIn('Error starting', str(raised.exception))
コード例 #10
0
 def test___init__(self):
     vpe_approx_vnf = vpe_vnf.VpeApproxVnf(NAME, self.VNFD_0)
     self.assertIsNone(vpe_approx_vnf._vnf_process)