blob: 41c668f4cc669a8febc3b56874f51b7ae3b28367 [file] [log] [blame]
# Copyright 2017-present Open Networking Foundation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
from jinja2 import Environment, FileSystemLoader
from urlparse import urlparse
import os
# Capture our current directory
THIS_DIR = os.path.dirname(os.path.abspath(__file__))
openstack_service_info=[]
onos_service_info=[]
class Openstack_Service():
def __init__(self,service_name,target):
self.service_name=service_name
self.target=target
self.service_enable=True
def update_openstack_service_info(self):
if not openstack_service_info:
openstack_service_info.append(self)
else:
for obj in openstack_service_info:
openstack_service_info.remove(obj)
openstack_service_info.append(self)
#openstack_service_info[0].target.append(target)
class Onos_Service():
def __init__(self,service_name,target,resources):
self.service_name=service_name
self.target=target
self.resources=resources
self.service_enable=True
def update_onos_service_info(self):
if not onos_service_info:
onos_service_info.append(self)
else:
for obj in onos_service_info:
onos_service_info.remove(obj)
onos_service_info.append(self)
#onos_service_info[0].target.append(target)
def generate_pipeline_yaml_for_openstack(target,Flag):
# Create the jinja2 environment.
# Notice the use of trim_blocks, which greatly helps control whitespace.
op_service=Openstack_Service("OPENSTACK",target)
op_service.update_openstack_service_info()
parse_target=urlparse(target)
host = parse_target.hostname
port = parse_target.port
with open("pipeline.yaml", 'w') as f:
j2_env = Environment(loader=FileSystemLoader(THIS_DIR),
trim_blocks=True)
context = {
'openstack' : Flag,
'listen_ip_addr': host,
'port_number' : port
}
fp = j2_env.get_template('pipeline.yaml.j2').render (
context)
f.write(fp)
def generate_pipeline_yaml_for_onos(target,resources,Flag):
onos_service=Onos_Service("ONOS",target,resources)
onos_service.update_onos_service_info()
with open("pipeline.yaml", 'w') as f:
j2_env = Environment(loader=FileSystemLoader(THIS_DIR),
trim_blocks=True)
context = {
'onos' : Flag,
'onos_endpoints' : resources,
'onos_target' : target,
'new_line': '\n',
'new_tab': ' '
}
fp = j2_env.get_template('pipeline.yaml.j2').render (
context)
f.write(fp)
def generate_pipeline_yaml_for_openstack_onos(target,Flag):
op_service=Openstack_Service("OPENSTACK",target)
op_service.update_openstack_service_info()
parse_target=urlparse(target)
host = parse_target.hostname
port = parse_target.port
with open("pipeline.yaml", 'w') as f:
j2_env = Environment(loader=FileSystemLoader(THIS_DIR),
trim_blocks=True)
context = {
'openstack' : Flag,
'listen_ip_addr': host,
'port_number' : port,
'onos' : Flag,
'onos_endpoints' : onos_service_info[0].resources,
'onos_target' : onos_service_info[0].target,
'new_line': '\n',
'new_tab': ' '
}
fp = j2_env.get_template('pipeline.yaml.j2').render (
context)
f.write(fp)
def generate_pipeline_yaml_for_onos_openstack(target,resources,Flag):
onos_service=Onos_Service("ONOS",target,resources)
onos_service.update_onos_service_info()
parse_target=urlparse(openstack_service_info[0].target)
host = parse_target.hostname
port = parse_target.port
with open("pipeline.yaml", 'w') as f:
j2_env = Environment(loader=FileSystemLoader(THIS_DIR),
trim_blocks=True)
context = {
'onos' : Flag,
'onos_endpoints' : resources,
'onos_target' : target,
'new_line': '\n',
'new_tab': ' ',
'openstack' : Flag,
'listen_ip_addr': host,
'port_number' : port
}
fp = j2_env.get_template('pipeline.yaml.j2').render (
context)
f.write(fp)