diff --git a/changelogs/fragments/74476-apt_key-gpg-inline-data.yaml b/changelogs/fragments/74476-apt_key-gpg-inline-data.yaml new file mode 100644 index 00000000000..ade6d13ffad --- /dev/null +++ b/changelogs/fragments/74476-apt_key-gpg-inline-data.yaml @@ -0,0 +1,2 @@ +bugfixes: + - The error message about the failure to import a ```gpg`` key by the ``apt_key`` module was incorrect (https://github.com/ansible/ansible/issues/74423). diff --git a/lib/ansible/modules/apt_key.py b/lib/ansible/modules/apt_key.py index 58e23216a99..4a8e968c3a9 100644 --- a/lib/ansible/modules/apt_key.py +++ b/lib/ansible/modules/apt_key.py @@ -293,7 +293,7 @@ def get_key_id_from_file(module, filename, data=None): (rc, out, err) = module.run_command(cmd, environ_update=lang_env, data=(native_data if is_armored else data), binary_data=not is_armored) if rc != 0: - module.fail_json(msg="Unable to extract key from '%s'" % ('inline data' if data is None else filename), stdout=out, stderr=err) + module.fail_json(msg="Unable to extract key from '%s'" % ('inline data' if data is not None else filename), stdout=out, stderr=err) keys = parse_output_for_keys(out) # assume we only want first key? diff --git a/test/integration/targets/apt_key/tasks/apt_key_inline_data.yml b/test/integration/targets/apt_key/tasks/apt_key_inline_data.yml new file mode 100644 index 00000000000..13174e4849f --- /dev/null +++ b/test/integration/targets/apt_key/tasks/apt_key_inline_data.yml @@ -0,0 +1,5 @@ +- name: "Ensure import of a deliberately corrupted downloaded GnuPG binary key results in an 'inline data' occurence in the message" + apt_key: + url: https://ansible-ci-files.s3.us-east-1.amazonaws.com/test/integration/targets/apt_key/apt-key-corrupt-zeros-2k.gpg + register: gpg_inline_result + failed_when: "not ('inline data' in gpg_inline_result.msg)" diff --git a/test/integration/targets/apt_key/tasks/main.yml b/test/integration/targets/apt_key/tasks/main.yml index f5292d3a71e..9ef44e456e9 100644 --- a/test/integration/targets/apt_key/tasks/main.yml +++ b/test/integration/targets/apt_key/tasks/main.yml @@ -26,7 +26,10 @@ - import_tasks: 'apt_key.yml' when: ansible_distribution in ('Ubuntu', 'Debian') - + +- import_tasks: 'apt_key_inline_data.yml' + when: ansible_distribution in ('Ubuntu', 'Debian') + - import_tasks: 'file.yml' when: ansible_distribution in ('Ubuntu', 'Debian')