blob: 792926a10edbdf9a91c285bba77eab46b614f1f0 [file] [log] [blame]
A R Karthick65d950d2016-12-19 19:41:55 -08001#
A R Karthick07608ef2016-08-23 16:51:19 -07002# Copyright 2016-present Ciena Corporation
3#
4# Licensed under the Apache License, Version 2.0 (the "License");
5# you may not use this file except in compliance with the License.
6# You may obtain a copy of the License at
A R Karthick65d950d2016-12-19 19:41:55 -08007#
A R Karthick07608ef2016-08-23 16:51:19 -07008# http://www.apache.org/licenses/LICENSE-2.0
A R Karthick65d950d2016-12-19 19:41:55 -08009#
A R Karthick07608ef2016-08-23 16:51:19 -070010# Unless required by applicable law or agreed to in writing, software
11# distributed under the License is distributed on an "AS IS" BASIS,
12# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13# See the License for the specific language governing permissions and
14# limitations under the License.
15#
16import json
17import os
18import shutil
A R Karthick65d950d2016-12-19 19:41:55 -080019import platform
A R Karthick757eb4d2017-01-09 14:51:16 -080020from CordTestServer import CORD_TEST_HOST, CORD_TEST_PORT
A R Karthick07608ef2016-08-23 16:51:19 -070021
22class TestManifest(object):
23
A R Karthick65d950d2016-12-19 19:41:55 -080024 def __init__(self, manifest = None, args = None):
A R Karthick07608ef2016-08-23 16:51:19 -070025 self.manifest = manifest
A R Karthick65d950d2016-12-19 19:41:55 -080026 if args is not None and manifest is None:
27 self.onos_ip = None
28 self.radius_ip = None
29 self.head_node = platform.node()
30 self.log_level = args.log_level.upper()
31 self.onos_instances = args.onos_instances
32 self.async_mode = args.async_mode
33 self.shared_volume = args.shared_volume
34 self.olt = args.olt
35 self.start_switch = args.start_switch
36 self.image_prefix = args.prefix
37 self.onos_image = args.onos
A.R Karthickb17e2022017-01-27 11:29:26 -080038 self.test_controller = args.test_controller
39 if self.test_controller:
40 ips = self.test_controller.split('/')
41 self.onos_ip = ips[0]
42 if len(ips) > 1:
43 self.radius_ip = ips[1]
44 self.onos_cord = args.onos_cord if args.onos_cord else None
A R Karthick44a95602017-01-23 16:17:16 -080045 self.docker_network = args.network if args.network else None
A R Karthick5af23712017-01-20 09:49:24 -080046 self.iterations = None
A.R Karthickb17e2022017-01-27 11:29:26 -080047 self.server = args.server
A R Karthickc69d73e2017-01-20 11:44:34 -080048 self.jvm_heap_size = args.jvm_heap_size if args.jvm_heap_size else None
A R Karthick65d950d2016-12-19 19:41:55 -080049 else:
50 with open(self.manifest, 'r') as fd:
51 data = json.load(fd)
52 self.onos_ip = data.get('onos', None)
53 self.radius_ip = data.get('radius', None)
A.R Karthickb17e2022017-01-27 11:29:26 -080054 self.test_controller = '' if self.onos_ip is None else self.onos_ip
55 if self.onos_ip and self.radius_ip:
56 self.test_controller = '{}/{}'.format(self.onos_ip, self.radius_ip)
57 self.onos_cord = data.get('onos_cord', None)
A R Karthick65d950d2016-12-19 19:41:55 -080058 self.head_node = data.get('head_node', platform.node())
59 self.log_level = data.get('log_level', 'INFO').upper()
60 self.onos_instances = data.get('onos_instances', 1)
61 self.shared_volume = data.get('shared_volume', True)
62 self.async_mode = True if self.onos_instances > 1 else False
63 self.olt = data.get('olt', True)
64 self.start_switch = data.get('start_switch', self.olt)
65 self.image_prefix = data.get('image_prefix', '')
66 self.onos_image = data.get('onos_image', 'onosproject/onos:latest')
A R Karthick85eb1862017-01-23 16:10:57 -080067 self.docker_network = data.get('docker_network', None)
A R Karthick757eb4d2017-01-09 14:51:16 -080068 self.server = data.get('test_server', '{}:{}'.format(CORD_TEST_HOST, CORD_TEST_PORT))
A R Karthick5af23712017-01-20 09:49:24 -080069 self.iterations = data.get('iterations', None)
A R Karthickc69d73e2017-01-20 11:44:34 -080070 self.jvm_heap_size = data.get('jvm_heap_size', None)