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