Merge "Add "img_property" when building Yardstick image"
[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, [("uplink_0", "downlink_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_uplink_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.uplink_ports, ["xe0"])
53
54     def test_downlink_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.downlink_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': 'uplink_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': 'downlink_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                                     'arp_route_tbl': '', 'arp_route_tbl6': '',
215                                     'rules': ''})
216         opnfv_vnf.port_pair_list = [("xe0", "xe1")]
217         self.assertIsNotNone(opnfv_vnf.generate_script(self.VNFD))
218         opnfv_vnf.lb_config = 'HW'
219         self.assertIsNotNone(opnfv_vnf.generate_script(self.VNFD))
220
221     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
222     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
223     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
224     def test_generate_script_data(self, mock_open, mock_os, ConfigParser):
225         topology_file = mock.Mock()
226         config_tpl = mock.Mock()
227         tmp_file = mock.Mock()
228         vnfd_mock = mock.MagicMock()
229         opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file, vnfd_mock)
230         opnfv_vnf.get_config_tpl_data = mock.MagicMock()
231         opnfv_vnf.socket = 0
232         opnfv_vnf.start_core = 0
233         opnfv_vnf.update_write_parser = mock.MagicMock()
234         opnfv_vnf.port_pair_list = [("xe0", "xe1")]
235         opnfv_vnf.vnf_type = 'ACL'
236         opnfv_vnf.generate_link_config = mock.Mock()
237         opnfv_vnf.generate_arp_config = mock.Mock()
238         opnfv_vnf.generate_arp_config6 = mock.Mock()
239         opnfv_vnf.generate_action_config = mock.Mock()
240         opnfv_vnf.generate_rule_config = mock.Mock()
241         self.assertIsNotNone(opnfv_vnf.generate_script_data())
242
243     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
244     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
245     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
246     def test_generate_rule_config(self, mock_open, mock_os, ConfigParser):
247         topology_file = mock.Mock()
248         config_tpl = mock.Mock()
249         tmp_file = mock.Mock()
250         vnfd_mock = mock.MagicMock()
251         opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file, vnfd_mock)
252         opnfv_vnf.get_config_tpl_data = mock.MagicMock()
253         opnfv_vnf.socket = 0
254         opnfv_vnf.start_core = 0
255         opnfv_vnf.update_write_parser = mock.MagicMock()
256         opnfv_vnf.generate_script_data = \
257             mock.Mock(return_value={'link_config': 0, 'arp_config': '',
258                                     'arp_config6': '', 'actions': '',
259                                     'rules': ''})
260         opnfv_vnf.port_pair_list = [("xe0", "xe1")]
261         opnfv_vnf.get_port_pairs = mock.Mock()
262         opnfv_vnf.vnf_type = 'ACL'
263         opnfv_vnf.get_ports_gateway = mock.Mock(return_value=u'1.1.1.1')
264         opnfv_vnf.get_netmask_gateway = mock.Mock(return_value=u'255.255.255.0')
265         opnfv_vnf.get_ports_gateway6 = mock.Mock(return_value=u'1.1.1.1')
266         opnfv_vnf.get_netmask_gateway6 = mock.Mock(return_value=u'255.255.255.0')
267         opnfv_vnf.txrx_pipeline = ''
268         opnfv_vnf.vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
269         opnfv_vnf.interfaces = opnfv_vnf.vnfd['vdu'][0]['external-interface']
270         opnfv_vnf.rules = ''
271         self.assertIsNotNone(opnfv_vnf.generate_rule_config())
272         opnfv_vnf.rules = 'new'
273         self.assertIsNotNone(opnfv_vnf.generate_rule_config())
274
275     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
276     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
277     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
278     def test_generate_action_config(self, mock_open, mock_os, ConfigParser):
279         topology_file = mock.Mock()
280         config_tpl = mock.Mock()
281         tmp_file = mock.Mock()
282         vnfd_mock = mock.MagicMock()
283         opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file, vnfd_mock)
284         opnfv_vnf.get_config_tpl_data = mock.MagicMock()
285         opnfv_vnf.socket = 0
286         opnfv_vnf.start_core = 0
287         opnfv_vnf.update_write_parser = mock.MagicMock()
288         opnfv_vnf.generate_script_data = \
289             mock.Mock(return_value={'link_config': 0, 'arp_config': '',
290                                     'arp_config6': '', 'actions': '',
291                                     'rules': ''})
292         opnfv_vnf.port_pair_list = [("xe0", "xe1")]
293         opnfv_vnf.get_port_pairs = mock.Mock()
294         opnfv_vnf.vnf_type = 'VFW'
295         opnfv_vnf.get_ports_gateway = mock.Mock(return_value=u'1.1.1.1')
296         opnfv_vnf.get_netmask_gateway = mock.Mock(return_value=u'255.255.255.0')
297         opnfv_vnf.get_ports_gateway6 = mock.Mock(return_value=u'1.1.1.1')
298         opnfv_vnf.get_netmask_gateway6 = mock.Mock(return_value=u'255.255.255.0')
299         opnfv_vnf.txrx_pipeline = ''
300         opnfv_vnf.rules = ''
301         self.assertIsNotNone(opnfv_vnf.generate_action_config())
302
303     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
304     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
305     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
306     def test_generate_arp_config6(self, mock_open, mock_os, ConfigParser):
307         topology_file = mock.Mock()
308         config_tpl = mock.Mock()
309         tmp_file = mock.Mock()
310         vnfd_mock = mock.MagicMock()
311         opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file, vnfd_mock)
312         opnfv_vnf.get_config_tpl_data = mock.MagicMock()
313         opnfv_vnf.socket = 0
314         opnfv_vnf.start_core = 0
315         opnfv_vnf.update_write_parser = mock.MagicMock()
316         opnfv_vnf.generate_script_data = \
317             mock.Mock(return_value={'link_config': 0, 'arp_config': '',
318                                     'arp_config6': '', 'actions': '',
319                                     'rules': ''})
320         opnfv_vnf.port_pair_list = [("xe0", "xe1")]
321         opnfv_vnf.get_port_pairs = mock.Mock()
322         opnfv_vnf.vnf_type = 'VFW'
323         opnfv_vnf.get_ports_gateway = mock.Mock(return_value=u'1.1.1.1')
324         opnfv_vnf.get_netmask_gateway = mock.Mock(return_value=u'255.255.255.0')
325         opnfv_vnf.get_ports_gateway6 = mock.Mock(return_value=u'1.1.1.1')
326         opnfv_vnf.get_netmask_gateway6 = mock.Mock(return_value=u'255.255.255.0')
327         opnfv_vnf.txrx_pipeline = ''
328         opnfv_vnf.rules = ''
329         opnfv_vnf.interfaces = mock.MagicMock()
330         opnfv_vnf.get_ports_gateway6 = mock.Mock()
331         self.assertIsNotNone(opnfv_vnf.generate_arp_config6())
332
333     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
334     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
335     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
336     def test_generate_arp_config(self, mock_open, mock_os, ConfigParser):
337         topology_file = mock.Mock()
338         config_tpl = mock.Mock()
339         tmp_file = mock.Mock()
340         vnfd_mock = mock.MagicMock()
341         opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file, vnfd_mock)
342         opnfv_vnf.get_config_tpl_data = mock.MagicMock()
343         opnfv_vnf.socket = 0
344         opnfv_vnf.start_core = 0
345         opnfv_vnf.update_write_parser = mock.MagicMock()
346         opnfv_vnf.generate_script_data = \
347             mock.Mock(return_value={'link_config': 0, 'arp_config': '',
348                                     'arp_config6': '', 'actions': '',
349                                     'rules': ''})
350         opnfv_vnf.port_pair_list = [("xe0", "xe1")]
351         opnfv_vnf.get_port_pairs = mock.Mock()
352         opnfv_vnf.vnf_type = 'VFW'
353         opnfv_vnf.get_ports_gateway = mock.Mock(return_value=u'1.1.1.1')
354         opnfv_vnf.get_netmask_gateway = mock.Mock(return_value=u'255.255.255.0')
355         opnfv_vnf.get_ports_gateway6 = mock.Mock(return_value=u'1.1.1.1')
356         opnfv_vnf.get_netmask_gateway6 = mock.Mock(return_value=u'255.255.255.0')
357         opnfv_vnf.txrx_pipeline = ''
358         opnfv_vnf.rules = ''
359         opnfv_vnf.interfaces = mock.MagicMock()
360         opnfv_vnf.get_ports_gateway6 = mock.Mock()
361         self.assertIsNotNone(opnfv_vnf.generate_arp_config())
362
363     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
364     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
365     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
366     def test_get_ports_gateway(self, mock_open, mock_os, ConfigParser):
367         topology_file = mock.Mock()
368         config_tpl = mock.Mock()
369         tmp_file = mock.Mock()
370         vnfd_mock = mock.MagicMock()
371         opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file, vnfd_mock)
372         opnfv_vnf.get_config_tpl_data = mock.MagicMock()
373         opnfv_vnf.socket = 0
374         opnfv_vnf.start_core = 0
375         opnfv_vnf.update_write_parser = mock.MagicMock()
376         opnfv_vnf.generate_script_data = \
377             mock.Mock(return_value={'link_config': 0, 'arp_config': '',
378                                     'arp_config6': '', 'actions': '',
379                                     'rules': ''})
380         opnfv_vnf.port_pair_list = [("xe0", "xe1")]
381         opnfv_vnf.get_port_pairs = mock.Mock()
382         opnfv_vnf.vnf_type = 'VFW'
383         opnfv_vnf.txrx_pipeline = ''
384         opnfv_vnf.rules = ''
385         opnfv_vnf.interfaces = mock.MagicMock()
386         opnfv_vnf.get_ports_gateway6 = mock.Mock()
387         opnfv_vnf.vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
388         self.assertIsNotNone(opnfv_vnf.get_ports_gateway('xe0'))
389
390     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
391     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
392     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
393     def test_get_ports_gateway6(self, mock_open, mock_os, ConfigParser):
394         topology_file = mock.Mock()
395         config_tpl = mock.Mock()
396         tmp_file = mock.Mock()
397         vnfd_mock = mock.MagicMock()
398         opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file, vnfd_mock)
399         opnfv_vnf.get_config_tpl_data = mock.MagicMock()
400         opnfv_vnf.socket = 0
401         opnfv_vnf.start_core = 0
402         opnfv_vnf.update_write_parser = mock.MagicMock()
403         opnfv_vnf.generate_script_data = \
404             mock.Mock(return_value={'link_config': 0, 'arp_config': '',
405                                     'arp_config6': '', 'actions': '',
406                                     'rules': ''})
407         opnfv_vnf.port_pair_list = [("xe0", "xe1")]
408         opnfv_vnf.get_port_pairs = mock.Mock()
409         opnfv_vnf.vnf_type = 'VFW'
410         opnfv_vnf.txrx_pipeline = ''
411         opnfv_vnf.rules = ''
412         opnfv_vnf.interfaces = mock.MagicMock()
413         opnfv_vnf.get_ports_gateway6 = mock.Mock()
414         opnfv_vnf.vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
415         self.assertIsNotNone(opnfv_vnf.get_ports_gateway6('xe0'))
416
417     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
418     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
419     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
420     def test_get_netmask_gateway(self, mock_open, mock_os, ConfigParser):
421         topology_file = mock.Mock()
422         config_tpl = mock.Mock()
423         tmp_file = mock.Mock()
424         vnfd_mock = mock.MagicMock()
425         opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file, vnfd_mock)
426         opnfv_vnf.get_config_tpl_data = mock.MagicMock()
427         opnfv_vnf.socket = 0
428         opnfv_vnf.start_core = 0
429         opnfv_vnf.update_write_parser = mock.MagicMock()
430         opnfv_vnf.generate_script_data = \
431             mock.Mock(return_value={'link_config': 0, 'arp_config': '',
432                                     'arp_config6': '', 'actions': '',
433                                     'rules': ''})
434         opnfv_vnf.port_pair_list = [("xe0", "xe1")]
435         opnfv_vnf.get_port_pairs = mock.Mock()
436         opnfv_vnf.vnf_type = 'VFW'
437         opnfv_vnf.txrx_pipeline = ''
438         opnfv_vnf.rules = ''
439         opnfv_vnf.interfaces = mock.MagicMock()
440         opnfv_vnf.get_ports_gateway6 = mock.Mock()
441         opnfv_vnf.vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
442         self.assertIsNotNone(opnfv_vnf.get_netmask_gateway('xe0'))
443
444     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
445     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
446     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
447     def test_get_netmask_gateway6(self, mock_open, mock_os, ConfigParser):
448         topology_file = mock.Mock()
449         config_tpl = mock.Mock()
450         tmp_file = mock.Mock()
451         vnfd_mock = mock.MagicMock()
452         opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file, vnfd_mock)
453         opnfv_vnf.get_config_tpl_data = mock.MagicMock()
454         opnfv_vnf.socket = 0
455         opnfv_vnf.start_core = 0
456         opnfv_vnf.update_write_parser = mock.MagicMock()
457         opnfv_vnf.generate_script_data = \
458             mock.Mock(return_value={'link_config': 0, 'arp_config': '',
459                                     'arp_config6': '', 'actions': '',
460                                     'rules': ''})
461         opnfv_vnf.port_pair_list = [("xe0", "xe1")]
462         opnfv_vnf.get_port_pairs = mock.Mock()
463         opnfv_vnf.vnf_type = 'VFW'
464         opnfv_vnf.txrx_pipeline = ''
465         opnfv_vnf.rules = ''
466         opnfv_vnf.interfaces = mock.MagicMock()
467         opnfv_vnf.get_ports_gateway6 = mock.Mock()
468         opnfv_vnf.vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
469         self.assertIsNotNone(opnfv_vnf.get_netmask_gateway6('xe0'))
470
471     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
472     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
473     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
474     def test_generate_link_config(self, mock_open, mock_os, ConfigParser):
475         topology_file = mock.Mock()
476         config_tpl = mock.Mock()
477         tmp_file = mock.Mock()
478         vnfd_mock = mock.MagicMock()
479
480         opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file, vnfd_mock)
481         opnfv_vnf.get_config_tpl_data = mock.MagicMock()
482         opnfv_vnf.socket = 0
483         opnfv_vnf.start_core = 0
484         opnfv_vnf.update_write_parser = mock.MagicMock()
485         opnfv_vnf.generate_script_data = \
486             mock.Mock(return_value={'link_config': 0, 'arp_config': '',
487                                     'arp_config6': '', 'actions': '',
488                                     'rules': ''})
489         opnfv_vnf.port_pair_list = [("xe0", "xe1")]
490         opnfv_vnf.get_port_pairs = mock.Mock()
491         opnfv_vnf.vnf_type = 'VFW'
492         opnfv_vnf.txrx_pipeline = ''
493         opnfv_vnf.rules = ''
494         opnfv_vnf.get_ports_gateway6 = mock.Mock()
495         opnfv_vnf.vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
496         opnfv_vnf.interfaces = opnfv_vnf.vnfd['vdu'][0]['external-interface']
497         opnfv_vnf.all_ports = ['32', '1', '987']
498         opnfv_vnf.validate_ip_and_prefixlen = mock.Mock(return_value=('10.20.30.40', 16))
499
500         result = opnfv_vnf.generate_link_config()
501         self.assertEqual(len(result.splitlines()), 9)
502
503     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
504     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
505     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
506     def test_generate_config(self, mock_open, mock_os, ConfigParser):
507         topology_file = mock.Mock()
508         config_tpl = mock.Mock()
509         tmp_file = mock.Mock()
510         vnfd_mock = mock.MagicMock()
511         opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file, vnfd_mock)
512         opnfv_vnf.get_config_tpl_data = mock.MagicMock()
513         opnfv_vnf.socket = 0
514         opnfv_vnf.start_core = 0
515         opnfv_vnf.update_write_parser = mock.MagicMock()
516         opnfv_vnf.generate_script_data = \
517             mock.Mock(return_value={'link_config': 0, 'arp_config': '',
518                                     'arp_config6': '', 'actions': '',
519                                     'rules': ''})
520         opnfv_vnf.port_pair_list = [("xe0", "xe1")]
521         opnfv_vnf.txrx_pipeline = ''
522         opnfv_vnf.rules = ''
523         opnfv_vnf.get_ports_gateway6 = mock.Mock()
524         opnfv_vnf.vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
525         opnfv_vnf.interfaces = opnfv_vnf.vnfd['vdu'][0]['external-interface']
526         opnfv_vnf.generate_lb_to_port_pair_mapping = mock.Mock()
527         opnfv_vnf.generate_config_data = mock.Mock()
528         opnfv_vnf.write_parser = mock.MagicMock()
529         opnfv_vnf.is_openstack = True
530         self.assertIsNone(opnfv_vnf.generate_config())
531         opnfv_vnf.is_openstack = False
532         self.assertIsNone(opnfv_vnf.generate_config())
533
534     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
535     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
536     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
537     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.OrderedDict')
538     def test_get_config_tpl_data(self, mock_open, mock_os, ConfigParser,
539                                  OrderedDict):
540         topology_file = mock.Mock()
541         config_tpl = mock.Mock()
542         tmp_file = mock.Mock()
543         vnfd_mock = mock.MagicMock()
544         opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file, vnfd_mock)
545         opnfv_vnf.socket = 0
546         opnfv_vnf.start_core = 0
547         opnfv_vnf.port_pair_list = [("xe0", "xe1")]
548         opnfv_vnf.txrx_pipeline = ''
549         opnfv_vnf.rules = ''
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')
555
556         self.assertIsNotNone(opnfv_vnf.get_config_tpl_data('filename'))
557
558     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
559     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
560     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
561     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.OrderedDict')
562     def test_get_txrx_tpl_data(self, mock_open, mock_os, ConfigParser,
563                                OrderedDict):
564         topology_file = mock.Mock()
565         config_tpl = mock.Mock()
566         tmp_file = mock.Mock()
567         vnfd_mock = mock.MagicMock()
568         opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file, vnfd_mock)
569         opnfv_vnf.socket = 0
570         opnfv_vnf.start_core = 0
571         opnfv_vnf.port_pair_list = [("xe0", "xe1")]
572         opnfv_vnf.txrx_pipeline = ''
573         opnfv_vnf.rules = ''
574         opnfv_vnf.write_parser = mock.MagicMock()
575         opnfv_vnf.read_parser = mock.MagicMock()
576         opnfv_vnf.read_parser.sections = mock.Mock(return_value=['MASTER'])
577         opnfv_vnf.read_parser.has_option = mock.Mock(return_value=True)
578         opnfv_vnf.read_parser.get = mock.Mock(return_value='filename')
579
580         self.assertIsNotNone(opnfv_vnf.get_txrx_tpl_data('filename'))
581
582     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
583     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
584     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
585     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.OrderedDict')
586     def test_init_write_parser_template(self, mock_open, mock_os, ConfigParser,
587                                         OrderedDict):
588         topology_file = mock.Mock()
589         config_tpl = mock.Mock()
590         tmp_file = mock.Mock()
591         vnfd_mock = mock.MagicMock()
592         opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file, vnfd_mock)
593         opnfv_vnf.socket = 0
594         opnfv_vnf.start_core = 0
595         opnfv_vnf.port_pair_list = [("xe0", "xe1")]
596         opnfv_vnf.txrx_pipeline = ''
597         opnfv_vnf.rules = ''
598         opnfv_vnf.write_parser = mock.MagicMock()
599         opnfv_vnf.read_parser = mock.MagicMock()
600         opnfv_vnf.read_parser.sections = mock.Mock(return_value=['MASTER'])
601         opnfv_vnf.read_parser.has_option = mock.Mock(return_value=True)
602         opnfv_vnf.read_parser.get = mock.Mock(return_value='filename')
603
604         self.assertIsNone(opnfv_vnf.init_write_parser_template('filename'))
605         opnfv_vnf.write_parser.add_section = mock.MagicMock()
606         opnfv_vnf.read_parser.item = mock.Mock(return_value=[1, 2, 3])
607         opnfv_vnf.read_parser.has_option = mock.Mock(return_value=False)
608         opnfv_vnf.write_parser.set = mock.Mock()
609         self.assertIsNone(opnfv_vnf.init_write_parser_template('filename'))
610
611     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
612     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
613     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
614     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.OrderedDict')
615     def test_init_write_parser_template_2(self, mock_open, mock_os, ConfigParser,
616                                           OrderedDict):
617         topology_file = mock.Mock()
618         config_tpl = mock.Mock()
619         tmp_file = mock.Mock()
620         vnfd_mock = mock.MagicMock()
621         opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file, vnfd_mock)
622         opnfv_vnf.socket = 0
623         opnfv_vnf.start_core = 0
624         opnfv_vnf.port_pair_list = [("xe0", "xe1")]
625         opnfv_vnf.txrx_pipeline = ''
626         opnfv_vnf.rules = ''
627         opnfv_vnf.write_parser = mock.MagicMock()
628         opnfv_vnf.read_parser = mock.MagicMock()
629         opnfv_vnf.read_parser.sections = mock.Mock(return_value=['MASTER'])
630         opnfv_vnf.read_parser.has_option = mock.Mock(return_value=[])
631         opnfv_vnf.write_parser.set = mock.Mock()
632         opnfv_vnf.read_parser.items = mock.MagicMock()
633         self.assertIsNone(opnfv_vnf.init_write_parser_template('filename'))
634
635     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
636     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
637     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
638     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.OrderedDict')
639     def test_update_write_parser(self, mock_open, mock_os, ConfigParser,
640                                  OrderedDict):
641         topology_file = mock.Mock()
642         config_tpl = mock.Mock()
643         tmp_file = mock.Mock()
644         vnfd_mock = mock.MagicMock()
645         opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file, vnfd_mock)
646         opnfv_vnf.socket = 0
647         opnfv_vnf.start_core = 0
648         opnfv_vnf.port_pair_list = [("xe0", "xe1")]
649         opnfv_vnf.txrx_pipeline = ''
650         opnfv_vnf.rules = ''
651         opnfv_vnf.write_parser = mock.MagicMock()
652         opnfv_vnf.read_parser = mock.MagicMock()
653         opnfv_vnf.read_parser.sections = mock.Mock(return_value=['MASTER'])
654         opnfv_vnf.read_parser.has_option = mock.Mock(return_value=[])
655         opnfv_vnf.write_parser.set = mock.Mock()
656         opnfv_vnf.write_parser.add_section = mock.Mock()
657         opnfv_vnf.read_parser.items = mock.MagicMock()
658         opnfv_vnf.pipeline_counter = 0
659         self.assertIsNone(opnfv_vnf.update_write_parser({'filename': 1}))
660
661     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
662     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
663     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
664     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.OrderedDict')
665     def test_get_worker_threads(self, mock_open, mock_os, ConfigParser,
666                                 OrderedDict):
667         topology_file = mock.Mock()
668         config_tpl = mock.Mock()
669         tmp_file = mock.Mock()
670         vnfd_mock = mock.MagicMock()
671         opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file, vnfd_mock)
672         opnfv_vnf.socket = 0
673         opnfv_vnf.start_core = 0
674         opnfv_vnf.port_pair_list = [("xe0", "xe1")]
675         opnfv_vnf.txrx_pipeline = ''
676         opnfv_vnf.rules = ''
677         opnfv_vnf.write_parser = mock.MagicMock()
678         opnfv_vnf.read_parser = mock.MagicMock()
679         opnfv_vnf.read_parser.sections = mock.Mock(return_value=['MASTER'])
680         opnfv_vnf.read_parser.has_option = mock.Mock(return_value=[])
681         opnfv_vnf.write_parser.set = mock.Mock()
682         opnfv_vnf.write_parser.add_section = mock.Mock()
683         opnfv_vnf.read_parser.items = mock.MagicMock()
684         opnfv_vnf.pipeline_counter = 0
685         opnfv_vnf.worker_config = '1t'
686         result = opnfv_vnf.get_worker_threads(1)
687         self.assertEqual(1, result)
688         opnfv_vnf.worker_config = '2t'
689         result = opnfv_vnf.get_worker_threads(2)
690         self.assertEqual(2, result)
691         opnfv_vnf.worker_config = '2t'
692         result = opnfv_vnf.get_worker_threads(3)
693         self.assertEqual(2, result)
694
695     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
696     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
697     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
698     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.OrderedDict')
699     def test_generate_next_core_id(self, mock_open, mock_os, ConfigParser,
700                                    OrderedDict):
701         topology_file = mock.Mock()
702         config_tpl = mock.Mock()
703         tmp_file = mock.Mock()
704         vnfd_mock = mock.MagicMock()
705         opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file, vnfd_mock)
706         opnfv_vnf.socket = 0
707         opnfv_vnf.start_core = 0
708         opnfv_vnf.port_pair_list = [("xe0", "xe1")]
709         opnfv_vnf.txrx_pipeline = ''
710         opnfv_vnf.rules = ''
711         opnfv_vnf.write_parser = mock.MagicMock()
712         opnfv_vnf.read_parser = mock.MagicMock()
713         opnfv_vnf.read_parser.sections = mock.Mock(return_value=['MASTER'])
714         opnfv_vnf.read_parser.has_option = mock.Mock(return_value=[])
715         opnfv_vnf.write_parser.set = mock.Mock()
716         opnfv_vnf.write_parser.add_section = mock.Mock()
717         opnfv_vnf.read_parser.items = mock.MagicMock()
718         opnfv_vnf.pipeline_counter = 0
719         opnfv_vnf.worker_config = '1t'
720         opnfv_vnf.start_core = 0
721         result = opnfv_vnf.generate_next_core_id()
722         self.assertEqual(None, result)
723         opnfv_vnf.worker_config = '2t'
724         opnfv_vnf.start_core = 'a'
725         self.assertRaises(ValueError, opnfv_vnf.generate_next_core_id)
726         opnfv_vnf.worker_config = '2t'
727         opnfv_vnf.start_core = 1
728         result = opnfv_vnf.generate_next_core_id()
729         self.assertEqual(None, result)
730
731     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
732     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
733     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
734     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.OrderedDict')
735     def test_generate_lb_to_port_pair_mapping(self, mock_open, mock_os, ConfigParser,
736                                               OrderedDict):
737         topology_file = mock.Mock()
738         config_tpl = mock.Mock()
739         tmp_file = mock.Mock()
740         vnfd_mock = VnfdHelper(self.VNFD_0)
741         opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file, vnfd_mock)
742         opnfv_vnf.socket = 0
743         opnfv_vnf.start_core = 0
744         opnfv_vnf.txrx_pipeline = ''
745         opnfv_vnf.rules = ''
746         opnfv_vnf.write_parser = mock.MagicMock()
747         opnfv_vnf.read_parser = mock.MagicMock()
748         opnfv_vnf.read_parser.sections = mock.Mock(return_value=['MASTER'])
749         opnfv_vnf.read_parser.has_option = mock.Mock(return_value=[])
750         opnfv_vnf.write_parser.set = mock.Mock()
751         opnfv_vnf.write_parser.add_section = mock.Mock()
752         opnfv_vnf.read_parser.items = mock.MagicMock()
753         opnfv_vnf.pipeline_counter = 0
754         opnfv_vnf.worker_config = '1t'
755         opnfv_vnf.start_core = 0
756         opnfv_vnf.lb_count = 1
757         opnfv_vnf._port_pairs = PortPairs(vnfd_mock.interfaces)
758         opnfv_vnf.port_pair_list = opnfv_vnf._port_pairs.port_pair_list
759         result = opnfv_vnf.generate_lb_to_port_pair_mapping()
760         self.assertEqual(None, result)
761         result = opnfv_vnf.set_priv_to_pub_mapping()
762         self.assertEqual('(0,1)', result)
763
764     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
765     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
766     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
767     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.OrderedDict')
768     def test_set_priv_que_handler(self, mock_open, mock_os, ConfigParser,
769                                   OrderedDict):
770         topology_file = mock.Mock()
771         config_tpl = mock.Mock()
772         tmp_file = mock.Mock()
773         vnfd_mock = VnfdHelper(self.VNFD_0)
774         opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file, vnfd_mock)
775         opnfv_vnf.socket = 0
776         opnfv_vnf.start_core = 0
777         opnfv_vnf.port_pair_list = [("xe0", "xe1")]
778         opnfv_vnf.port_pairs = [("xe0", "xe1")]
779         opnfv_vnf.txrx_pipeline = ''
780         opnfv_vnf.rules = ''
781         opnfv_vnf.write_parser = mock.MagicMock()
782         opnfv_vnf.read_parser = mock.MagicMock()
783         opnfv_vnf.read_parser.sections = mock.Mock(return_value=['MASTER'])
784         opnfv_vnf.read_parser.has_option = mock.Mock(return_value=[])
785         opnfv_vnf.write_parser.set = mock.Mock()
786         opnfv_vnf.write_parser.add_section = mock.Mock()
787         opnfv_vnf.read_parser.items = mock.MagicMock()
788         opnfv_vnf.pipeline_counter = 0
789         opnfv_vnf.worker_config = '1t'
790         opnfv_vnf.start_core = 0
791         opnfv_vnf.lb_count = 1
792         result = opnfv_vnf.set_priv_que_handler()
793         self.assertEqual(None, result)
794
795     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
796     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
797     def test_generate_arp_route_tbl(self, *_):
798         topology_file = mock.Mock()
799         config_tpl = mock.Mock()
800         tmp_file = ""
801         vnfd_mock = mock.MagicMock()
802         vnfd_mock.port_num.side_effect = ['32', '1', '987']
803         vnfd_mock.find_interface.side_effect = [
804             {
805                 'virtual-interface': {
806                     'dst_ip': '10.20.30.40',
807                     'netmask': '20',
808                 },
809             },
810             {
811                 'virtual-interface': {
812                     'dst_ip': '10.200.30.40',
813                     'netmask': '24',
814                 },
815             },
816             {
817                 'virtual-interface': {
818                     'dst_ip': '10.20.3.40',
819                     'netmask': '8',
820                 },
821             },
822         ]
823
824         opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file, vnfd_mock)
825         opnfv_vnf.all_ports = [3, 2, 5]
826
827         expected = 'routeadd net 32 10.20.30.40 0xfffff000\n' \
828                    'routeadd net 1 10.200.30.40 0xffffff00\n' \
829                    'routeadd net 987 10.20.3.40 0xff000000'
830         result = opnfv_vnf.generate_arp_route_tbl()
831         self.assertEqual(result, expected)
832
833     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
834     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
835     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
836     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.OrderedDict')
837     def test_generate_arpicmp_data(self, mock_open, mock_os, ConfigParser,
838                                    OrderedDict):
839         topology_file = mock.Mock()
840         config_tpl = mock.Mock()
841         tmp_file = mock.Mock()
842         vnfd_mock = mock.MagicMock()
843         opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file, vnfd_mock)
844         opnfv_vnf.socket = 0
845         opnfv_vnf.start_core = 0
846         opnfv_vnf.port_pair_list = [("xe0", "xe1")]
847         opnfv_vnf.port_pairs = [("xe0", "xe1")]
848         opnfv_vnf.txrx_pipeline = ''
849         opnfv_vnf.rules = ''
850         opnfv_vnf.write_parser = mock.MagicMock()
851         opnfv_vnf.read_parser = mock.MagicMock()
852         opnfv_vnf.read_parser.sections = mock.Mock(return_value=['MASTER'])
853         opnfv_vnf.read_parser.has_option = mock.Mock(return_value=[])
854         opnfv_vnf.write_parser.set = mock.Mock()
855         opnfv_vnf.write_parser.add_section = mock.Mock()
856         opnfv_vnf.read_parser.items = mock.MagicMock()
857         opnfv_vnf.pipeline_counter = 0
858         opnfv_vnf.worker_config = '1t'
859         opnfv_vnf.start_core = 0
860         opnfv_vnf.lb_count = 1
861         opnfv_vnf.vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
862         opnfv_vnf.interfaces = opnfv_vnf.vnfd['vdu'][0]['external-interface']
863         result = opnfv_vnf.generate_arpicmp_data()
864         self.assertIsNotNone(result)
865         opnfv_vnf.nfv_type = 'ovs'
866         opnfv_vnf.lb_to_port_pair_mapping = [0, 1]
867         result = opnfv_vnf.generate_arpicmp_data()
868         self.assertIsNotNone(result)
869         opnfv_vnf.nfv_type = 'openstack'
870         opnfv_vnf.lb_to_port_pair_mapping = [0, 1]
871         result = opnfv_vnf.generate_arpicmp_data()
872         self.assertIsNotNone(result)
873         opnfv_vnf.lb_config = 'HW'
874         opnfv_vnf.lb_to_port_pair_mapping = [0, 1]
875         result = opnfv_vnf.generate_arpicmp_data()
876         self.assertIsNotNone(result)
877
878     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
879     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
880     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
881     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.OrderedDict')
882     def test_generate_final_txrx_data(self, mock_open, mock_os, ConfigParser,
883                                       OrderedDict):
884         topology_file = mock.Mock()
885         config_tpl = mock.Mock()
886         tmp_file = mock.Mock()
887         vnfd_mock = mock.MagicMock()
888         opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file, vnfd_mock)
889         opnfv_vnf.socket = 0
890         opnfv_vnf.start_core = 0
891         opnfv_vnf.port_pair_list = [("xe0", "xe1")]
892         opnfv_vnf.port_pairs = [("xe0", "xe1")]
893         opnfv_vnf.txrx_pipeline = ''
894         opnfv_vnf.rules = ''
895         opnfv_vnf.write_parser = mock.MagicMock()
896         opnfv_vnf.read_parser = mock.MagicMock()
897         opnfv_vnf.read_parser.sections = mock.Mock(return_value=['MASTER'])
898         opnfv_vnf.read_parser.has_option = mock.Mock(return_value=[])
899         opnfv_vnf.write_parser.set = mock.Mock()
900         opnfv_vnf.write_parser.add_section = mock.Mock()
901         opnfv_vnf.read_parser.items = mock.MagicMock()
902         opnfv_vnf.pipeline_counter = 0
903         opnfv_vnf.worker_config = '1t'
904         opnfv_vnf.start_core = 0
905         opnfv_vnf.lb_count = 1
906         opnfv_vnf.vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
907         opnfv_vnf.interfaces = opnfv_vnf.vnfd['vdu'][0]['external-interface']
908         opnfv_vnf.lb_to_port_pair_mapping = [0, 1]
909         opnfv_vnf.ports_len = 2
910         opnfv_vnf.lb_index = 1
911         opnfv_vnf.pktq_out_os = [1, 2]
912         result = opnfv_vnf.generate_final_txrx_data()
913         self.assertIsNotNone(result)
914         opnfv_vnf.nfv_type = 'openstack'
915         opnfv_vnf.pktq_out_os = [1, 2]
916         opnfv_vnf.lb_index = 1
917         result = opnfv_vnf.generate_final_txrx_data()
918         self.assertIsNotNone(result)
919
920     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
921     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
922     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
923     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.OrderedDict')
924     def test_generate_initial_txrx_data(self, mock_open, mock_os,
925                                         ConfigParser, OrderedDict):
926         topology_file = mock.Mock()
927         config_tpl = mock.Mock()
928         tmp_file = mock.Mock()
929         vnfd_mock = mock.MagicMock()
930         opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file, vnfd_mock)
931         opnfv_vnf.socket = 0
932         opnfv_vnf.start_core = 0
933         opnfv_vnf.port_pair_list = [("xe0", "xe1")]
934         opnfv_vnf.port_pairs = [("xe0", "xe1")]
935         opnfv_vnf.txrx_pipeline = ''
936         opnfv_vnf.rules = ''
937         opnfv_vnf.write_parser = mock.MagicMock()
938         opnfv_vnf.read_parser = mock.MagicMock()
939         opnfv_vnf.read_parser.sections = mock.Mock(return_value=['MASTER'])
940         opnfv_vnf.read_parser.has_option = mock.Mock(return_value=[])
941         opnfv_vnf.write_parser.set = mock.Mock()
942         opnfv_vnf.write_parser.add_section = mock.Mock()
943         opnfv_vnf.read_parser.items = mock.MagicMock()
944         opnfv_vnf.pipeline_counter = 0
945         opnfv_vnf.worker_config = '1t'
946         opnfv_vnf.start_core = 0
947         opnfv_vnf.lb_count = 1
948         opnfv_vnf.vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
949         opnfv_vnf.interfaces = opnfv_vnf.vnfd['vdu'][0]['external-interface']
950         opnfv_vnf.lb_to_port_pair_mapping = [0, 1]
951         opnfv_vnf.lb_index = 1
952         opnfv_vnf.ports_len = 2
953         result = opnfv_vnf.generate_initial_txrx_data()
954         self.assertIsNotNone(result)
955         opnfv_vnf.nfv_type = 'openstack'
956         opnfv_vnf.pktq_out_os = [1, 2]
957         result = opnfv_vnf.generate_initial_txrx_data()
958         self.assertIsNotNone(result)
959         opnfv_vnf.nfv_type = 'ovs'
960         opnfv_vnf.init_ovs = False
961         opnfv_vnf.ovs_pktq_out = ''
962         opnfv_vnf.pktq_out_os = [1, 2]
963         opnfv_vnf.lb_index = 1
964         result = opnfv_vnf.generate_initial_txrx_data()
965         self.assertIsNotNone(result)
966         opnfv_vnf.nfv_type = 'ovs'
967         opnfv_vnf.init_ovs = True
968         opnfv_vnf.pktq_out_os = [1, 2]
969         opnfv_vnf.ovs_pktq_out = ''
970         opnfv_vnf.lb_index = 1
971         result = opnfv_vnf.generate_initial_txrx_data()
972         self.assertIsNotNone(result)
973
974     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
975     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
976     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
977     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.OrderedDict')
978     def test_generate_lb_data(self, mock_open, mock_os, ConfigParser,
979                               OrderedDict):
980         topology_file = mock.Mock()
981         config_tpl = mock.Mock()
982         tmp_file = mock.Mock()
983         vnfd_mock = mock.MagicMock()
984         opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file, vnfd_mock)
985         opnfv_vnf.socket = 0
986         opnfv_vnf.start_core = 0
987         opnfv_vnf.port_pair_list = [("xe0", "xe1")]
988         opnfv_vnf.port_pairs = [("xe0", "xe1")]
989         opnfv_vnf.txrx_pipeline = ''
990         opnfv_vnf.rules = ''
991         opnfv_vnf.write_parser = mock.MagicMock()
992         opnfv_vnf.read_parser = mock.MagicMock()
993         opnfv_vnf.read_parser.sections = mock.Mock(return_value=['MASTER'])
994         opnfv_vnf.read_parser.has_option = mock.Mock(return_value=[])
995         opnfv_vnf.write_parser.set = mock.Mock()
996         opnfv_vnf.write_parser.add_section = mock.Mock()
997         opnfv_vnf.read_parser.items = mock.MagicMock()
998         opnfv_vnf.pipeline_counter = 0
999         opnfv_vnf.worker_config = '1t'
1000         opnfv_vnf.start_core = 0
1001         opnfv_vnf.lb_count = 1
1002         opnfv_vnf.vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
1003         opnfv_vnf.interfaces = opnfv_vnf.vnfd['vdu'][0]['external-interface']
1004         opnfv_vnf.lb_to_port_pair_mapping = [0, 1]
1005         opnfv_vnf.lb_index = 1
1006         opnfv_vnf.ports_len = 2
1007         opnfv_vnf.prv_que_handler = 0
1008         result = opnfv_vnf.generate_lb_data()
1009         self.assertIsNotNone(result)
1010
1011     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
1012     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
1013     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
1014     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.OrderedDict')
1015     def test_generate_vnf_data(self, mock_open, mock_os, ConfigParser,
1016                                OrderedDict):
1017         topology_file = mock.Mock()
1018         config_tpl = mock.Mock()
1019         tmp_file = mock.Mock()
1020         vnfd_mock = mock.MagicMock()
1021         opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file, vnfd_mock)
1022         opnfv_vnf.socket = 0
1023         opnfv_vnf.start_core = 0
1024         opnfv_vnf.port_pair_list = [("xe0", "xe1")]
1025         opnfv_vnf.port_pairs = [("xe0", "xe1")]
1026         opnfv_vnf.txrx_pipeline = ''
1027         opnfv_vnf.rules = ''
1028         opnfv_vnf.write_parser = mock.MagicMock()
1029         opnfv_vnf.read_parser = mock.MagicMock()
1030         opnfv_vnf.read_parser.sections = mock.Mock(return_value=['MASTER'])
1031         opnfv_vnf.read_parser.has_option = mock.Mock(return_value=[])
1032         opnfv_vnf.write_parser.set = mock.Mock()
1033         opnfv_vnf.write_parser.add_section = mock.Mock()
1034         opnfv_vnf.read_parser.items = mock.MagicMock()
1035         opnfv_vnf.pipeline_counter = 0
1036         opnfv_vnf.worker_config = '1t'
1037         opnfv_vnf.start_core = 0
1038         opnfv_vnf.lb_count = 1
1039         opnfv_vnf.vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
1040         opnfv_vnf.interfaces = opnfv_vnf.vnfd['vdu'][0]['external-interface']
1041         opnfv_vnf.lb_to_port_pair_mapping = [0, 1]
1042         opnfv_vnf.lb_index = 1
1043         opnfv_vnf.ports_len = 1
1044         opnfv_vnf.pktq_out = ['1', '2']
1045         opnfv_vnf.vnf_tpl = {'public_ip_port_range': '98164810',
1046                              'vnf_set': '(2,4,5)'}
1047         opnfv_vnf.prv_que_handler = 0
1048         result = opnfv_vnf.generate_vnf_data()
1049         self.assertIsNotNone(result)
1050         opnfv_vnf.lb_config = 'HW'
1051         opnfv_vnf.mul = 0.1
1052         result = opnfv_vnf.generate_vnf_data()
1053         self.assertIsNotNone(result)
1054         opnfv_vnf.lb_config = 'HW'
1055         opnfv_vnf.mul = 0.1
1056         opnfv_vnf.vnf_type = 'ACL'
1057         result = opnfv_vnf.generate_vnf_data()
1058         self.assertIsNotNone(result)
1059
1060     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
1061     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
1062     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
1063     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.OrderedDict')
1064     def test_generate_config_data(self, mock_open, mock_os, ConfigParser,
1065                                   OrderedDict):
1066         topology_file = mock.Mock()
1067         config_tpl = mock.Mock()
1068         tmp_file = mock.Mock()
1069         vnfd_mock = VnfdHelper(self.VNFD_0)
1070         opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file, vnfd_mock)
1071         opnfv_vnf.socket = 0
1072         opnfv_vnf.start_core = 0
1073         opnfv_vnf.port_pair_list = [("xe0", "xe1")]
1074         opnfv_vnf.port_pairs = [("xe0", "xe1")]
1075         opnfv_vnf.txrx_pipeline = ''
1076         opnfv_vnf.rules = ''
1077         opnfv_vnf.write_parser = mock.MagicMock()
1078         opnfv_vnf.read_parser = mock.MagicMock()
1079         opnfv_vnf.read_parser.sections = mock.Mock(return_value=['MASTER'])
1080         opnfv_vnf.read_parser.has_option = mock.Mock(return_value=[])
1081         opnfv_vnf.write_parser.set = mock.Mock()
1082         opnfv_vnf.write_parser.add_section = mock.Mock()
1083         opnfv_vnf.read_parser.items = mock.MagicMock()
1084         opnfv_vnf.pipeline_counter = 0
1085         opnfv_vnf.worker_config = '1t'
1086         opnfv_vnf.start_core = 0
1087         opnfv_vnf.lb_count = 1
1088         opnfv_vnf.vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
1089         opnfv_vnf.interfaces = opnfv_vnf.vnfd['vdu'][0]['external-interface']
1090         opnfv_vnf.lb_to_port_pair_mapping = [0, 1]
1091         opnfv_vnf.lb_index = 1
1092         opnfv_vnf.ports_len = 1
1093         opnfv_vnf.pktq_out = ['1', '2']
1094         opnfv_vnf.prv_que_handler = 0
1095         opnfv_vnf.init_write_parser_template = mock.Mock()
1096         opnfv_vnf.arpicmp_tpl = mock.MagicMock()
1097         opnfv_vnf.txrx_tpl = mock.MagicMock()
1098         opnfv_vnf.loadb_tpl = mock.MagicMock()
1099         opnfv_vnf.vnf_tpl = {'public_ip_port_range': '98164810 (1,65535)',
1100                              'vnf_set': "(2,4,5)"}
1101         opnfv_vnf.generate_vnf_data = mock.Mock(return_value={})
1102         opnfv_vnf.update_write_parser = mock.Mock()
1103         result = opnfv_vnf.generate_config_data()
1104         self.assertIsNone(result)
1105         opnfv_vnf.generate_final_txrx_data = mock.Mock()
1106         opnfv_vnf.update_write_parser = mock.Mock()
1107         result = opnfv_vnf.generate_config_data()
1108         self.assertIsNone(result)
1109         opnfv_vnf.lb_to_port_pair_mapping = [0, 1]
1110         opnfv_vnf.lb_index = 1
1111         opnfv_vnf.ports_len = 1
1112         opnfv_vnf.pktq_out = ['1', '2']
1113         opnfv_vnf.prv_que_handler = 0
1114         opnfv_vnf.init_write_parser_template = mock.Mock()
1115         opnfv_vnf.arpicmp_tpl = mock.MagicMock()
1116         opnfv_vnf.txrx_tpl = mock.MagicMock()
1117         opnfv_vnf.loadb_tpl = mock.MagicMock()
1118         opnfv_vnf.vnf_type = 'CGNAPT'
1119         opnfv_vnf.update_timer = mock.Mock()
1120         opnfv_vnf.port_pair_list = [("xe0", "xe1"), ("xe0", "xe2")]
1121         opnfv_vnf.lb_to_port_pair_mapping = [0, 1]
1122         opnfv_vnf.generate_arpicmp_data = mock.Mock()
1123         result = opnfv_vnf.generate_config_data()
1124         self.assertIsNone(result)
1125
1126     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.open')
1127     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.os')
1128     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.ConfigParser')
1129     @mock.patch('yardstick.network_services.helpers.samplevnf_helper.OrderedDict')
1130     def test_init_eal(self, mock_open, mock_os, ConfigParser,
1131                       OrderedDict):
1132         topology_file = mock.Mock()
1133         config_tpl = mock.Mock()
1134         tmp_file = mock.Mock()
1135         vnfd_mock = mock.MagicMock()
1136         opnfv_vnf = MultiPortConfig(topology_file, config_tpl, tmp_file, vnfd_mock)
1137         opnfv_vnf.socket = 0
1138         opnfv_vnf.start_core = 0
1139         opnfv_vnf.port_pair_list = [("xe0", "xe1")]
1140         opnfv_vnf.port_pairs = [("xe0", "xe1")]
1141         opnfv_vnf.txrx_pipeline = ''
1142         opnfv_vnf.rules = ''
1143         opnfv_vnf.write_parser = mock.MagicMock()
1144         opnfv_vnf.read_parser = mock.MagicMock()
1145         opnfv_vnf.read_parser.sections = mock.Mock(return_value=['MASTER'])
1146         opnfv_vnf.read_parser.has_option = mock.Mock(return_value=[])
1147         opnfv_vnf.write_parser.set = mock.Mock()
1148         opnfv_vnf.write_parser.add_section = mock.Mock()
1149         opnfv_vnf.read_parser.items = mock.MagicMock()
1150         opnfv_vnf.pipeline_counter = 0
1151         opnfv_vnf.worker_config = '1t'
1152         opnfv_vnf.start_core = 0
1153         opnfv_vnf.lb_count = 1
1154         opnfv_vnf.vnfd = self.VNFD['vnfd:vnfd-catalog']['vnfd'][0]
1155         opnfv_vnf.interfaces = opnfv_vnf.vnfd['vdu'][0]['external-interface']
1156         opnfv_vnf.lb_to_port_pair_mapping = [0, 1]
1157         opnfv_vnf.lb_index = 1
1158         opnfv_vnf.ports_len = 1
1159         opnfv_vnf.pktq_out = ['1', '2']
1160         opnfv_vnf.prv_que_handler = 0
1161         opnfv_vnf.init_write_parser_template = mock.Mock()
1162         opnfv_vnf.arpicmp_tpl = mock.MagicMock()
1163         opnfv_vnf.txrx_tpl = mock.MagicMock()
1164         opnfv_vnf.loadb_tpl = mock.MagicMock()
1165         opnfv_vnf.vnf_tpl = {'public_ip_port_range': '98164810 (1,65535)'}
1166         opnfv_vnf.generate_vnf_data = mock.Mock(return_value={})
1167         opnfv_vnf.update_write_parser = mock.Mock()
1168         opnfv_vnf.tmp_file = "/tmp/config"
1169         result = opnfv_vnf.init_eal()
1170         self.assertIsNone(result)