示例#1
0
 def test_vnf_execute_command(self, mock_time, mock_process):
     with mock.patch("yardstick.ssh.SSH") as ssh:
         ssh_mock = mock.Mock(autospec=ssh.SSH)
         ssh_mock.execute = \
             mock.Mock(return_value=(0, "", ""))
         ssh.from_node.return_value = ssh_mock
         vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
         udp_approx_vnf = UdpReplayApproxVnf(NAME, vnfd)
         cmd = "quit"
         self.assertEqual("", udp_approx_vnf.vnf_execute(cmd))
示例#2
0
    def test_run_udp_replay(self, mock_open, eval, hex, mock_process):
        with mock.patch("yardstick.ssh.SSH") as ssh:
            ssh_mock = mock.Mock(autospec=ssh.SSH)
            ssh_mock.execute = \
                mock.Mock(return_value=(0, "", ""))
            ssh_mock.run = \
                mock.Mock(return_value=(0, "", ""))
            ssh.from_node.return_value = ssh_mock
            vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
            udp_approx_vnf = UdpReplayApproxVnf(NAME, vnfd)
            udp_approx_vnf._build_config = mock.MagicMock()
            udp_approx_vnf.queue_wrapper = mock.MagicMock()
            udp_approx_vnf.ssh_helper = mock.MagicMock()
            udp_approx_vnf.ssh_helper.run = mock.MagicMock()
            udp_approx_vnf.vnf_cfg = {
                'lb_config': 'SW',
                'lb_count': 1,
                'worker_config': '1C/1T',
                'worker_threads': 1
            }
            udp_approx_vnf.options = {
                'traffic_type': '4',
                'topology': 'nsb_test_case.yaml'
            }

            udp_approx_vnf._run()
            udp_approx_vnf.ssh_helper.run.assert_called_once()
示例#3
0
    def test_instantiate(self, Context, mock_process):
        with mock.patch("yardstick.ssh.SSH") as ssh:
            ssh_mock = mock.Mock(autospec=ssh.SSH)
            ssh_mock.execute = \
                mock.Mock(return_value=(0, "", ""))
            ssh.from_node.return_value = ssh_mock
            vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
            udp_approx_vnf = UdpReplayApproxVnf(NAME, vnfd)
            self.scenario_cfg['vnf_options'] = {
                'cgnapt': {
                    'cfg': "",
                    'rules': ""
                }
            }
            udp_approx_vnf._run_udp_replay = mock.Mock(return_value=0)
            udp_approx_vnf._parse_rule_file = mock.Mock(return_value={})
            udp_approx_vnf.deploy_udp_replay_vnf = mock.Mock(return_value=1)
            udp_approx_vnf.q_out.put("Replay>")
            udp_approx_vnf.get_my_ports = mock.Mock(return_value=[0, 1])
            udp_replay.WAIT_TIME = 3
            udp_approx_vnf.get_nfvi_type = mock.Mock(return_value="baremetal")

            udp_approx_vnf._vnf_process = mock.MagicMock()
            udp_approx_vnf._vnf_process.is_alive = \
                mock.Mock(return_value=1)
            self.assertIsNone(
                udp_approx_vnf.instantiate(self.scenario_cfg,
                                           self.context_cfg))
示例#4
0
 def test_collect_kpi(self, mock_time, mock_process):
     with mock.patch("yardstick.ssh.SSH") as ssh:
         ssh_mock = mock.Mock(autospec=ssh.SSH)
         ssh_mock.execute = \
             mock.Mock(return_value=(0, "", ""))
         ssh.from_node.return_value = ssh_mock
         vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
         result = "stats\r\r\n\r\nUDP_Replay stats:\r\n--------------\r\n" \
             "Port\t\tRx Packet\t\tTx Packet\t\tRx Pkt Drop\t\tTx Pkt Drop \r\n"\
             "0\t\t7374156\t\t7374136\t\t\t0\t\t\t0\r\n" \
             "1\t\t7374316\t\t7374315\t\t\t0\t\t\t0\r\n\r\nReplay>\r\r\nReplay>"
         udp_approx_vnf = UdpReplayApproxVnf(NAME, vnfd)
         udp_approx_vnf.q_in = mock.MagicMock()
         udp_approx_vnf.q_out = mock.MagicMock()
         udp_approx_vnf.q_out.qsize = mock.Mock(return_value=0)
         udp_approx_vnf.all_ports = [0, 1]
         udp_approx_vnf.interfaces = vnfd["vdu"][0]['external-interface']
         udp_approx_vnf.get_stats = mock.Mock(return_value=result)
         result = {
             'collect_stats': {},
             'packets_dropped': 0,
             'packets_fwd': 14748451,
             'packets_in': 14748472
         }
         self.assertEqual(result, udp_approx_vnf.collect_kpi())
示例#5
0
    def test_collect_kpi(self, ssh, *args):
        mock_ssh(ssh)

        vnfd = self.VNFD_0
        get_stats_ret_val = \
            "stats\r\r\n\r\nUDP_Replay stats:\r\n--------------\r\n" \
            "Port\t\tRx Packet\t\tTx Packet\t\tRx Pkt Drop\t\tTx Pkt Drop \r\n"\
            "0\t\t7374156\t\t7374136\t\t\t0\t\t\t0\r\n" \
            "1\t\t7374316\t\t7374315\t\t\t0\t\t\t0\r\n\r\nReplay>\r\r\nReplay>"
        udp_replay_approx_vnf = UdpReplayApproxVnf(NAME, vnfd)
        udp_replay_approx_vnf.scenario_helper.scenario_cfg = {
            'nodes': {
                udp_replay_approx_vnf.name: "mock"
            }
        }
        udp_replay_approx_vnf.q_in = mock.MagicMock()
        udp_replay_approx_vnf.q_out = mock.MagicMock()
        udp_replay_approx_vnf.q_out.qsize = mock.Mock(return_value=0)
        udp_replay_approx_vnf.all_ports = ["xe0", "xe1"]
        udp_replay_approx_vnf.get_stats = mock.Mock(
            return_value=get_stats_ret_val)
        result = {
            'physical_node': 'mock_node',
            'collect_stats': {},
            'packets_dropped': 0,
            'packets_fwd': 14748451,
            'packets_in': 14748472
        }
        self.assertEqual(result, udp_replay_approx_vnf.collect_kpi())
示例#6
0
    def test__build_pipeline_kwargs(self, ssh, mock_context, *args):
        mock_ssh(ssh)
        udp_replay_approx_vnf = UdpReplayApproxVnf(NAME, self.VNFD_0)
        udp_replay_approx_vnf.nfvi_context = mock_context
        udp_replay_approx_vnf.nfvi_context.attrs = {'nfvi_type': 'baremetal'}
        udp_replay_approx_vnf.setup_helper.bound_pci = [
            '0000:00:0.1', '0000:00:0.3'
        ]
        udp_replay_approx_vnf.all_ports = ["xe0", "xe1"]
        udp_replay_approx_vnf.ssh_helper.provision_tool = mock.MagicMock(
            return_value="tool_path")
        udp_replay_approx_vnf.scenario_helper = ScenarioHelper(name='vnf__1')
        udp_replay_approx_vnf.scenario_helper.scenario_cfg = self.SCENARIO_CFG

        udp_replay_approx_vnf._build_pipeline_kwargs()

        self.assertEqual(
            udp_replay_approx_vnf.pipeline_kwargs, {
                'config': '(0,0,1),(1,0,2)',
                'cpu_mask_hex': '0x7',
                'hw_csum': '',
                'port_mask_hex': '0x3',
                'tool_path': 'tool_path',
                'whitelist': '0000:00:0.1 -w 0000:00:0.3'
            })
    def test_instantiate(self, ssh, *_):
        mock_ssh(ssh)

        resource = mock.Mock(autospec=ResourceProfile)

        udp_replay_approx_vnf = UdpReplayApproxVnf(NAME, self.VNFD_0)
        udp_replay_approx_vnf.q_out.put("Replay>")
        udp_replay_approx_vnf.WAIT_TIME = 0
        udp_replay_approx_vnf.setup_helper.setup_vnf_environment = mock.Mock()

        self.assertIsNone(
            udp_replay_approx_vnf.instantiate(self.SCENARIO_CFG,
                                              self.CONTEXT_CFG))

        udp_replay_approx_vnf._vnf_process.is_alive = mock.Mock(return_value=1)
        udp_replay_approx_vnf._vnf_process.exitcode = 0

        self.assertEquals(udp_replay_approx_vnf.wait_for_instantiate(), 0)
示例#8
0
    def test_instantiate_panic(self, *args):
        udp_replay_approx_vnf = UdpReplayApproxVnf(NAME, self.VNFD_0)
        udp_replay_approx_vnf.WAIT_TIME = 0
        udp_replay_approx_vnf.q_out.put("some text PANIC some text")
        udp_replay_approx_vnf.setup_helper.setup_vnf_environment = mock.Mock()

        udp_replay_approx_vnf.deploy_helper = mock.MagicMock()
        self.assertIsNone(udp_replay_approx_vnf.instantiate(self.SCENARIO_CFG, self.CONTEXT_CFG))
        with self.assertRaises(RuntimeError):
            udp_replay_approx_vnf.wait_for_instantiate()
示例#9
0
    def test_run_udp_replay(self, ssh, *args):
        mock_ssh(ssh)

        udp_replay_approx_vnf = UdpReplayApproxVnf(NAME, self.VNFD_0)
        udp_replay_approx_vnf._build_config = mock.MagicMock()
        udp_replay_approx_vnf.queue_wrapper = mock.MagicMock()
        udp_replay_approx_vnf.scenario_helper = mock.MagicMock()

        udp_replay_approx_vnf._run()

        udp_replay_approx_vnf.ssh_helper.run.assert_called_once()
示例#10
0
 def test_terminate(self, mock_time, mock_process):
     with mock.patch("yardstick.ssh.SSH") as ssh:
         ssh_mock = mock.Mock(autospec=ssh.SSH)
         ssh_mock.execute = \
             mock.Mock(return_value=(0, "", ""))
         ssh.from_node.return_value = ssh_mock
         vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
         udp_approx_vnf = UdpReplayApproxVnf(NAME, vnfd)
         udp_approx_vnf._vnf_process = mock.MagicMock()
         udp_approx_vnf._vnf_process.terminate = mock.Mock()
         udp_approx_vnf.used_drivers = {"01:01.0": "i40e",
                                        "01:01.1": "i40e"}
         udp_approx_vnf.execute_command = mock.Mock()
         udp_approx_vnf.ssh_helper = ssh_mock
         udp_approx_vnf.dpdk_nic_bind = "dpdk_nic_bind.py"
         self.assertEqual(None, udp_approx_vnf.terminate())
示例#11
0
    def test_terminate(self, ssh, *args):
        mock_ssh(ssh)

        udp_replay_approx_vnf = UdpReplayApproxVnf(NAME, self.VNFD_0)
        udp_replay_approx_vnf._vnf_process = mock.MagicMock()
        udp_replay_approx_vnf._vnf_process.terminate = mock.Mock()
        udp_replay_approx_vnf.used_drivers = {
            "01:01.0": "i40e",
            "01:01.1": "i40e"
        }
        udp_replay_approx_vnf.dpdk_nic_bind = "dpdk_nic_bind.py"
        self.assertEqual(None, udp_replay_approx_vnf.terminate())
示例#12
0
    def test_get_stats(self, ssh, *args):
        mock_ssh(ssh)

        udp_replay_approx_vnf = UdpReplayApproxVnf(NAME, self.VNFD_0)
        udp_replay_approx_vnf.q_in = mock.MagicMock()
        udp_replay_approx_vnf.q_out = mock.MagicMock()
        udp_replay_approx_vnf.q_out.qsize = mock.Mock(return_value=0)
        mock_result = \
            "CG-NAPT(.*\n)*Received 100, Missed 0, Dropped 0,Translated 100,ingress"

        udp_replay_approx_vnf.vnf_execute = mock.Mock(return_value=mock_result)

        self.assertEqual(mock_result, udp_replay_approx_vnf.get_stats())
示例#13
0
 def test_get_stats(self, mock_process):
     with mock.patch("yardstick.ssh.SSH") as ssh:
         ssh_mock = mock.Mock(autospec=ssh.SSH)
         ssh_mock.execute = \
             mock.Mock(return_value=(0, "", ""))
         ssh.from_node.return_value = ssh_mock
         vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
         udp_approx_vnf = UdpReplayApproxVnf(NAME, vnfd)
         udp_approx_vnf.q_in = mock.MagicMock()
         udp_approx_vnf.q_out = mock.MagicMock()
         udp_approx_vnf.q_out.qsize = mock.Mock(return_value=0)
         mock_result = \
             "CG-NAPT(.*\n)*Received 100, Missed 0, Dropped 0,Translated 100,ingress"
         udp_approx_vnf.vnf_execute = mock.Mock(return_value=mock_result)
         self.assertEqual(mock_result, udp_approx_vnf.get_stats())
示例#14
0
    def test_instantiate(self, ssh, *args):
        mock_ssh(ssh)

        udp_replay_approx_vnf = UdpReplayApproxVnf(NAME, self.VNFD_0,
                                                   'task_id')
        udp_replay_approx_vnf.q_out.put("Replay>")
        udp_replay_approx_vnf.WAIT_TIME = 0
        udp_replay_approx_vnf.setup_helper.setup_vnf_environment = mock.Mock()

        udp_replay_approx_vnf.deploy_helper = mock.MagicMock()
        udp_replay_approx_vnf.deploy_vnfs = mock.MagicMock()
        self.assertIsNone(
            udp_replay_approx_vnf.instantiate(self.SCENARIO_CFG,
                                              self.CONTEXT_CFG))

        udp_replay_approx_vnf._vnf_process.is_alive = mock.Mock(return_value=1)
        udp_replay_approx_vnf._vnf_process.exitcode = 0

        self.assertEqual(udp_replay_approx_vnf.wait_for_instantiate(), 0)
示例#15
0
    def test_collect_kpi(self, ssh, mock_time, _):
        mock_ssh(ssh)

        vnfd = self.VNFD_0
        result = "stats\r\r\n\r\nUDP_Replay stats:\r\n--------------\r\n" \
                 "Port\t\tRx Packet\t\tTx Packet\t\tRx Pkt Drop\t\tTx Pkt Drop \r\n"\
                 "0\t\t7374156\t\t7374136\t\t\t0\t\t\t0\r\n" \
                 "1\t\t7374316\t\t7374315\t\t\t0\t\t\t0\r\n\r\nReplay>\r\r\nReplay>"
        udp_replay_approx_vnf = UdpReplayApproxVnf(NAME, vnfd)
        udp_replay_approx_vnf.q_in = mock.MagicMock()
        udp_replay_approx_vnf.q_out = mock.MagicMock()
        udp_replay_approx_vnf.q_out.qsize = mock.Mock(return_value=0)
        udp_replay_approx_vnf.all_ports = ["xe0", "xe1"]
        udp_replay_approx_vnf.get_stats = mock.Mock(return_value=result)
        result = {
            'collect_stats': {},
            'packets_dropped': 0,
            'packets_fwd': 14748451,
            'packets_in': 14748472
        }
        self.assertEqual(result, udp_replay_approx_vnf.collect_kpi())
示例#16
0
    def test__build_config(self, ssh, mock_context, *args):
        mock_ssh(ssh)

        udp_replay_approx_vnf = UdpReplayApproxVnf(NAME, self.VNFD_0)
        udp_replay_approx_vnf.queue_wrapper = mock.MagicMock()
        udp_replay_approx_vnf.nfvi_context = mock_context
        udp_replay_approx_vnf.nfvi_context.attrs = {'nfvi_type': 'baremetal'}
        udp_replay_approx_vnf.setup_helper.bound_pci = []
        udp_replay_approx_vnf.ssh_helper.provision_tool = mock.MagicMock(
            return_value="tool_path")
        udp_replay_approx_vnf.scenario_helper = ScenarioHelper(name='vnf__1')
        udp_replay_approx_vnf.scenario_helper.scenario_cfg = self.SCENARIO_CFG

        cmd_line = udp_replay_approx_vnf._build_config()

        expected = \
            "sudo tool_path --log-level=5 -c 0x7 -n 4 -w  --  -p 0x3 --config='(0,0,1),(1,0,2)'"
        self.assertEqual(cmd_line, expected)
示例#17
0
    def test_scale(self, _):
        udp_replay_approx_vnf = UdpReplayApproxVnf(NAME, self.VNFD_0)
        flavor = ""

        self.assertRaises(NotImplementedError, udp_replay_approx_vnf.scale,
                          flavor)
示例#18
0
 def test___init__(self, *args):
     udp_replay_approx_vnf = UdpReplayApproxVnf(NAME, self.VNFD_0)
     self.assertIsNone(udp_replay_approx_vnf._vnf_process)
示例#19
0
 def test_scale(self, mock_process):
     vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
     udp_approx_vnf = UdpReplayApproxVnf(NAME, vnfd)
     flavor = ""
     self.assertRaises(NotImplementedError, udp_approx_vnf.scale, flavor)
示例#20
0
    def test__build_pipeline_kwargs(self, mock_open, mock_process):
        with mock.patch("yardstick.ssh.SSH") as ssh:
            ssh_mock = mock.Mock(autospec=ssh.SSH)
            ssh.from_node.return_value = ssh_mock
            vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
            udp_approx_vnf = UdpReplayApproxVnf(NAME, vnfd)
            udp_approx_vnf._build_config = mock.MagicMock()
            udp_approx_vnf.queue_wrapper = mock.MagicMock()
            udp_approx_vnf.nfvi_type = "baremetal"
            udp_approx_vnf.bound_pci = []
            udp_approx_vnf.all_ports = [0, 1]
            udp_approx_vnf.ssh_helper = mock.MagicMock(
                **{"provision_tool.return_value": "tool_path"})
            udp_approx_vnf.vnf_cfg = {
                'lb_config': 'SW',
                'lb_count': 1,
                'worker_config': '1C/1T',
                'worker_threads': 1
            }
            udp_approx_vnf.options = {
                'traffic_type': '4',
                'topology': 'nsb_test_case.yaml'
            }

            udp_approx_vnf._build_pipeline_kwargs()
            self.assertEqual(
                udp_approx_vnf.pipeline_kwargs, {
                    'config': '(0, 0, 1)(1, 0, 2)',
                    'cpu_mask_hex': '0x6',
                    'hw_csum': '',
                    'ports_len_hex': '0x3',
                    'tool_path': 'tool_path',
                    'whitelist': ''
                })
示例#21
0
 def test___init__(self, mock_process):
     vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
     udp_approx_vnf = UdpReplayApproxVnf(NAME, vnfd)
     self.assertIsNone(udp_approx_vnf._vnf_process)