From ec53529b33c22eb54f6d9af5aa14e4ef74340963 Mon Sep 17 00:00:00 2001 From: Dan Radez Date: Tue, 12 Apr 2016 14:39:32 -0400 Subject: Adding VLAN support JIRA: APEX-136 JIRA: APEX-30 Change-Id: I7cbbe11f4c1f1455dba253733c78fe8dc215de97 Signed-off-by: Dan Radez --- lib/python/apex-python-utils.py | 56 ++++++++++++++++++++++++++++++++--------- 1 file changed, 44 insertions(+), 12 deletions(-) (limited to 'lib/python/apex-python-utils.py') diff --git a/lib/python/apex-python-utils.py b/lib/python/apex-python-utils.py index c9dcaa55..01e6b03b 100755 --- a/lib/python/apex-python-utils.py +++ b/lib/python/apex-python-utils.py @@ -9,11 +9,21 @@ import argparse import sys -import apex import logging import os import yaml -from jinja2 import Environment, FileSystemLoader + +from copy import copy + +from jinja2 import Environment +from jinja2 import FileSystemLoader + +from apex import NetworkSettings +from apex import NetworkEnvironment +from apex import DeploySettings +from apex import ip_utils +from apex.common.constants import OPNFV_NETWORK_TYPES +from apex.common.constants import ADMIN_NETWORK def parse_net_settings(args): @@ -27,9 +37,9 @@ def parse_net_settings(args): - network_isolation: bool enable or disable network_isolation """ - settings = apex.NetworkSettings(args.net_settings_file, - args.network_isolation) - net_env = apex.NetworkEnvironment(settings, args.net_env_file) + settings = NetworkSettings(args.net_settings_file, + args.network_isolation) + net_env = NetworkEnvironment(settings, args.net_env_file) dump_yaml(net_env.get_netenv_settings(), '/tmp/network-environment.yaml') settings.dump_bash() @@ -46,7 +56,7 @@ def dump_yaml(data, file): def parse_deploy_settings(args): - settings = apex.DeploySettings(args.file) + settings = DeploySettings(args.file) settings.dump_bash() @@ -60,8 +70,8 @@ def find_ip(args): - address_family: int 4 or 6, respective to ipv4 or ipv6 """ - interface = apex.ip_utils.get_interface(args.interface, - args.address_family) + interface = ip_utils.get_interface(args.interface, + args.address_family) if interface: print(interface.ip) @@ -84,12 +94,24 @@ def build_nic_template(args): """ template_dir, template = args.template.rsplit('/', 1) + settings = NetworkSettings(args.net_settings_file, + args.network_isolation).settings_obj env = Environment(loader=FileSystemLoader(template_dir)) template = env.get_template(template) - print(template.render(enabled_networks=args.enabled_networks, - external_net_type=args.ext_net_type, - external_net_af=args.address_family, - ovs_dpdk_bridge=args.ovs_dpdk_bridge)) + + # gather vlan values into a dict + net_list = copy(args.enabled_networks).split(' ') + net_list.remove(ADMIN_NETWORK) + vlans_vals = map(lambda x: settings[x]['vlan'], net_list) + vlans = dict(zip(net_list, vlans_vals)) + + print(template.render( + enabled_networks=args.enabled_networks, + role=args.role, + vlans=vlans, + external_net_type=args.ext_net_type, + external_net_af=args.address_family, + ovs_dpdk_bridge=args.ovs_dpdk_bridge)) def parse_args(): @@ -126,9 +148,19 @@ def parse_args(): nic_template = subparsers.add_parser('nic-template', help='Build NIC templates') + nic_template.add_argument('-r', '--role', required=True, + choices=['controller', 'compute'], + help='Role template generated for') nic_template.add_argument('-t', '--template', required=True, dest='template', help='Template file to process') + nic_template.add_argument('-s', '--net-settings-file', + default='network-settings.yaml', + dest='net_settings_file', + help='path to network settings file') + nic_template.add_argument('-i', '--network-isolation', type=bool, + default=True, dest='network_isolation', + help='network isolation') nic_template.add_argument('-n', '--enabled-networks', required=True, dest='enabled_networks', help='enabled network list') -- cgit 1.2.3-korg