Merge "Add common openstack opertation scenarios: volume & floating ip"
[yardstick.git] / tests / unit / network_services / helpers / test_samplevnf_helper.py
1 #!/usr/bin/env python
2
3 # Copyright (c) 2016-2017 Intel Corporation
4 #
5 # Licensed under the Apache License, Version 2.0 (the "License");
6 # you may not use this file except in compliance with the License.
7 # You may obtain a copy of the License at
8 #
9 #      http://www.apache.org/licenses/LICENSE-2.0
10 #
11 # Unless required by applicable law or agreed to in writing, software
12 # distributed under the License is distributed on an "AS IS" BASIS,
13 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 # See the License for the specific language governing permissions and
15 # limitations under the License.
16 #
17
18 from __future__ import absolute_import
19 from __future__ import division
20
21 import os
22 import unittest
23
24 import mock
25
26 from yardstick.network_services.helpers.samplevnf_helper import MultiPortConfig
27
28
29 class TestMultiPortConfig(unittest.TestCase):
30     VNFD = {'vnfd:vnfd-catalog':
31                 {'vnfd':
32                      [{'short-name': 'VpeVnf',
33                        'vdu':
34                            [{'routing_table':
35                                  [{'network': '152.16.100.20',
36                                    'netmask': '255.255.255.0',
37                                    'gateway': '152.16.100.20',
38                                    'if': 'xe0'},
39                                   {'network': '152.16.40.20',
40                                    'netmask': '255.255.255.0',
41                                    'gateway': '152.16.40.20',
42                                    'if': 'xe1'}],
43                              'description': 'VPE approximation using DPDK',
44                              'name': 'vpevnf-baremetal',
45                              'nd_route_tbl':
46                                  [{'network': '0064:ff9b:0:0:0:0:9810:6414',
47                                    'netmask': '112',
48                                    'gateway': '0064:ff9b:0:0:0:0:9810:6414',
49                                    'if': 'xe0'},
50                                   {'network': '0064:ff9b:0:0:0:0:9810:2814',
51                                    'netmask': '112',
52                                    'gateway': '0064:ff9b:0:0:0:0:9810:2814',
53                                    'if': 'xe1'}],
54                              'id': 'vpevnf-baremetal',
55                              'external-interface':
56                                  [
57                                      {'virtual-interface':
58                                          {
59                                              'dst_mac': '00:00:00:00:00:04',
60                                              'vpci': '0000:05:00.0',
61                                              'local_ip': '152.16.100.19',
62                                              'type': 'PCI-PASSTHROUGH',
63                                              'netmask': '255.255.255.0',
64                                              'dpdk_port_num': '0',
65                                              'bandwidth': '10 Gbps',
66                                              'driver': "i40e",
67                                              'dst_ip': '152.16.100.20',
68                                              'ifname': 'xe0',
69                                              'local_iface_name': 'eth0',
70                                              'local_mac': '00:00:00:00:00:02',
71                                              'vld_id': 'private_1',
72                                          },
73                                          'vnfd-connection-point-ref': 'xe0',
74                                          'name': 'xe0'},
75                                      {'virtual-interface':
76                                          {
77                                              'dst_mac': '00:00:00:00:00:03',
78                                              'vpci': '0000:05:00.1',
79                                              'local_ip': '152.16.40.19',
80                                              'type': 'PCI-PASSTHROUGH',
81                                              'driver': "i40e",
82                                              'netmask': '255.255.255.0',
83                                              'dpdk_port_num': '1',
84                                              'bandwidth': '10 Gbps',
85                                              'dst_ip': '152.16.40.20',
86                                              'ifname': 'xe1',
87                                              'local_iface_name': 'eth1',
88                                              'local_mac': '00:00:00:00:00:01',
89                                              'vld_id': 'public_1',
90                                          },
91                                          'vnfd-connection-point-ref': 'xe1',
92                                          'name': 'xe1'}
93                                  ]}],
94                        'description': 'Vpe approximation using DPDK',
95                        'mgmt-interface':
96                            {'vdu-id': 'vpevnf-baremetal',
97                             'host': '1.2.1.1',
98                             'password': 'r00t',
99                             'user': 'root',
100                             'ip': '1.2.1.1'},
101                        'benchmark':
102                            {'kpi': ['packets_in', 'packets_fwd', 'packets_dropped']},
103                        'connection-point': [{'type': 'VPORT', 'name': 'xe0'},
104                                             {'type': 'VPORT', 'name': 'xe1'}],
105                        'id': 'AclApproxVnf', 'name': 'VPEVnfSsh'}]}}
106
107     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
108     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
109     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
110     def test___init__(self, mock_open, mock_os, ConfigParser):
111         topology_file = mock.Mock()
112         config_tpl = mock.Mock()
113         tmp_file = mock.Mock()
114         opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file)
115         self.assertEqual(0, opnfv_vnf.swq)
116         mock_os.path = mock.MagicMock()
117         mock_os.path.isfile = mock.Mock(return_value=False)
118         opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file)
119         self.assertEqual(0, opnfv_vnf.swq)
120
121     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
122     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
123     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
124     def test_update_timer(self, mock_open, mock_os, ConfigParser):
125         topology_file = mock.Mock()
126         config_tpl = mock.Mock()
127         tmp_file = mock.Mock()
128         opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file)
129         opnfv_vnf.get_config_tpl_data = mock.MagicMock()
130         opnfv_vnf.socket = 0
131         opnfv_vnf.start_core = 0
132         opnfv_vnf.update_write_parser = mock.MagicMock()
133         self.assertEqual(None, opnfv_vnf.update_timer())
134
135     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
136     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
137     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
138     def test_generate_script(self, mock_open, mock_os, ConfigParser):
139         topology_file = mock.Mock()
140         config_tpl = mock.Mock()
141         tmp_file = mock.Mock()
142         opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file)
143         opnfv_vnf.get_config_tpl_data = mock.MagicMock()
144         opnfv_vnf.socket = 0
145         opnfv_vnf.start_core = 0
146         opnfv_vnf.update_write_parser = mock.MagicMock()
147         opnfv_vnf.generate_script_data = \
148             mock.Mock(return_value={'link_config': 0, 'arp_config': '',
149                                     'arp_config6': '', 'actions': '',
150                                     'rules': ''})
151         opnfv_vnf.port_pair_list = [[[0], [1]]]
152         self.assertIsNotNone(opnfv_vnf.generate_script(self.VNFD))
153         opnfv_vnf.lb_config = 'HW'
154         self.assertIsNotNone(opnfv_vnf.generate_script(self.VNFD))
155
156     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
157     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
158     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
159     def test_generate_script_data(self, mock_open, mock_os, ConfigParser):
160         topology_file = mock.Mock()
161         config_tpl = mock.Mock()
162         tmp_file = mock.Mock()
163         opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file)
164         opnfv_vnf.get_config_tpl_data = mock.MagicMock()
165         opnfv_vnf.socket = 0
166         opnfv_vnf.start_core = 0
167         opnfv_vnf.update_write_parser = mock.MagicMock()
168         opnfv_vnf.port_pair_list = [[[0], [1]]]
169         opnfv_vnf.vnf_type = 'ACL'
170         opnfv_vnf.generate_link_config = mock.Mock()
171         opnfv_vnf.generate_arp_config = mock.Mock()
172         opnfv_vnf.generate_arp_config6 = mock.Mock()
173         opnfv_vnf.generate_action_config = mock.Mock()
174         opnfv_vnf.generate_rule_config = mock.Mock()
175         self.assertIsNotNone(opnfv_vnf.generate_script_data())
176
177     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
178     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
179     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
180     def test_generate_rule_config(self, mock_open, mock_os, ConfigParser):
181         topology_file = mock.Mock()
182         config_tpl = mock.Mock()
183         tmp_file = mock.Mock()
184         opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file)
185         opnfv_vnf.get_config_tpl_data = mock.MagicMock()
186         opnfv_vnf.socket = 0
187         opnfv_vnf.start_core = 0
188         opnfv_vnf.update_write_parser = mock.MagicMock()
189         opnfv_vnf.generate_script_data = \
190             mock.Mock(return_value={'link_config': 0, 'arp_config': '',
191                                     'arp_config6': '', 'actions': '',
192                                     'rules': ''})
193         opnfv_vnf.port_pair_list = [[[0], [1]]]
194         opnfv_vnf.get_port_pairs = mock.Mock()
195         opnfv_vnf.vnf_type = 'ACL'
196         opnfv_vnf.get_ports_gateway = mock.Mock(return_value=u'1.1.1.1')
197         opnfv_vnf.get_netmask_gateway = mock.Mock(return_value=u'255.255.255.0')
198         opnfv_vnf.get_ports_gateway6 = mock.Mock(return_value=u'1.1.1.1')
199         opnfv_vnf.get_netmask_gateway6 = mock.Mock(return_value=u'255.255.255.0')
200         opnfv_vnf.txrx_pipeline = ''
201         opnfv_vnf.vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
202         opnfv_vnf.interfaces = opnfv_vnf.vnfd['vdu'][0]['external-interface']
203         opnfv_vnf.rules = ''
204         self.assertIsNotNone(opnfv_vnf.generate_rule_config())
205         opnfv_vnf.rules = 'new'
206         self.assertIsNotNone(opnfv_vnf.generate_rule_config())
207
208     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
209     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
210     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
211     def test_generate_action_config(self, mock_open, mock_os, ConfigParser):
212         topology_file = mock.Mock()
213         config_tpl = mock.Mock()
214         tmp_file = mock.Mock()
215         opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file)
216         opnfv_vnf.get_config_tpl_data = mock.MagicMock()
217         opnfv_vnf.socket = 0
218         opnfv_vnf.start_core = 0
219         opnfv_vnf.update_write_parser = mock.MagicMock()
220         opnfv_vnf.generate_script_data = \
221             mock.Mock(return_value={'link_config': 0, 'arp_config': '',
222                                     'arp_config6': '', 'actions': '',
223                                     'rules': ''})
224         opnfv_vnf.port_pair_list = [[[0], [1]]]
225         opnfv_vnf.get_port_pairs = mock.Mock()
226         opnfv_vnf.vnf_type = 'VFW'
227         opnfv_vnf.get_ports_gateway = mock.Mock(return_value=u'1.1.1.1')
228         opnfv_vnf.get_netmask_gateway = mock.Mock(return_value=u'255.255.255.0')
229         opnfv_vnf.get_ports_gateway6 = mock.Mock(return_value=u'1.1.1.1')
230         opnfv_vnf.get_netmask_gateway6 = mock.Mock(return_value=u'255.255.255.0')
231         opnfv_vnf.txrx_pipeline = ''
232         opnfv_vnf.rules = ''
233         self.assertIsNotNone(opnfv_vnf.generate_action_config())
234
235     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
236     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
237     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
238     def test_generate_arp_config6(self, mock_open, mock_os, ConfigParser):
239         topology_file = mock.Mock()
240         config_tpl = mock.Mock()
241         tmp_file = mock.Mock()
242         opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file)
243         opnfv_vnf.get_config_tpl_data = mock.MagicMock()
244         opnfv_vnf.socket = 0
245         opnfv_vnf.start_core = 0
246         opnfv_vnf.update_write_parser = mock.MagicMock()
247         opnfv_vnf.generate_script_data = \
248             mock.Mock(return_value={'link_config': 0, 'arp_config': '',
249                                     'arp_config6': '', 'actions': '',
250                                     'rules': ''})
251         opnfv_vnf.port_pair_list = [[[0], [1]]]
252         opnfv_vnf.get_port_pairs = mock.Mock()
253         opnfv_vnf.vnf_type = 'VFW'
254         opnfv_vnf.get_ports_gateway = mock.Mock(return_value=u'1.1.1.1')
255         opnfv_vnf.get_netmask_gateway = mock.Mock(return_value=u'255.255.255.0')
256         opnfv_vnf.get_ports_gateway6 = mock.Mock(return_value=u'1.1.1.1')
257         opnfv_vnf.get_netmask_gateway6 = mock.Mock(return_value=u'255.255.255.0')
258         opnfv_vnf.txrx_pipeline = ''
259         opnfv_vnf.rules = ''
260         opnfv_vnf.interfaces = mock.MagicMock()
261         opnfv_vnf.get_ports_gateway6 = mock.Mock()
262         self.assertIsNotNone(opnfv_vnf.generate_arp_config6())
263
264     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
265     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
266     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
267     def test_generate_arp_config(self, mock_open, mock_os, ConfigParser):
268         topology_file = mock.Mock()
269         config_tpl = mock.Mock()
270         tmp_file = mock.Mock()
271         opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file)
272         opnfv_vnf.get_config_tpl_data = mock.MagicMock()
273         opnfv_vnf.socket = 0
274         opnfv_vnf.start_core = 0
275         opnfv_vnf.update_write_parser = mock.MagicMock()
276         opnfv_vnf.generate_script_data = \
277             mock.Mock(return_value={'link_config': 0, 'arp_config': '',
278                                     'arp_config6': '', 'actions': '',
279                                     'rules': ''})
280         opnfv_vnf.port_pair_list = [[[0], [1]]]
281         opnfv_vnf.get_port_pairs = mock.Mock()
282         opnfv_vnf.vnf_type = 'VFW'
283         opnfv_vnf.get_ports_gateway = mock.Mock(return_value=u'1.1.1.1')
284         opnfv_vnf.get_netmask_gateway = mock.Mock(return_value=u'255.255.255.0')
285         opnfv_vnf.get_ports_gateway6 = mock.Mock(return_value=u'1.1.1.1')
286         opnfv_vnf.get_netmask_gateway6 = mock.Mock(return_value=u'255.255.255.0')
287         opnfv_vnf.txrx_pipeline = ''
288         opnfv_vnf.rules = ''
289         opnfv_vnf.interfaces = mock.MagicMock()
290         opnfv_vnf.get_ports_gateway6 = mock.Mock()
291         self.assertIsNotNone(opnfv_vnf.generate_arp_config())
292
293     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
294     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
295     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
296     def test_get_ports_gateway(self, mock_open, mock_os, ConfigParser):
297         topology_file = mock.Mock()
298         config_tpl = mock.Mock()
299         tmp_file = mock.Mock()
300         opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file)
301         opnfv_vnf.get_config_tpl_data = mock.MagicMock()
302         opnfv_vnf.socket = 0
303         opnfv_vnf.start_core = 0
304         opnfv_vnf.update_write_parser = mock.MagicMock()
305         opnfv_vnf.generate_script_data = \
306             mock.Mock(return_value={'link_config': 0, 'arp_config': '',
307                                     'arp_config6': '', 'actions': '',
308                                     'rules': ''})
309         opnfv_vnf.port_pair_list = [[[0], [1]]]
310         opnfv_vnf.get_port_pairs = mock.Mock()
311         opnfv_vnf.vnf_type = 'VFW'
312         opnfv_vnf.txrx_pipeline = ''
313         opnfv_vnf.rules = ''
314         opnfv_vnf.interfaces = mock.MagicMock()
315         opnfv_vnf.get_ports_gateway6 = mock.Mock()
316         opnfv_vnf.vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
317         self.assertIsNotNone(opnfv_vnf.get_ports_gateway('xe0'))
318
319     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
320     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
321     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
322     def test_get_ports_gateway6(self, mock_open, mock_os, ConfigParser):
323         topology_file = mock.Mock()
324         config_tpl = mock.Mock()
325         tmp_file = mock.Mock()
326         opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file)
327         opnfv_vnf.get_config_tpl_data = mock.MagicMock()
328         opnfv_vnf.socket = 0
329         opnfv_vnf.start_core = 0
330         opnfv_vnf.update_write_parser = mock.MagicMock()
331         opnfv_vnf.generate_script_data = \
332             mock.Mock(return_value={'link_config': 0, 'arp_config': '',
333                                     'arp_config6': '', 'actions': '',
334                                     'rules': ''})
335         opnfv_vnf.port_pair_list = [[[0], [1]]]
336         opnfv_vnf.get_port_pairs = mock.Mock()
337         opnfv_vnf.vnf_type = 'VFW'
338         opnfv_vnf.txrx_pipeline = ''
339         opnfv_vnf.rules = ''
340         opnfv_vnf.interfaces = mock.MagicMock()
341         opnfv_vnf.get_ports_gateway6 = mock.Mock()
342         opnfv_vnf.vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
343         self.assertIsNotNone(opnfv_vnf.get_ports_gateway6('xe0'))
344
345     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
346     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
347     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
348     def test_get_netmask_gateway(self, mock_open, mock_os, ConfigParser):
349         topology_file = mock.Mock()
350         config_tpl = mock.Mock()
351         tmp_file = mock.Mock()
352         opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file)
353         opnfv_vnf.get_config_tpl_data = mock.MagicMock()
354         opnfv_vnf.socket = 0
355         opnfv_vnf.start_core = 0
356         opnfv_vnf.update_write_parser = mock.MagicMock()
357         opnfv_vnf.generate_script_data = \
358             mock.Mock(return_value={'link_config': 0, 'arp_config': '',
359                                     'arp_config6': '', 'actions': '',
360                                     'rules': ''})
361         opnfv_vnf.port_pair_list = [[[0], [1]]]
362         opnfv_vnf.get_port_pairs = mock.Mock()
363         opnfv_vnf.vnf_type = 'VFW'
364         opnfv_vnf.txrx_pipeline = ''
365         opnfv_vnf.rules = ''
366         opnfv_vnf.interfaces = mock.MagicMock()
367         opnfv_vnf.get_ports_gateway6 = mock.Mock()
368         opnfv_vnf.vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
369         self.assertIsNotNone(opnfv_vnf.get_netmask_gateway('xe0'))
370
371     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
372     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
373     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
374     def test_get_netmask_gateway6(self, mock_open, mock_os, ConfigParser):
375         topology_file = mock.Mock()
376         config_tpl = mock.Mock()
377         tmp_file = mock.Mock()
378         opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file)
379         opnfv_vnf.get_config_tpl_data = mock.MagicMock()
380         opnfv_vnf.socket = 0
381         opnfv_vnf.start_core = 0
382         opnfv_vnf.update_write_parser = mock.MagicMock()
383         opnfv_vnf.generate_script_data = \
384             mock.Mock(return_value={'link_config': 0, 'arp_config': '',
385                                     'arp_config6': '', 'actions': '',
386                                     'rules': ''})
387         opnfv_vnf.port_pair_list = [[[0], [1]]]
388         opnfv_vnf.get_port_pairs = mock.Mock()
389         opnfv_vnf.vnf_type = 'VFW'
390         opnfv_vnf.txrx_pipeline = ''
391         opnfv_vnf.rules = ''
392         opnfv_vnf.interfaces = mock.MagicMock()
393         opnfv_vnf.get_ports_gateway6 = mock.Mock()
394         opnfv_vnf.vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
395         self.assertIsNotNone(opnfv_vnf.get_netmask_gateway6('xe0'))
396
397     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
398     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
399     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
400     def test_generate_link_config(self, mock_open, mock_os, ConfigParser):
401         topology_file = mock.Mock()
402         config_tpl = mock.Mock()
403         tmp_file = mock.Mock()
404         opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file)
405         opnfv_vnf.get_config_tpl_data = mock.MagicMock()
406         opnfv_vnf.socket = 0
407         opnfv_vnf.start_core = 0
408         opnfv_vnf.update_write_parser = mock.MagicMock()
409         opnfv_vnf.generate_script_data = \
410             mock.Mock(return_value={'link_config': 0, 'arp_config': '',
411                                     'arp_config6': '', 'actions': '',
412                                     'rules': ''})
413         opnfv_vnf.port_pair_list = [[[0], [1]]]
414         opnfv_vnf.get_port_pairs = mock.Mock()
415         opnfv_vnf.vnf_type = 'VFW'
416         opnfv_vnf.txrx_pipeline = ''
417         opnfv_vnf.rules = ''
418         opnfv_vnf.get_ports_gateway6 = mock.Mock()
419         opnfv_vnf.vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
420         opnfv_vnf.interfaces = opnfv_vnf.vnfd['vdu'][0]['external-interface']
421         self.assertIsNotNone(opnfv_vnf.generate_link_config())
422
423     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
424     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
425     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
426     def test_generate_config(self, mock_open, mock_os, ConfigParser):
427         topology_file = mock.Mock()
428         config_tpl = mock.Mock()
429         tmp_file = mock.Mock()
430         opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file)
431         opnfv_vnf.get_config_tpl_data = mock.MagicMock()
432         opnfv_vnf.socket = 0
433         opnfv_vnf.start_core = 0
434         opnfv_vnf.update_write_parser = mock.MagicMock()
435         opnfv_vnf.generate_script_data = \
436             mock.Mock(return_value={'link_config': 0, 'arp_config': '',
437                                     'arp_config6': '', 'actions': '',
438                                     'rules': ''})
439         opnfv_vnf.port_pair_list = [[[0], [1]]]
440         opnfv_vnf.txrx_pipeline = ''
441         opnfv_vnf.rules = ''
442         opnfv_vnf.get_ports_gateway6 = mock.Mock()
443         opnfv_vnf.vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
444         opnfv_vnf.interfaces = opnfv_vnf.vnfd['vdu'][0]['external-interface']
445         opnfv_vnf.generate_lb_to_port_pair_mapping = mock.Mock()
446         opnfv_vnf.generate_config_data = mock.Mock()
447         opnfv_vnf.write_parser = mock.MagicMock()
448         opnfv_vnf.is_openstack = True
449         self.assertIsNone(opnfv_vnf.generate_config())
450         opnfv_vnf.is_openstack = False
451         self.assertIsNone(opnfv_vnf.generate_config())
452
453     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
454     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
455     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
456     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.OrderedDict')
457     def test_get_config_tpl_data(self, mock_open, mock_os, ConfigParser,
458                                  OrderedDict):
459         topology_file = mock.Mock()
460         config_tpl = mock.Mock()
461         tmp_file = mock.Mock()
462         opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file)
463         opnfv_vnf.socket = 0
464         opnfv_vnf.start_core = 0
465         opnfv_vnf.port_pair_list = [[[0], [1]]]
466         opnfv_vnf.txrx_pipeline = ''
467         opnfv_vnf.rules = ''
468         opnfv_vnf.write_parser = mock.MagicMock()
469         opnfv_vnf.read_parser = mock.MagicMock()
470         opnfv_vnf.read_parser.sections = mock.Mock(return_value=['MASTER'])
471         opnfv_vnf.read_parser.has_option = mock.Mock(return_value=True)
472         opnfv_vnf.read_parser.get = mock.Mock(return_value='filename')
473
474         self.assertIsNotNone(opnfv_vnf.get_config_tpl_data('filename'))
475
476     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
477     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
478     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
479     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.OrderedDict')
480     def test_get_txrx_tpl_data(self, mock_open, mock_os, ConfigParser,
481                                OrderedDict):
482         topology_file = mock.Mock()
483         config_tpl = mock.Mock()
484         tmp_file = mock.Mock()
485         opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file)
486         opnfv_vnf.socket = 0
487         opnfv_vnf.start_core = 0
488         opnfv_vnf.port_pair_list = [[[0], [1]]]
489         opnfv_vnf.txrx_pipeline = ''
490         opnfv_vnf.rules = ''
491         opnfv_vnf.write_parser = mock.MagicMock()
492         opnfv_vnf.read_parser = mock.MagicMock()
493         opnfv_vnf.read_parser.sections = mock.Mock(return_value=['MASTER'])
494         opnfv_vnf.read_parser.has_option = mock.Mock(return_value=True)
495         opnfv_vnf.read_parser.get = mock.Mock(return_value='filename')
496
497         self.assertIsNotNone(opnfv_vnf.get_txrx_tpl_data('filename'))
498
499     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
500     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
501     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
502     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.OrderedDict')
503     def test_init_write_parser_template(self, mock_open, mock_os, ConfigParser,
504                                         OrderedDict):
505         topology_file = mock.Mock()
506         config_tpl = mock.Mock()
507         tmp_file = mock.Mock()
508         opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file)
509         opnfv_vnf.socket = 0
510         opnfv_vnf.start_core = 0
511         opnfv_vnf.port_pair_list = [[[0], [1]]]
512         opnfv_vnf.txrx_pipeline = ''
513         opnfv_vnf.rules = ''
514         opnfv_vnf.write_parser = mock.MagicMock()
515         opnfv_vnf.read_parser = mock.MagicMock()
516         opnfv_vnf.read_parser.sections = mock.Mock(return_value=['MASTER'])
517         opnfv_vnf.read_parser.has_option = mock.Mock(return_value=True)
518         opnfv_vnf.read_parser.get = mock.Mock(return_value='filename')
519
520         self.assertIsNone(opnfv_vnf.init_write_parser_template('filename'))
521         opnfv_vnf.write_parser.add_section = mock.MagicMock()
522         opnfv_vnf.read_parser.item = mock.Mock(return_value=[1, 2, 3])
523         opnfv_vnf.read_parser.has_option = mock.Mock(return_value=False)
524         opnfv_vnf.write_parser.set = mock.Mock()
525         self.assertIsNone(opnfv_vnf.init_write_parser_template('filename'))
526
527     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
528     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
529     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
530     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.OrderedDict')
531     def test_init_write_parser_template_2(self, mock_open, mock_os, ConfigParser,
532                                           OrderedDict):
533         topology_file = mock.Mock()
534         config_tpl = mock.Mock()
535         tmp_file = mock.Mock()
536         opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file)
537         opnfv_vnf.socket = 0
538         opnfv_vnf.start_core = 0
539         opnfv_vnf.port_pair_list = [[[0], [1]]]
540         opnfv_vnf.txrx_pipeline = ''
541         opnfv_vnf.rules = ''
542         opnfv_vnf.write_parser = mock.MagicMock()
543         opnfv_vnf.read_parser = mock.MagicMock()
544         opnfv_vnf.read_parser.sections = mock.Mock(return_value=['MASTER'])
545         opnfv_vnf.read_parser.has_option = mock.Mock(return_value=[])
546         opnfv_vnf.write_parser.set = mock.Mock()
547         opnfv_vnf.read_parser.items = mock.MagicMock()
548         self.assertIsNone(opnfv_vnf.init_write_parser_template('filename'))
549
550     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
551     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
552     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
553     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.OrderedDict')
554     def test_update_write_parser(self, mock_open, mock_os, ConfigParser,
555                                  OrderedDict):
556         topology_file = mock.Mock()
557         config_tpl = mock.Mock()
558         tmp_file = mock.Mock()
559         opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file)
560         opnfv_vnf.socket = 0
561         opnfv_vnf.start_core = 0
562         opnfv_vnf.port_pair_list = [[[0], [1]]]
563         opnfv_vnf.txrx_pipeline = ''
564         opnfv_vnf.rules = ''
565         opnfv_vnf.write_parser = mock.MagicMock()
566         opnfv_vnf.read_parser = mock.MagicMock()
567         opnfv_vnf.read_parser.sections = mock.Mock(return_value=['MASTER'])
568         opnfv_vnf.read_parser.has_option = mock.Mock(return_value=[])
569         opnfv_vnf.write_parser.set = mock.Mock()
570         opnfv_vnf.write_parser.add_section = mock.Mock()
571         opnfv_vnf.read_parser.items = mock.MagicMock()
572         opnfv_vnf.pipeline_counter = 0
573         self.assertIsNone(opnfv_vnf.update_write_parser({'filename': 1}))
574
575     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
576     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
577     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
578     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.OrderedDict')
579     def test_get_worker_threads(self, mock_open, mock_os, ConfigParser,
580                                 OrderedDict):
581         topology_file = mock.Mock()
582         config_tpl = mock.Mock()
583         tmp_file = mock.Mock()
584         opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file)
585         opnfv_vnf.socket = 0
586         opnfv_vnf.start_core = 0
587         opnfv_vnf.port_pair_list = [[[0], [1]]]
588         opnfv_vnf.txrx_pipeline = ''
589         opnfv_vnf.rules = ''
590         opnfv_vnf.write_parser = mock.MagicMock()
591         opnfv_vnf.read_parser = mock.MagicMock()
592         opnfv_vnf.read_parser.sections = mock.Mock(return_value=['MASTER'])
593         opnfv_vnf.read_parser.has_option = mock.Mock(return_value=[])
594         opnfv_vnf.write_parser.set = mock.Mock()
595         opnfv_vnf.write_parser.add_section = mock.Mock()
596         opnfv_vnf.read_parser.items = mock.MagicMock()
597         opnfv_vnf.pipeline_counter = 0
598         opnfv_vnf.worker_config = '1t'
599         result = opnfv_vnf.get_worker_threads(1)
600         self.assertEqual(1, result)
601         opnfv_vnf.worker_config = '2t'
602         result = opnfv_vnf.get_worker_threads(2)
603         self.assertEqual(2, result)
604         opnfv_vnf.worker_config = '2t'
605         result = opnfv_vnf.get_worker_threads(3)
606         self.assertEqual(2, result)
607
608     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
609     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
610     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
611     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.OrderedDict')
612     def test_generate_next_core_id(self, mock_open, mock_os, ConfigParser,
613                                    OrderedDict):
614         topology_file = mock.Mock()
615         config_tpl = mock.Mock()
616         tmp_file = mock.Mock()
617         opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file)
618         opnfv_vnf.socket = 0
619         opnfv_vnf.start_core = 0
620         opnfv_vnf.port_pair_list = [[[0], [1]]]
621         opnfv_vnf.txrx_pipeline = ''
622         opnfv_vnf.rules = ''
623         opnfv_vnf.write_parser = mock.MagicMock()
624         opnfv_vnf.read_parser = mock.MagicMock()
625         opnfv_vnf.read_parser.sections = mock.Mock(return_value=['MASTER'])
626         opnfv_vnf.read_parser.has_option = mock.Mock(return_value=[])
627         opnfv_vnf.write_parser.set = mock.Mock()
628         opnfv_vnf.write_parser.add_section = mock.Mock()
629         opnfv_vnf.read_parser.items = mock.MagicMock()
630         opnfv_vnf.pipeline_counter = 0
631         opnfv_vnf.worker_config = '1t'
632         opnfv_vnf.start_core = 0
633         result = opnfv_vnf.generate_next_core_id()
634         self.assertEqual(None, result)
635         opnfv_vnf.worker_config = '2t'
636         opnfv_vnf.start_core = 'a'
637         self.assertRaises(ValueError, opnfv_vnf.generate_next_core_id)
638         opnfv_vnf.worker_config = '2t'
639         opnfv_vnf.start_core = 1
640         result = opnfv_vnf.generate_next_core_id()
641         self.assertEqual(None, result)
642
643     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
644     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
645     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
646     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.OrderedDict')
647     def test_generate_lb_to_port_pair_mapping(self, mock_open, mock_os, ConfigParser,
648                                               OrderedDict):
649         topology_file = mock.Mock()
650         config_tpl = mock.Mock()
651         tmp_file = mock.Mock()
652         opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file)
653         opnfv_vnf.socket = 0
654         opnfv_vnf.start_core = 0
655         opnfv_vnf.port_pair_list = [[[0], [1]]]
656         opnfv_vnf.txrx_pipeline = ''
657         opnfv_vnf.rules = ''
658         opnfv_vnf.write_parser = mock.MagicMock()
659         opnfv_vnf.read_parser = mock.MagicMock()
660         opnfv_vnf.read_parser.sections = mock.Mock(return_value=['MASTER'])
661         opnfv_vnf.read_parser.has_option = mock.Mock(return_value=[])
662         opnfv_vnf.write_parser.set = mock.Mock()
663         opnfv_vnf.write_parser.add_section = mock.Mock()
664         opnfv_vnf.read_parser.items = mock.MagicMock()
665         opnfv_vnf.pipeline_counter = 0
666         opnfv_vnf.worker_config = '1t'
667         opnfv_vnf.start_core = 0
668         opnfv_vnf.lb_count = 1
669         result = opnfv_vnf.generate_lb_to_port_pair_mapping()
670         self.assertEqual(None, result)
671         result = opnfv_vnf.set_priv_to_pub_mapping()
672         self.assertEqual('(0, 1)', result)
673
674     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
675     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
676     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
677     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.OrderedDict')
678     def test_set_priv_que_handler(self, mock_open, mock_os, ConfigParser,
679                                   OrderedDict):
680         topology_file = mock.Mock()
681         config_tpl = mock.Mock()
682         tmp_file = mock.Mock()
683         opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file)
684         opnfv_vnf.socket = 0
685         opnfv_vnf.start_core = 0
686         opnfv_vnf.port_pair_list = [[[0], [1]]]
687         opnfv_vnf.port_pairs = [[[0], [1]]]
688         opnfv_vnf.txrx_pipeline = ''
689         opnfv_vnf.rules = ''
690         opnfv_vnf.write_parser = mock.MagicMock()
691         opnfv_vnf.read_parser = mock.MagicMock()
692         opnfv_vnf.read_parser.sections = mock.Mock(return_value=['MASTER'])
693         opnfv_vnf.read_parser.has_option = mock.Mock(return_value=[])
694         opnfv_vnf.write_parser.set = mock.Mock()
695         opnfv_vnf.write_parser.add_section = mock.Mock()
696         opnfv_vnf.read_parser.items = mock.MagicMock()
697         opnfv_vnf.pipeline_counter = 0
698         opnfv_vnf.worker_config = '1t'
699         opnfv_vnf.start_core = 0
700         opnfv_vnf.lb_count = 1
701         result = opnfv_vnf.set_priv_que_handler()
702         self.assertEqual(None, result)
703
704     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
705     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
706     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
707     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.OrderedDict')
708     def test_generate_arpicmp_data(self, mock_open, mock_os, ConfigParser,
709                                    OrderedDict):
710         topology_file = mock.Mock()
711         config_tpl = mock.Mock()
712         tmp_file = mock.Mock()
713         opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file)
714         opnfv_vnf.socket = 0
715         opnfv_vnf.start_core = 0
716         opnfv_vnf.port_pair_list = [[[0], [1]]]
717         opnfv_vnf.port_pairs = [[[0], [1]]]
718         opnfv_vnf.txrx_pipeline = ''
719         opnfv_vnf.rules = ''
720         opnfv_vnf.write_parser = mock.MagicMock()
721         opnfv_vnf.read_parser = mock.MagicMock()
722         opnfv_vnf.read_parser.sections = mock.Mock(return_value=['MASTER'])
723         opnfv_vnf.read_parser.has_option = mock.Mock(return_value=[])
724         opnfv_vnf.write_parser.set = mock.Mock()
725         opnfv_vnf.write_parser.add_section = mock.Mock()
726         opnfv_vnf.read_parser.items = mock.MagicMock()
727         opnfv_vnf.pipeline_counter = 0
728         opnfv_vnf.worker_config = '1t'
729         opnfv_vnf.start_core = 0
730         opnfv_vnf.lb_count = 1
731         opnfv_vnf.vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
732         opnfv_vnf.interfaces = opnfv_vnf.vnfd['vdu'][0]['external-interface']
733         result = opnfv_vnf.generate_arpicmp_data()
734         self.assertIsNotNone(result)
735         opnfv_vnf.nfv_type = 'ovs'
736         opnfv_vnf.lb_to_port_pair_mapping = [0, 1]
737         result = opnfv_vnf.generate_arpicmp_data()
738         self.assertIsNotNone(result)
739         opnfv_vnf.nfv_type = 'openstack'
740         opnfv_vnf.lb_to_port_pair_mapping = [0, 1]
741         result = opnfv_vnf.generate_arpicmp_data()
742         self.assertIsNotNone(result)
743         opnfv_vnf.lb_config = 'HW'
744         opnfv_vnf.lb_to_port_pair_mapping = [0, 1]
745         result = opnfv_vnf.generate_arpicmp_data()
746         self.assertIsNotNone(result)
747
748     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
749     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
750     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
751     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.OrderedDict')
752     def test_generate_final_txrx_data(self, mock_open, mock_os, ConfigParser,
753                                       OrderedDict):
754         topology_file = mock.Mock()
755         config_tpl = mock.Mock()
756         tmp_file = mock.Mock()
757         opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file)
758         opnfv_vnf.socket = 0
759         opnfv_vnf.start_core = 0
760         opnfv_vnf.port_pair_list = [[[0], [1]]]
761         opnfv_vnf.port_pairs = [[[0], [1]]]
762         opnfv_vnf.txrx_pipeline = ''
763         opnfv_vnf.rules = ''
764         opnfv_vnf.write_parser = mock.MagicMock()
765         opnfv_vnf.read_parser = mock.MagicMock()
766         opnfv_vnf.read_parser.sections = mock.Mock(return_value=['MASTER'])
767         opnfv_vnf.read_parser.has_option = mock.Mock(return_value=[])
768         opnfv_vnf.write_parser.set = mock.Mock()
769         opnfv_vnf.write_parser.add_section = mock.Mock()
770         opnfv_vnf.read_parser.items = mock.MagicMock()
771         opnfv_vnf.pipeline_counter = 0
772         opnfv_vnf.worker_config = '1t'
773         opnfv_vnf.start_core = 0
774         opnfv_vnf.lb_count = 1
775         opnfv_vnf.vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
776         opnfv_vnf.interfaces = opnfv_vnf.vnfd['vdu'][0]['external-interface']
777         opnfv_vnf.lb_to_port_pair_mapping = [0, 1]
778         opnfv_vnf.ports_len = 2
779         opnfv_vnf.lb_index = 1
780         opnfv_vnf.pktq_out_os = [1, 2]
781         result = opnfv_vnf.generate_final_txrx_data()
782         self.assertIsNotNone(result)
783         opnfv_vnf.nfv_type = 'openstack'
784         opnfv_vnf.pktq_out_os = [1, 2]
785         opnfv_vnf.lb_index = 1
786         result = opnfv_vnf.generate_final_txrx_data()
787         self.assertIsNotNone(result)
788
789     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
790     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
791     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
792     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.OrderedDict')
793     def test_generate_initial_txrx_data(self, mock_open, mock_os,
794                                         ConfigParser, OrderedDict):
795         topology_file = mock.Mock()
796         config_tpl = mock.Mock()
797         tmp_file = mock.Mock()
798         opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file)
799         opnfv_vnf.socket = 0
800         opnfv_vnf.start_core = 0
801         opnfv_vnf.port_pair_list = [[[0], [1]]]
802         opnfv_vnf.port_pairs = [[[0], [1]]]
803         opnfv_vnf.txrx_pipeline = ''
804         opnfv_vnf.rules = ''
805         opnfv_vnf.write_parser = mock.MagicMock()
806         opnfv_vnf.read_parser = mock.MagicMock()
807         opnfv_vnf.read_parser.sections = mock.Mock(return_value=['MASTER'])
808         opnfv_vnf.read_parser.has_option = mock.Mock(return_value=[])
809         opnfv_vnf.write_parser.set = mock.Mock()
810         opnfv_vnf.write_parser.add_section = mock.Mock()
811         opnfv_vnf.read_parser.items = mock.MagicMock()
812         opnfv_vnf.pipeline_counter = 0
813         opnfv_vnf.worker_config = '1t'
814         opnfv_vnf.start_core = 0
815         opnfv_vnf.lb_count = 1
816         opnfv_vnf.vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
817         opnfv_vnf.interfaces = opnfv_vnf.vnfd['vdu'][0]['external-interface']
818         opnfv_vnf.lb_to_port_pair_mapping = [0, 1]
819         opnfv_vnf.lb_index = 1
820         opnfv_vnf.ports_len = 2
821         result = opnfv_vnf.generate_initial_txrx_data()
822         self.assertIsNotNone(result)
823         opnfv_vnf.nfv_type = 'openstack'
824         opnfv_vnf.pktq_out_os = [1, 2]
825         result = opnfv_vnf.generate_initial_txrx_data()
826         self.assertIsNotNone(result)
827         opnfv_vnf.nfv_type = 'ovs'
828         opnfv_vnf.init_ovs = False
829         opnfv_vnf.ovs_pktq_out = ''
830         opnfv_vnf.pktq_out_os = [1, 2]
831         opnfv_vnf.lb_index = 1
832         result = opnfv_vnf.generate_initial_txrx_data()
833         self.assertIsNotNone(result)
834         opnfv_vnf.nfv_type = 'ovs'
835         opnfv_vnf.init_ovs = True
836         opnfv_vnf.pktq_out_os = [1, 2]
837         opnfv_vnf.ovs_pktq_out = ''
838         opnfv_vnf.lb_index = 1
839         result = opnfv_vnf.generate_initial_txrx_data()
840         self.assertIsNotNone(result)
841
842     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
843     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
844     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
845     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.OrderedDict')
846     def test_generate_lb_data(self, mock_open, mock_os, ConfigParser,
847                               OrderedDict):
848         topology_file = mock.Mock()
849         config_tpl = mock.Mock()
850         tmp_file = mock.Mock()
851         opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file)
852         opnfv_vnf.socket = 0
853         opnfv_vnf.start_core = 0
854         opnfv_vnf.port_pair_list = [[[0], [1]]]
855         opnfv_vnf.port_pairs = [[[0], [1]]]
856         opnfv_vnf.txrx_pipeline = ''
857         opnfv_vnf.rules = ''
858         opnfv_vnf.write_parser = mock.MagicMock()
859         opnfv_vnf.read_parser = mock.MagicMock()
860         opnfv_vnf.read_parser.sections = mock.Mock(return_value=['MASTER'])
861         opnfv_vnf.read_parser.has_option = mock.Mock(return_value=[])
862         opnfv_vnf.write_parser.set = mock.Mock()
863         opnfv_vnf.write_parser.add_section = mock.Mock()
864         opnfv_vnf.read_parser.items = mock.MagicMock()
865         opnfv_vnf.pipeline_counter = 0
866         opnfv_vnf.worker_config = '1t'
867         opnfv_vnf.start_core = 0
868         opnfv_vnf.lb_count = 1
869         opnfv_vnf.vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
870         opnfv_vnf.interfaces = opnfv_vnf.vnfd['vdu'][0]['external-interface']
871         opnfv_vnf.lb_to_port_pair_mapping = [0, 1]
872         opnfv_vnf.lb_index = 1
873         opnfv_vnf.ports_len = 2
874         opnfv_vnf.prv_que_handler = 0
875         result = opnfv_vnf.generate_lb_data()
876         self.assertIsNotNone(result)
877
878     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
879     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
880     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
881     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.OrderedDict')
882     def test_generate_vnf_data(self, mock_open, mock_os, ConfigParser,
883                                OrderedDict):
884         topology_file = mock.Mock()
885         config_tpl = mock.Mock()
886         tmp_file = mock.Mock()
887         opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file)
888         opnfv_vnf.socket = 0
889         opnfv_vnf.start_core = 0
890         opnfv_vnf.port_pair_list = [[[0], [1]]]
891         opnfv_vnf.port_pairs = [[[0], [1]]]
892         opnfv_vnf.txrx_pipeline = ''
893         opnfv_vnf.rules = ''
894         opnfv_vnf.write_parser = mock.MagicMock()
895         opnfv_vnf.read_parser = mock.MagicMock()
896         opnfv_vnf.read_parser.sections = mock.Mock(return_value=['MASTER'])
897         opnfv_vnf.read_parser.has_option = mock.Mock(return_value=[])
898         opnfv_vnf.write_parser.set = mock.Mock()
899         opnfv_vnf.write_parser.add_section = mock.Mock()
900         opnfv_vnf.read_parser.items = mock.MagicMock()
901         opnfv_vnf.pipeline_counter = 0
902         opnfv_vnf.worker_config = '1t'
903         opnfv_vnf.start_core = 0
904         opnfv_vnf.lb_count = 1
905         opnfv_vnf.vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
906         opnfv_vnf.interfaces = opnfv_vnf.vnfd['vdu'][0]['external-interface']
907         opnfv_vnf.lb_to_port_pair_mapping = [0, 1]
908         opnfv_vnf.lb_index = 1
909         opnfv_vnf.ports_len = 1
910         opnfv_vnf.pktq_out = ['1', '2']
911         opnfv_vnf.vnf_tpl = {'public_ip_port_range': '98164810',
912                              'vnf_set': '(2,4,5)'}
913         opnfv_vnf.prv_que_handler = 0
914         result = opnfv_vnf.generate_vnf_data()
915         self.assertIsNotNone(result)
916         opnfv_vnf.lb_config = 'HW'
917         opnfv_vnf.mul = 0.1
918         result = opnfv_vnf.generate_vnf_data()
919         self.assertIsNotNone(result)
920         opnfv_vnf.lb_config = 'HW'
921         opnfv_vnf.mul = 0.1
922         opnfv_vnf.vnf_type = 'ACL'
923         result = opnfv_vnf.generate_vnf_data()
924         self.assertIsNotNone(result)
925
926     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
927     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
928     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
929     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.OrderedDict')
930     def test_generate_config_data(self, mock_open, mock_os, ConfigParser,
931                                   OrderedDict):
932         topology_file = mock.Mock()
933         config_tpl = mock.Mock()
934         tmp_file = mock.Mock()
935         opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file)
936         opnfv_vnf.socket = 0
937         opnfv_vnf.start_core = 0
938         opnfv_vnf.port_pair_list = [[[0], [1]]]
939         opnfv_vnf.port_pairs = [[[0], [1]]]
940         opnfv_vnf.txrx_pipeline = ''
941         opnfv_vnf.rules = ''
942         opnfv_vnf.write_parser = mock.MagicMock()
943         opnfv_vnf.read_parser = mock.MagicMock()
944         opnfv_vnf.read_parser.sections = mock.Mock(return_value=['MASTER'])
945         opnfv_vnf.read_parser.has_option = mock.Mock(return_value=[])
946         opnfv_vnf.write_parser.set = mock.Mock()
947         opnfv_vnf.write_parser.add_section = mock.Mock()
948         opnfv_vnf.read_parser.items = mock.MagicMock()
949         opnfv_vnf.pipeline_counter = 0
950         opnfv_vnf.worker_config = '1t'
951         opnfv_vnf.start_core = 0
952         opnfv_vnf.lb_count = 1
953         opnfv_vnf.vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
954         opnfv_vnf.interfaces = opnfv_vnf.vnfd['vdu'][0]['external-interface']
955         opnfv_vnf.lb_to_port_pair_mapping = [0, 1]
956         opnfv_vnf.lb_index = 1
957         opnfv_vnf.ports_len = 1
958         opnfv_vnf.pktq_out = ['1', '2']
959         opnfv_vnf.prv_que_handler = 0
960         opnfv_vnf.init_write_parser_template = mock.Mock()
961         opnfv_vnf.arpicmp_tpl = mock.MagicMock()
962         opnfv_vnf.txrx_tpl = mock.MagicMock()
963         opnfv_vnf.loadb_tpl = mock.MagicMock()
964         opnfv_vnf.vnf_tpl = {'public_ip_port_range': '98164810 (1,65535)',
965                              'vnf_set': "(2,4,5)"}
966         opnfv_vnf.generate_vnf_data = mock.Mock(return_value={})
967         opnfv_vnf.update_write_parser = mock.Mock()
968         result = opnfv_vnf.generate_config_data()
969         self.assertIsNone(result)
970         opnfv_vnf.generate_final_txrx_data = mock.Mock()
971         opnfv_vnf.update_write_parser = mock.Mock()
972         result = opnfv_vnf.generate_config_data()
973         self.assertIsNone(result)
974         opnfv_vnf.lb_to_port_pair_mapping = [0, 1]
975         opnfv_vnf.lb_index = 1
976         opnfv_vnf.ports_len = 1
977         opnfv_vnf.pktq_out = ['1', '2']
978         opnfv_vnf.prv_que_handler = 0
979         opnfv_vnf.init_write_parser_template = mock.Mock()
980         opnfv_vnf.arpicmp_tpl = mock.MagicMock()
981         opnfv_vnf.txrx_tpl = mock.MagicMock()
982         opnfv_vnf.loadb_tpl = mock.MagicMock()
983         opnfv_vnf.vnf_type = 'CGNAPT'
984         opnfv_vnf.update_timer = mock.Mock()
985         opnfv_vnf.port_pair_list = [[[0], [1], [2]]]
986         opnfv_vnf.lb_to_port_pair_mapping = [0, 1]
987         opnfv_vnf.generate_arpicmp_data = mock.Mock()
988         result = opnfv_vnf.generate_config_data()
989         self.assertIsNone(result)
990
991     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
992     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
993     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
994     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.OrderedDict')
995     def test_get_port_pairs(self, mock_open, mock_os, ConfigParser,
996                             OrderedDict):
997         topology_file = mock.Mock()
998         config_tpl = mock.Mock()
999         tmp_file = mock.Mock()
1000         opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file)
1001         opnfv_vnf.socket = 0
1002         opnfv_vnf.start_core = 0
1003         opnfv_vnf.port_pair_list = [[[0], [1]]]
1004         opnfv_vnf.port_pairs = [[[0], [1]]]
1005         opnfv_vnf.txrx_pipeline = ''
1006         opnfv_vnf.rules = ''
1007         opnfv_vnf.write_parser = mock.MagicMock()
1008         opnfv_vnf.read_parser = mock.MagicMock()
1009         opnfv_vnf.read_parser.sections = mock.Mock(return_value=['MASTER'])
1010         opnfv_vnf.read_parser.has_option = mock.Mock(return_value=[])
1011         opnfv_vnf.write_parser.set = mock.Mock()
1012         opnfv_vnf.write_parser.add_section = mock.Mock()
1013         opnfv_vnf.read_parser.items = mock.MagicMock()
1014         opnfv_vnf.pipeline_counter = 0
1015         opnfv_vnf.worker_config = '1t'
1016         opnfv_vnf.start_core = 0
1017         opnfv_vnf.lb_count = 1
1018         opnfv_vnf.vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
1019         opnfv_vnf.interfaces = opnfv_vnf.vnfd['vdu'][0]['external-interface']
1020         opnfv_vnf.lb_to_port_pair_mapping = [0, 1]
1021         opnfv_vnf.lb_index = 1
1022         opnfv_vnf.ports_len = 1
1023         opnfv_vnf.pktq_out = ['1', '2']
1024         opnfv_vnf.prv_que_handler = 0
1025         opnfv_vnf.init_write_parser_template = mock.Mock()
1026         opnfv_vnf.arpicmp_tpl = mock.MagicMock()
1027         opnfv_vnf.txrx_tpl = mock.MagicMock()
1028         opnfv_vnf.loadb_tpl = mock.MagicMock()
1029         opnfv_vnf.vnf_tpl = {'public_ip_port_range': '98164810 (1,65535)',
1030                              'vnf_set': '(2,4,5)'}
1031         opnfv_vnf.generate_vnf_data = mock.Mock(return_value={})
1032         opnfv_vnf.update_write_parser = mock.Mock()
1033
1034         curr_path = os.path.dirname(os.path.abspath(__file__))
1035         opnfv_vnf.topology_file = \
1036             os.path.join(curr_path, 'acl_vnf_topology_ixia.yaml')
1037         opnfv_vnf.lb_count = 10
1038         result = opnfv_vnf.get_port_pairs(opnfv_vnf.interfaces)
1039         self.assertEqual(result[0], [('xe0', 'xe1')])
1040
1041     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
1042     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
1043     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
1044     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.OrderedDict')
1045     def test_init_eal(self, mock_open, mock_os, ConfigParser,
1046                       OrderedDict):
1047         topology_file = mock.Mock()
1048         config_tpl = mock.Mock()
1049         tmp_file = mock.Mock()
1050         opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file)
1051         opnfv_vnf.socket = 0
1052         opnfv_vnf.start_core = 0
1053         opnfv_vnf.port_pair_list = [[[0], [1]]]
1054         opnfv_vnf.port_pairs = [[[0], [1]]]
1055         opnfv_vnf.txrx_pipeline = ''
1056         opnfv_vnf.rules = ''
1057         opnfv_vnf.write_parser = mock.MagicMock()
1058         opnfv_vnf.read_parser = mock.MagicMock()
1059         opnfv_vnf.read_parser.sections = mock.Mock(return_value=['MASTER'])
1060         opnfv_vnf.read_parser.has_option = mock.Mock(return_value=[])
1061         opnfv_vnf.write_parser.set = mock.Mock()
1062         opnfv_vnf.write_parser.add_section = mock.Mock()
1063         opnfv_vnf.read_parser.items = mock.MagicMock()
1064         opnfv_vnf.pipeline_counter = 0
1065         opnfv_vnf.worker_config = '1t'
1066         opnfv_vnf.start_core = 0
1067         opnfv_vnf.lb_count = 1
1068         opnfv_vnf.vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
1069         opnfv_vnf.interfaces = opnfv_vnf.vnfd['vdu'][0]['external-interface']
1070         opnfv_vnf.lb_to_port_pair_mapping = [0, 1]
1071         opnfv_vnf.lb_index = 1
1072         opnfv_vnf.ports_len = 1
1073         opnfv_vnf.pktq_out = ['1', '2']
1074         opnfv_vnf.prv_que_handler = 0
1075         opnfv_vnf.init_write_parser_template = mock.Mock()
1076         opnfv_vnf.arpicmp_tpl = mock.MagicMock()
1077         opnfv_vnf.txrx_tpl = mock.MagicMock()
1078         opnfv_vnf.loadb_tpl = mock.MagicMock()
1079         opnfv_vnf.vnf_tpl = {'public_ip_port_range': '98164810 (1,65535)'}
1080         opnfv_vnf.generate_vnf_data = mock.Mock(return_value={})
1081         opnfv_vnf.update_write_parser = mock.Mock()
1082         opnfv_vnf.tmp_file = "/tmp/config"
1083         result = opnfv_vnf.init_eal()
1084         self.assertIsNone(result)