示例#1
0
 def test_instantiate(self, mock_shutil, *args):
     vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
     ixload_traffic_gen = tg_ixload.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"
     mock_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
                 }
             }
         }
     })
     scenario_cfg.update({'nodes': {ixload_traffic_gen.name: "mock"}})
     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_update_gateways(self):
        vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
        ixload_traffic_gen = tg_ixload.IxLoadTrafficGen(NAME, vnfd)
        links = {'uplink_0': {'ip': {}}, 'downlink_1': {'ip': {}}}

        ixload_traffic_gen.update_gateways(links)

        self.assertEqual("152.16.100.20", links["uplink_0"]["ip"]["gateway"])
        self.assertEqual("0.0.0.0", links["downlink_1"]["ip"]["gateway"])
示例#3
0
 def test_parse_csv_read_error(self, ):
     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,
     }]
     ixload_traffic_gen = tg_ixload.IxLoadTrafficGen(NAME, vnfd)
     with self.assertRaises(KeyError):
         ixload_traffic_gen.resource_helper.parse_csv_read(http_reader)
示例#4
0
    def test_collect_kpi(self, *args):
        vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
        ixload_traffic_gen = tg_ixload.IxLoadTrafficGen(NAME, vnfd)
        ixload_traffic_gen.scenario_helper.scenario_cfg = {
            'nodes': {
                ixload_traffic_gen.name: "mock"
            }
        }
        ixload_traffic_gen.data = {}
        result = ixload_traffic_gen.collect_kpi()

        expected = {'physical_node': 'mock_node', 'collect_stats': {}}
        self.assertEqual(expected, result)
示例#5
0
 def test_run_traffic(self, *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
     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 = tg_ixload.IxLoadTrafficGen(NAME, vnfd, 'task_id')
     sut.connection = mock.Mock()
     sut._traffic_runner = mock.Mock(return_value=0)
     result = sut.run_traffic(mock_traffic_profile)
     self.assertIsNone(result)
示例#6
0
 def test_parse_csv_read_value_error(self):
     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,
     }]
     ixload_traffic_gen = tg_ixload.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)
示例#7
0
 def test_parse_csv_read(self):
     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]
     ixload_traffic_gen = tg_ixload.IxLoadTrafficGen(NAME, vnfd)
     result = ixload_traffic_gen.resource_helper.result
     ixload_traffic_gen.resource_helper.parse_csv_read(http_reader)
     for k_left, k_right in tg_ixload.IxLoadResourceHelper.KPI_LIST.items():
         self.assertEqual(result[k_left][-1], int(kpi_data[k_right]))
示例#8
0
 def test_run_traffic_csv(self, *args):
     mock_traffic_profile = mock.Mock(autospec=tp_base.TrafficProfile)
     mock_traffic_profile.get_traffic_definition.return_value = '64'
     mock_traffic_profile.get_links_param.return_value = {
         'uplink_0': {
             'ip': {}
         }
     }
     mock_traffic_profile.params = self.TRAFFIC_PROFILE
     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 = tg_ixload.IxLoadTrafficGen(NAME, vnfd)
     sut.connection = mock.Mock()
     sut._traffic_runner = mock.Mock(return_value=0)
     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)
示例#9
0
 def test_terminate(self):
     vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
     ixload_traffic_gen = tg_ixload.IxLoadTrafficGen(NAME, vnfd)
     self.assertIsNone(ixload_traffic_gen.terminate())
示例#10
0
 def test_listen_traffic(self):
     vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
     ixload_traffic_gen = tg_ixload.IxLoadTrafficGen(NAME, vnfd)
     self.assertIsNone(ixload_traffic_gen.listen_traffic({}))
示例#11
0
 def test___init__(self):
     vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
     ixload_traffic_gen = tg_ixload.IxLoadTrafficGen(NAME, vnfd)
     self.assertIsNone(ixload_traffic_gen.resource_helper.data)