From e9957c39d57a5ce3acf10cd65c74dfc82208453a Mon Sep 17 00:00:00 2001 From: Wong Hoi Sing Edison Date: Thu, 18 May 2023 16:47:01 +0800 Subject: [PATCH] [PATCH] `driver.provider.name` Overrided by `VAGRANT_DEFAULT_PROVIDER` In case environment variable `VAGRANT_DEFAULT_PROVIDER` is defined (see ), our `driver.provider.name` will have no effect and always start with above default provider as specifiied. With python-vagrant `up()` (see ) we could specify the target provider with `provider` option, where our current wrapper only provide the `provision` option. See https://github.com/ansible-community/molecule-vagrant/pull/174 Signed-off-by: Wong Hoi Sing Edison --- src/molecule_plugins/vagrant/modules/vagrant.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/molecule_plugins/vagrant/modules/vagrant.py b/src/molecule_plugins/vagrant/modules/vagrant.py index 0e09428..769a9a0 100755 --- a/src/molecule_plugins/vagrant/modules/vagrant.py +++ b/src/molecule_plugins/vagrant/modules/vagrant.py @@ -369,6 +369,7 @@ def merge_dicts(a: MutableMapping, b: MutableMapping) -> MutableMapping: class VagrantClient: def __init__(self, module) -> None: self._module = module + self.provider = self._module.params["provider_name"] self.provision = self._module.params["provision"] self.cachier = self._module.params["cachier"] @@ -456,9 +457,10 @@ def up(self): changed = False if self._running() != len(self.instances): changed = True + provider = self.provider provision = self.provision with contextlib.suppress(Exception): - self._vagrant.up(provision=provision) + self._vagrant.up(provider=provider, provision=provision) # NOTE(retr0h): Ansible wants only one module return `fail_json` # or `exit_json`. @@ -714,7 +716,7 @@ def main(): "provider_options": {"type": "dict", "default": {}}, "provider_override_args": {"type": "list", "default": None}, "provider_raw_config_args": {"type": "list", "default": None}, - "provider_name": {"type": "str", "default": "virtualbox"}, + "provider_name": {"type": "str", "required": False, "default": "virtualbox"}, "default_box": {"type": "str", "default": None}, "provision": {"type": "bool", "default": False}, "force_stop": {"type": "bool", "default": False},