Пример #1
0
 def test__wait_for_process(self):
     prox_irq_gen = ProxIrqGen('tg1', self.VNFD_0)
     with mock.patch.object(prox_irq_gen, '_check_status',
                            return_value=0) as mock_status, \
             mock.patch.object(prox_irq_gen, '_tg_process') as mock_proc:
         mock_proc.is_alive.return_value = True
         mock_proc.exitcode = 234
         self.assertEqual(prox_irq_gen._wait_for_process(), 234)
         mock_proc.is_alive.assert_called_once()
         mock_status.assert_called_once()
Пример #2
0
 def test__wait_for_process_delayed(self):
     prox_irq_gen = ProxIrqGen('tg1', self.VNFD_0)
     with mock.patch.object(prox_irq_gen, '_check_status',
                            side_effect=[1, 0]) as mock_status, \
             mock.patch.object(prox_irq_gen,
                               '_tg_process') as mock_proc:
         mock_proc.is_alive.return_value = True
         mock_proc.exitcode = 234
         self.assertEqual(prox_irq_gen._wait_for_process(), 234)
         mock_proc.is_alive.assert_has_calls([mock.call(), mock.call()])
         mock_status.assert_has_calls([mock.call(), mock.call()])
Пример #3
0
    def test_collect_kpi(self, ssh, *args):
        mock_ssh(ssh)

        vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
        resource_helper = mock.MagicMock()

        core_1 = {'bucket_1': 1, 'bucket_2': 2, 'bucket_3': 3, 'bucket_4': 4, 'bucket_5': 5,
                  'bucket_6': 6, 'bucket_7': 7, 'bucket_8': 8, 'bucket_9': 9, 'bucket_10': 10,
                  'bucket_11': 11, 'bucket_12': 12, 'bucket_0': 100, 'cpu': 1, 'max_irq': 12,
                  'overflow': 10}
        core_2 = {'bucket_1': 1, 'bucket_2': 2, 'bucket_3': 3, 'bucket_4': 4, 'bucket_5': 5,
                  'bucket_6': 0, 'bucket_7': 0, 'bucket_8': 0, 'bucket_9': 0, 'bucket_10': 0,
                  'bucket_11': 0, 'bucket_12': 0, 'bucket_0': 100, 'cpu': 2, 'max_irq': 12,
                  'overflow': 10}

        irq_data = {'core_1': core_1, 'core_2': core_2}
        resource_helper.sut.irq_core_stats.return_value = (irq_data)

        build_config_file = mock.MagicMock()
        build_config_file.return_value = None

        prox_irq_gen = ProxIrqGen(VNF_NAME, vnfd, 'task_id')

        startup = ["global", [["eal", "-4"]]]
        master_0 = ["core 0", [["mode", "master"]]]
        core_1 = ["core 1", [["mode", "irq"]]]
        core_2 = ["core 2", [["mode", "irq"], ["task", "2"]]]

        prox_irq_gen.setup_helper._prox_config_data = \
            [startup, master_0, core_1, core_2]

        prox_irq_gen.scenario_helper.scenario_cfg = self.SCENARIO_CFG
        prox_irq_gen.resource_helper = resource_helper
        prox_irq_gen.setup_helper.build_config_file = build_config_file

        result = prox_irq_gen.collect_kpi()
        self.assertDictEqual(result["collect_stats"], {})

        result = prox_irq_gen.collect_kpi()
        self.assertFalse('bucket_10' in result["collect_stats"]['core_2'])
        self.assertFalse('bucket_11' in result["collect_stats"]['core_2'])
        self.assertFalse('bucket_12' in result["collect_stats"]['core_2'])
        self.assertEqual(result["collect_stats"]['core_2']['max_irq'], 12)
Пример #4
0
 def test_terminate(self, ssh, *args):
     mock_ssh(ssh)
     vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
     prox_traffic_gen = ProxIrqGen(VNF_NAME, vnfd)
     prox_traffic_gen._terminated = mock.MagicMock()
     prox_traffic_gen._traffic_process = mock.MagicMock()
     prox_traffic_gen._traffic_process.terminate = mock.Mock()
     prox_traffic_gen.ssh_helper = mock.MagicMock()
     prox_traffic_gen.setup_helper = mock.MagicMock()
     prox_traffic_gen.resource_helper = mock.MagicMock()
     prox_traffic_gen._vnf_wrapper.setup_helper = mock.MagicMock()
     prox_traffic_gen._vnf_wrapper._vnf_process = mock.MagicMock()
     prox_traffic_gen._vnf_wrapper.resource_helper = mock.MagicMock()
     self.assertIsNone(prox_traffic_gen.terminate())
Пример #5
0
 def test_scale(self):
     prox_irq_gen = ProxIrqGen('tg1', self.VNFD_0)
     self.assertRaises(y_exceptions.FunctionNotImplemented,
                       prox_irq_gen.scale)
Пример #6
0
 def test__wait_for_process_not_alive(self):
     prox_irq_gen = ProxIrqGen('tg1', self.VNFD_0)
     with mock.patch.object(prox_irq_gen, '_tg_process') as mock_proc:
         mock_proc.is_alive.return_value = False
         self.assertRaises(RuntimeError, prox_irq_gen._wait_for_process)
         mock_proc.is_alive.assert_called_once()
Пример #7
0
    def test_verify_traffic(self):
        prox_irq_gen = ProxIrqGen('tg1', self.VNFD_0)

        prox_irq_gen.verify_traffic(mock.Mock())
Пример #8
0
    def test_listen_traffic(self):
        prox_irq_gen = ProxIrqGen('tg1', self.VNFD_0)

        prox_irq_gen.listen_traffic(mock.Mock())
Пример #9
0
    def test__check_status(self):
        prox_irq_gen = ProxIrqGen('tg1', self.VNFD_0)

        with self.assertRaises(NotImplementedError):
            prox_irq_gen._check_status()