diff --git a/modules/input_argument_parser.py b/modules/input_argument_parser.py index a60192f3f859cc2e459f7a6ca4de04af69df3575..e2201750668e56da144179f22d80e535d4650e9d 100644 --- a/modules/input_argument_parser.py +++ b/modules/input_argument_parser.py @@ -1,6 +1,7 @@ """This module contains functions to parse input arguments.""" import argparse +import os def parse_input_args(): @@ -37,7 +38,10 @@ def parse_input_args(): flags["ansible_local"] = args.ansible_local flags["verbose_ansible"] = args.verbose_ansible flags["border_router"] = args.border_router - flags["provisioning_dir"] = args.provisioning_dir - flags["extra_vars"] = args.extra_vars + flags["target_location"] = "sandbox" + if args.provisioning_dir: + flags["provisioning_dir"] = os.path.abspath(os.path.expanduser(args.provisioning_dir)) + if args.extra_vars: + flags["extra_vars"] = os.path.abspath(os.path.expanduser(args.extra_vars)) return input_file_name, flags diff --git a/modules/vagrant_generator.py b/modules/vagrant_generator.py index 04490d3b0398560cc43bb635b75107b03d8f9774..0aca17c670f1f8ce5e536aea8547bc677d63a1e8 100644 --- a/modules/vagrant_generator.py +++ b/modules/vagrant_generator.py @@ -1,5 +1,7 @@ """Contains functions for generating a Vagrantfile from input definitions.""" +import os + from modules.file_manager import generate_file, open_yaml VAGRANT_MAPPING = open_yaml("conf/vagrant_mapping.yml") @@ -137,7 +139,8 @@ def _create_ansible_commands(playbook_location, input_definitions, flags): if "ansible_local" in flags and flags["ansible_local"]: extra_vars_location = "/vagrant/extra_vars.yml" else: - extra_vars_location = flags["extra_vars"] + extra_vars_location = os.path.relpath(flags["extra_vars"], + flags["target_location"]) user_extra_vars = dict() user_extra_vars["type"] = "string" user_extra_vars["command"] = "raw_arguments" @@ -195,8 +198,8 @@ def _call_provisioner(input_definitions, flags): """Create entry to vagrant definitions for calling the provisioner.""" provisioner_calls = [] - if "extra_vars" in flags and flags["extra_vars"] and\ - "ansible_local" in flags and flags["ansible_local"]: + if "extra_vars" in flags and flags["extra_vars"] and \ + "ansible_local" in flags and flags["ansible_local"]: copy_extra_vars = dict() copy_extra_vars["type"] = "provision" copy_extra_vars["provisioner"] = "file" @@ -205,7 +208,8 @@ def _call_provisioner(input_definitions, flags): source_arg = dict() source_arg["type"] = "string" source_arg["command"] = "source" - source_arg["value"] = flags["extra_vars"] + source_arg["value"] = os.path.relpath(flags["extra_vars"], + flags["target_location"]) destination_arg = dict() destination_arg["type"] = "string" destination_arg["command"] = "destination" @@ -213,7 +217,6 @@ def _call_provisioner(input_definitions, flags): copy_extra_vars["commands"] = [source_arg, destination_arg] provisioner_calls.append(copy_extra_vars) - config_playbook = dict() config_playbook["type"] = "provision" if "ansible_local" in flags and flags["ansible_local"]: