From ffbc9d99de0b9f86116779f70507ca2598a786fb Mon Sep 17 00:00:00 2001 From: Jeremiah Mahler Date: Thu, 7 Feb 2019 14:58:34 -0800 Subject: [PATCH] fix Amazon system-release version parsing (#51521) Previously it was assumed that the Amazon system-release number was the final value of the string. This isn't always the case. Some releases have the name at the end. Amazon Linux release 2 Amazon Linux release 2 (Karoo) Fix by instead looking for a number in the string. Fixes #48823 --- .../fix-Amazon-system-release-version-parsing.yaml | 2 ++ lib/ansible/module_utils/facts/system/distribution.py | 7 ++++--- 2 files changed, 6 insertions(+), 3 deletions(-) create mode 100644 changelogs/fragments/fix-Amazon-system-release-version-parsing.yaml diff --git a/changelogs/fragments/fix-Amazon-system-release-version-parsing.yaml b/changelogs/fragments/fix-Amazon-system-release-version-parsing.yaml new file mode 100644 index 00000000000..d63437661ef --- /dev/null +++ b/changelogs/fragments/fix-Amazon-system-release-version-parsing.yaml @@ -0,0 +1,2 @@ +bugfixes: + - Fix Amazon system-release version parsing (https://github.com/ansible/ansible/issues/48823) diff --git a/lib/ansible/module_utils/facts/system/distribution.py b/lib/ansible/module_utils/facts/system/distribution.py index 14fa81f845e..49d130efa00 100644 --- a/lib/ansible/module_utils/facts/system/distribution.py +++ b/lib/ansible/module_utils/facts/system/distribution.py @@ -228,10 +228,11 @@ class DistributionFiles: def parse_distribution_file_Amazon(self, name, data, path, collected_facts): amazon_facts = {} if 'Amazon' not in data: - # return False # TODO: remove # huh? - return False, amazon_facts # TODO: remove + return False, amazon_facts amazon_facts['distribution'] = 'Amazon' - amazon_facts['distribution_version'] = data.split()[-1] + version = [n for n in data.split() if n.isdigit()] + version = version[0] if version else 'NA' + amazon_facts['distribution_version'] = version return True, amazon_facts def parse_distribution_file_OpenWrt(self, name, data, path, collected_facts):