Beispiel #1
0
 def test__get_config_element_by_flow_group_name(self):
     ixnet_gen = ixnet_api.IxNextgen()
     ixnet_gen._ixnet = self.ixnet
     ixnet_gen._ixnet.getList.side_effect = [['traffic_item'], ['fg_01']]
     ixnet_gen._ixnet.getAttribute.return_value = 'flow_group_01'
     output = ixnet_gen._get_config_element_by_flow_group_name(
         'flow_group_01')
     self.assertEqual('traffic_item/configElement:flow_group_01', output)
Beispiel #2
0
 def test_connect_invalid_config_no_version(self):
     ixnet_gen = ixnet_api.IxNextgen()
     ixnet_gen._ixnet = self.ixnet
     ixnet_gen.get_config = mock.Mock(return_value={
         'machine': 'machine_fake',
         'port': 'port_fake'
     })
     self.assertRaises(KeyError, ixnet_gen.connect, mock.ANY)
     self.ixnet.connect.assert_not_called()
 def setUp(self):
     self.ixnet = mock.Mock()
     self.ixnet.execute = mock.Mock()
     self.ixnet.getRoot.return_value = 'my_root'
     self.ixnet_gen = ixnet_api.IxNextgen()
     self.ixnet_gen._ixnet = self.ixnet
     self._mock_log = mock.patch.object(ixnet_api.log, 'info')
     self.mock_log = self._mock_log.start()
     self.addCleanup(self._stop_mocks)
Beispiel #4
0
    def test_create_traffic_model(self, mock__setup_config_elements,
                                  mock__create_flow_groups,
                                  mock__create_traffic_item):
        ixnet_gen = ixnet_api.IxNextgen()
        ixnet_gen._ixnet = self.ixnet

        ixnet_gen.create_traffic_model()
        mock__create_traffic_item.assert_called_once()
        mock__create_flow_groups.assert_called_once()
        mock__setup_config_elements.assert_called_once()
Beispiel #5
0
 def test__get_stack_item(self):
     ixnet_gen = ixnet_api.IxNextgen()
     ixnet_gen._ixnet = self.ixnet
     ixnet_gen._ixnet.getList.return_value = ['tcp1', 'tcp2', 'udp']
     with mock.patch.object(
             ixnet_gen, '_get_config_element_by_flow_group_name') as \
             mock_get_cfg_element:
         mock_get_cfg_element.return_value = 'cfg_element'
         output = ixnet_gen._get_stack_item(mock.ANY, ixnet_api.PROTO_TCP)
     self.assertEqual(['tcp1', 'tcp2'], output)
Beispiel #6
0
    def test_update_ip_packet(self):
        ixnet_gen = ixnet_api.IxNextgen()
        ixnet_gen._ixnet = self.ixnet
        with mock.patch.object(ixnet_gen, '_update_ipv4_address') as \
                mock_update_add, \
                mock.patch.object(ixnet_gen, '_get_stack_item'), \
                mock.patch.object(ixnet_gen,
                '_get_config_element_by_flow_group_name', return_value='celm'):
            ixnet_gen.update_ip_packet(TRAFFIC_PARAMETERS)

        self.assertEqual(4, len(mock_update_add.mock_calls))
Beispiel #7
0
 def test__parse_framesize(self):
     ixnet_gen = ixnet_api.IxNextgen()
     ixnet_gen._ixnet = self.ixnet
     framesize = {'64B': '75', '512b': '25'}
     output = ixnet_gen._parse_framesize(framesize)
     for idx in range(len(framesize)):
         if output[idx * 2] == 64:
             self.assertEqual(75, output[idx * 2 + 1])
         elif output[idx * 2] == 512:
             self.assertEqual(25, output[idx * 2 + 1])
         else:
             raise self.failureException('Framesize (64, 512) not present')
Beispiel #8
0
 def test_assign_ports_port_down(self, mock_log):
     self.ixnet.getAttribute.return_value = 'down'
     config = {
         'chassis': '1.1.1.1',
         'cards': ['1', '2'],
         'ports': ['3', '4']
     }
     ixnet_gen = ixnet_api.IxNextgen()
     ixnet_gen._ixnet = self.ixnet
     ixnet_gen._cfg = config
     ixnet_gen.assign_ports()
     mock_log.warning.assert_called()
Beispiel #9
0
 def test__update_ipv4_address(self):
     ixnet_gen = ixnet_api.IxNextgen()
     ixnet_gen._ixnet = self.ixnet
     with mock.patch.object(ixnet_gen,
                            '_get_field_in_stack_item',
                            return_value='field_desc'):
         ixnet_gen._update_ipv4_address(mock.ANY, mock.ANY, '192.168.1.1',
                                        100, '255.255.255.0', 25)
     ixnet_gen.ixnet.setMultiAttribute.assert_called_once_with(
         'field_desc', '-seed', 100, '-fixedBits', '192.168.1.1',
         '-randomMask', '255.255.255.0', '-valueType', 'random',
         '-countValue', 25)
Beispiel #10
0
    def test_get_statistics(self):
        ixnet_gen = ixnet_api.IxNextgen()
        port_statistics = '::ixNet::OBJ-/statistics/view:"Port Statistics"'
        flow_statistics = '::ixNet::OBJ-/statistics/view:"Flow Statistics"'
        with mock.patch.object(ixnet_gen, '_build_stats_map') as \
                mock_build_stats:
            ixnet_gen.get_statistics()

        mock_build_stats.assert_has_calls([
            mock.call(port_statistics, ixnet_gen.PORT_STATS_NAME_MAP),
            mock.call(flow_statistics, ixnet_gen.LATENCY_NAME_MAP)
        ])
Beispiel #11
0
 def test__update_frame_mac(self):
     ixnet_gen = ixnet_api.IxNextgen()
     ixnet_gen._ixnet = self.ixnet
     with mock.patch.object(ixnet_gen, '_get_field_in_stack_item') as \
             mock_get_field:
         mock_get_field.return_value = 'field_descriptor'
         ixnet_gen._update_frame_mac('ethernet_descriptor', 'field', 'mac')
     mock_get_field.assert_called_once_with('ethernet_descriptor', 'field')
     ixnet_gen.ixnet.setMultiAttribute('field_descriptor', '-singleValue',
                                       'mac', '-fieldValue', 'mac',
                                       '-valueType', 'singleValue')
     ixnet_gen.ixnet.commit.assert_called_once()
Beispiel #12
0
    def __init__(self, setup_helper, rfc_helper_type=None):
        super(IxiaResourceHelper, self).__init__(setup_helper)
        self.scenario_helper = setup_helper.scenario_helper

        self.client = ixnet_api.IxNextgen()

        if rfc_helper_type is None:
            rfc_helper_type = IxiaRfc2544Helper

        self.rfc_helper = rfc_helper_type(self.scenario_helper)
        self.uplink_ports = None
        self.downlink_ports = None
        self._connect()
Beispiel #13
0
    def test_start_traffic_wait_for_traffic_start(
            self, mock_ixnextgen_get_traffic_state):
        ixnet_gen = ixnet_api.IxNextgen()
        ixnet_gen._ixnet = self.ixnet
        ixnet_gen._ixnet.getList.return_value = [0]
        mock_ixnextgen_get_traffic_state.side_effect = [
            'stopped', 'stopped', 'stopped', 'started'
        ]

        result = ixnet_gen.start_traffic()
        self.assertIsNone(result)
        self.ixnet.getList.assert_called_once()
        self.assertEqual(3, ixnet_gen._ixnet.execute.call_count)
Beispiel #14
0
    def test__create_traffic_item(self):
        ixnet_gen = ixnet_api.IxNextgen()
        ixnet_gen._ixnet = self.ixnet
        self.ixnet.add.return_value = 'my_new_traffic_item'
        self.ixnet.remapIds.return_value = ['my_traffic_item_id']

        ixnet_gen._create_traffic_item()
        self.ixnet.add.assert_called_once_with('my_root/traffic',
                                               'trafficItem')
        self.ixnet.setMultiAttribute.assert_called_once_with(
            'my_new_traffic_item', '-name', 'RFC2544', '-trafficType', 'raw')
        self.assertEqual(2, self.ixnet.commit.call_count)
        self.ixnet.remapIds.assert_called_once_with('my_new_traffic_item')
        self.ixnet.setAttribute('my_traffic_item_id/tracking', '-trackBy',
                                'trafficGroupId0')
Beispiel #15
0
    def test_assign_ports_2_ports(self, *args):
        self.ixnet.getAttribute.side_effect = ['up', 'down']
        config = {
            'chassis': '1.1.1.1',
            'cards': ['1', '2'],
            'ports': ['2', '2']
        }
        ixnet_gen = ixnet_api.IxNextgen()
        ixnet_gen._ixnet = self.ixnet
        ixnet_gen._cfg = config

        self.assertIsNone(ixnet_gen.assign_ports())
        self.assertEqual(self.ixnet.execute.call_count, 2)
        self.assertEqual(self.ixnet.commit.call_count, 4)
        self.assertEqual(self.ixnet.getAttribute.call_count, 2)
Beispiel #16
0
    def test_connect(self, mock_ixnet):
        mock_ixnet.return_value = self.ixnet
        ixnet_gen = ixnet_api.IxNextgen()
        with mock.patch.object(ixnet_gen, 'get_config') as mock_config:
            mock_config.return_value = {
                'machine': 'machine_fake',
                'port': 'port_fake',
                'version': 12345
            }
            ixnet_gen.connect(mock.ANY)

        self.ixnet.connect.assert_called_once_with('machine_fake', '-port',
                                                   'port_fake', '-version',
                                                   '12345')
        mock_config.assert_called_once()
Beispiel #17
0
    def test_update_frame(self):
        ixnet_gen = ixnet_api.IxNextgen()
        ixnet_gen._ixnet = self.ixnet
        with mock.patch.object(
                ixnet_gen, '_get_config_element_by_flow_group_name',
                return_value='cfg_element'), \
                mock.patch.object(ixnet_gen, '_update_frame_mac') as \
                mock_update_frame, \
                mock.patch.object(ixnet_gen, '_get_stack_item') as \
                mock_get_stack_item:
            mock_get_stack_item.side_effect = [['item1'], ['item2'], ['item3'],
                                               ['item4']]
            ixnet_gen.update_frame(TRAFFIC_PARAMETERS)

        self.assertEqual(6, len(ixnet_gen.ixnet.setMultiAttribute.mock_calls))
        self.assertEqual(4, len(mock_update_frame.mock_calls))
Beispiel #18
0
 def test__create_flow_groups(self):
     ixnet_gen = ixnet_api.IxNextgen()
     ixnet_gen._ixnet = self.ixnet
     ixnet_gen.ixnet.getList.side_effect = [['traffic_item'], ['1', '2']]
     ixnet_gen.ixnet.add.side_effect = ['endp1', 'endp2']
     ixnet_gen._create_flow_groups()
     ixnet_gen.ixnet.add.assert_has_calls([
         mock.call('traffic_item', 'endpointSet'),
         mock.call('traffic_item', 'endpointSet')
     ])
     ixnet_gen.ixnet.setMultiAttribute.assert_has_calls([
         mock.call('endp1', '-name', '1', '-sources', ['1/protocols'],
                   '-destinations', ['2/protocols']),
         mock.call('endp2', '-name', '2', '-sources', ['2/protocols'],
                   '-destinations', ['1/protocols'])
     ])
Beispiel #19
0
 def test__setup_config_elements(self):
     ixnet_gen = ixnet_api.IxNextgen()
     ixnet_gen._ixnet = self.ixnet
     ixnet_gen.ixnet.getList.side_effect = [['traffic_item'],
                                            ['cfg_element']]
     with mock.patch.object(ixnet_gen, '_append_procotol_to_stack') as \
             mock_append_proto:
         ixnet_gen._setup_config_elements()
     mock_append_proto.assert_has_calls([
         mock.call(ixnet_api.PROTO_UDP, 'cfg_element/stack:"ethernet-1"'),
         mock.call(ixnet_api.PROTO_IPV4, 'cfg_element/stack:"ethernet-1"')
     ])
     ixnet_gen.ixnet.setAttribute.assert_has_calls([
         mock.call('cfg_element/frameRateDistribution', '-portDistribution',
                   'splitRateEvenly'),
         mock.call('cfg_element/frameRateDistribution',
                   '-streamDistribution', 'splitRateEvenly')
     ])
Beispiel #20
0
    def __init__(self, setup_helper, rfc_helper_type=None):
        super(IxiaResourceHelper, self).__init__(setup_helper)
        self.scenario_helper = setup_helper.scenario_helper

        self._ixia_scenarios = {
            "IxiaBasic": IxiaBasicScenario,
            "IxiaPppoeClient": IxiaPppoeClientScenario,
        }

        self.client = ixnet_api.IxNextgen()

        if rfc_helper_type is None:
            rfc_helper_type = IxiaRfc2544Helper

        self.rfc_helper = rfc_helper_type(self.scenario_helper)
        self.uplink_ports = None
        self.downlink_ports = None
        self.context_cfg = None
        self._ix_scenario = None
        self._connect()
Beispiel #21
0
 def setUp(self):
     self.ixnet = mock.Mock()
     self.ixnet.execute = mock.Mock()
     self.ixnet.getRoot.return_value = 'my_root'
     self.ixnet_gen = ixnet_api.IxNextgen()
     self.ixnet_gen._ixnet = self.ixnet
Beispiel #22
0
 def test_connect_no_config(self):
     ixnet_gen = ixnet_api.IxNextgen()
     ixnet_gen._ixnet = self.ixnet
     ixnet_gen.get_config = mock.Mock(return_value={})
     self.assertRaises(KeyError, ixnet_gen.connect, mock.ANY)
     self.ixnet.connect.assert_not_called()
Beispiel #23
0
 def test_clear_config(self):
     ixnet_gen = ixnet_api.IxNextgen()
     ixnet_gen._ixnet = self.ixnet
     ixnet_gen.clear_config()
     self.ixnet.execute.assert_called_once_with('newConfig')
Beispiel #24
0
 def test_assign_ports_no_config(self):
     ixnet_gen = ixnet_api.IxNextgen()
     ixnet_gen._ixnet = self.ixnet
     ixnet_gen._cfg = {}
     self.assertRaises(KeyError, ixnet_gen.assign_ports)
Beispiel #25
0
 def test__get_field_in_stack_item_no_field_present(self):
     ixnet_gen = ixnet_api.IxNextgen()
     ixnet_gen._ixnet = self.ixnet
     ixnet_gen._ixnet.getList.return_value = ['field1', 'field2']
     with self.assertRaises(exceptions.IxNetworkFieldNotPresentInStackItem):
         ixnet_gen._get_field_in_stack_item(mock.ANY, 'field3')
Beispiel #26
0
 def test__get_field_in_stack_item(self):
     ixnet_gen = ixnet_api.IxNextgen()
     ixnet_gen._ixnet = self.ixnet
     ixnet_gen._ixnet.getList.return_value = ['field1', 'field2']
     output = ixnet_gen._get_field_in_stack_item(mock.ANY, 'field2')
     self.assertEqual('field2', output)