From 18f7282ccf482faa11502d98cc0ce7a88d47e328 Mon Sep 17 00:00:00 2001 From: Sam Doran Date: Fri, 12 Feb 2021 17:37:00 -0500 Subject: [PATCH] ansible-doc - account for empty meta/main.yml (#73590) * ansible-doc - account for empty meta/main.yml from_yaml() will return None when encrounting an empty file. --- changelogs/fragments/ansible-doc-role-empty-meta-main.yml | 4 ++++ lib/ansible/cli/doc.py | 2 ++ .../targets/ansible-doc/roles/test_role3/meta/main.yml | 0 3 files changed, 6 insertions(+) create mode 100644 changelogs/fragments/ansible-doc-role-empty-meta-main.yml create mode 100644 test/integration/targets/ansible-doc/roles/test_role3/meta/main.yml diff --git a/changelogs/fragments/ansible-doc-role-empty-meta-main.yml b/changelogs/fragments/ansible-doc-role-empty-meta-main.yml new file mode 100644 index 00000000000..36793967393 --- /dev/null +++ b/changelogs/fragments/ansible-doc-role-empty-meta-main.yml @@ -0,0 +1,4 @@ +bugfixes: + - >- + ansible-doc - account for an empty ``meta/main.yml`` file when displaying + role information (https://github.com/ansible/ansible/pull/73590) diff --git a/lib/ansible/cli/doc.py b/lib/ansible/cli/doc.py index a217eddb574..ca4d866ad0e 100644 --- a/lib/ansible/cli/doc.py +++ b/lib/ansible/cli/doc.py @@ -91,6 +91,8 @@ class RoleMixin(object): try: with open(path, 'r') as f: data = from_yaml(f.read(), file_name=path) + if data is None: + data = {} return data.get('argument_specs', {}) except (IOError, OSError) as e: raise AnsibleParserError("An error occurred while trying to read the file '%s': %s" % (path, to_native(e)), orig_exc=e) diff --git a/test/integration/targets/ansible-doc/roles/test_role3/meta/main.yml b/test/integration/targets/ansible-doc/roles/test_role3/meta/main.yml new file mode 100644 index 00000000000..e69de29bb2d