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