From 7fbe0befeeb8ef921d04943ad4f7668cbac8b8c2 Mon Sep 17 00:00:00 2001 From: Attila Farkas <x394097@fi.muni.cz> Date: Fri, 27 Mar 2020 09:27:28 +0100 Subject: [PATCH] br creation and verbose ansible output using flags --- modules/ansible_vars_generator.py | 25 +++++-------------------- modules/input_argument_parser.py | 4 ++-- modules/preprocessing.py | 3 ++- 3 files changed, 9 insertions(+), 23 deletions(-) diff --git a/modules/ansible_vars_generator.py b/modules/ansible_vars_generator.py index 48f2692..c58aff3 100644 --- a/modules/ansible_vars_generator.py +++ b/modules/ansible_vars_generator.py @@ -59,10 +59,9 @@ def _add_aliases(device_name, input_definitions, flags): for router in input_definitions["routers"]: if router["name"] not in aliases: -# TODO uncomment when br flag is active -# if "border_router" not in flags: -# print("Error: " + device_name + " has no connection to " + router["name"] + " .") -# raise AttributeError + if "border_router" not in flags: + print("Error: " + device_name + " has no connection to " + router["name"] + " .") + raise AttributeError for router_mapping in input_definitions["router_mappings"]: if router_mapping["router"] == router["name"] and router_mapping["network"] == BORDER_ROUTER_NETWORK_NAME: aliases[router_mapping["router"]] = router_mapping["ip"] @@ -88,20 +87,6 @@ def _generate_device_vars(input_definitions, flags): variables = dict() variables["aliases"] = _add_aliases(target_router["name"], input_definitions, flags) dump_to_yaml(variables, "base_provisioning/roles/" + target_router["name"] + "/vars/main.yml") - - -def _create_inventory(input_definitions): - """ Creates an inventory file with host groups. """ - - host_names = [] - for host in input_definitions["hosts"]: - host_names.append(host["name"]) - - router_names = [] - for router in input_definitions["routers"]: - router_names.append(router["name"]) - - generate_file("inventory", "provisioning/inventory.ini", hosts=host_names, routers=router_names) def _generate_hosts_vars(input_definitions, flags): @@ -139,8 +124,8 @@ def _find_default_route(device_name, input_definitions, flags): return None -def _generate_config_vars(input_definitions, flags): - """ Generates vars file for all devices. """ +def _generate_config_vars(input_definitions, flags): # TODO check what vars needs to be in config + """ Generates vars file for all devices. """ # TODO dump to yaml without jinja hosts = [] for host in input_definitions["hosts"]: diff --git a/modules/input_argument_parser.py b/modules/input_argument_parser.py index 4d00ae0..f4eabad 100644 --- a/modules/input_argument_parser.py +++ b/modules/input_argument_parser.py @@ -16,13 +16,13 @@ def parse_input_args(argv, flags): parser.add_argument("definition_file", help="path to the input yaml definition") parser.add_argument("--ansible_local", help="uses ansible_local for provisioning instead of ansible", action="store_true") - parser.add_argument("--verbose_vagrant", help="sets verbose output for vagrant", action="store_true") + parser.add_argument("--verbose_ansible", help="sets verbose output for ansible", action="store_true") parser.add_argument("--border_router", help="creates a border router with connection to all routers", action="store_true") args = parser.parse_args() input_file_name = args.definition_file flags["ansible_local"] = args.ansible_local - flags["verbose_vagrant"] = args.verbose_vagrant + flags["verbose_ansible"] = args.verbose_ansible flags["border_router"] = args.border_router return input_file_name diff --git a/modules/preprocessing.py b/modules/preprocessing.py index cc70c65..88f7197 100644 --- a/modules/preprocessing.py +++ b/modules/preprocessing.py @@ -45,7 +45,8 @@ def preprocess(definitions, flags): """ try: - create_border_router(definitions) + if "border_router" in flags and flags["border_router"]: + create_border_router(definitions) except Exception: print("Could not create border router.") raise -- GitLab