diff --git a/changelogs/inventory-allow-usage-of-pre-migration-configuration-fuiles.yml b/changelogs/inventory-allow-usage-of-pre-migration-configuration-fuiles.yml new file mode 100644 index 0000000..b221051 --- /dev/null +++ b/changelogs/inventory-allow-usage-of-pre-migration-configuration-fuiles.yml @@ -0,0 +1,2 @@ +bugfix: + - hcloud inventory plugin - Allow usage of hcloud.yml and hcloud.yaml - this was removed by error within the migration from build-in ansible to our collection diff --git a/plugins/inventory/hcloud.py b/plugins/inventory/hcloud.py index 48244e9..3118250 100644 --- a/plugins/inventory/hcloud.py +++ b/plugins/inventory/hcloud.py @@ -230,7 +230,7 @@ class InventoryModule(BaseInventoryPlugin, Constructable): """Return the possibly of a file being consumable by this plugin.""" return ( super(InventoryModule, self).verify_file(path) and - path.endswith((self.NAME + ".yaml", self.NAME + ".yml")) + path.endswith(("hcloud.yaml", "hcloud.yml")) ) def parse(self, inventory, loader, path, cache=True): diff --git a/plugins/modules/hcloud_load_balancer.py b/plugins/modules/hcloud_load_balancer.py index 4454045..4ece8b3 100644 --- a/plugins/modules/hcloud_load_balancer.py +++ b/plugins/modules/hcloud_load_balancer.py @@ -174,7 +174,7 @@ class AnsibleHcloudLoadBalancer(Hcloud): "location": to_native(self.hcloud_load_balancer.location.name), "labels": self.hcloud_load_balancer.labels, "delete_protection": self.hcloud_load_balancer.protection["delete"], - "disable_public_interface": self.hcloud_load_balancer.public_net.enabled + "disable_public_interface": False if self.hcloud_load_balancer.public_net.enabled else True, } def _get_load_balancer(self): @@ -219,7 +219,6 @@ class AnsibleHcloudLoadBalancer(Hcloud): self._mark_as_changed() self._get_load_balancer() - self._update_load_balancer() def _update_load_balancer(self): try: @@ -237,7 +236,7 @@ class AnsibleHcloudLoadBalancer(Hcloud): self._get_load_balancer() disable_public_interface = self.module.params.get("disable_public_interface") - if disable_public_interface is not None and disable_public_interface != self.hcloud_load_balancer.public_net.enabled: + if disable_public_interface is not None and disable_public_interface != (not self.hcloud_load_balancer.public_net.enabled): if not self.module.check_mode: if disable_public_interface is True: self.hcloud_load_balancer.disable_public_interface().wait_until_finished() @@ -277,7 +276,7 @@ class AnsibleHcloudLoadBalancer(Hcloud): network_zone={"type": "str"}, labels={"type": "dict"}, delete_protection={"type": "bool"}, - disable_public_interface={"type": "bool", "default": False}, + disable_public_interface={"type": "bool"}, state={ "choices": ["absent", "present"], "default": "present", diff --git a/plugins/modules/hcloud_load_balancer_service.py b/plugins/modules/hcloud_load_balancer_service.py index 269a703..83a7034 100644 --- a/plugins/modules/hcloud_load_balancer_service.py +++ b/plugins/modules/hcloud_load_balancer_service.py @@ -322,7 +322,7 @@ class AnsibleHcloudLoadBalancerService(Hcloud): "response": to_native(self.hcloud_load_balancer_service.health_check.http.response), "certificates": [to_native(status_code) for status_code in self.hcloud_load_balancer_service.health_check.http.status_codes], - "tls": self.hcloud_load_balancer_service.health_check.tls, + "tls": self.hcloud_load_balancer_service.health_check.http.tls, } return { "load_balancer": to_native(self.hcloud_load_balancer.name), diff --git a/tests/integration/targets/hcloud_load_balancer/tasks/main.yml b/tests/integration/targets/hcloud_load_balancer/tasks/main.yml index fd187b4..ec555c9 100644 --- a/tests/integration/targets/hcloud_load_balancer/tasks/main.yml +++ b/tests/integration/targets/hcloud_load_balancer/tasks/main.yml @@ -29,7 +29,7 @@ state: present register: result check_mode: yes -- name: test create Load Balancer Load Balancer +- name: test create Load Balancer with check mode assert: that: - result is changed @@ -51,6 +51,8 @@ - name: test create Load Balancer idempotence hcloud_load_balancer: name: "{{ hcloud_load_balancer_name }}" + load_balancer_type: lb11 + network_zone: eu-central state: present register: result - name: verify create Load Balancer idempotence diff --git a/tests/utils/gitlab/gitlab.sh b/tests/utils/gitlab/gitlab.sh index f4a870a..a23b74d 100755 --- a/tests/utils/gitlab/gitlab.sh +++ b/tests/utils/gitlab/gitlab.sh @@ -46,6 +46,7 @@ fi export ANSIBLE_COLLECTIONS_PATHS="${HOME}/.ansible" SHIPPABLE_RESULT_DIR="$(pwd)/shippable" TEST_DIR="${ANSIBLE_COLLECTIONS_PATHS}/ansible_collections/hetzner/hcloud" +rm -rf "${TEST_DIR}" mkdir -p "${TEST_DIR}" cp -r "." "${TEST_DIR}" cd "${TEST_DIR}" @@ -85,7 +86,9 @@ find plugins -type d -empty -print -delete ansible-test env --dump --show --timeout "50" --color -v group="${args[1]}" -if [[ "${test}" =~ integration ]]; then +echo $test +if [[ "${test}" =~ hcloud ]]; then + group="${args[3]}" bash tests/utils/gitlab/integration.sh "shippable/hcloud/group${group}/" else bash tests/utils/gitlab/sanity.sh "sanity/${group}" diff --git a/tests/utils/gitlab/integration.sh b/tests/utils/gitlab/integration.sh index 4ab2e58..2d660c8 100755 --- a/tests/utils/gitlab/integration.sh +++ b/tests/utils/gitlab/integration.sh @@ -12,4 +12,4 @@ hcloud_api_token=${HCLOUD_TOKEN} export SHIPPABLE="true" export SHIPPABLE_BUILD_NUMBER="gl-$(cat prefix.txt)" export SHIPPABLE_JOB_NUMBER="$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 2 | head -n 1)" -ansible-test integration --color --local -vvvvv "${target}" ${COVERAGE:+"$COVERAGE"} ${CHANGED:+"$CHANGED"} ${UNSTABLE:+"$UNSTABLE"} +ansible-test integration --color --local -vv "${target}" ${COVERAGE:+"$COVERAGE"} ${CHANGED:+"$CHANGED"} ${UNSTABLE:+"$UNSTABLE"}