diff --git a/create.py b/create.py index b51eb17475ad9422f3ba6285dc7af27073b507e5..29f051a7550e56ec0497a42b808b0aac2e1d3320 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 d40779088fbf8fbf4f8161713f9c09ea3c0d16da..41568787feaae4ca945944d6956e68ccd260915f 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 0000000000000000000000000000000000000000..bd38f6f0696f5f206b70d0a7151efd598d2438ba --- /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