facts: suse: Fix major version detection for SUSE (#41416)
When parsing the distribution files such as /etc/os-release, we extract the full distribution version but not the major version. As such, the ansible_distribution_major_version ends up being 'NA' whereas the ansible_distribution_version contains the full version. Before this patch we get this on openSUSE Leap 15 ansible -o localhost -m setup -a filter=ansible_distribution_major_version localhost | SUCCESS => {"ansible_facts": {"ansible_distribution_major_version": "NA"}, "changed": false} After this patch we get this ansible -o localhost -m setup -a filter=ansible_distribution_major_version localhost | SUCCESS => {"ansible_facts": {"ansible_distribution_major_version": "15"}, "changed": false} This also fixes the Tumbleweed distribution test to report a proper major version and also adds a test for openSUSE Leap 15.0 to avoid potential future regressions. Fixes: #41410
This commit is contained in:
parent
bf304832ff
commit
1737b7be3e
2 changed files with 24 additions and 1 deletions
|
@ -256,6 +256,7 @@ class DistributionFiles:
|
||||||
distribution_version = re.search(r'^VERSION_ID="?([0-9]+\.?[0-9]*)"?', line)
|
distribution_version = re.search(r'^VERSION_ID="?([0-9]+\.?[0-9]*)"?', line)
|
||||||
if distribution_version:
|
if distribution_version:
|
||||||
suse_facts['distribution_version'] = distribution_version.group(1)
|
suse_facts['distribution_version'] = distribution_version.group(1)
|
||||||
|
suse_facts['distribution_major_version'] = distribution_version.group(1).split('.')[0]
|
||||||
if 'open' in data.lower():
|
if 'open' in data.lower():
|
||||||
release = re.search(r'^VERSION_ID="?[0-9]+\.?([0-9]*)"?', line)
|
release = re.search(r'^VERSION_ID="?[0-9]+\.?([0-9]*)"?', line)
|
||||||
if release:
|
if release:
|
||||||
|
|
|
@ -221,11 +221,33 @@ ID_LIKE="suse"
|
||||||
"result": {
|
"result": {
|
||||||
"distribution_release": "",
|
"distribution_release": "",
|
||||||
"distribution": "openSUSE Tumbleweed",
|
"distribution": "openSUSE Tumbleweed",
|
||||||
"distribution_major_version": "NA",
|
"distribution_major_version": "20160917",
|
||||||
"os_family": "Suse",
|
"os_family": "Suse",
|
||||||
"distribution_version": "20160917"
|
"distribution_version": "20160917"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"platform.dist": [
|
||||||
|
"",
|
||||||
|
"",
|
||||||
|
""
|
||||||
|
],
|
||||||
|
"input": {
|
||||||
|
"/etc/os-release": (
|
||||||
|
"NAME=\"openSUSE Leap\"\n# VERSION=\"15.0\"\nID=opensuse-leap\nID_LIKE=\"suse opensuse\"\nVERSION_ID=\"15.0\"\n"
|
||||||
|
"PRETTY_NAME=\"openSUSE Leap 15.0\"\nANSI_COLOR=\"0;32\"\nCPE_NAME=\"cpe:/o:opensuse:leap:15.0\"\n"
|
||||||
|
"BUG_REPORT_URL=\"https://bugs.opensuse.org\"\nHOME_URL=\"https://www.opensuse.org/\"\n"
|
||||||
|
)
|
||||||
|
},
|
||||||
|
"name": "openSUSE Leap 15.0",
|
||||||
|
"result": {
|
||||||
|
"distribution_release": "0",
|
||||||
|
"distribution": "openSUSE Leap",
|
||||||
|
"distribution_major_version": "15",
|
||||||
|
"os_family": "Suse",
|
||||||
|
"distribution_version": "15.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
{ # see https://github.com/ansible/ansible/issues/14837
|
{ # see https://github.com/ansible/ansible/issues/14837
|
||||||
"name": "SLES 11.3",
|
"name": "SLES 11.3",
|
||||||
"input": {
|
"input": {
|
||||||
|
|
Loading…
Reference in a new issue