From a9a165176c1f46c88120cc9d5ef5be9aa12a2e10 Mon Sep 17 00:00:00 2001 From: rwha Date: Thu, 22 Dec 2022 03:51:12 -0500 Subject: [PATCH] Fix KeyError when Description is not present in ssm_parameter (#1627) Fix KeyError when Description is not present in ssm_parameter SUMMARY Fixes #1471 ISSUE TYPE Bugfix Pull Request COMPONENT NAME ssm_parameter ADDITIONAL INFORMATION Reviewed-by: Markus Bergholz Reviewed-by: Mark Chappell (cherry picked from commit 3cf69cd4a59be18cd5aae5143d3cdc3c1846601d) --- ...meter-KeyError-when-adding-description.yml | 2 ++ plugins/modules/ssm_parameter.py | 2 +- .../targets/ssm_parameter/tasks/main.yml | 24 +++++++++++++++++++ 3 files changed, 27 insertions(+), 1 deletion(-) create mode 100644 changelogs/fragments/1627-ssm_parameter-KeyError-when-adding-description.yml diff --git a/changelogs/fragments/1627-ssm_parameter-KeyError-when-adding-description.yml b/changelogs/fragments/1627-ssm_parameter-KeyError-when-adding-description.yml new file mode 100644 index 00000000000..98344a6ff4a --- /dev/null +++ b/changelogs/fragments/1627-ssm_parameter-KeyError-when-adding-description.yml @@ -0,0 +1,2 @@ +bugfixes: + - ssm_parameter - Fix a ``KeyError`` when adding a description to an existing parameter (https://github.com/ansible-collections/community.aws/issues/1471). diff --git a/plugins/modules/ssm_parameter.py b/plugins/modules/ssm_parameter.py index af4de1c15fb..5381c0d67bf 100644 --- a/plugins/modules/ssm_parameter.py +++ b/plugins/modules/ssm_parameter.py @@ -383,7 +383,7 @@ def create_update_parameter(client, module): except (botocore.exceptions.ClientError, botocore.exceptions.BotoCoreError) as e: module.fail_json_aws(e, msg="getting description value") - if describe_existing_parameter['Description'] != args['Description']: + if describe_existing_parameter.get('Description') != args['Description']: (changed, response) = update_parameter(client, module, **args) if changed: _wait_updated(client, module, module.params.get('name'), original_version) diff --git a/tests/integration/targets/ssm_parameter/tasks/main.yml b/tests/integration/targets/ssm_parameter/tasks/main.yml index 7f4e4f6e2d4..3d4fb643b30 100644 --- a/tests/integration/targets/ssm_parameter/tasks/main.yml +++ b/tests/integration/targets/ssm_parameter/tasks/main.yml @@ -415,6 +415,30 @@ that: - result is not changed + - name: Create key/value pair in aws parameter store with no description + aws_ssm_parameter_store: + name: '{{ simple_name }}' + value: '{{ simple_value }}' + register: result + + - assert: + that: + - result is changed + - '"description" not in result.parameter_metadata' + + - name: Add a description + aws_ssm_parameter_store: + name: '{{ simple_name }}' + value: '{{ simple_value }}' + description: '{{ simple_description }}' + register: result + + - assert: + that: + - result is changed + - '"description" in result.parameter_metadata' + - result.parameter_metadata.description == simple_description + always: # ============================================================ - name: Delete remaining key/value pairs in aws parameter store