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)