diff --git a/modules/vagrant_generator.py b/modules/vagrant_generator.py index 29f8d9be50efc860c5a7e1fc2842550f9c267fc6..79bbc1d02836f4c2a08cea70a6df9619622fb5f2 100644 --- a/modules/vagrant_generator.py +++ b/modules/vagrant_generator.py @@ -96,7 +96,7 @@ def _create_commands(device_attributes): return commands -def _create_ansible_commands(playbook_location, input_definitions, flags): +def _create_ansible_commands(device_name, playbook_location, input_definitions, flags): """Create commands for running a playbook from the Vagrantfile.""" commands = [] @@ -106,6 +106,12 @@ def _create_ansible_commands(playbook_location, input_definitions, flags): playbook["value"] = playbook_location commands.append(playbook) + limit = dict() + limit["type"] = "string" + limit["command"] = "limit" + limit["value"] = device_name + commands.append(limit) + if "verbose_ansible" in flags and flags["verbose_ansible"]: verbosity = dict() verbosity["type"] = "string" @@ -196,7 +202,7 @@ def _add_all_networks(vagrant_definitions, input_definitions, flags): input_definitions) -def _call_provisioner(input_definitions, flags): +def _call_provisioner(device_name, input_definitions, flags): """Create entry to vagrant definitions for calling the provisioner.""" provisioner_calls = [] @@ -207,7 +213,8 @@ def _call_provisioner(input_definitions, flags): else: config_playbook["provisioner"] = "ansible" config_playbook["note"] = "basic configuration of devices and networks" - config_playbook["commands"] = _create_ansible_commands(BASE_PLAYBOOK, + config_playbook["commands"] = _create_ansible_commands(device_name, + BASE_PLAYBOOK, input_definitions, flags) @@ -220,7 +227,8 @@ def _call_provisioner(input_definitions, flags): else: user_playbook["provisioner"] = "ansible" user_playbook["note"] = "user configuration of devices" - user_playbook["commands"] = _create_ansible_commands(USER_PLAYBOOK, + user_playbook["commands"] = _create_ansible_commands(device_name, + USER_PLAYBOOK, input_definitions, flags) @@ -250,7 +258,7 @@ def _build_vagrant_definitions(input_definitions, flags): device["type"] = "router" device["name"] = router["name"] device["commands"] = _create_commands(router) - device["commands"].extend(_call_provisioner(input_definitions, flags)) + device["commands"].extend(_call_provisioner(device["name"], input_definitions, flags)) vagrant_definitions.append(device) windows_hosts = _find_windows_boxes(input_definitions) @@ -261,9 +269,9 @@ def _build_vagrant_definitions(input_definitions, flags): device["name"] = host["name"] device["commands"] = _create_commands(host) if host["name"] in windows_hosts: - windows_provisioning_commands.extend(_call_provisioner(input_definitions, flags)) + windows_provisioning_commands.extend(_call_provisioner(device["name"], input_definitions, flags)) else: - device["commands"].extend(_call_provisioner(input_definitions, flags)) + device["commands"].extend(_call_provisioner(device["name"], input_definitions, flags)) if host["name"] == CONTROLLER_NAME: device["commands"].extend(windows_provisioning_commands) vagrant_definitions.append(device)