From 910f198f8ebf0c0f6f9b60f6284bc2ee82e9222b Mon Sep 17 00:00:00 2001 From: Attila Farkas <ati@mail.muni.cz> Date: Wed, 5 Feb 2020 09:25:10 +0100 Subject: [PATCH] create input validation module (without functionality) --- create.py | 11 +++++++++-- modules/input_argument_parser.py | 2 ++ modules/input_file_validator.py | 11 +++++++++++ 3 files changed, 22 insertions(+), 2 deletions(-) create mode 100644 modules/input_file_validator.py diff --git a/create.py b/create.py index b51eb17..29f051a 100644 --- a/create.py +++ b/create.py @@ -10,6 +10,7 @@ from modules.file_generator import generate_vagrantfile, generate_ansible_files from modules.device_creator import open_file from modules.routing import create_border_router from modules.input_argument_parser import parse_input_args +from modules.input_file_validator import validate_device_definitions """ Parsing the input arguments. """ @@ -19,15 +20,21 @@ try: input_file_name = parse_input_args(sys.argv, flags) except Exception: print("Input arguments could not be parsed.") - raise + sys.exit(1) """ Parsing the definitions file. """ try: device_definitions = open_file(input_file_name) except Exception: print("Definitions file could not be parsed.") - raise + sys.exit(1) +""" Validating device definitions. """ +try: + validate_device_definitions(device_definitions) +except Exception: + print("Device definition validation was not sussessful.") + sys.exit(1) # TODO diff --git a/modules/input_argument_parser.py b/modules/input_argument_parser.py index d407790..4156878 100644 --- a/modules/input_argument_parser.py +++ b/modules/input_argument_parser.py @@ -12,6 +12,8 @@ def parse_input_args(argv, flags): input_file_name = None + # TODO implement parsing args using an external module + if len(argv) == 3: if str(argv[1]) == "-l": flags["ansible_local"] = True diff --git a/modules/input_file_validator.py b/modules/input_file_validator.py new file mode 100644 index 0000000..bd38f6f --- /dev/null +++ b/modules/input_file_validator.py @@ -0,0 +1,11 @@ +""" This module contains functions for input file validation. """ + +def validate_device_definitions(definitions): + """ + This function validates the device definitions structure and throws an + error if the syntax is not as expected. + + :param definitions: a device definition structure (dictionary) + """ + + # TODO implement validation -- GitLab