From 5b0837d1597dcd867cf6ecce4a979a60aab4f7be Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Moser?= Date: Fri, 12 Mar 2021 14:22:47 +0100 Subject: [PATCH] hcloud_server: fix traceback in check mode (#64) * hcloud_server: fix traceback in check mode if server not exists. * add changelog --- changelogs/fragments/.keep | 0 ...oud_server_fix_checkmode_state_started.yml | 2 ++ plugins/modules/hcloud_server.py | 22 ++++++++++--------- 3 files changed, 14 insertions(+), 10 deletions(-) create mode 100644 changelogs/fragments/.keep create mode 100644 changelogs/fragments/64-hcloud_server_fix_checkmode_state_started.yml diff --git a/changelogs/fragments/.keep b/changelogs/fragments/.keep new file mode 100644 index 0000000..e69de29 diff --git a/changelogs/fragments/64-hcloud_server_fix_checkmode_state_started.yml b/changelogs/fragments/64-hcloud_server_fix_checkmode_state_started.yml new file mode 100644 index 0000000..53ada8b --- /dev/null +++ b/changelogs/fragments/64-hcloud_server_fix_checkmode_state_started.yml @@ -0,0 +1,2 @@ +bugfixes: + - hcloud_server - fix a crash related to check mode if ``state=started`` or ``state=stopped`` (https://github.com/ansible-collections/hetzner.hcloud/issues/54). diff --git a/plugins/modules/hcloud_server.py b/plugins/modules/hcloud_server.py index 88f8309..f96c3d0 100644 --- a/plugins/modules/hcloud_server.py +++ b/plugins/modules/hcloud_server.py @@ -500,21 +500,23 @@ class AnsibleHcloudServer(Hcloud): def start_server(self): try: - if self.hcloud_server.status != Server.STATUS_RUNNING: - if not self.module.check_mode: - self.client.servers.power_on(self.hcloud_server).wait_until_finished() - self._mark_as_changed() - self._get_server() + if self.hcloud_server: + if self.hcloud_server.status != Server.STATUS_RUNNING: + if not self.module.check_mode: + self.client.servers.power_on(self.hcloud_server).wait_until_finished() + self._mark_as_changed() + self._get_server() except Exception as e: self.module.fail_json(msg=e.message) def stop_server(self): try: - if self.hcloud_server.status != Server.STATUS_OFF: - if not self.module.check_mode: - self.client.servers.power_off(self.hcloud_server).wait_until_finished() - self._mark_as_changed() - self._get_server() + if self.hcloud_server: + if self.hcloud_server.status != Server.STATUS_OFF: + if not self.module.check_mode: + self.client.servers.power_off(self.hcloud_server).wait_until_finished() + self._mark_as_changed() + self._get_server() except Exception as e: self.module.fail_json(msg=e.message)