# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
+import apex
import argparse
import sys
import logging
from apex import NetworkSettings
from apex import NetworkEnvironment
from apex import DeploySettings
+from apex import Inventory
from apex import ip_utils
from apex.common.constants import ADMIN_NETWORK
net_env = NetworkEnvironment(settings, args.net_env_file,
args.compute_pre_config,
args.controller_pre_config)
- dump_yaml(net_env.get_netenv_settings(), '/tmp/network-environment.yaml')
+ dump_yaml(dict(net_env), '/tmp/network-environment.yaml')
settings.dump_bash()
settings.dump_bash()
+def run_clean(args):
+ apex.clean_nodes(args.file)
+
+
+def parse_inventory(args):
+ inventory = Inventory(args.file, ha=args.ha, virtual=args.virtual)
+ inventory.dump_instackenv_json()
+
+
def find_ip(args):
"""
Get and print the IP from a specific interface
"""
template_dir, template = args.template.rsplit('/', 1)
- network_settings = NetworkSettings(args.net_settings_file,
- args.network_isolation)
- settings = network_settings.settings_obj
+ netsets = NetworkSettings(args.net_settings_file,
+ args.network_isolation)
env = Environment(loader=FileSystemLoader(template_dir))
template = env.get_template(template)
# gather vlan values into a dict
- net_list = copy(args.enabled_networks).split(' ')
+ net_list = copy(netsets.enabled_network_list)
net_list.remove(ADMIN_NETWORK)
- vlans_vals = map(lambda x: settings[x]['vlan'], net_list)
+ vlans_vals = map(lambda x: netsets[x]['vlan'], net_list)
vlans = dict(zip(net_list, vlans_vals))
- nics = network_settings.nics
+ nics = netsets.nics
- print(template.render(enabled_networks=args.enabled_networks,
+ print(template.render(enabled_networks=netsets.enabled_network_list,
role=args.role,
vlans=vlans,
external_net_type=args.ext_net_type,
parser.add_argument('-l', '--log-file', default='/var/log/apex/apex.log',
dest='log_file', help="Log file to log to")
subparsers = parser.add_subparsers()
-
+ # parse-net-settings
net_settings = subparsers.add_parser('parse-net-settings',
help='Parse network settings file')
net_settings.add_argument('-s', '--net-settings-file',
help='Boolean to enable Controller Pre Config')
net_settings.set_defaults(func=parse_net_settings)
-
+ # find-ip
get_int_ip = subparsers.add_parser('find-ip',
help='Find interface ip')
get_int_ip.add_argument('-i', '--interface', required=True,
choices=[4, 6], dest='address_family',
help='IP Address family')
get_int_ip.set_defaults(func=find_ip)
-
+ # nic-template
nic_template = subparsers.add_parser('nic-template',
help='Build NIC templates')
nic_template.add_argument('-r', '--role', required=True,
nic_template.add_argument('--flat', action='store_false',
default=True, dest='network_isolation',
help='disable network isolation')
- nic_template.add_argument('-n', '--enabled-networks', required=True,
- dest='enabled_networks',
- help='enabled network list')
nic_template.add_argument('-e', '--ext-net-type', default='interface',
dest='ext_net_type',
choices=['interface', 'br-ex'],
default=None, dest='ovs_dpdk_bridge',
help='OVS DPDK Bridge Name')
nic_template.set_defaults(func=build_nic_template)
-
+ # parse-deploy-settings
deploy_settings = subparsers.add_parser('parse-deploy-settings',
help='Parse deploy settings file')
deploy_settings.add_argument('-f', '--file',
default='deploy_settings.yaml',
help='path to deploy settings file')
deploy_settings.set_defaults(func=parse_deploy_settings)
+ # parse-inventory
+ inventory = subparsers.add_parser('parse-inventory',
+ help='Parse inventory file')
+ inventory.add_argument('-f', '--file',
+ default='deploy_settings.yaml',
+ help='path to deploy settings file')
+ inventory.add_argument('--ha',
+ default=False,
+ action='store_true',
+ help='Indicate if deployment is HA or not')
+ inventory.add_argument('--virtual',
+ default=False,
+ action='store_true',
+ help='Indicate if deployment inventory is virtual')
+ inventory.set_defaults(func=parse_inventory)
+
+ clean = subparsers.add_parser('clean',
+ help='Parse deploy settings file')
+ clean.add_argument('-f', '--file',
+ help='path to inventory file')
+ clean.set_defaults(func=run_clean)
return parser