molecule-plugins 23.6.0__tar.gz → 23.7.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/.github/workflows/release.yml +2 -2
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/.github/workflows/tox.yml +2 -2
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/PKG-INFO +29 -6
- molecule_plugins-23.7.0/README.md +45 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/conftest.py +4 -2
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/doc/openstack/platforms.rst +10 -1
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/pyproject.toml +8 -8
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/requirements.yml +1 -1
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/src/molecule_plugins/_version.py +2 -2
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/src/molecule_plugins/docker/driver.py +1 -2
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/src/molecule_plugins/ec2/driver.py +1 -1
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/src/molecule_plugins/gce/playbooks/tasks/create_linux_instance.yml +3 -1
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/src/molecule_plugins/gce/playbooks/tasks/create_windows_instance.yml +4 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/src/molecule_plugins/openstack/driver.py +2 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/src/molecule_plugins/openstack/playbooks/create.yml +2 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/src/molecule_plugins/podman/driver.py +6 -3
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/src/molecule_plugins/podman/playbooks/create.yml +1 -1
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/src/molecule_plugins/vagrant/modules/vagrant.py +72 -67
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/src/molecule_plugins.egg-info/PKG-INFO +29 -6
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/src/molecule_plugins.egg-info/requires.txt +2 -2
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/test/azure/functional/test_azure.py +7 -6
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/test/containers/functional/test_containers.py +5 -3
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/test/docker/test_func.py +13 -8
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/test/ec2/functional/test_ec2.py +5 -4
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/test/gce/functional/test_func.py +5 -4
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/test/openstack/test_func.py +5 -4
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/test/podman/test_func.py +13 -6
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/test/vagrant-plugin/functional/test_func.py +9 -9
- molecule_plugins-23.6.0/README.md +0 -21
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/.ansible-lint +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/.ansible-lint-ignore +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/.flake8 +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/.github/dependabot.yml +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/.github/release-drafter.yml +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/.github/workflows/ack.yml +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/.github/workflows/push.yml +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/.gitignore +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/.pre-commit-config.yaml +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/LICENSE +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/MANIFEST.in +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/bindep.txt +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/doc/ec2/README.rst +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/doc/ec2/platforms.rst +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/doc/openstack/README.rst +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/doc/vagrant/README.rst +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/molecule/test-podman/converge.yml +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/molecule/test-podman/molecule.yml +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/molecule/test-podman/verify.yml +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/mypy.ini +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/pytest.ini +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/setup.cfg +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/src/molecule_plugins/__init__.py +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/src/molecule_plugins/azure/__init__.py +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/src/molecule_plugins/azure/cookiecutter/cookiecutter.json +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/src/molecule_plugins/azure/cookiecutter/{{cookiecutter.molecule_directory}}/{{cookiecutter.scenario_name}}/INSTALL.rst +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/src/molecule_plugins/azure/cookiecutter/{{cookiecutter.molecule_directory}}/{{cookiecutter.scenario_name}}/converge.yml +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/src/molecule_plugins/azure/cookiecutter/{{cookiecutter.molecule_directory}}/{{cookiecutter.scenario_name}}/create.yml +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/src/molecule_plugins/azure/cookiecutter/{{cookiecutter.molecule_directory}}/{{cookiecutter.scenario_name}}/destroy.yml +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/src/molecule_plugins/azure/driver.py +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/src/molecule_plugins/containers/__init__.py +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/src/molecule_plugins/containers/cookiecutter/cookiecutter.json +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/src/molecule_plugins/containers/cookiecutter/{{cookiecutter.molecule_directory}}/{{cookiecutter.scenario_name}}/converge.yml +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/src/molecule_plugins/containers/driver.py +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/src/molecule_plugins/docker/__init__.py +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/src/molecule_plugins/docker/cookiecutter/cookiecutter.json +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/src/molecule_plugins/docker/cookiecutter/{{cookiecutter.molecule_directory}}/{{cookiecutter.scenario_name}}/converge.yml +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/src/molecule_plugins/docker/playbooks/Dockerfile.j2 +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/src/molecule_plugins/docker/playbooks/create.yml +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/src/molecule_plugins/docker/playbooks/destroy.yml +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/src/molecule_plugins/docker/playbooks/filter_plugins/get_docker_networks.py +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/src/molecule_plugins/docker/playbooks/tasks/create_network.yml +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/src/molecule_plugins/docker/playbooks/tasks/delete_network.yml +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/src/molecule_plugins/docker/playbooks/validate-dockerfile.yml +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/src/molecule_plugins/ec2/__init__.py +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/src/molecule_plugins/ec2/cookiecutter/cookiecutter.json +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/src/molecule_plugins/ec2/cookiecutter/{{cookiecutter.molecule_directory}}/{{cookiecutter.scenario_name}}/INSTALL.rst +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/src/molecule_plugins/ec2/cookiecutter/{{cookiecutter.molecule_directory}}/{{cookiecutter.scenario_name}}/converge.yml +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/src/molecule_plugins/ec2/cookiecutter/{{cookiecutter.molecule_directory}}/{{cookiecutter.scenario_name}}/create.yml +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/src/molecule_plugins/ec2/cookiecutter/{{cookiecutter.molecule_directory}}/{{cookiecutter.scenario_name}}/destroy.yml +5 -5
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/src/molecule_plugins/ec2/cookiecutter/{{cookiecutter.molecule_directory}}/{{cookiecutter.scenario_name}}/prepare.yml +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/src/molecule_plugins/gce/__init__.py +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/src/molecule_plugins/gce/cookiecutter/cookiecutter.json +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/src/molecule_plugins/gce/cookiecutter/{{cookiecutter.molecule_directory}}/{{cookiecutter.scenario_name}}/converge.yml +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/src/molecule_plugins/gce/driver.py +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/src/molecule_plugins/gce/playbooks/create.yml +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/src/molecule_plugins/gce/playbooks/destroy.yml +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/src/molecule_plugins/gce/playbooks/files/windows_auth.py +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/src/molecule_plugins/gce/playbooks/handlers/main.yml +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/src/molecule_plugins/openstack/__init__.py +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/src/molecule_plugins/openstack/cookiecutter/cookiecutter.json +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/src/molecule_plugins/openstack/cookiecutter/{{cookiecutter.molecule_directory}}/{{cookiecutter.scenario_name}}/converge.yml +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/src/molecule_plugins/openstack/playbooks/destroy.yml +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/src/molecule_plugins/openstack/playbooks/prepare.yml +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/src/molecule_plugins/openstack/playbooks/tasks/server_addr.yml +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/src/molecule_plugins/openstack/playbooks/tasks/vars.yml +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/src/molecule_plugins/podman/__init__.py +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/src/molecule_plugins/podman/cookiecutter/cookiecutter.json +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/src/molecule_plugins/podman/cookiecutter/{{cookiecutter.molecule_directory}}/{{cookiecutter.scenario_name}}/converge.yml +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/src/molecule_plugins/podman/playbooks/Dockerfile.j2 +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/src/molecule_plugins/podman/playbooks/destroy.yml +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/src/molecule_plugins/podman/playbooks/validate-dockerfile.yml +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/src/molecule_plugins/py.typed +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/src/molecule_plugins/vagrant/__init__.py +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/src/molecule_plugins/vagrant/cookiecutter/cookiecutter.json +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/src/molecule_plugins/vagrant/cookiecutter/{{cookiecutter.molecule_directory}}/{{cookiecutter.scenario_name}}/INSTALL.rst +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/src/molecule_plugins/vagrant/cookiecutter/{{cookiecutter.molecule_directory}}/{{cookiecutter.scenario_name}}/converge.yml +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/src/molecule_plugins/vagrant/driver.py +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/src/molecule_plugins/vagrant/modules/__init__.py +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/src/molecule_plugins/vagrant/playbooks/create.yml +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/src/molecule_plugins/vagrant/playbooks/destroy.yml +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/src/molecule_plugins/vagrant/playbooks/prepare.yml +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/src/molecule_plugins.egg-info/SOURCES.txt +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/src/molecule_plugins.egg-info/dependency_links.txt +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/src/molecule_plugins.egg-info/entry_points.txt +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/src/molecule_plugins.egg-info/top_level.txt +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/test/azure/__init__.py +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/test/azure/functional/__init__.py +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/test/azure/functional/conftest.py +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/test/azure/scenarios/driver/azure/molecule/default/converge.yml +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/test/azure/scenarios/driver/azure/molecule/default/molecule.yml +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/test/azure/scenarios/driver/azure/molecule/default/tests/test_default.py +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/test/azure/scenarios/driver/azure/molecule/multi-node/converge.yml +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/test/azure/scenarios/driver/azure/molecule/multi-node/molecule.yml +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/test/azure/scenarios/driver/azure/molecule/multi-node/prepare.yml +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/test/azure/scenarios/driver/azure/molecule/multi-node/tests/__init__.py +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/test/azure/scenarios/driver/azure/molecule/multi-node/tests/test_default.py +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/test/azure/test_driver.py +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/test/containers/__init__.py +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/test/containers/functional/.ansible-lint +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/test/containers/functional/__init__.py +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/test/containers/functional/conftest.py +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/test/containers/scenarios/driver/containers/molecule/default/converge.yml +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/test/containers/scenarios/driver/containers/molecule/default/molecule.yml +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/test/containers/test_driver.py +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/test/docker/__init__.py +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/test/docker/conftest.py +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/test/docker/scenarios/env-substitution/molecule/default/converge.yml +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/test/docker/scenarios/env-substitution/molecule/default/molecule.yml +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/test/docker/scenarios/with-context/molecule/default/Dockerfile.j2 +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/test/docker/scenarios/with-context/molecule/default/FOO +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/test/docker/scenarios/with-context/molecule/default/converge.yml +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/test/docker/scenarios/with-context/molecule/default/molecule.yml +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/test/docker/test_driver.py +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/test/ec2/__init__.py +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/test/ec2/functional/.ansible-lint +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/test/ec2/functional/__init__.py +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/test/ec2/functional/conftest.py +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/test/ec2/scenarios/driver/ec2/molecule/default/converge.yml +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/test/ec2/scenarios/driver/ec2/molecule/default/molecule.yml +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/test/ec2/scenarios/driver/ec2/molecule/default/prepare.yml +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/test/ec2/scenarios/driver/ec2/molecule/default/tests/test_default.py +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/test/ec2/scenarios/driver/ec2/molecule/multi-node/converge.yml +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/test/ec2/scenarios/driver/ec2/molecule/multi-node/molecule.yml +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/test/ec2/scenarios/driver/ec2/molecule/multi-node/prepare.yml +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/test/ec2/scenarios/driver/ec2/molecule/multi-node/tests/__init__.py +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/test/ec2/scenarios/driver/ec2/molecule/multi-node/tests/test_default.py +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/test/ec2/test_driver.py +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/test/gce/__init__.py +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/test/gce/functional/.ansible-lint +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/test/gce/functional/__init__.py +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/test/gce/functional/conftest.py +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/test/gce/scenarios/linux/INSTALL.md +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/test/gce/scenarios/linux/converge.yml +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/test/gce/scenarios/linux/create.yml +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/test/gce/scenarios/linux/destroy.yml +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/test/gce/scenarios/linux/files/windows_auth.py +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/test/gce/scenarios/linux/handlers/main.yml +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/test/gce/scenarios/linux/molecule.yml +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/test/gce/scenarios/linux/prepare.yml +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/test/gce/scenarios/linux/requirements.yml +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/test/gce/scenarios/linux/tasks/create_linux_instance.yml +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/test/gce/scenarios/linux/tasks/create_windows_instance.yml +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/test/gce/scenarios/linux/verify.yml +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/test/gce/scenarios/windows/INSTALL.md +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/test/gce/scenarios/windows/converge.yml +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/test/gce/scenarios/windows/create.yml +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/test/gce/scenarios/windows/destroy.yml +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/test/gce/scenarios/windows/files/windows_auth.py +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/test/gce/scenarios/windows/handlers/main.yml +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/test/gce/scenarios/windows/molecule.yml +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/test/gce/scenarios/windows/prepare.yml +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/test/gce/scenarios/windows/requirements.yml +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/test/gce/scenarios/windows/tasks/create_linux_instance.yml +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/test/gce/scenarios/windows/tasks/create_windows_instance.yml +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/test/gce/scenarios/windows/verify.yml +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/test/gce/test_driver.py +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/test/openstack/.ansible-lint +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/test/openstack/__init__.py +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/test/openstack/conftest.py +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/test/openstack/scenarios/molecule/default/converge.yml +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/test/openstack/scenarios/molecule/default/molecule.yml +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/test/openstack/scenarios/molecule/multiple/converge.yml +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/test/openstack/scenarios/molecule/multiple/molecule.yml +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/test/openstack/scenarios/molecule/network/converge.yml +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/test/openstack/scenarios/molecule/network/molecule.yml +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/test/openstack/scenarios/molecule/security_group/converge.yml +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/test/openstack/scenarios/molecule/security_group/molecule.yml +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/test/openstack/scenarios/molecule/volume/converge.yml +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/test/openstack/scenarios/molecule/volume/molecule.yml +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/test/openstack/test_driver.py +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/test/podman/__init__.py +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/test/podman/conftest.py +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/test/podman/test_driver.py +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/test/vagrant-plugin/__init__.py +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/test/vagrant-plugin/functional/__init__.py +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/test/vagrant-plugin/functional/conftest.py +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/test/vagrant-plugin/scenarios/molecule/box_url/converge.yml +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/test/vagrant-plugin/scenarios/molecule/box_url/molecule.yml +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/test/vagrant-plugin/scenarios/molecule/config_options/converge.yml +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/test/vagrant-plugin/scenarios/molecule/config_options/molecule.yml +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/test/vagrant-plugin/scenarios/molecule/config_options/verify.yml +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/test/vagrant-plugin/scenarios/molecule/default/converge.yml +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/test/vagrant-plugin/scenarios/molecule/default/molecule.yml +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/test/vagrant-plugin/scenarios/molecule/default-compat/converge.yml +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/test/vagrant-plugin/scenarios/molecule/default-compat/create.yml +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/test/vagrant-plugin/scenarios/molecule/default-compat/destroy.yml +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/test/vagrant-plugin/scenarios/molecule/default-compat/molecule.yml +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/test/vagrant-plugin/scenarios/molecule/hostname/converge.yml +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/test/vagrant-plugin/scenarios/molecule/hostname/molecule.yml +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/test/vagrant-plugin/scenarios/molecule/hostname/verify.yml +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/test/vagrant-plugin/scenarios/molecule/invalid/converge.yml +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/test/vagrant-plugin/scenarios/molecule/invalid/molecule.yml +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/test/vagrant-plugin/scenarios/molecule/multi-node/converge.yml +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/test/vagrant-plugin/scenarios/molecule/multi-node/molecule.yml +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/test/vagrant-plugin/scenarios/molecule/multi-node/verify.yml +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/test/vagrant-plugin/scenarios/molecule/network/converge.yml +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/test/vagrant-plugin/scenarios/molecule/network/molecule.yml +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/test/vagrant-plugin/scenarios/molecule/network/verify.yml +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/test/vagrant-plugin/scenarios/molecule/provider_config_options/converge.yml +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/test/vagrant-plugin/scenarios/molecule/provider_config_options/molecule.yml +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/test/vagrant-plugin/scenarios/molecule/provider_config_options/verify.yml +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/test/vagrant-plugin/scenarios/molecule/vagrant_root/converge.yml +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/test/vagrant-plugin/scenarios/molecule/vagrant_root/molecule.yml +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/test/vagrant-plugin/scenarios/molecule/vagrant_root/verify.yml +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/test/vagrant-plugin/test_driver.py +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/tools/Vagrantfile +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/tools/create_testbox.sh +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/tools/extract_plugin_names.py +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/tools/generate-templates.sh +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/tools/test-setup.sh +0 -0
- {molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/tox.ini +0 -0
|
@@ -19,10 +19,10 @@ jobs:
|
|
|
19
19
|
TOX_PARALLEL_NO_SPINNER: 1
|
|
20
20
|
|
|
21
21
|
steps:
|
|
22
|
-
- name: Switch to using Python 3.
|
|
22
|
+
- name: Switch to using Python 3.10 by default
|
|
23
23
|
uses: actions/setup-python@v5
|
|
24
24
|
with:
|
|
25
|
-
python-version: 3.
|
|
25
|
+
python-version: "3.10"
|
|
26
26
|
|
|
27
27
|
- name: Install tox
|
|
28
28
|
run: >-
|
|
@@ -23,9 +23,9 @@ jobs:
|
|
|
23
23
|
id: generate_matrix
|
|
24
24
|
uses: coactions/dynamic-matrix@v1
|
|
25
25
|
with:
|
|
26
|
-
min_python: "3.
|
|
26
|
+
min_python: "3.10"
|
|
27
27
|
max_python: "3.12"
|
|
28
|
-
default_python: "3.
|
|
28
|
+
default_python: "3.10" # used by jobs in other_names
|
|
29
29
|
other_names: |
|
|
30
30
|
lint
|
|
31
31
|
pkg
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.2
|
|
2
2
|
Name: molecule-plugins
|
|
3
|
-
Version: 23.
|
|
3
|
+
Version: 23.7.0
|
|
4
4
|
Summary: Molecule Plugins
|
|
5
5
|
Author-email: Sorin Sbarnea <sorin.sbarnea@gmail.com>
|
|
6
6
|
Maintainer-email: Sorin Sbarnea <sorin.sbarnea@gmail.com>
|
|
@@ -19,7 +19,6 @@ Classifier: License :: OSI Approved :: MIT License
|
|
|
19
19
|
Classifier: Operating System :: MacOS
|
|
20
20
|
Classifier: Operating System :: POSIX
|
|
21
21
|
Classifier: Programming Language :: Python :: 3
|
|
22
|
-
Classifier: Programming Language :: Python :: 3.9
|
|
23
22
|
Classifier: Programming Language :: Python :: 3.10
|
|
24
23
|
Classifier: Programming Language :: Python :: 3.11
|
|
25
24
|
Classifier: Programming Language :: Python :: 3.12
|
|
@@ -29,13 +28,13 @@ Classifier: Topic :: System :: Systems Administration
|
|
|
29
28
|
Classifier: Topic :: Software Development :: Quality Assurance
|
|
30
29
|
Classifier: Topic :: Software Development :: Testing
|
|
31
30
|
Classifier: Topic :: Utilities
|
|
32
|
-
Requires-Python: >=3.
|
|
31
|
+
Requires-Python: >=3.10
|
|
33
32
|
Description-Content-Type: text/markdown
|
|
34
33
|
License-File: LICENSE
|
|
35
|
-
Requires-Dist: molecule>=
|
|
34
|
+
Requires-Dist: molecule>=25.1.0
|
|
36
35
|
Provides-Extra: test
|
|
37
36
|
Requires-Dist: pytest-helpers-namespace>=2019.1.8; extra == "test"
|
|
38
|
-
Requires-Dist: molecule[test]>=
|
|
37
|
+
Requires-Dist: molecule[test]>=25.1.0; extra == "test"
|
|
39
38
|
Provides-Extra: azure
|
|
40
39
|
Provides-Extra: docker
|
|
41
40
|
Requires-Dist: selinux; sys_platform == "linux2" and extra == "docker"
|
|
@@ -76,3 +75,27 @@ Before installing these plugins be sure that you uninstall their old standalone
|
|
|
76
75
|
packages, like `pip3 uninstall molecule-azure`. If you fail to do so, you will
|
|
77
76
|
end-up with a broken setup, as multiple plugins will have the same entry points,
|
|
78
77
|
registered.
|
|
78
|
+
|
|
79
|
+
## Creating new releases
|
|
80
|
+
|
|
81
|
+
The `release.yml` workflow generates the wheel and uploads the release to PyPI.
|
|
82
|
+
Here are the steps you need to kick that process off:
|
|
83
|
+
|
|
84
|
+
1. Review the commit logs and decide on the next version.
|
|
85
|
+
- Breaking changes should increment to a new major version.
|
|
86
|
+
- New features should increment to a new minor version.
|
|
87
|
+
- Bug fixes and small changes should increment to a new patch version.
|
|
88
|
+
|
|
89
|
+
2. Create a new tag and push it to the repo.
|
|
90
|
+
|
|
91
|
+
```bash
|
|
92
|
+
git tag -s <NEW_VERSION> -m "Tag message"
|
|
93
|
+
git push --tags upstream
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
> It is possible to create lightweight tags using `git tag <NEW_VERSION>` but signed tags are preferred.
|
|
97
|
+
|
|
98
|
+
3. Publish the release with either the GitHub CLI or in a browser.
|
|
99
|
+
See the [GitHub documentation about managing releases](https://docs.github.com/en/repositories/releasing-projects-on-github/managing-releases-in-a-repository).
|
|
100
|
+
4. Check the [release workflow](https://github.com/ansible-community/molecule-plugins/actions/workflows/release.yml) runs successfully.
|
|
101
|
+
5. Verify the new version is available from the [molecule-plugins](https://pypi.org/project/molecule-plugins/) page on PyPI.
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# molecule-plugins
|
|
2
|
+
|
|
3
|
+
This repository contains the following molecule plugins:
|
|
4
|
+
|
|
5
|
+
- azure
|
|
6
|
+
- containers
|
|
7
|
+
- docker
|
|
8
|
+
- ec2
|
|
9
|
+
- gce
|
|
10
|
+
- openstack
|
|
11
|
+
- podman
|
|
12
|
+
- vagrant
|
|
13
|
+
|
|
14
|
+
Installing `molecule-plugins` does not install dependencies specific to each,
|
|
15
|
+
plugin. To install these you need to install the extras for each plugin, like
|
|
16
|
+
`pip3 install 'molecule-plugins[azure]'`.
|
|
17
|
+
|
|
18
|
+
Before installing these plugins be sure that you uninstall their old standalone
|
|
19
|
+
packages, like `pip3 uninstall molecule-azure`. If you fail to do so, you will
|
|
20
|
+
end-up with a broken setup, as multiple plugins will have the same entry points,
|
|
21
|
+
registered.
|
|
22
|
+
|
|
23
|
+
## Creating new releases
|
|
24
|
+
|
|
25
|
+
The `release.yml` workflow generates the wheel and uploads the release to PyPI.
|
|
26
|
+
Here are the steps you need to kick that process off:
|
|
27
|
+
|
|
28
|
+
1. Review the commit logs and decide on the next version.
|
|
29
|
+
- Breaking changes should increment to a new major version.
|
|
30
|
+
- New features should increment to a new minor version.
|
|
31
|
+
- Bug fixes and small changes should increment to a new patch version.
|
|
32
|
+
|
|
33
|
+
2. Create a new tag and push it to the repo.
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
git tag -s <NEW_VERSION> -m "Tag message"
|
|
37
|
+
git push --tags upstream
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
> It is possible to create lightweight tags using `git tag <NEW_VERSION>` but signed tags are preferred.
|
|
41
|
+
|
|
42
|
+
3. Publish the release with either the GitHub CLI or in a browser.
|
|
43
|
+
See the [GitHub documentation about managing releases](https://docs.github.com/en/repositories/releasing-projects-on-github/managing-releases-in-a-repository).
|
|
44
|
+
4. Check the [release workflow](https://github.com/ansible-community/molecule-plugins/actions/workflows/release.yml) runs successfully.
|
|
45
|
+
5. Verify the new version is available from the [molecule-plugins](https://pypi.org/project/molecule-plugins/) page on PyPI.
|
|
@@ -3,10 +3,12 @@ import os
|
|
|
3
3
|
import random
|
|
4
4
|
import shutil
|
|
5
5
|
import string
|
|
6
|
+
from pathlib import Path
|
|
6
7
|
|
|
7
8
|
import pytest
|
|
8
9
|
|
|
9
|
-
from molecule import config, logger
|
|
10
|
+
from molecule import config, logger
|
|
11
|
+
from molecule.app import get_app
|
|
10
12
|
from molecule.scenario import ephemeral_directory
|
|
11
13
|
|
|
12
14
|
LOG = logger.get_logger(__name__)
|
|
@@ -18,7 +20,7 @@ def run_command(cmd, env=os.environ, log=True):
|
|
|
18
20
|
if log:
|
|
19
21
|
cmd = _rebake_command(cmd, env)
|
|
20
22
|
cmd = cmd.bake(_truncate_exc=False)
|
|
21
|
-
return
|
|
23
|
+
return get_app(Path()).run_command(cmd, env=env)
|
|
22
24
|
|
|
23
25
|
|
|
24
26
|
def _rebake_command(cmd, env, out=LOG.info, err=LOG.error):
|
|
@@ -43,6 +43,12 @@ security_group.rules[].port_min Starting port (can't be used with port)
|
|
|
43
43
|
security_group.rules[].port_max Ending port (can't be used with port)
|
|
44
44
|
security_group.rules[].type IPv4 or IPv6, default 'IPv4'
|
|
45
45
|
user Default user of image
|
|
46
|
+
auto_ip Ensure instance has public IP, mutually \
|
|
47
|
+
exclusive with floating_ip_pools, \
|
|
48
|
+
default = true
|
|
49
|
+
floating_ip_pools List of floating pool IP names to choose a \
|
|
50
|
+
floating IP from, mutually exclusive with \
|
|
51
|
+
auto_ip, (optional)
|
|
46
52
|
volume Mapping of volume settings (optional if \
|
|
47
53
|
flavor provides volume)
|
|
48
54
|
volume.size Size of volume (GB)
|
|
@@ -96,6 +102,8 @@ Examples
|
|
|
96
102
|
flavor: m1.small
|
|
97
103
|
image: Debian_10
|
|
98
104
|
user: debian
|
|
105
|
+
floating_ip_pools: # mutually exclusive with auto_ip
|
|
106
|
+
- 1.2.3.4
|
|
99
107
|
network:
|
|
100
108
|
name: molecule
|
|
101
109
|
router:
|
|
@@ -139,9 +147,10 @@ Examples
|
|
|
139
147
|
network:
|
|
140
148
|
name: molecule # use network from debian10 instance
|
|
141
149
|
- name: ubuntu2004
|
|
142
|
-
|
|
150
|
+
flavor: m1.tiny
|
|
143
151
|
image: Ubuntu_2004
|
|
144
152
|
user: ubuntu
|
|
153
|
+
auto_ip: false # do not assign a public IP
|
|
145
154
|
security_group:
|
|
146
155
|
name: molecule # use security group from debian10 instance
|
|
147
156
|
network:
|
|
@@ -8,7 +8,7 @@ build-backend = "setuptools.build_meta"
|
|
|
8
8
|
|
|
9
9
|
[project]
|
|
10
10
|
# https://peps.python.org/pep-0621/#readme
|
|
11
|
-
requires-python = ">=3.
|
|
11
|
+
requires-python = ">=3.10"
|
|
12
12
|
dynamic = ["version"]
|
|
13
13
|
name = "molecule-plugins"
|
|
14
14
|
description = "Molecule Plugins"
|
|
@@ -26,7 +26,6 @@ classifiers = [
|
|
|
26
26
|
"Operating System :: MacOS",
|
|
27
27
|
"Operating System :: POSIX",
|
|
28
28
|
"Programming Language :: Python :: 3",
|
|
29
|
-
"Programming Language :: Python :: 3.9",
|
|
30
29
|
"Programming Language :: Python :: 3.10",
|
|
31
30
|
"Programming Language :: Python :: 3.11",
|
|
32
31
|
"Programming Language :: Python :: 3.12",
|
|
@@ -40,7 +39,7 @@ classifiers = [
|
|
|
40
39
|
keywords = ["ansible", "testing", "molecule", "plugin"]
|
|
41
40
|
dependencies = [
|
|
42
41
|
# molecule plugins are not allowed to mention Ansible as a direct dependency
|
|
43
|
-
"molecule >=
|
|
42
|
+
"molecule >= 25.1.0",
|
|
44
43
|
]
|
|
45
44
|
|
|
46
45
|
[project.urls]
|
|
@@ -52,7 +51,7 @@ changelog = "https://github.com/ansible-community/molecule-plugins/releases"
|
|
|
52
51
|
[project.optional-dependencies]
|
|
53
52
|
test = [
|
|
54
53
|
"pytest-helpers-namespace >= 2019.1.8",
|
|
55
|
-
"molecule[test] >=
|
|
54
|
+
"molecule[test] >= 25.1.0"
|
|
56
55
|
]
|
|
57
56
|
azure = []
|
|
58
57
|
docker = [
|
|
@@ -89,7 +88,7 @@ openstack = [
|
|
|
89
88
|
]
|
|
90
89
|
|
|
91
90
|
[tool.ruff]
|
|
92
|
-
ignore = [
|
|
91
|
+
lint.ignore = [
|
|
93
92
|
"E501", # we use black
|
|
94
93
|
# we deliberately ignore these:
|
|
95
94
|
"EM102",
|
|
@@ -101,6 +100,7 @@ ignore = [
|
|
|
101
100
|
"B028",
|
|
102
101
|
"BLE",
|
|
103
102
|
"C901",
|
|
103
|
+
"COM812",
|
|
104
104
|
"D",
|
|
105
105
|
"DTZ",
|
|
106
106
|
"FBT",
|
|
@@ -119,15 +119,15 @@ ignore = [
|
|
|
119
119
|
"FIX002",
|
|
120
120
|
"TRY",
|
|
121
121
|
]
|
|
122
|
-
select = ["ALL"]
|
|
122
|
+
lint.select = ["ALL"]
|
|
123
123
|
target-version = "py39"
|
|
124
124
|
# Same as Black.
|
|
125
125
|
line-length = 88
|
|
126
126
|
|
|
127
|
-
[tool.ruff.flake8-pytest-style]
|
|
127
|
+
[tool.ruff.lint.flake8-pytest-style]
|
|
128
128
|
parametrize-values-type = "tuple"
|
|
129
129
|
|
|
130
|
-
[tool.ruff.isort]
|
|
130
|
+
[tool.ruff.lint.isort]
|
|
131
131
|
known-first-party = ["molecule_plugins"]
|
|
132
132
|
|
|
133
133
|
[project.entry-points."molecule.driver"]
|
|
@@ -19,7 +19,6 @@
|
|
|
19
19
|
# DEALINGS IN THE SOFTWARE.
|
|
20
20
|
"""Docker Driver Module."""
|
|
21
21
|
|
|
22
|
-
|
|
23
22
|
import os
|
|
24
23
|
|
|
25
24
|
from molecule import logger
|
|
@@ -276,4 +275,4 @@ class Docker(Driver):
|
|
|
276
275
|
def required_collections(self) -> dict[str, str]:
|
|
277
276
|
"""Return collections dict containing names and versions required."""
|
|
278
277
|
# https://galaxy.ansible.com/community/docker
|
|
279
|
-
return {"community.docker": "3.
|
|
278
|
+
return {"community.docker": "3.10.2", "ansible.posix": "1.4.0"}
|
|
@@ -61,6 +61,8 @@
|
|
|
61
61
|
host: "{{ item.networkInterfaces.0.accessConfigs.0.natIP if molecule_yml.driver.external_access else item.networkInterfaces.0.networkIP }}"
|
|
62
62
|
search_regex: SSH
|
|
63
63
|
delay: 10
|
|
64
|
+
loop: "{{ server.results }}"
|
|
65
|
+
register: waitfor
|
|
66
|
+
until: waitfor.failed == false
|
|
64
67
|
retries: 6
|
|
65
68
|
delay: 10
|
|
66
|
-
loop: "{{ server.results }}"
|
|
@@ -51,6 +51,10 @@
|
|
|
51
51
|
host: "{{ item.networkInterfaces.0.accessConfigs.0.natIP if molecule_yml.driver.external_access else item.networkInterfaces.0.networkIP }}"
|
|
52
52
|
delay: 10
|
|
53
53
|
loop: "{{ server.results }}"
|
|
54
|
+
register: waitfor
|
|
55
|
+
until: waitfor.failed == false
|
|
56
|
+
retries: 6
|
|
57
|
+
delay: 10
|
|
54
58
|
|
|
55
59
|
- name: Prepare Windows User
|
|
56
60
|
ansible.builtin.script: >
|
|
@@ -102,6 +102,8 @@
|
|
|
102
102
|
image: "{{ item.image }}"
|
|
103
103
|
key_name: "{{ key_name }}"
|
|
104
104
|
flavor: "{{ item.flavor }}"
|
|
105
|
+
floating_ip_pools: "{{ item.floating_ip_pools if item.floating_ip_pools is defined and item.floating_ip_pools | length > 0 else omit }}"
|
|
106
|
+
auto_ip: "{{ item.auto_ip if item.auto_ip is defined else omit }}"
|
|
105
107
|
boot_from_volume: "{{ true if item.volume is defined and item.volume.size else false }}"
|
|
106
108
|
terminate_volume: "{{ true if item.volume is defined and item.volume.size else false }}"
|
|
107
109
|
volume_size: "{{ item.volume.size if item.volume is defined and item.volume.size else omit }}"
|
|
@@ -19,9 +19,9 @@
|
|
|
19
19
|
# DEALINGS IN THE SOFTWARE.
|
|
20
20
|
"""Podman Driver Module."""
|
|
21
21
|
|
|
22
|
-
|
|
23
22
|
import os
|
|
24
23
|
import warnings
|
|
24
|
+
from pathlib import Path
|
|
25
25
|
from shutil import which
|
|
26
26
|
|
|
27
27
|
from ansible_compat.runtime import Runtime
|
|
@@ -29,8 +29,9 @@ from packaging.version import Version
|
|
|
29
29
|
|
|
30
30
|
from molecule import logger, util
|
|
31
31
|
from molecule.api import Driver, MoleculeRuntimeWarning
|
|
32
|
+
from molecule.app import get_app
|
|
32
33
|
from molecule.constants import RC_SETUP_ERROR
|
|
33
|
-
from molecule.util import
|
|
34
|
+
from molecule.util import sysexit_with_message
|
|
34
35
|
|
|
35
36
|
log = logger.get_logger(__name__)
|
|
36
37
|
|
|
@@ -246,4 +247,6 @@ class Podman(Driver):
|
|
|
246
247
|
|
|
247
248
|
def reset(self):
|
|
248
249
|
# keep `--filter` in sync with playbooks/create.yml
|
|
249
|
-
run_command(
|
|
250
|
+
get_app(Path()).run_command(
|
|
251
|
+
["podman", "rm", "--force", "--filter=label=owner=molecule"]
|
|
252
|
+
)
|
{molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/src/molecule_plugins/podman/playbooks/create.yml
RENAMED
|
@@ -146,7 +146,7 @@
|
|
|
146
146
|
etc_hosts: "{{ item.etc_hosts | default(omit) }}"
|
|
147
147
|
executable: "{{ podman_exec }}"
|
|
148
148
|
expose: "{{ item.exposed_ports | default(omit) }}"
|
|
149
|
-
hostname: "{{ item.hostname | default(
|
|
149
|
+
hostname: "{{ item.hostname | default(item.name) }}"
|
|
150
150
|
image: "{{ item.pre_build_image | default(false) | ternary('', 'molecule_local/') }}{{ item.image }}"
|
|
151
151
|
ip: "{{ item.ip | default(omit) }}"
|
|
152
152
|
label:
|
{molecule_plugins-23.6.0 → molecule_plugins-23.7.0}/src/molecule_plugins/vagrant/modules/vagrant.py
RENAMED
|
@@ -177,27 +177,27 @@ See doc/source/configuration.rst
|
|
|
177
177
|
"""
|
|
178
178
|
|
|
179
179
|
VAGRANTFILE_TEMPLATE = """
|
|
180
|
-
{
|
|
181
|
-
{
|
|
182
|
-
{{ value | string | lower }}
|
|
183
|
-
{
|
|
180
|
+
{% macro ruby_format(value) %}
|
|
181
|
+
{% if value is boolean %}
|
|
182
|
+
{{- value | string | lower -}}
|
|
183
|
+
{% elif value is string %}
|
|
184
184
|
{# "Bug" compat. To be removed later #}
|
|
185
|
-
{
|
|
186
|
-
|
|
187
|
-
{
|
|
188
|
-
|
|
189
|
-
{
|
|
190
|
-
{
|
|
191
|
-
|
|
192
|
-
{
|
|
193
|
-
{
|
|
194
|
-
|
|
195
|
-
{
|
|
185
|
+
{% if value[0] == value[-1] and value.startswith(("'", '"')) %}
|
|
186
|
+
{{ value }}
|
|
187
|
+
{% else %}
|
|
188
|
+
"{{ value }}"
|
|
189
|
+
{% endif %}
|
|
190
|
+
{% else %}
|
|
191
|
+
{{ value }}
|
|
192
|
+
{% endif %}
|
|
193
|
+
{% endmacro %}
|
|
194
|
+
|
|
195
|
+
{% macro dict2args(dictionary) %}
|
|
196
196
|
{% set sep = joiner(", ") %}
|
|
197
|
-
{
|
|
198
|
-
|
|
199
|
-
{%- endfor
|
|
200
|
-
{
|
|
197
|
+
{% for key, value in dictionary.items() -%}
|
|
198
|
+
{{ sep() }}{{ key }}: {{ ruby_format(value) | trim }}
|
|
199
|
+
{%- endfor %}
|
|
200
|
+
{% endmacro -%}
|
|
201
201
|
|
|
202
202
|
# Ansible managed
|
|
203
203
|
|
|
@@ -212,26 +212,33 @@ Vagrant.configure('2') do |config|
|
|
|
212
212
|
|
|
213
213
|
{% for instance in instances %}
|
|
214
214
|
config.vm.define "{{ instance.name }}" do |c|
|
|
215
|
-
##
|
|
216
215
|
# Box definition
|
|
217
|
-
##
|
|
218
216
|
c.vm.box = "{{ instance.box }}"
|
|
219
|
-
{
|
|
220
|
-
{{ 'c.vm.
|
|
221
|
-
{
|
|
222
|
-
{
|
|
217
|
+
{% if instance.box_version %}
|
|
218
|
+
{{ 'c.vm.box_version = "{}"'.format(instance.box_version) | safe }}
|
|
219
|
+
{% endif %}
|
|
220
|
+
{% if instance.box_url %}
|
|
221
|
+
{{ 'c.vm.box_url = "{}"'.format(instance.box_url) | safe }}
|
|
222
|
+
{% endif %}
|
|
223
|
+
{% if instance.box_architecture %}
|
|
224
|
+
{{ 'c.vm.box_architecture = "{}"'.format(instance.box_architecture) | safe }}
|
|
225
|
+
{% endif %}
|
|
226
|
+
{% if instance.box_download_checksum %}
|
|
227
|
+
{{ 'c.vm.box_download_checksum = "{}"'.format(instance.box_download_checksum) | safe }}
|
|
228
|
+
{% endif %}
|
|
229
|
+
{% if instance.box_download_checksum_type %}
|
|
230
|
+
{{ 'c.vm.box_download_checksum_type = "{}"'.format(instance.box_download_checksum_type) | safe }}
|
|
231
|
+
{% endif %}
|
|
223
232
|
|
|
224
|
-
##
|
|
225
233
|
# Config options
|
|
226
|
-
##
|
|
227
234
|
{% if instance.config_options['synced_folder'] is sameas false %}
|
|
228
235
|
c.vm.synced_folder ".", "/vagrant", disabled: true
|
|
229
236
|
{% endif %}
|
|
230
|
-
|
|
231
237
|
{% for k,v in instance.config_options.items() %}
|
|
232
|
-
|
|
238
|
+
{% if k not in ['synced_folder', 'cachier'] %}
|
|
239
|
+
c.{{ k }} = {{ ruby_format(v) }}
|
|
240
|
+
{% endif %}
|
|
233
241
|
{% endfor %}
|
|
234
|
-
|
|
235
242
|
{% if instance.hostname is boolean and instance.hostname is sameas false %}
|
|
236
243
|
# c.vm.hostname not set
|
|
237
244
|
{% elif instance.hostname is string %}
|
|
@@ -239,24 +246,22 @@ Vagrant.configure('2') do |config|
|
|
|
239
246
|
{% else %}
|
|
240
247
|
c.vm.hostname = "{{ instance.name }}"
|
|
241
248
|
{% endif %}
|
|
249
|
+
{% if instance.networks | length > 0 %}
|
|
242
250
|
|
|
243
|
-
##
|
|
244
251
|
# Network
|
|
245
|
-
##
|
|
246
252
|
{% for n in instance.networks %}
|
|
247
|
-
c.vm.network "{{ n.name }}", {{ dict2args(n.options) }}
|
|
253
|
+
c.vm.network "{{ n.name }}", {{ dict2args(n.options) | trim }}
|
|
248
254
|
{% endfor %}
|
|
255
|
+
{% endif %}
|
|
256
|
+
{% if instance.instance_raw_config_args is not none %}
|
|
249
257
|
|
|
250
|
-
##
|
|
251
258
|
# instance_raw_config_args
|
|
252
|
-
|
|
253
|
-
{% if instance.instance_raw_config_args is not none %}{% for arg in instance.instance_raw_config_args -%}
|
|
259
|
+
{% for arg in instance.instance_raw_config_args %}
|
|
254
260
|
c.{{ arg | safe }}
|
|
255
|
-
|
|
261
|
+
{% endfor %}
|
|
262
|
+
{% endif %}
|
|
256
263
|
|
|
257
|
-
|
|
258
|
-
# Provider
|
|
259
|
-
##
|
|
264
|
+
# Provider options
|
|
260
265
|
c.vm.provider "{{ instance.provider }}" do |{{ instance.provider | lower }}, override|
|
|
261
266
|
{% if instance.provider == "vsphere" %}
|
|
262
267
|
{{ instance.provider | lower }}.memory_mb = {{ instance.memory }}
|
|
@@ -271,27 +276,13 @@ Vagrant.configure('2') do |config|
|
|
|
271
276
|
{{ instance.provider | lower }}.memory = {{ instance.memory }}
|
|
272
277
|
{{ instance.provider | lower }}.cpus = {{ instance.cpus }}
|
|
273
278
|
{% endif %}
|
|
274
|
-
|
|
275
279
|
{% for option, value in instance.provider_options.items() %}
|
|
276
|
-
{{ instance.provider | lower }}.{{ option }} = {{ ruby_format(value) }}
|
|
280
|
+
{{ instance.provider | lower }}.{{ option }} = {{ ruby_format(value) | trim }}
|
|
277
281
|
{% endfor %}
|
|
278
|
-
|
|
279
|
-
{% if instance.provider_raw_config_args is not none %}
|
|
280
|
-
{% for arg in instance.provider_raw_config_args %}
|
|
281
|
-
{{ instance.provider | lower }}.{{ arg | safe }}
|
|
282
|
-
{% endfor %}
|
|
283
|
-
{% endif %}
|
|
284
|
-
|
|
285
|
-
{% if instance.provider_override_args is not none %}
|
|
286
|
-
{% for arg in instance.provider_override_args -%}
|
|
287
|
-
override.{{ arg | safe }}
|
|
288
|
-
{% endfor %}
|
|
289
|
-
{% endif %}
|
|
290
|
-
|
|
291
282
|
{% if instance.provider == 'virtualbox' %}
|
|
292
|
-
|
|
283
|
+
{% if 'linked_clone' not in instance.provider_options %}
|
|
293
284
|
virtualbox.linked_clone = true
|
|
294
|
-
|
|
285
|
+
{% endif %}
|
|
295
286
|
{% endif %}
|
|
296
287
|
{% if instance.provider == 'libvirt' %}
|
|
297
288
|
{% if no_kvm is sameas true and 'driver' not in instance.provider_options %}
|
|
@@ -314,6 +305,20 @@ Vagrant.configure('2') do |config|
|
|
|
314
305
|
{% endif %}
|
|
315
306
|
{% endif %}
|
|
316
307
|
{% endif %}
|
|
308
|
+
{% if instance.provider_raw_config_args is not none %}
|
|
309
|
+
|
|
310
|
+
# provider_raw_config_args
|
|
311
|
+
{% for arg in instance.provider_raw_config_args %}
|
|
312
|
+
{{ instance.provider | lower }}.{{ arg | safe }}
|
|
313
|
+
{% endfor %}
|
|
314
|
+
{% endif %}
|
|
315
|
+
{% if instance.provider_override_args is not none %}
|
|
316
|
+
|
|
317
|
+
# provider_override_args
|
|
318
|
+
{% for arg in instance.provider_override_args %}
|
|
319
|
+
override.{{ arg | safe }}
|
|
320
|
+
{% endfor %}
|
|
321
|
+
{% endif %}
|
|
317
322
|
end
|
|
318
323
|
end
|
|
319
324
|
{% endfor %}
|
|
@@ -498,10 +503,7 @@ class VagrantClient:
|
|
|
498
503
|
try:
|
|
499
504
|
return self._vagrant.conf(vm_name=instance_name)
|
|
500
505
|
except Exception:
|
|
501
|
-
msg = "Failed to get vagrant config for {}: See log file '{}'"
|
|
502
|
-
instance_name,
|
|
503
|
-
self._get_stderr_log(),
|
|
504
|
-
)
|
|
506
|
+
msg = f"Failed to get vagrant config for {instance_name}: See log file '{self._get_stderr_log()}'"
|
|
505
507
|
with open(self._get_stderr_log(), encoding="utf-8") as f:
|
|
506
508
|
self.result["stderr"] = f.read()
|
|
507
509
|
self._module.fail_json(msg=msg, **self.result)
|
|
@@ -512,10 +514,7 @@ class VagrantClient:
|
|
|
512
514
|
|
|
513
515
|
return {"name": s.name, "state": s.state, "provider": s.provider}
|
|
514
516
|
except Exception:
|
|
515
|
-
msg = "Failed to get status for {}: See log file '{}'"
|
|
516
|
-
instance_name,
|
|
517
|
-
self._get_stderr_log(),
|
|
518
|
-
)
|
|
517
|
+
msg = f"Failed to get status for {instance_name}: See log file '{self._get_stderr_log()}'"
|
|
519
518
|
with open(self._get_stderr_log(), encoding="utf-8") as f:
|
|
520
519
|
self.result["stderr"] = f.read()
|
|
521
520
|
self._module.fail_json(msg=msg, **self.result)
|
|
@@ -572,7 +571,11 @@ class VagrantClient:
|
|
|
572
571
|
|
|
573
572
|
def _write_vagrantfile(self):
|
|
574
573
|
instances = self._get_vagrant_config_dict()
|
|
575
|
-
j_env = jinja2.Environment(
|
|
574
|
+
j_env = jinja2.Environment(
|
|
575
|
+
autoescape=True,
|
|
576
|
+
trim_blocks=True,
|
|
577
|
+
lstrip_blocks=True,
|
|
578
|
+
)
|
|
576
579
|
t = j_env.from_string(VAGRANTFILE_TEMPLATE)
|
|
577
580
|
template = t.render(
|
|
578
581
|
instances=instances,
|
|
@@ -645,6 +648,7 @@ class VagrantClient:
|
|
|
645
648
|
"box": instance.get("box", self._module.params["default_box"]),
|
|
646
649
|
"box_version": instance.get("box_version"),
|
|
647
650
|
"box_url": instance.get("box_url"),
|
|
651
|
+
"box_architecture": instance.get("box_architecture"),
|
|
648
652
|
"box_download_checksum": checksum,
|
|
649
653
|
"box_download_checksum_type": checksum_type,
|
|
650
654
|
"provider": self._module.params["provider_name"],
|
|
@@ -687,7 +691,7 @@ class VagrantClient:
|
|
|
687
691
|
def _get_stderr_log(self):
|
|
688
692
|
return self._get_vagrant_log("err")
|
|
689
693
|
|
|
690
|
-
def _get_vagrant_log(self, __type):
|
|
694
|
+
def _get_vagrant_log(self, __type, /):
|
|
691
695
|
return os.path.join(self._config["workdir"], f"vagrant.{__type}")
|
|
692
696
|
|
|
693
697
|
|
|
@@ -702,6 +706,7 @@ def main():
|
|
|
702
706
|
"platform_box": {"type": "str", "required": False},
|
|
703
707
|
"platform_box_version": {"type": "str"},
|
|
704
708
|
"platform_box_url": {"type": "str"},
|
|
709
|
+
"platform_box_architecture": {"type": "str"},
|
|
705
710
|
"platform_box_download_checksum": {"type": "str"},
|
|
706
711
|
"platform_box_download_checksum_type": {"type": "str"},
|
|
707
712
|
"provider_memory": {"type": "int", "default": 512},
|