From 8c8a52ceed3bb26c0dfcb0aaf4b9bdb9359b0609 Mon Sep 17 00:00:00 2001 From: Amirhossein Shaerpour <87924605+shaerpour@users.noreply.github.com> Date: Thu, 14 Aug 2025 16:32:28 +0330 Subject: [PATCH] feat: allow renaming a volume (#683) ##### SUMMARY Allow renaming volume Fixes #681 ##### ISSUE TYPE - Feature Pull Request ##### COMPONENT NAME `volume` --------- Co-authored-by: Jonas L. --- changelogs/fragments/rename-volume.yml | 2 ++ plugins/modules/volume.py | 12 +++++++++- .../integration/targets/volume/tasks/test.yml | 22 +++++++++++++++++++ 3 files changed, 35 insertions(+), 1 deletion(-) create mode 100644 changelogs/fragments/rename-volume.yml diff --git a/changelogs/fragments/rename-volume.yml b/changelogs/fragments/rename-volume.yml new file mode 100644 index 0000000..34ebd50 --- /dev/null +++ b/changelogs/fragments/rename-volume.yml @@ -0,0 +1,2 @@ +minor_changes: + - volume - Allow renaming a volume. diff --git a/plugins/modules/volume.py b/plugins/modules/volume.py index 99c39b4..ae453ad 100644 --- a/plugins/modules/volume.py +++ b/plugins/modules/volume.py @@ -245,10 +245,20 @@ class AnsibleHCloudVolume(AnsibleHCloud): action.wait_until_finished() self._mark_as_changed() + update_params = {} + + name = self.module.params.get("name") + if name is not None and name != self.hcloud_volume.name: + self.module.fail_on_missing_params(required_params=["id"]) + update_params["name"] = name + labels = self.module.params.get("labels") if labels is not None and labels != self.hcloud_volume.labels: + update_params["labels"] = labels + + if update_params: if not self.module.check_mode: - self.hcloud_volume.update(labels=labels) + self.hcloud_volume.update(**update_params) self._mark_as_changed() delete_protection = self.module.params.get("delete_protection") diff --git a/tests/integration/targets/volume/tasks/test.yml b/tests/integration/targets/volume/tasks/test.yml index 11f9e7c..221dd46 100644 --- a/tests/integration/targets/volume/tasks/test.yml +++ b/tests/integration/targets/volume/tasks/test.yml @@ -122,6 +122,28 @@ that: - volume is not changed +- name: test update Volume name + hetzner.hcloud.volume: + id: "{{ volume.hcloud_volume.id }}" + name: "{{ hcloud_volume_name }}-new" + register: result +- name: verify test update Volume name + assert: + that: + - result is changed + - result.hcloud_volume.name == hcloud_volume_name + '-new' + +- name: reset volume name + hetzner.hcloud.volume: + id: "{{ volume.hcloud_volume.id }}" + name: "{{ hcloud_server_name }}" + register: result +- name: verify reset volume name + assert: + that: + - result is changed + - result.hcloud_volume.name == hcloud_volume_name + - name: test increase Volume size hetzner.hcloud.volume: name: "{{hcloud_volume_name}}"