From 2f3960558deb50be80c612f8e35123648a05a1f8 Mon Sep 17 00:00:00 2001 From: Zim Kalinowski Date: Fri, 15 Feb 2019 17:46:52 +0800 Subject: [PATCH] Fix for PostgresSQL server update and storage_mb (#51653) --- ...53-fixing-azure-postgresql-parameters.yaml | 2 ++ .../cloud/azure/azure_rm_postgresqlserver.py | 4 ++- .../targets/azure_rm_postgresqlserver/aliases | 1 - .../azure_rm_postgresqlserver/tasks/main.yml | 31 +++++++++++++++++++ 4 files changed, 36 insertions(+), 2 deletions(-) create mode 100644 changelogs/fragments/51653-fixing-azure-postgresql-parameters.yaml diff --git a/changelogs/fragments/51653-fixing-azure-postgresql-parameters.yaml b/changelogs/fragments/51653-fixing-azure-postgresql-parameters.yaml new file mode 100644 index 00000000000..bf6cf1308c3 --- /dev/null +++ b/changelogs/fragments/51653-fixing-azure-postgresql-parameters.yaml @@ -0,0 +1,2 @@ +bugfixes: + - azure_rm_postgresqlserver - fixed issues with passing parameters while updating existing server instance diff --git a/lib/ansible/modules/cloud/azure/azure_rm_postgresqlserver.py b/lib/ansible/modules/cloud/azure/azure_rm_postgresqlserver.py index 5c8fb6259d3..8fb291d4948 100644 --- a/lib/ansible/modules/cloud/azure/azure_rm_postgresqlserver.py +++ b/lib/ansible/modules/cloud/azure/azure_rm_postgresqlserver.py @@ -227,7 +227,7 @@ class AzureRMServers(AzureRMModuleBase): elif key == "location": self.parameters["location"] = kwargs[key] elif key == "storage_mb": - self.parameters.setdefault("properties", {})["storage_mb"] = kwargs[key] + self.parameters.setdefault("properties", {}).setdefault("storage_profile", {})["storage_mb"] = kwargs[key] elif key == "version": self.parameters.setdefault("properties", {})["version"] = kwargs[key] elif key == "enforce_ssl": @@ -320,6 +320,8 @@ class AzureRMServers(AzureRMModuleBase): server_name=self.name, parameters=self.parameters) else: + # structure of parameters for update must be changed + self.parameters.update(self.parameters.pop("properties", {})) response = self.postgresql_client.servers.update(resource_group_name=self.resource_group, server_name=self.name, parameters=self.parameters) diff --git a/test/integration/targets/azure_rm_postgresqlserver/aliases b/test/integration/targets/azure_rm_postgresqlserver/aliases index 73725907d7c..7e5b111d5b4 100644 --- a/test/integration/targets/azure_rm_postgresqlserver/aliases +++ b/test/integration/targets/azure_rm_postgresqlserver/aliases @@ -6,4 +6,3 @@ azure_rm_postgresqldatabase azure_rm_postgresqldatabase_facts azure_rm_postgresqlfirewallrule azure_rm_postgresqlfirewallrule_facts -disabled diff --git a/test/integration/targets/azure_rm_postgresqlserver/tasks/main.yml b/test/integration/targets/azure_rm_postgresqlserver/tasks/main.yml index 2612cf00eae..169dd4c67c9 100644 --- a/test/integration/targets/azure_rm_postgresqlserver/tasks/main.yml +++ b/test/integration/targets/azure_rm_postgresqlserver/tasks/main.yml @@ -60,6 +60,37 @@ - output.changed == false - output.state == 'Ready' +- name: Update instance of PostgreSQL Server, change storage size + azure_rm_postgresqlserver: + resource_group: "{{ resource_group }}" + name: postgresqlsrv{{ rpfx }} + sku: + name: B_Gen5_1 + tier: Basic + location: westus2 + storage_mb: 128000 + enforce_ssl: True + admin_username: zimxyz + admin_password: Testpasswordxyz12! + register: output +- name: Assert the state has not changed + assert: + that: + - output.changed + - output.state == 'Ready' +- debug: + var: output + +- name: Gather facts postgresql Server + azure_rm_postgresqlserver_facts: + resource_group: "{{ resource_group }}" + name: postgresqlsrv{{ rpfx }} + register: output +- name: Assert that storage size is correct + assert: + that: + - output.servers[0]['storage_mb'] == 128000 + - name: Create second instance of PostgreSQL Server azure_rm_postgresqlserver: resource_group: "{{ resource_group }}"