示例#1
0
 def test___init__(self, *args):
     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]
         # NOTE(ralonsoh): check the object returned.
         tg_rfc2544_ixia.IxiaTrafficGen(NAME, vnfd, 'task_id')
 def test_listen_traffic(self, *args):
     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]
         ixnet_traffic_gen = tg_rfc2544_ixia.IxiaTrafficGen(NAME, vnfd)
         self.assertIsNone(ixnet_traffic_gen.listen_traffic({}))
 def test_terminate(self, *args):
     with mock.patch("yardstick.ssh.SSH") as ssh:
         vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
         ssh_mock = mock.Mock(autospec=ssh.SSH)
         ssh_mock.execute = \
             mock.Mock(return_value=(0, "", ""))
         ssh.from_node.return_value = ssh_mock
         ixnet_traffic_gen = tg_rfc2544_ixia.IxiaTrafficGen(NAME, vnfd)
         ixnet_traffic_gen._terminated = mock.MagicMock()
         ixnet_traffic_gen._terminated.value = 0
         ixnet_traffic_gen._ixia_traffic_gen = mock.MagicMock()
         ixnet_traffic_gen._ixia_traffic_gen.ix_stop_traffic = mock.Mock()
         ixnet_traffic_gen._traffic_process = mock.MagicMock()
         ixnet_traffic_gen._traffic_process.terminate = mock.Mock()
         self.assertIsNone(ixnet_traffic_gen.terminate())
    def test_collect_kpi(self, *args):
        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]
            ixnet_traffic_gen = tg_rfc2544_ixia.IxiaTrafficGen(NAME, vnfd)
            ixnet_traffic_gen.scenario_helper.scenario_cfg = {
                'nodes': {
                    ixnet_traffic_gen.name: "mock"
                }
            }
            ixnet_traffic_gen.data = {}
            restult = ixnet_traffic_gen.collect_kpi()

            expected = {'collect_stats': {}, 'physical_node': 'mock_node'}

            self.assertEqual(expected, restult)
示例#5
0
 def test_instantiate(self, *args):
     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]
         ixnet_traffic_gen = tg_rfc2544_ixia.IxiaTrafficGen(
             NAME, vnfd, 'task_id')
         scenario_cfg = {
             'tc': "nsb_test_case",
             "topology": "",
             'ixia_profile': "ixload.cfg"
         }
         scenario_cfg.update({
             'options': {
                 'packetsize': 64,
                 'traffic_type': 4,
                 'rfc2544': {
                     'allowed_drop_rate': '0.8 - 1'
                 },
                 'vnf__1': {
                     'rules': 'acl_1rule.yaml',
                     'vnf_config': {
                         'lb_config': 'SW',
                         'lb_count': 1,
                         'worker_config': '1C/1T',
                         'worker_threads': 1
                     }
                 }
             }
         })
         scenario_cfg.update({'nodes': {ixnet_traffic_gen.name: "mock"}})
         ixnet_traffic_gen.topology = ""
         ixnet_traffic_gen.get_ixobj = mock.MagicMock()
         ixnet_traffic_gen._ixia_traffic_gen = mock.MagicMock()
         ixnet_traffic_gen._ixia_traffic_gen._connect = mock.Mock()
         self.assertRaises(IOError,
                           ixnet_traffic_gen.instantiate(scenario_cfg, {}))
示例#6
0
    def test_traffic_runner(self, mock_ssh, *args):
        mock_traffic_profile = mock.Mock(autospec=tp_base.TrafficProfile)
        mock_traffic_profile.get_traffic_definition.return_value = "64"
        mock_traffic_profile.params = self.TRAFFIC_PROFILE
        # traffic_profile.ports is standardized on port_num
        mock_traffic_profile.ports = [0, 1]

        mock_ssh_instance = mock.Mock(autospec=mock_ssh.SSH)
        mock_ssh_instance.execute.return_value = 0, "", ""
        mock_ssh_instance.run.return_value = 0, "", ""

        mock_ssh.from_node.return_value = mock_ssh_instance

        vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
        vnfd["mgmt-interface"].update(
            {'tg-config': {
                "ixchassis": "1.1.1.1",
                "py_bin_path": "/root",
            }})

        samples = {}
        name = ''
        for ifname in range(1):
            name = "xe{}".format(ifname)
            samples[name] = {
                "Rx_Rate_Kbps": 20,
                "Tx_Rate_Kbps": 20,
                "Rx_Rate_Mbps": 10,
                "Tx_Rate_Mbps": 10,
                "RxThroughput": 10,
                "TxThroughput": 10,
                "Valid_Frames_Rx": 1000,
                "Frames_Tx": 1000,
                "in_packets": 1000,
                "out_packets": 1000,
            }

        samples.update({"CurrentDropPercentage": 0.0})

        last_res = [
            0,
            {
                "Rx_Rate_Kbps": [20, 20],
                "Tx_Rate_Kbps": [20, 20],
                "Rx_Rate_Mbps": [10, 10],
                "Tx_Rate_Mbps": [10, 10],
                "CurrentDropPercentage": [0, 0],
                "RxThroughput": [10, 10],
                "TxThroughput": [10, 10],
                "Frames_Tx": [1000, 1000],
                "in_packets": [1000, 1000],
                "Valid_Frames_Rx": [1000, 1000],
                "out_packets": [1000, 1000],
            },
        ]

        mock_traffic_profile.execute_traffic.return_value = [
            'Completed', samples
        ]
        mock_traffic_profile.get_drop_percentage.return_value = [
            'Completed', samples
        ]

        sut = tg_rfc2544_ixia.IxiaTrafficGen(name, vnfd, 'task_id')
        sut.vnf_port_pairs = [[[0], [1]]]
        sut.tc_file_name = self._get_file_abspath(TEST_FILE_YAML)
        sut.topology = ""

        sut.ssh_helper = mock.Mock()
        sut._traffic_process = mock.MagicMock()
        sut.generate_port_pairs = mock.Mock()

        sut._ixia_traffic_gen = mock.MagicMock()
        sut._ixia_traffic_gen.ix_get_statistics.return_value = last_res

        sut.resource_helper.client = mock.MagicMock()
        sut.resource_helper.client_started = mock.MagicMock()
        sut.resource_helper.client_started.value = 1
        sut.resource_helper.rfc_helper.iteration.value = 11

        sut.scenario_helper.scenario_cfg = {
            'options': {
                'packetsize': 64,
                'traffic_type': 4,
                'rfc2544': {
                    'allowed_drop_rate': '0.8 - 1',
                    'latency': True
                },
                'vnf__1': {
                    'rules': 'acl_1rule.yaml',
                    'vnf_config': {
                        'lb_config': 'SW',
                        'lb_count': 1,
                        'worker_config': '1C/1T',
                        'worker_threads': 1,
                    },
                },
            },
            'ixia_profile': '/path/to/profile',
            'task_path': '/path/to/task'
        }

        @mock.patch.object(six.moves.builtins, 'open', create=True)
        @mock.patch(
            'yardstick.network_services.vnf_generic.vnf.tg_rfc2544_ixia.open',
            mock.mock_open(),
            create=True)
        @mock.patch(
            'yardstick.network_services.vnf_generic.vnf.tg_rfc2544_ixia.LOG.exception'
        )
        def _traffic_runner(*args):
            sut._setup_mq_producer = mock.Mock(return_value='mq_producer')
            result = sut._traffic_runner(mock_traffic_profile, mock.ANY)
            self.assertIsNone(result)

        _traffic_runner()
示例#7
0
 def test__check_status(self, *args):
     vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
     sut = tg_rfc2544_ixia.IxiaTrafficGen('vnf1', vnfd, 'task_id')
     sut._check_status()