blob: 41c668f4cc669a8febc3b56874f51b7ae3b28367 [file] [log] [blame]
Matteo Scandoloeb0d11c2017-08-08 13:05:26 -07001
2# Copyright 2017-present Open Networking Foundation
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
7#
8# http://www.apache.org/licenses/LICENSE-2.0
9#
10# 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
16
rdudyala996d70b2016-10-13 17:40:55 +000017from jinja2 import Environment, FileSystemLoader
18from urlparse import urlparse
19import os
20
21# Capture our current directory
22THIS_DIR = os.path.dirname(os.path.abspath(__file__))
23
24openstack_service_info=[]
25onos_service_info=[]
26class Openstack_Service():
27 def __init__(self,service_name,target):
28 self.service_name=service_name
29 self.target=target
30 self.service_enable=True
31 def update_openstack_service_info(self):
32 if not openstack_service_info:
33 openstack_service_info.append(self)
34 else:
35 for obj in openstack_service_info:
36 openstack_service_info.remove(obj)
37 openstack_service_info.append(self)
38 #openstack_service_info[0].target.append(target)
39
40class Onos_Service():
41 def __init__(self,service_name,target,resources):
42 self.service_name=service_name
43 self.target=target
44 self.resources=resources
45 self.service_enable=True
46 def update_onos_service_info(self):
47 if not onos_service_info:
48 onos_service_info.append(self)
49 else:
50 for obj in onos_service_info:
51 onos_service_info.remove(obj)
52 onos_service_info.append(self)
53 #onos_service_info[0].target.append(target)
54
55def generate_pipeline_yaml_for_openstack(target,Flag):
56 # Create the jinja2 environment.
57 # Notice the use of trim_blocks, which greatly helps control whitespace.
58 op_service=Openstack_Service("OPENSTACK",target)
59 op_service.update_openstack_service_info()
60 parse_target=urlparse(target)
61 host = parse_target.hostname
62 port = parse_target.port
63 with open("pipeline.yaml", 'w') as f:
64 j2_env = Environment(loader=FileSystemLoader(THIS_DIR),
65 trim_blocks=True)
66 context = {
67 'openstack' : Flag,
68 'listen_ip_addr': host,
69 'port_number' : port
70 }
71 fp = j2_env.get_template('pipeline.yaml.j2').render (
72 context)
73 f.write(fp)
74
75def generate_pipeline_yaml_for_onos(target,resources,Flag):
76
77 onos_service=Onos_Service("ONOS",target,resources)
78 onos_service.update_onos_service_info()
79 with open("pipeline.yaml", 'w') as f:
80 j2_env = Environment(loader=FileSystemLoader(THIS_DIR),
81 trim_blocks=True)
82 context = {
83 'onos' : Flag,
84 'onos_endpoints' : resources,
85 'onos_target' : target,
86 'new_line': '\n',
87 'new_tab': ' '
88 }
89 fp = j2_env.get_template('pipeline.yaml.j2').render (
90 context)
91 f.write(fp)
92
93def generate_pipeline_yaml_for_openstack_onos(target,Flag):
94
95 op_service=Openstack_Service("OPENSTACK",target)
96 op_service.update_openstack_service_info()
97 parse_target=urlparse(target)
98 host = parse_target.hostname
99 port = parse_target.port
100 with open("pipeline.yaml", 'w') as f:
101 j2_env = Environment(loader=FileSystemLoader(THIS_DIR),
102 trim_blocks=True)
103 context = {
104 'openstack' : Flag,
105 'listen_ip_addr': host,
106 'port_number' : port,
107 'onos' : Flag,
108 'onos_endpoints' : onos_service_info[0].resources,
109 'onos_target' : onos_service_info[0].target,
110 'new_line': '\n',
111 'new_tab': ' '
112 }
113 fp = j2_env.get_template('pipeline.yaml.j2').render (
114 context)
115 f.write(fp)
116
117def generate_pipeline_yaml_for_onos_openstack(target,resources,Flag):
118
119 onos_service=Onos_Service("ONOS",target,resources)
120 onos_service.update_onos_service_info()
121
122 parse_target=urlparse(openstack_service_info[0].target)
123 host = parse_target.hostname
124 port = parse_target.port
125
126 with open("pipeline.yaml", 'w') as f:
127 j2_env = Environment(loader=FileSystemLoader(THIS_DIR),
128 trim_blocks=True)
129 context = {
130 'onos' : Flag,
131 'onos_endpoints' : resources,
132 'onos_target' : target,
133 'new_line': '\n',
134 'new_tab': ' ',
135 'openstack' : Flag,
136 'listen_ip_addr': host,
137 'port_number' : port
138 }
139 fp = j2_env.get_template('pipeline.yaml.j2').render (
140 context)
141 f.write(fp)