Merge "Adds ability to power off nodes in clean"
[apex.git] / lib / python / apex_python_utils.py
index 1a3cb15..1f5e407 100755 (executable)
@@ -7,6 +7,7 @@
 # http://www.apache.org/licenses/LICENSE-2.0
 ##############################################################################
 
+import apex
 import argparse
 import sys
 import logging
@@ -22,7 +23,6 @@ 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
 
 
@@ -39,8 +39,10 @@ def parse_net_settings(args):
     """
     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')
+    net_env = NetworkEnvironment(settings, args.net_env_file,
+                                 args.compute_pre_config,
+                                 args.controller_pre_config)
+    dump_yaml(dict(net_env), '/tmp/network-environment.yaml')
     settings.dump_bash()
 
 
@@ -60,6 +62,10 @@ def parse_deploy_settings(args):
     settings.dump_bash()
 
 
+def run_clean(args):
+    apex.clean_nodes(args.file)
+
+
 def find_ip(args):
     """
     Get and print the IP from a specific interface
@@ -94,23 +100,25 @@ def build_nic_template(args):
     """
     template_dir, template = args.template.rsplit('/', 1)
 
-    settings = NetworkSettings(args.net_settings_file,
-                               args.network_isolation).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 = 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,
                           external_net_af=args.address_family,
-                          ovs_dpdk_bridge=args.ovs_dpdk_bridge))
+                          ovs_dpdk_bridge=args.ovs_dpdk_bridge,
+                          nics=nics))
 
 
 def get_parser():
@@ -127,13 +135,24 @@ def get_parser():
                               default='network-settings.yaml',
                               dest='net_settings_file',
                               help='path to network settings file')
-    net_settings.add_argument('-i', '--network-isolation', type=bool,
+    net_settings.add_argument('--flat', action='store_false',
                               default=True, dest='network_isolation',
-                              help='network isolation')
+                              help='disable network isolation')
     net_settings.add_argument('-e', '--net-env-file',
                               default="network-environment.yaml",
                               dest='net_env_file',
                               help='path to network environment file')
+    net_settings.add_argument('--compute-pre-config',
+                              default=False,
+                              action='store_true',
+                              dest='compute_pre_config',
+                              help='Boolean to enable Compute Pre Config')
+    net_settings.add_argument('--controller-pre-config',
+                              action='store_true',
+                              default=False,
+                              dest='controller_pre_config',
+                              help='Boolean to enable Controller Pre Config')
+
     net_settings.set_defaults(func=parse_net_settings)
 
     get_int_ip = subparsers.add_parser('find-ip',
@@ -157,12 +176,9 @@ def get_parser():
                               default='network-settings.yaml',
                               dest='net_settings_file',
                               help='path to network settings file')
-    nic_template.add_argument('-i', '--network-isolation', type=bool,
+    nic_template.add_argument('--flat', action='store_false',
                               default=True, dest='network_isolation',
-                              help='network isolation')
-    nic_template.add_argument('-n', '--enabled-networks', required=True,
-                              dest='enabled_networks',
-                              help='enabled network list')
+                              help='disable network isolation')
     nic_template.add_argument('-e', '--ext-net-type', default='interface',
                               dest='ext_net_type',
                               choices=['interface', 'br-ex'],
@@ -181,6 +197,12 @@ def get_parser():
                                  help='path to deploy settings file')
     deploy_settings.set_defaults(func=parse_deploy_settings)
 
+    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