コード例 #1
0
ファイル: test_tg_ixload.py プロジェクト: warmwm/yardstick-ha
 def test_instantiate(self, shutil, *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]
         ixload_traffic_gen = IxLoadTrafficGen(NAME, vnfd)
         scenario_cfg = {'tc': "nsb_test_case",
                         'ixia_profile': "ixload.cfg",
                         'task_path': "/path/to/task"}
         ixload_traffic_gen.RESULTS_MOUNT = "/tmp/result"
         shutil.copy = mock.Mock()
         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}}
                                          }})
         with mock.patch.object(six.moves.builtins, 'open',
                                create=True) as mock_open:
             mock_open.return_value = mock.MagicMock()
             ixload_traffic_gen.instantiate(scenario_cfg, {})
コード例 #2
0
 def test_terminate(self, call):
     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
         ixload_traffic_gen = IxLoadTrafficGen(NAME, vnfd)
         self.assertEqual(None, ixload_traffic_gen.terminate())
コード例 #3
0
 def test_listen_traffic(self):
     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]
         ixload_traffic_gen = IxLoadTrafficGen(NAME, vnfd)
         self.assertIsNone(ixload_traffic_gen.listen_traffic({}))
コード例 #4
0
 def test_collect_kpi(self):
     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]
         ixload_traffic_gen = IxLoadTrafficGen(NAME, vnfd)
         ixload_traffic_gen.data = {}
         restult = ixload_traffic_gen.collect_kpi()
         self.assertEqual({}, restult)
コード例 #5
0
    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]
            ixload_traffic_gen = IxLoadTrafficGen(NAME, vnfd)
            ixload_traffic_gen.scenario_helper.scenario_cfg = {
                'nodes': {
                    ixload_traffic_gen.name: "mock"
                }
            }
            ixload_traffic_gen.data = {}
            restult = ixload_traffic_gen.collect_kpi()
            expected = {
                'physical_node': 'mock_node',
                'collect_stats': {},
            }
            self.assertEqual(expected, restult)
コード例 #6
0
 def test_run_traffic_csv(self, call, shutil, main_open, min, max, len):
     mock_traffic_profile = mock.Mock(autospec=TrafficProfile)
     mock_traffic_profile.get_traffic_definition.return_value = "64"
     mock_traffic_profile.params = self.TRAFFIC_PROFILE
     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]
         vnfd["mgmt-interface"].update({"tg-config": {}})
         vnfd["mgmt-interface"]["tg-config"].update(
             {"ixchassis": "1.1.1.1"})
         vnfd["mgmt-interface"]["tg-config"].update(
             {"py_bin_path": "/root"})
         sut = IxLoadTrafficGen(NAME, vnfd)
         sut.connection = mock.Mock()
         sut.connection.run = mock.Mock()
         sut._traffic_runner = mock.Mock(return_value=0)
         shutil.copy = mock.Mock()
         subprocess.call(["touch", "/tmp/1.csv"])
         sut.rel_bin_path = mock.Mock(return_value="/tmp/*.csv")
         result = sut.run_traffic(mock_traffic_profile)
         self.assertIsNone(result)
コード例 #7
0
 def test_instantiate(self, call, shutil, mock_makedirs):
     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]
         ixload_traffic_gen = IxLoadTrafficGen(NAME, vnfd)
         scenario_cfg = {
             'tc': "nsb_test_case",
             'ixia_profile': "ixload.cfg"
         }
         ixload_traffic_gen.RESULTS_MOUNT = "/tmp/result"
         shutil.copy = mock.Mock()
         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
                     }
                 }
             }
         })
         self.assertRaises(IOError,
                           ixload_traffic_gen.instantiate(scenario_cfg, {}))
コード例 #8
0
    def test_parse_csv_read_error(self, mock_call, mock_ssh):
        vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
        http_reader = [{
            'HTTP Total Throughput (Kbps)': 1,
            'HTTP Simulated Users': 2,
            'HTTP Concurrent Connections': 3,
            'HTTP Transaction Rate': 5,
        }]

        mock_ssh_type = mock.Mock(autospec=mock_ssh.SSH)
        mock_ssh_type.execute.return_value = 0, "", ""
        mock_ssh.from_node.return_value = mock_ssh_type

        ixload_traffic_gen = IxLoadTrafficGen(NAME, vnfd)

        with self.assertRaises(KeyError):
            ixload_traffic_gen.resource_helper.parse_csv_read(http_reader)
コード例 #9
0
ファイル: test_tg_ixload.py プロジェクト: warmwm/yardstick-ha
    def test_parse_csv_read_value_error(self, mock_ssh, *args):
        vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
        http_reader = [{
            'HTTP Total Throughput (Kbps)': 1,
            'HTTP Simulated Users': 2,
            'HTTP Concurrent Connections': "not a number",
            'HTTP Connection Rate': 4,
            'HTTP Transaction Rate': 5,
        }]

        mock_ssh_type = mock.Mock(autospec=mock_ssh.SSH)
        mock_ssh_type.execute.return_value = 0, "", ""
        mock_ssh.from_node.return_value = mock_ssh_type

        ixload_traffic_gen = IxLoadTrafficGen(NAME, vnfd)
        init_value = ixload_traffic_gen.resource_helper.result

        ixload_traffic_gen.resource_helper.parse_csv_read(http_reader)
        self.assertDictEqual(ixload_traffic_gen.resource_helper.result, init_value)
コード例 #10
0
    def test_parse_csv_read(self, mock_call, mock_ssh):
        vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
        kpi_data = {
            'HTTP Total Throughput (Kbps)': 1,
            'HTTP Simulated Users': 2,
            'HTTP Concurrent Connections': '3',
            'HTTP Connection Rate': 4.3,
            'HTTP Transaction Rate': True,
        }
        http_reader = [kpi_data]

        mock_ssh_type = mock.Mock(autospec=mock_ssh.SSH)
        mock_ssh_type.execute.return_value = 0, "", ""
        mock_ssh.from_node.return_value = mock_ssh_type

        ixload_traffic_gen = IxLoadTrafficGen(NAME, vnfd)
        result = ixload_traffic_gen.resource_helper.result

        ixload_traffic_gen.resource_helper.parse_csv_read(http_reader)
        for key_left, key_right in IxLoadResourceHelper.KPI_LIST.items():
            self.assertEqual(result[key_left][-1], int(kpi_data[key_right]))
コード例 #11
0
 def test_terminate(self, *args):
     vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
     ixload_traffic_gen = IxLoadTrafficGen(NAME, vnfd)
     self.assertIsNone(ixload_traffic_gen.terminate())