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