3 # Copyright (c) 2016-2017 Intel Corporation
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
9 # http://www.apache.org/licenses/LICENSE-2.0
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.
23 from yardstick.network_services.helpers import samplevnf_helper
24 from yardstick.network_services.vnf_generic.vnf.base import VnfdHelper
27 class TestPortPairs(unittest.TestCase):
28 def test_port_pairs_list(self):
29 vnfd = TestMultiPortConfig.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
30 interfaces = vnfd['vdu'][0]['external-interface']
31 port_pairs = samplevnf_helper.PortPairs(interfaces)
32 self.assertEqual(port_pairs.port_pair_list, [("xe0", "xe1")])
34 def test_valid_networks(self):
35 vnfd = TestMultiPortConfig.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
36 interfaces = vnfd['vdu'][0]['external-interface']
37 port_pairs = samplevnf_helper.PortPairs(interfaces)
38 self.assertEqual(port_pairs.valid_networks, [
39 ("uplink_0", "downlink_0")])
41 def test_all_ports(self):
42 vnfd = TestMultiPortConfig.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
43 interfaces = vnfd['vdu'][0]['external-interface']
44 port_pairs = samplevnf_helper.PortPairs(interfaces)
45 self.assertEqual(set(port_pairs.all_ports), {"xe0", "xe1"})
47 def test_uplink_ports(self):
48 vnfd = TestMultiPortConfig.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
49 interfaces = vnfd['vdu'][0]['external-interface']
50 port_pairs = samplevnf_helper.PortPairs(interfaces)
51 self.assertEqual(port_pairs.uplink_ports, ["xe0"])
53 def test_downlink_ports(self):
54 vnfd = TestMultiPortConfig.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
55 interfaces = vnfd['vdu'][0]['external-interface']
56 port_pairs = samplevnf_helper.PortPairs(interfaces)
57 self.assertEqual(port_pairs.downlink_ports, ["xe1"])
60 class TestMultiPortConfig(unittest.TestCase):
62 VNFD_0 = {'short-name': 'VpeVnf',
65 [{'network': '152.16.100.20',
66 'netmask': '255.255.255.0',
67 'gateway': '152.16.100.20',
69 {'network': '152.16.40.20',
70 'netmask': '255.255.255.0',
71 'gateway': '152.16.40.20',
73 'description': 'VPE approximation using DPDK',
74 'name': 'vpevnf-baremetal',
76 [{'network': '0064:ff9b:0:0:0:0:9810:6414',
78 'gateway': '0064:ff9b:0:0:0:0:9810:6414',
80 {'network': '0064:ff9b:0:0:0:0:9810:2814',
82 'gateway': '0064:ff9b:0:0:0:0:9810:2814',
84 'id': 'vpevnf-baremetal',
89 'dst_mac': '00:00:00:00:00:04',
90 'vpci': '0000:05:00.0',
91 'local_ip': '152.16.100.19',
92 'type': 'PCI-PASSTHROUGH',
93 'netmask': '255.255.255.0',
95 'bandwidth': '10 Gbps',
97 'dst_ip': '152.16.100.20',
99 'local_iface_name': 'eth0',
100 'local_mac': '00:00:00:00:00:02',
101 'vld_id': 'uplink_0',
103 'vnfd-connection-point-ref': 'xe0',
105 {'virtual-interface':
107 'dst_mac': '00:00:00:00:00:03',
108 'vpci': '0000:05:00.1',
109 'local_ip': '152.16.40.19',
110 'type': 'PCI-PASSTHROUGH',
112 'netmask': '255.255.255.0',
114 'bandwidth': '10 Gbps',
115 'dst_ip': '152.16.40.20',
117 'local_iface_name': 'eth1',
118 'local_mac': '00:00:00:00:00:01',
119 'vld_id': 'downlink_0',
121 'vnfd-connection-point-ref': 'xe1',
124 'description': 'Vpe approximation using DPDK',
126 {'vdu-id': 'vpevnf-baremetal',
132 {'kpi': ['packets_in', 'packets_fwd', 'packets_dropped']},
133 'connection-point': [{'type': 'VPORT', 'name': 'xe0'},
134 {'type': 'VPORT', 'name': 'xe1'}],
135 'id': 'AclApproxVnf', 'name': 'VPEVnfSsh'}
138 'vnfd:vnfd-catalog': {
146 self._mock_open = mock.patch.object(six.moves.builtins, 'open')
147 self.mock_open = self._mock_open.start()
148 self._mock_os = mock.patch.object(os, 'path')
149 self.mock_os = self._mock_os.start()
150 self._mock_config_parser = mock.patch.object(
151 samplevnf_helper, 'ConfigParser')
152 self.mock_config_parser = self._mock_config_parser.start()
154 self.addCleanup(self._cleanup)
157 self._mock_open.stop()
159 self._mock_config_parser.stop()
161 def test_validate_ip_and_prefixlen(self):
162 ip_addr, prefix_len = (
163 samplevnf_helper.MultiPortConfig.validate_ip_and_prefixlen(
164 '10.20.30.40', '16'))
165 self.assertEqual(ip_addr, '10.20.30.40')
166 self.assertEqual(prefix_len, 16)
168 ip_addr, prefix_len = (
169 samplevnf_helper.MultiPortConfig.validate_ip_and_prefixlen(
171 self.assertEqual(ip_addr, '0000:0000:0000:0000:0000:0000:0000:0001')
172 self.assertEqual(prefix_len, 40)
174 def test_validate_ip_and_prefixlen_negative(self):
175 with self.assertRaises(AttributeError):
176 samplevnf_helper.MultiPortConfig.validate_ip_and_prefixlen('', '')
178 with self.assertRaises(AttributeError):
179 samplevnf_helper.MultiPortConfig.validate_ip_and_prefixlen(
180 '10.20.30.400', '16')
182 with self.assertRaises(AttributeError):
183 samplevnf_helper.MultiPortConfig.validate_ip_and_prefixlen(
186 with self.assertRaises(AttributeError):
187 samplevnf_helper.MultiPortConfig.validate_ip_and_prefixlen(
190 def test___init__(self):
191 topology_file = mock.Mock()
192 config_tpl = mock.Mock()
193 tmp_file = mock.Mock()
194 vnfd_mock = mock.MagicMock()
195 opnfv_vnf = samplevnf_helper.MultiPortConfig(
196 topology_file, config_tpl, tmp_file, vnfd_mock)
197 self.assertEqual(0, opnfv_vnf.swq)
198 self.mock_os.path = mock.MagicMock()
199 self.mock_os.path.isfile = mock.Mock(return_value=False)
200 opnfv_vnf = samplevnf_helper.MultiPortConfig(
201 topology_file, config_tpl, tmp_file, vnfd_mock)
202 self.assertEqual(0, opnfv_vnf.swq)
204 def test_update_timer(self):
205 topology_file = mock.Mock()
206 config_tpl = mock.Mock()
207 tmp_file = mock.Mock()
208 vnfd_mock = mock.MagicMock()
209 opnfv_vnf = samplevnf_helper.MultiPortConfig(
210 topology_file, config_tpl, tmp_file, vnfd_mock)
211 opnfv_vnf.get_config_tpl_data = mock.MagicMock()
213 opnfv_vnf.start_core = 0
214 opnfv_vnf.update_write_parser = mock.MagicMock()
215 self.assertEqual(None, opnfv_vnf.update_timer())
217 def test_generate_script(self):
218 topology_file = mock.Mock()
219 config_tpl = mock.Mock()
220 tmp_file = mock.Mock()
221 vnfd_mock = VnfdHelper(self.VNFD_0)
222 opnfv_vnf = samplevnf_helper.MultiPortConfig(
223 topology_file, config_tpl, tmp_file, vnfd_mock)
224 opnfv_vnf.get_config_tpl_data = mock.MagicMock()
226 opnfv_vnf.start_core = 0
227 opnfv_vnf.update_write_parser = mock.MagicMock()
228 opnfv_vnf.generate_script_data = \
229 mock.Mock(return_value={'link_config': 0, 'arp_config': '',
230 'arp_config6': '', 'actions': '',
231 'arp_route_tbl': '', 'arp_route_tbl6': '',
233 opnfv_vnf.port_pair_list = [("xe0", "xe1")]
234 self.assertIsNotNone(opnfv_vnf.generate_script(self.VNFD))
235 opnfv_vnf.lb_config = 'HW'
236 self.assertIsNotNone(opnfv_vnf.generate_script(self.VNFD))
238 def test_generate_script_data(self):
239 topology_file = mock.Mock()
240 config_tpl = mock.Mock()
241 tmp_file = mock.Mock()
242 vnfd_mock = mock.MagicMock()
243 opnfv_vnf = samplevnf_helper.MultiPortConfig(
244 topology_file, config_tpl, tmp_file, vnfd_mock)
245 opnfv_vnf.get_config_tpl_data = mock.MagicMock()
247 opnfv_vnf.start_core = 0
248 opnfv_vnf.update_write_parser = mock.MagicMock()
249 opnfv_vnf.port_pair_list = [("xe0", "xe1")]
250 opnfv_vnf.vnf_type = 'ACL'
251 opnfv_vnf.generate_link_config = mock.Mock()
252 opnfv_vnf.generate_arp_config = mock.Mock()
253 opnfv_vnf.generate_arp_config6 = mock.Mock()
254 opnfv_vnf.generate_action_config = mock.Mock()
255 opnfv_vnf.generate_rule_config = mock.Mock()
256 self.assertIsNotNone(opnfv_vnf.generate_script_data())
258 def test_generate_rule_config(self):
259 topology_file = mock.Mock()
260 config_tpl = mock.Mock()
261 tmp_file = mock.Mock()
262 vnfd_mock = mock.MagicMock()
263 opnfv_vnf = samplevnf_helper.MultiPortConfig(
264 topology_file, config_tpl, tmp_file, vnfd_mock)
265 opnfv_vnf.get_config_tpl_data = mock.MagicMock()
267 opnfv_vnf.start_core = 0
268 opnfv_vnf.update_write_parser = mock.MagicMock()
269 opnfv_vnf.generate_script_data = \
270 mock.Mock(return_value={'link_config': 0, 'arp_config': '',
271 'arp_config6': '', 'actions': '',
273 opnfv_vnf.port_pair_list = [("xe0", "xe1")]
274 opnfv_vnf.get_port_pairs = mock.Mock()
275 opnfv_vnf.vnf_type = 'ACL'
276 opnfv_vnf.get_ports_gateway = mock.Mock(return_value=u'1.1.1.1')
277 opnfv_vnf.get_netmask_gateway = mock.Mock(
278 return_value=u'255.255.255.0')
279 opnfv_vnf.get_ports_gateway6 = mock.Mock(return_value=u'1.1.1.1')
280 opnfv_vnf.get_netmask_gateway6 = mock.Mock(
281 return_value=u'255.255.255.0')
282 opnfv_vnf.txrx_pipeline = ''
283 opnfv_vnf.vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
284 opnfv_vnf.interfaces = opnfv_vnf.vnfd['vdu'][0]['external-interface']
286 self.assertIsNotNone(opnfv_vnf.generate_rule_config())
287 opnfv_vnf.rules = 'new'
288 self.assertIsNotNone(opnfv_vnf.generate_rule_config())
290 def test_generate_action_config(self):
291 topology_file = mock.Mock()
292 config_tpl = mock.Mock()
293 tmp_file = mock.Mock()
294 vnfd_mock = mock.MagicMock()
295 opnfv_vnf = samplevnf_helper.MultiPortConfig(
296 topology_file, config_tpl, tmp_file, vnfd_mock)
297 opnfv_vnf.get_config_tpl_data = mock.MagicMock()
299 opnfv_vnf.start_core = 0
300 opnfv_vnf.update_write_parser = mock.MagicMock()
301 opnfv_vnf.generate_script_data = \
302 mock.Mock(return_value={'link_config': 0, 'arp_config': '',
303 'arp_config6': '', 'actions': '',
305 opnfv_vnf.port_pair_list = [("xe0", "xe1")]
306 opnfv_vnf.get_port_pairs = mock.Mock()
307 opnfv_vnf.vnf_type = 'VFW'
308 opnfv_vnf.get_ports_gateway = mock.Mock(return_value=u'1.1.1.1')
309 opnfv_vnf.get_netmask_gateway = mock.Mock(
310 return_value=u'255.255.255.0')
311 opnfv_vnf.get_ports_gateway6 = mock.Mock(return_value=u'1.1.1.1')
312 opnfv_vnf.get_netmask_gateway6 = mock.Mock(
313 return_value=u'255.255.255.0')
314 opnfv_vnf.txrx_pipeline = ''
316 self.assertIsNotNone(opnfv_vnf.generate_action_config())
318 def test_generate_arp_config6(self):
319 topology_file = mock.Mock()
320 config_tpl = mock.Mock()
321 tmp_file = mock.Mock()
322 vnfd_mock = mock.MagicMock()
323 opnfv_vnf = samplevnf_helper.MultiPortConfig(
324 topology_file, config_tpl, tmp_file, vnfd_mock)
325 opnfv_vnf.get_config_tpl_data = mock.MagicMock()
327 opnfv_vnf.start_core = 0
328 opnfv_vnf.update_write_parser = mock.MagicMock()
329 opnfv_vnf.generate_script_data = \
330 mock.Mock(return_value={'link_config': 0, 'arp_config': '',
331 'arp_config6': '', 'actions': '',
333 opnfv_vnf.port_pair_list = [("xe0", "xe1")]
334 opnfv_vnf.get_port_pairs = mock.Mock()
335 opnfv_vnf.vnf_type = 'VFW'
336 opnfv_vnf.get_ports_gateway = mock.Mock(return_value=u'1.1.1.1')
337 opnfv_vnf.get_netmask_gateway = mock.Mock(
338 return_value=u'255.255.255.0')
339 opnfv_vnf.get_ports_gateway6 = mock.Mock(return_value=u'1.1.1.1')
340 opnfv_vnf.get_netmask_gateway6 = mock.Mock(
341 return_value=u'255.255.255.0')
342 opnfv_vnf.txrx_pipeline = ''
344 opnfv_vnf.interfaces = mock.MagicMock()
345 opnfv_vnf.get_ports_gateway6 = mock.Mock()
346 self.assertIsNotNone(opnfv_vnf.generate_arp_config6())
348 def test_generate_arp_config(self):
349 topology_file = mock.Mock()
350 config_tpl = mock.Mock()
351 tmp_file = mock.Mock()
352 vnfd_mock = mock.MagicMock()
353 opnfv_vnf = samplevnf_helper.MultiPortConfig(
354 topology_file, config_tpl, tmp_file, vnfd_mock)
355 opnfv_vnf.get_config_tpl_data = mock.MagicMock()
357 opnfv_vnf.start_core = 0
358 opnfv_vnf.update_write_parser = mock.MagicMock()
359 opnfv_vnf.generate_script_data = \
360 mock.Mock(return_value={'link_config': 0, 'arp_config': '',
361 'arp_config6': '', 'actions': '',
363 opnfv_vnf.port_pair_list = [("xe0", "xe1")]
364 opnfv_vnf.get_port_pairs = mock.Mock()
365 opnfv_vnf.vnf_type = 'VFW'
366 opnfv_vnf.get_ports_gateway = mock.Mock(return_value=u'1.1.1.1')
367 opnfv_vnf.get_netmask_gateway = mock.Mock(
368 return_value=u'255.255.255.0')
369 opnfv_vnf.get_ports_gateway6 = mock.Mock(return_value=u'1.1.1.1')
370 opnfv_vnf.get_netmask_gateway6 = mock.Mock(
371 return_value=u'255.255.255.0')
372 opnfv_vnf.txrx_pipeline = ''
374 opnfv_vnf.interfaces = mock.MagicMock()
375 opnfv_vnf.get_ports_gateway6 = mock.Mock()
376 self.assertIsNotNone(opnfv_vnf.generate_arp_config())
378 def test_get_ports_gateway(self):
379 topology_file = mock.Mock()
380 config_tpl = mock.Mock()
381 tmp_file = mock.Mock()
382 vnfd_mock = mock.MagicMock()
383 opnfv_vnf = samplevnf_helper.MultiPortConfig(
384 topology_file, config_tpl, tmp_file, vnfd_mock)
385 opnfv_vnf.get_config_tpl_data = mock.MagicMock()
387 opnfv_vnf.start_core = 0
388 opnfv_vnf.update_write_parser = mock.MagicMock()
389 opnfv_vnf.generate_script_data = \
390 mock.Mock(return_value={'link_config': 0, 'arp_config': '',
391 'arp_config6': '', 'actions': '',
393 opnfv_vnf.port_pair_list = [("xe0", "xe1")]
394 opnfv_vnf.get_port_pairs = mock.Mock()
395 opnfv_vnf.vnf_type = 'VFW'
396 opnfv_vnf.txrx_pipeline = ''
398 opnfv_vnf.interfaces = mock.MagicMock()
399 opnfv_vnf.get_ports_gateway6 = mock.Mock()
400 opnfv_vnf.vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
401 self.assertIsNotNone(opnfv_vnf.get_ports_gateway('xe0'))
403 def test_get_ports_gateway6(self):
404 topology_file = mock.Mock()
405 config_tpl = mock.Mock()
406 tmp_file = mock.Mock()
407 vnfd_mock = mock.MagicMock()
408 opnfv_vnf = samplevnf_helper.MultiPortConfig(
409 topology_file, config_tpl, tmp_file, vnfd_mock)
410 opnfv_vnf.get_config_tpl_data = mock.MagicMock()
412 opnfv_vnf.start_core = 0
413 opnfv_vnf.update_write_parser = mock.MagicMock()
414 opnfv_vnf.generate_script_data = \
415 mock.Mock(return_value={'link_config': 0, 'arp_config': '',
416 'arp_config6': '', 'actions': '',
418 opnfv_vnf.port_pair_list = [("xe0", "xe1")]
419 opnfv_vnf.get_port_pairs = mock.Mock()
420 opnfv_vnf.vnf_type = 'VFW'
421 opnfv_vnf.txrx_pipeline = ''
423 opnfv_vnf.interfaces = mock.MagicMock()
424 opnfv_vnf.get_ports_gateway6 = mock.Mock()
425 opnfv_vnf.vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
426 self.assertIsNotNone(opnfv_vnf.get_ports_gateway6('xe0'))
428 def test_get_netmask_gateway(self):
429 topology_file = mock.Mock()
430 config_tpl = mock.Mock()
431 tmp_file = mock.Mock()
432 vnfd_mock = mock.MagicMock()
433 opnfv_vnf = samplevnf_helper.MultiPortConfig(
434 topology_file, config_tpl, tmp_file, vnfd_mock)
435 opnfv_vnf.get_config_tpl_data = mock.MagicMock()
437 opnfv_vnf.start_core = 0
438 opnfv_vnf.update_write_parser = mock.MagicMock()
439 opnfv_vnf.generate_script_data = \
440 mock.Mock(return_value={'link_config': 0, 'arp_config': '',
441 'arp_config6': '', 'actions': '',
443 opnfv_vnf.port_pair_list = [("xe0", "xe1")]
444 opnfv_vnf.get_port_pairs = mock.Mock()
445 opnfv_vnf.vnf_type = 'VFW'
446 opnfv_vnf.txrx_pipeline = ''
448 opnfv_vnf.interfaces = mock.MagicMock()
449 opnfv_vnf.get_ports_gateway6 = mock.Mock()
450 opnfv_vnf.vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
451 self.assertIsNotNone(opnfv_vnf.get_netmask_gateway('xe0'))
453 def test_get_netmask_gateway6(self):
454 topology_file = mock.Mock()
455 config_tpl = mock.Mock()
456 tmp_file = mock.Mock()
457 vnfd_mock = mock.MagicMock()
458 opnfv_vnf = samplevnf_helper.MultiPortConfig(
459 topology_file, config_tpl, tmp_file, vnfd_mock)
460 opnfv_vnf.get_config_tpl_data = mock.MagicMock()
462 opnfv_vnf.start_core = 0
463 opnfv_vnf.update_write_parser = mock.MagicMock()
464 opnfv_vnf.generate_script_data = \
465 mock.Mock(return_value={'link_config': 0, 'arp_config': '',
466 'arp_config6': '', 'actions': '',
468 opnfv_vnf.port_pair_list = [("xe0", "xe1")]
469 opnfv_vnf.get_port_pairs = mock.Mock()
470 opnfv_vnf.vnf_type = 'VFW'
471 opnfv_vnf.txrx_pipeline = ''
473 opnfv_vnf.interfaces = mock.MagicMock()
474 opnfv_vnf.get_ports_gateway6 = mock.Mock()
475 opnfv_vnf.vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
476 self.assertIsNotNone(opnfv_vnf.get_netmask_gateway6('xe0'))
478 def test_generate_link_config(self):
479 topology_file = mock.Mock()
480 config_tpl = mock.Mock()
481 tmp_file = mock.Mock()
482 vnfd_mock = mock.MagicMock()
484 opnfv_vnf = samplevnf_helper.MultiPortConfig(
485 topology_file, config_tpl, tmp_file, vnfd_mock)
486 opnfv_vnf.get_config_tpl_data = mock.MagicMock()
488 opnfv_vnf.start_core = 0
489 opnfv_vnf.update_write_parser = mock.MagicMock()
490 opnfv_vnf.generate_script_data = \
491 mock.Mock(return_value={'link_config': 0, 'arp_config': '',
492 'arp_config6': '', 'actions': '',
494 opnfv_vnf.port_pair_list = [("xe0", "xe1")]
495 opnfv_vnf.get_port_pairs = mock.Mock()
496 opnfv_vnf.vnf_type = 'VFW'
497 opnfv_vnf.txrx_pipeline = ''
499 opnfv_vnf.get_ports_gateway6 = mock.Mock()
500 opnfv_vnf.vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
501 opnfv_vnf.interfaces = opnfv_vnf.vnfd['vdu'][0]['external-interface']
502 opnfv_vnf.all_ports = ['32', '1', '987']
503 opnfv_vnf.validate_ip_and_prefixlen = mock.Mock(
504 return_value=('10.20.30.40', 16))
506 result = opnfv_vnf.generate_link_config()
507 self.assertEqual(len(result.splitlines()), 9)
509 def test_generate_config(self):
510 topology_file = mock.Mock()
511 config_tpl = mock.Mock()
512 tmp_file = mock.Mock()
513 vnfd_mock = mock.MagicMock()
514 opnfv_vnf = samplevnf_helper.MultiPortConfig(
515 topology_file, config_tpl, tmp_file, vnfd_mock)
516 opnfv_vnf.get_config_tpl_data = mock.MagicMock()
518 opnfv_vnf.start_core = 0
519 opnfv_vnf.update_write_parser = mock.MagicMock()
520 opnfv_vnf.generate_script_data = \
521 mock.Mock(return_value={'link_config': 0, 'arp_config': '',
522 'arp_config6': '', 'actions': '',
524 opnfv_vnf.port_pair_list = [("xe0", "xe1")]
525 opnfv_vnf.txrx_pipeline = ''
527 opnfv_vnf.get_ports_gateway6 = mock.Mock()
528 opnfv_vnf.vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
529 opnfv_vnf.interfaces = opnfv_vnf.vnfd['vdu'][0]['external-interface']
530 opnfv_vnf.generate_lb_to_port_pair_mapping = mock.Mock()
531 opnfv_vnf.generate_config_data = mock.Mock()
532 opnfv_vnf.write_parser = mock.MagicMock()
533 opnfv_vnf.is_openstack = True
534 self.assertIsNone(opnfv_vnf.generate_config())
535 opnfv_vnf.is_openstack = False
536 self.assertIsNone(opnfv_vnf.generate_config())
538 def test_get_config_tpl_data(self):
539 topology_file = mock.Mock()
540 config_tpl = mock.Mock()
541 tmp_file = mock.Mock()
542 vnfd_mock = mock.MagicMock()
543 opnfv_vnf = samplevnf_helper.MultiPortConfig(
544 topology_file, config_tpl, tmp_file, vnfd_mock)
546 opnfv_vnf.start_core = 0
547 opnfv_vnf.port_pair_list = [("xe0", "xe1")]
548 opnfv_vnf.txrx_pipeline = ''
550 opnfv_vnf.write_parser = mock.MagicMock()
551 opnfv_vnf.read_parser = mock.MagicMock()
552 opnfv_vnf.read_parser.sections = mock.Mock(return_value=['MASTER'])
553 opnfv_vnf.read_parser.has_option = mock.Mock(return_value=True)
554 opnfv_vnf.read_parser.get = mock.Mock(return_value='filename')
556 self.assertIsNotNone(opnfv_vnf.get_config_tpl_data('filename'))
558 def test_get_txrx_tpl_data(self):
559 topology_file = mock.Mock()
560 config_tpl = mock.Mock()
561 tmp_file = mock.Mock()
562 vnfd_mock = mock.MagicMock()
563 opnfv_vnf = samplevnf_helper.MultiPortConfig(
564 topology_file, config_tpl, tmp_file, vnfd_mock)
566 opnfv_vnf.start_core = 0
567 opnfv_vnf.port_pair_list = [("xe0", "xe1")]
568 opnfv_vnf.txrx_pipeline = ''
570 opnfv_vnf.write_parser = mock.MagicMock()
571 opnfv_vnf.read_parser = mock.MagicMock()
572 opnfv_vnf.read_parser.sections = mock.Mock(return_value=['MASTER'])
573 opnfv_vnf.read_parser.has_option = mock.Mock(return_value=True)
574 opnfv_vnf.read_parser.get = mock.Mock(return_value='filename')
576 self.assertIsNotNone(opnfv_vnf.get_txrx_tpl_data('filename'))
578 def test_init_write_parser_template(self):
579 topology_file = mock.Mock()
580 config_tpl = mock.Mock()
581 tmp_file = mock.Mock()
582 vnfd_mock = mock.MagicMock()
583 opnfv_vnf = samplevnf_helper.MultiPortConfig(
584 topology_file, config_tpl, tmp_file, vnfd_mock)
586 opnfv_vnf.start_core = 0
587 opnfv_vnf.port_pair_list = [("xe0", "xe1")]
588 opnfv_vnf.txrx_pipeline = ''
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=True)
594 opnfv_vnf.read_parser.get = mock.Mock(return_value='filename')
596 self.assertIsNone(opnfv_vnf.init_write_parser_template('filename'))
597 opnfv_vnf.write_parser.add_section = mock.MagicMock()
598 opnfv_vnf.read_parser.item = mock.Mock(return_value=[1, 2, 3])
599 opnfv_vnf.read_parser.has_option = mock.Mock(return_value=False)
600 opnfv_vnf.write_parser.set = mock.Mock()
601 self.assertIsNone(opnfv_vnf.init_write_parser_template('filename'))
603 def test_init_write_parser_template_2(self):
604 topology_file = mock.Mock()
605 config_tpl = mock.Mock()
606 tmp_file = mock.Mock()
607 vnfd_mock = mock.MagicMock()
608 opnfv_vnf = samplevnf_helper.MultiPortConfig(
609 topology_file, config_tpl, tmp_file, vnfd_mock)
611 opnfv_vnf.start_core = 0
612 opnfv_vnf.port_pair_list = [("xe0", "xe1")]
613 opnfv_vnf.txrx_pipeline = ''
615 opnfv_vnf.write_parser = mock.MagicMock()
616 opnfv_vnf.read_parser = mock.MagicMock()
617 opnfv_vnf.read_parser.sections = mock.Mock(return_value=['MASTER'])
618 opnfv_vnf.read_parser.has_option = mock.Mock(return_value=[])
619 opnfv_vnf.write_parser.set = mock.Mock()
620 opnfv_vnf.read_parser.items = mock.MagicMock()
621 self.assertIsNone(opnfv_vnf.init_write_parser_template('filename'))
623 def test_update_write_parser(self):
624 topology_file = mock.Mock()
625 config_tpl = mock.Mock()
626 tmp_file = mock.Mock()
627 vnfd_mock = mock.MagicMock()
628 opnfv_vnf = samplevnf_helper.MultiPortConfig(
629 topology_file, config_tpl, tmp_file, vnfd_mock)
631 opnfv_vnf.start_core = 0
632 opnfv_vnf.port_pair_list = [("xe0", "xe1")]
633 opnfv_vnf.txrx_pipeline = ''
635 opnfv_vnf.write_parser = mock.MagicMock()
636 opnfv_vnf.read_parser = mock.MagicMock()
637 opnfv_vnf.read_parser.sections = mock.Mock(return_value=['MASTER'])
638 opnfv_vnf.read_parser.has_option = mock.Mock(return_value=[])
639 opnfv_vnf.write_parser.set = mock.Mock()
640 opnfv_vnf.write_parser.add_section = mock.Mock()
641 opnfv_vnf.read_parser.items = mock.MagicMock()
642 opnfv_vnf.pipeline_counter = 0
643 self.assertIsNone(opnfv_vnf.update_write_parser({'filename': 1}))
645 def test_get_worker_threads(self):
646 topology_file = mock.Mock()
647 config_tpl = mock.Mock()
648 tmp_file = mock.Mock()
649 vnfd_mock = mock.MagicMock()
650 opnfv_vnf = samplevnf_helper.MultiPortConfig(
651 topology_file, config_tpl, tmp_file, vnfd_mock)
653 opnfv_vnf.start_core = 0
654 opnfv_vnf.port_pair_list = [("xe0", "xe1")]
655 opnfv_vnf.txrx_pipeline = ''
657 opnfv_vnf.write_parser = mock.MagicMock()
658 opnfv_vnf.read_parser = mock.MagicMock()
659 opnfv_vnf.read_parser.sections = mock.Mock(return_value=['MASTER'])
660 opnfv_vnf.read_parser.has_option = mock.Mock(return_value=[])
661 opnfv_vnf.write_parser.set = mock.Mock()
662 opnfv_vnf.write_parser.add_section = mock.Mock()
663 opnfv_vnf.read_parser.items = mock.MagicMock()
664 opnfv_vnf.pipeline_counter = 0
665 opnfv_vnf.worker_config = '1t'
666 result = opnfv_vnf.get_worker_threads(1)
667 self.assertEqual(1, result)
668 opnfv_vnf.worker_config = '2t'
669 result = opnfv_vnf.get_worker_threads(2)
670 self.assertEqual(2, result)
671 opnfv_vnf.worker_config = '2t'
672 result = opnfv_vnf.get_worker_threads(3)
673 self.assertEqual(2, result)
675 # TODO(elfoley): Split this test into smaller tests
676 def test_generate_next_core_id(self):
677 topology_file = mock.Mock()
678 config_tpl = mock.Mock()
679 tmp_file = mock.Mock()
680 vnfd_mock = mock.MagicMock()
681 opnfv_vnf = samplevnf_helper.MultiPortConfig(
682 topology_file, config_tpl, tmp_file, vnfd_mock)
684 opnfv_vnf.start_core = 0
685 opnfv_vnf.port_pair_list = [("xe0", "xe1")]
686 opnfv_vnf.txrx_pipeline = ''
688 opnfv_vnf.write_parser = mock.MagicMock()
689 opnfv_vnf.read_parser = mock.MagicMock()
690 opnfv_vnf.read_parser.sections = mock.Mock(return_value=['MASTER'])
691 opnfv_vnf.read_parser.has_option = mock.Mock(return_value=[])
692 opnfv_vnf.write_parser.set = mock.Mock()
693 opnfv_vnf.write_parser.add_section = mock.Mock()
694 opnfv_vnf.read_parser.items = mock.MagicMock()
695 opnfv_vnf.pipeline_counter = 0
696 opnfv_vnf.worker_config = '1t'
697 opnfv_vnf.start_core = 0
698 result = opnfv_vnf.generate_next_core_id()
699 self.assertEqual(None, result)
700 opnfv_vnf.worker_config = '2t'
701 opnfv_vnf.start_core = 'a'
702 self.assertRaises(ValueError, opnfv_vnf.generate_next_core_id)
703 opnfv_vnf.worker_config = '2t'
704 opnfv_vnf.start_core = 1
705 result = opnfv_vnf.generate_next_core_id()
706 self.assertEqual(None, result)
708 def test_generate_lb_to_port_pair_mapping(self):
709 topology_file = mock.Mock()
710 config_tpl = mock.Mock()
711 tmp_file = mock.Mock()
712 vnfd_mock = VnfdHelper(self.VNFD_0)
713 opnfv_vnf = samplevnf_helper.MultiPortConfig(
714 topology_file, config_tpl, tmp_file, vnfd_mock)
716 opnfv_vnf.start_core = 0
717 opnfv_vnf.txrx_pipeline = ''
719 opnfv_vnf.write_parser = mock.MagicMock()
720 opnfv_vnf.read_parser = mock.MagicMock()
721 opnfv_vnf.read_parser.sections = mock.Mock(return_value=['MASTER'])
722 opnfv_vnf.read_parser.has_option = mock.Mock(return_value=[])
723 opnfv_vnf.write_parser.set = mock.Mock()
724 opnfv_vnf.write_parser.add_section = mock.Mock()
725 opnfv_vnf.read_parser.items = mock.MagicMock()
726 opnfv_vnf.pipeline_counter = 0
727 opnfv_vnf.worker_config = '1t'
728 opnfv_vnf.start_core = 0
729 opnfv_vnf.lb_count = 1
730 opnfv_vnf._port_pairs = samplevnf_helper.PortPairs(vnfd_mock.interfaces)
731 opnfv_vnf.port_pair_list = opnfv_vnf._port_pairs.port_pair_list
732 result = opnfv_vnf.generate_lb_to_port_pair_mapping()
733 self.assertEqual(None, result)
734 result = opnfv_vnf.set_priv_to_pub_mapping()
735 self.assertEqual('(0,1)', result)
737 def test_set_priv_que_handler(self):
738 topology_file = mock.Mock()
739 config_tpl = mock.Mock()
740 tmp_file = mock.Mock()
741 vnfd_mock = VnfdHelper(self.VNFD_0)
742 opnfv_vnf = samplevnf_helper.MultiPortConfig(
743 topology_file, config_tpl, tmp_file, vnfd_mock)
745 opnfv_vnf.start_core = 0
746 opnfv_vnf.port_pair_list = [("xe0", "xe1")]
747 opnfv_vnf.port_pairs = [("xe0", "xe1")]
748 opnfv_vnf.txrx_pipeline = ''
750 opnfv_vnf.write_parser = mock.MagicMock()
751 opnfv_vnf.read_parser = mock.MagicMock()
752 opnfv_vnf.read_parser.sections = mock.Mock(return_value=['MASTER'])
753 opnfv_vnf.read_parser.has_option = mock.Mock(return_value=[])
754 opnfv_vnf.write_parser.set = mock.Mock()
755 opnfv_vnf.write_parser.add_section = mock.Mock()
756 opnfv_vnf.read_parser.items = mock.MagicMock()
757 opnfv_vnf.pipeline_counter = 0
758 opnfv_vnf.worker_config = '1t'
759 opnfv_vnf.start_core = 0
760 opnfv_vnf.lb_count = 1
761 result = opnfv_vnf.set_priv_que_handler()
762 self.assertEqual(None, result)
764 def test_generate_arp_route_tbl(self):
765 # ELF: could n=do this in setup
766 topology_file = mock.Mock()
767 config_tpl = mock.Mock()
769 vnfd_mock = mock.MagicMock()
770 vnfd_mock.port_num.side_effect = ['32', '1', '987']
771 vnfd_mock.find_interface.side_effect = [
773 'virtual-interface': {
774 'dst_ip': '10.20.30.40',
779 'virtual-interface': {
780 'dst_ip': '10.200.30.40',
785 'virtual-interface': {
786 'dst_ip': '10.20.3.40',
792 opnfv_vnf = samplevnf_helper.MultiPortConfig(
793 topology_file, config_tpl, tmp_file, vnfd_mock)
794 opnfv_vnf.all_ports = [3, 2, 5]
796 expected = 'routeadd net 32 10.20.30.40 0xfffff000\n' \
797 'routeadd net 1 10.200.30.40 0xffffff00\n' \
798 'routeadd net 987 10.20.3.40 0xff000000'
799 result = opnfv_vnf.generate_arp_route_tbl()
800 self.assertEqual(result, expected)
802 def test_generate_arpicmp_data(self):
803 topology_file = mock.Mock()
804 config_tpl = mock.Mock()
805 tmp_file = mock.Mock()
806 vnfd_mock = mock.MagicMock()
807 opnfv_vnf = samplevnf_helper.MultiPortConfig(
808 topology_file, config_tpl, tmp_file, vnfd_mock)
810 opnfv_vnf.start_core = 0
811 opnfv_vnf.port_pair_list = [("xe0", "xe1")]
812 opnfv_vnf.port_pairs = [("xe0", "xe1")]
813 opnfv_vnf.txrx_pipeline = ''
815 opnfv_vnf.write_parser = mock.MagicMock()
816 opnfv_vnf.read_parser = mock.MagicMock()
817 opnfv_vnf.read_parser.sections = mock.Mock(return_value=['MASTER'])
818 opnfv_vnf.read_parser.has_option = mock.Mock(return_value=[])
819 opnfv_vnf.write_parser.set = mock.Mock()
820 opnfv_vnf.write_parser.add_section = mock.Mock()
821 opnfv_vnf.read_parser.items = mock.MagicMock()
822 opnfv_vnf.pipeline_counter = 0
823 opnfv_vnf.worker_config = '1t'
824 opnfv_vnf.start_core = 0
825 opnfv_vnf.lb_count = 1
826 opnfv_vnf.vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
827 opnfv_vnf.interfaces = opnfv_vnf.vnfd['vdu'][0]['external-interface']
828 result = opnfv_vnf.generate_arpicmp_data()
829 self.assertIsNotNone(result)
830 opnfv_vnf.nfv_type = 'ovs'
831 opnfv_vnf.lb_to_port_pair_mapping = [0, 1]
832 result = opnfv_vnf.generate_arpicmp_data()
833 self.assertIsNotNone(result)
834 opnfv_vnf.nfv_type = 'openstack'
835 opnfv_vnf.lb_to_port_pair_mapping = [0, 1]
836 result = opnfv_vnf.generate_arpicmp_data()
837 self.assertIsNotNone(result)
838 opnfv_vnf.lb_config = 'HW'
839 opnfv_vnf.lb_to_port_pair_mapping = [0, 1]
840 result = opnfv_vnf.generate_arpicmp_data()
841 self.assertIsNotNone(result)
843 def test_generate_final_txrx_data(self):
844 topology_file = mock.Mock()
845 config_tpl = mock.Mock()
846 tmp_file = mock.Mock()
847 vnfd_mock = mock.MagicMock()
848 opnfv_vnf = samplevnf_helper.MultiPortConfig(
849 topology_file, config_tpl, tmp_file, vnfd_mock)
851 opnfv_vnf.start_core = 0
852 opnfv_vnf.port_pair_list = [("xe0", "xe1")]
853 opnfv_vnf.port_pairs = [("xe0", "xe1")]
854 opnfv_vnf.txrx_pipeline = ''
856 opnfv_vnf.write_parser = mock.MagicMock()
857 opnfv_vnf.read_parser = mock.MagicMock()
858 opnfv_vnf.read_parser.sections = mock.Mock(return_value=['MASTER'])
859 opnfv_vnf.read_parser.has_option = mock.Mock(return_value=[])
860 opnfv_vnf.write_parser.set = mock.Mock()
861 opnfv_vnf.write_parser.add_section = mock.Mock()
862 opnfv_vnf.read_parser.items = mock.MagicMock()
863 opnfv_vnf.pipeline_counter = 0
864 opnfv_vnf.worker_config = '1t'
865 opnfv_vnf.start_core = 0
866 opnfv_vnf.lb_count = 1
867 opnfv_vnf.vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
868 opnfv_vnf.interfaces = opnfv_vnf.vnfd['vdu'][0]['external-interface']
869 opnfv_vnf.lb_to_port_pair_mapping = [0, 1]
870 opnfv_vnf.ports_len = 2
871 opnfv_vnf.lb_index = 1
872 opnfv_vnf.pktq_out_os = [1, 2]
873 result = opnfv_vnf.generate_final_txrx_data()
874 self.assertIsNotNone(result)
875 opnfv_vnf.nfv_type = 'openstack'
876 opnfv_vnf.pktq_out_os = [1, 2]
877 opnfv_vnf.lb_index = 1
878 result = opnfv_vnf.generate_final_txrx_data()
879 self.assertIsNotNone(result)
881 def test_generate_initial_txrx_data(self):
882 topology_file = mock.Mock()
883 config_tpl = mock.Mock()
884 tmp_file = mock.Mock()
885 vnfd_mock = mock.MagicMock()
886 opnfv_vnf = samplevnf_helper.MultiPortConfig(
887 topology_file, config_tpl, tmp_file, vnfd_mock)
889 opnfv_vnf.start_core = 0
890 opnfv_vnf.port_pair_list = [("xe0", "xe1")]
891 opnfv_vnf.port_pairs = [("xe0", "xe1")]
892 opnfv_vnf.txrx_pipeline = ''
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 = 2
910 result = opnfv_vnf.generate_initial_txrx_data()
911 self.assertIsNotNone(result)
912 opnfv_vnf.nfv_type = 'openstack'
913 opnfv_vnf.pktq_out_os = [1, 2]
914 result = opnfv_vnf.generate_initial_txrx_data()
915 self.assertIsNotNone(result)
916 opnfv_vnf.nfv_type = 'ovs'
917 opnfv_vnf.init_ovs = False
918 opnfv_vnf.ovs_pktq_out = ''
919 opnfv_vnf.pktq_out_os = [1, 2]
920 opnfv_vnf.lb_index = 1
921 result = opnfv_vnf.generate_initial_txrx_data()
922 self.assertIsNotNone(result)
923 opnfv_vnf.nfv_type = 'ovs'
924 opnfv_vnf.init_ovs = True
925 opnfv_vnf.pktq_out_os = [1, 2]
926 opnfv_vnf.ovs_pktq_out = ''
927 opnfv_vnf.lb_index = 1
928 result = opnfv_vnf.generate_initial_txrx_data()
929 self.assertIsNotNone(result)
931 def test_generate_lb_data(self):
932 topology_file = mock.Mock()
933 config_tpl = mock.Mock()
934 tmp_file = mock.Mock()
935 vnfd_mock = mock.MagicMock()
936 opnfv_vnf = samplevnf_helper.MultiPortConfig(
937 topology_file, config_tpl, tmp_file, vnfd_mock)
939 opnfv_vnf.start_core = 0
940 opnfv_vnf.port_pair_list = [("xe0", "xe1")]
941 opnfv_vnf.port_pairs = [("xe0", "xe1")]
942 opnfv_vnf.txrx_pipeline = ''
944 opnfv_vnf.write_parser = mock.MagicMock()
945 opnfv_vnf.read_parser = mock.MagicMock()
946 opnfv_vnf.read_parser.sections = mock.Mock(return_value=['MASTER'])
947 opnfv_vnf.read_parser.has_option = mock.Mock(return_value=[])
948 opnfv_vnf.write_parser.set = mock.Mock()
949 opnfv_vnf.write_parser.add_section = mock.Mock()
950 opnfv_vnf.read_parser.items = mock.MagicMock()
951 opnfv_vnf.pipeline_counter = 0
952 opnfv_vnf.worker_config = '1t'
953 opnfv_vnf.start_core = 0
954 opnfv_vnf.lb_count = 1
955 opnfv_vnf.vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
956 opnfv_vnf.interfaces = opnfv_vnf.vnfd['vdu'][0]['external-interface']
957 opnfv_vnf.lb_to_port_pair_mapping = [0, 1]
958 opnfv_vnf.lb_index = 1
959 opnfv_vnf.ports_len = 2
960 opnfv_vnf.prv_que_handler = 0
961 result = opnfv_vnf.generate_lb_data()
962 self.assertIsNotNone(result)
964 def test_generate_vnf_data(self):
965 topology_file = mock.Mock()
966 config_tpl = mock.Mock()
967 tmp_file = mock.Mock()
968 vnfd_mock = mock.MagicMock()
969 opnfv_vnf = samplevnf_helper.MultiPortConfig(
970 topology_file, config_tpl, tmp_file, vnfd_mock)
972 opnfv_vnf.start_core = 0
973 opnfv_vnf.port_pair_list = [("xe0", "xe1")]
974 opnfv_vnf.port_pairs = [("xe0", "xe1")]
975 opnfv_vnf.txrx_pipeline = ''
977 opnfv_vnf.write_parser = mock.MagicMock()
978 opnfv_vnf.read_parser = mock.MagicMock()
979 opnfv_vnf.read_parser.sections = mock.Mock(return_value=['MASTER'])
980 opnfv_vnf.read_parser.has_option = mock.Mock(return_value=[])
981 opnfv_vnf.write_parser.set = mock.Mock()
982 opnfv_vnf.write_parser.add_section = mock.Mock()
983 opnfv_vnf.read_parser.items = mock.MagicMock()
984 opnfv_vnf.pipeline_counter = 0
985 opnfv_vnf.worker_config = '1t'
986 opnfv_vnf.start_core = 0
987 opnfv_vnf.lb_count = 1
988 opnfv_vnf.vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
989 opnfv_vnf.interfaces = opnfv_vnf.vnfd['vdu'][0]['external-interface']
990 opnfv_vnf.lb_to_port_pair_mapping = [0, 1]
991 opnfv_vnf.lb_index = 1
992 opnfv_vnf.ports_len = 1
993 opnfv_vnf.pktq_out = ['1', '2']
994 opnfv_vnf.vnf_tpl = {'public_ip_port_range': '98164810',
995 'vnf_set': '(2,4,5)'}
996 opnfv_vnf.prv_que_handler = 0
997 result = opnfv_vnf.generate_vnf_data()
998 self.assertIsNotNone(result)
999 opnfv_vnf.lb_config = 'HW'
1001 result = opnfv_vnf.generate_vnf_data()
1002 self.assertIsNotNone(result)
1003 opnfv_vnf.lb_config = 'HW'
1005 opnfv_vnf.vnf_type = 'ACL'
1006 result = opnfv_vnf.generate_vnf_data()
1007 self.assertIsNotNone(result)
1009 def test_generate_config_data(self):
1010 topology_file = mock.Mock()
1011 config_tpl = mock.Mock()
1012 tmp_file = mock.Mock()
1013 vnfd_mock = VnfdHelper(self.VNFD_0)
1014 opnfv_vnf = samplevnf_helper.MultiPortConfig(
1015 topology_file, config_tpl, tmp_file, vnfd_mock)
1016 opnfv_vnf.socket = 0
1017 opnfv_vnf.start_core = 0
1018 opnfv_vnf.port_pair_list = [("xe0", "xe1")]
1019 opnfv_vnf.port_pairs = [("xe0", "xe1")]
1020 opnfv_vnf.txrx_pipeline = ''
1021 opnfv_vnf.rules = ''
1022 opnfv_vnf.write_parser = mock.MagicMock()
1023 opnfv_vnf.read_parser = mock.MagicMock()
1024 opnfv_vnf.read_parser.sections = mock.Mock(return_value=['MASTER'])
1025 opnfv_vnf.read_parser.has_option = mock.Mock(return_value=[])
1026 opnfv_vnf.write_parser.set = mock.Mock()
1027 opnfv_vnf.write_parser.add_section = mock.Mock()
1028 opnfv_vnf.read_parser.items = mock.MagicMock()
1029 opnfv_vnf.pipeline_counter = 0
1030 opnfv_vnf.worker_config = '1t'
1031 opnfv_vnf.start_core = 0
1032 opnfv_vnf.lb_count = 1
1033 opnfv_vnf.vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
1034 opnfv_vnf.interfaces = opnfv_vnf.vnfd['vdu'][0]['external-interface']
1035 opnfv_vnf.lb_to_port_pair_mapping = [0, 1]
1036 opnfv_vnf.lb_index = 1
1037 opnfv_vnf.ports_len = 1
1038 opnfv_vnf.pktq_out = ['1', '2']
1039 opnfv_vnf.prv_que_handler = 0
1040 opnfv_vnf.init_write_parser_template = mock.Mock()
1041 opnfv_vnf.arpicmp_tpl = mock.MagicMock()
1042 opnfv_vnf.txrx_tpl = mock.MagicMock()
1043 opnfv_vnf.loadb_tpl = mock.MagicMock()
1044 opnfv_vnf.vnf_tpl = {'public_ip_port_range': '98164810 (1,65535)',
1045 'vnf_set': "(2,4,5)"}
1046 opnfv_vnf.generate_vnf_data = mock.Mock(return_value={})
1047 opnfv_vnf.update_write_parser = mock.Mock()
1048 result = opnfv_vnf.generate_config_data()
1049 self.assertIsNone(result)
1050 opnfv_vnf.generate_final_txrx_data = mock.Mock()
1051 opnfv_vnf.update_write_parser = mock.Mock()
1052 result = opnfv_vnf.generate_config_data()
1053 self.assertIsNone(result)
1054 opnfv_vnf.lb_to_port_pair_mapping = [0, 1]
1055 opnfv_vnf.lb_index = 1
1056 opnfv_vnf.ports_len = 1
1057 opnfv_vnf.pktq_out = ['1', '2']
1058 opnfv_vnf.prv_que_handler = 0
1059 opnfv_vnf.init_write_parser_template = mock.Mock()
1060 opnfv_vnf.arpicmp_tpl = mock.MagicMock()
1061 opnfv_vnf.txrx_tpl = mock.MagicMock()
1062 opnfv_vnf.loadb_tpl = mock.MagicMock()
1063 opnfv_vnf.vnf_type = 'CGNAPT'
1064 opnfv_vnf.update_timer = mock.Mock()
1065 opnfv_vnf.port_pair_list = [("xe0", "xe1"), ("xe0", "xe2")]
1066 opnfv_vnf.lb_to_port_pair_mapping = [0, 1]
1067 opnfv_vnf.generate_arpicmp_data = mock.Mock()
1068 result = opnfv_vnf.generate_config_data()
1069 self.assertIsNone(result)
1071 def test_init_eal(self):
1072 topology_file = mock.Mock()
1073 config_tpl = mock.Mock()
1074 tmp_file = mock.Mock()
1075 vnfd_mock = mock.MagicMock()
1076 opnfv_vnf = samplevnf_helper.MultiPortConfig(
1077 topology_file, config_tpl, tmp_file, vnfd_mock)
1078 opnfv_vnf.socket = 0
1079 opnfv_vnf.start_core = 0
1080 opnfv_vnf.port_pair_list = [("xe0", "xe1")]
1081 opnfv_vnf.port_pairs = [("xe0", "xe1")]
1082 opnfv_vnf.txrx_pipeline = ''
1083 opnfv_vnf.rules = ''
1084 opnfv_vnf.write_parser = mock.MagicMock()
1085 opnfv_vnf.read_parser = mock.MagicMock()
1086 opnfv_vnf.read_parser.sections = mock.Mock(return_value=['MASTER'])
1087 opnfv_vnf.read_parser.has_option = mock.Mock(return_value=[])
1088 opnfv_vnf.write_parser.set = mock.Mock()
1089 opnfv_vnf.write_parser.add_section = mock.Mock()
1090 opnfv_vnf.read_parser.items = mock.MagicMock()
1091 opnfv_vnf.pipeline_counter = 0
1092 opnfv_vnf.worker_config = '1t'
1093 opnfv_vnf.start_core = 0
1094 opnfv_vnf.lb_count = 1
1095 opnfv_vnf.vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
1096 opnfv_vnf.interfaces = opnfv_vnf.vnfd['vdu'][0]['external-interface']
1097 opnfv_vnf.lb_to_port_pair_mapping = [0, 1]
1098 opnfv_vnf.lb_index = 1
1099 opnfv_vnf.ports_len = 1
1100 opnfv_vnf.pktq_out = ['1', '2']
1101 opnfv_vnf.prv_que_handler = 0
1102 opnfv_vnf.init_write_parser_template = mock.Mock()
1103 opnfv_vnf.arpicmp_tpl = mock.MagicMock()
1104 opnfv_vnf.txrx_tpl = mock.MagicMock()
1105 opnfv_vnf.loadb_tpl = mock.MagicMock()
1106 opnfv_vnf.vnf_tpl = {'public_ip_port_range': '98164810 (1,65535)'}
1107 opnfv_vnf.generate_vnf_data = mock.Mock(return_value={})
1108 opnfv_vnf.update_write_parser = mock.Mock()
1109 opnfv_vnf.tmp_file = "/tmp/config"
1110 result = opnfv_vnf.init_eal()
1111 self.assertIsNone(result)