Fix ansible_distribution on Ubuntu 10.04 (#31108)

The /etc/os-release based distro detection doesn't
seem to work for Ubuntu 10.04 (no /etc/os-release?).

So it was testing the next case which was /etc/lsb-release to
see if it is 'Mandriva'. Since the check for existence of
(/etc/lsb-release, Mandrive) was the first non-empty dist
file match, 'ansible_distribution' was being set to 'Mandriva'
expecting to be corrected by the data from the dist file content.

But since the dist file parsing for Mandriva didn't match for
Ubuntu 10.04 /etc/lsb-release _and_ there is no Debian specific
lsb-release check, 'ansible_distribution' stayed at 'Mandriva'
and the dist file checking loop keeps going and eventually off
the end of the list before finding a better match.

Adding a debian/ubuntu specific check for /etc/lsb-release after
the debian os-release sets the info correctly and stops further
checking of dist files.

Fixes #30693
pull/31261/head
Adrian Likins 7 years ago committed by GitHub
parent 6caac2743a
commit 65393e4747

@ -69,6 +69,7 @@ class DistributionFiles:
{'path': '/etc/SuSE-release', 'name': 'SUSE'}, {'path': '/etc/SuSE-release', 'name': 'SUSE'},
{'path': '/etc/gentoo-release', 'name': 'Gentoo'}, {'path': '/etc/gentoo-release', 'name': 'Gentoo'},
{'path': '/etc/os-release', 'name': 'Debian'}, {'path': '/etc/os-release', 'name': 'Debian'},
{'path': '/etc/lsb-release', 'name': 'Debian'},
{'path': '/etc/lsb-release', 'name': 'Mandriva'}, {'path': '/etc/lsb-release', 'name': 'Mandriva'},
{'path': '/etc/altlinux-release', 'name': 'Altlinux'}, {'path': '/etc/altlinux-release', 'name': 'Altlinux'},
{'path': '/etc/sourcemage-release', 'name': 'SMGL'}, {'path': '/etc/sourcemage-release', 'name': 'SMGL'},

@ -418,6 +418,26 @@ BUG_REPORT_URL="http://bugs.debian.org/"
"distribution_version": "16.04" "distribution_version": "16.04"
} }
}, },
{
'name': "Ubuntu 10.04 guess",
'input':
{
'/etc/lsb-release': """DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=10.04
DISTRIB_CODENAME=lucid
DISTRIB_DESCRIPTION="Ubuntu 10.04.4 LTS
"""
},
'platform.dist': ('Ubuntu', '10.04', 'lucid'),
'result':
{
'distribution': u'Ubuntu',
'distribution_major_version': u'10',
'distribution_release': u'lucid',
"os_family": "Debian",
'distribution_version': u'10.04'
}
},
{ {
'name': "Ubuntu 14.04", 'name': "Ubuntu 14.04",
'input': { 'input': {

Loading…
Cancel
Save