diff options
Diffstat (limited to 'lib/python/apex-python-utils.py')
-rwxr-xr-x | lib/python/apex-python-utils.py | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/lib/python/apex-python-utils.py b/lib/python/apex-python-utils.py new file mode 100755 index 00000000..802e8571 --- /dev/null +++ b/lib/python/apex-python-utils.py @@ -0,0 +1,67 @@ +############################################################################## +# Copyright (c) 2016 Feng Pan (fpan@redhat.com) +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + + +import argparse +import sys +import apex +import logging +import os + +def parse_net_settings(settings_args): + settings = apex.NetworkSettings(settings_args.path, + settings_args.network_isolation) + settings.dump_bash() + + +def find_ip(int_args): + interface = apex.ip_utils.get_interface(int_args.interface, + int_args.address_family) + if interface: + print(interface.ip) + + +parser = argparse.ArgumentParser() +parser.add_argument('--DEBUG', action='store_true', default=False, + help="Turn on debug messages") +subparsers = parser.add_subparsers() + +net_settings = subparsers.add_parser('parse_net_settings', + help='Parse network settings file') +net_settings.add_argument('-n', '--path', default='network_settings.yaml', + help='path to network settings file') +net_settings.add_argument('-i', '--network_isolation', type=bool, default=True, + help='network isolation') +net_settings.set_defaults(func=parse_net_settings) + +get_int_ip = subparsers.add_parser('find_ip', + help='Find interface ip') +get_int_ip.add_argument('-i', '--interface', required=True, + help='Interface name') +get_int_ip.add_argument('-af', '--address_family', default=4, type=int, + choices=[4, 6], + help='IP Address family') +get_int_ip.set_defaults(func=find_ip) + +args = parser.parse_args(sys.argv[1:]) +if args.DEBUG: + logging.basicConfig(level=logging.DEBUG) +else: + apex_log_filename = '/var/log/apex/apex.log' + os.makedirs(os.path.dirname(apex_log_filename), exist_ok=True) + logging.basicConfig(filename=apex_log_filename, + format='%(asctime)s %(levelname)s: %(message)s', + datefmt='%m/%d/%Y %I:%M:%S %p', + level=logging.DEBUG) + +if hasattr(args, 'func'): + args.func(args) +else: + parser.print_help() + exit(1) |