Skip to content

Commit

Permalink
Set osrelease grain on Solaris hosts
Browse files Browse the repository at this point in the history
This fixes #4321.
  • Loading branch information
terminalmage committed Apr 7, 2013
1 parent 81bddc6 commit f2daa55
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 3 deletions.
22 changes: 20 additions & 2 deletions salt/grains/core.py
Original file line number Diff line number Diff line change
Expand Up @@ -544,6 +544,7 @@ def id_():
'SUSE': 'Suse',
'Solaris': 'Solaris',
'SmartOS': 'Solaris',
'OpenIndiana Development': 'Solaris',
'Arch ARM': 'Arch',
'ALT': 'RedHat',
'Trisquel': 'Debian'
Expand Down Expand Up @@ -632,7 +633,7 @@ def os_data():
if comps[0] == 'ALT':
grains['lsb_distrib_release'] = comps[2]
grains['lsb_distrib_codename'] = \
comps[3].replace('(','').replace(')','')
comps[3].replace('(', '').replace(')', '')
# Use the already intelligent platform module to get distro info
(osname, osrelease, oscodename) = platform.linux_distribution(
supported_dists=_supported_dists)
Expand All @@ -655,12 +656,29 @@ def os_data():
grains.update(_linux_cpudata())
grains.update(_linux_gpu_data())
elif grains['kernel'] == 'SunOS':
grains['os'] = 'Solaris'
grains['os_family'] = 'Solaris'
if os.path.isfile('/etc/release'):
with salt.utils.fopen('/etc/release', 'r') as fp_:
rel_data = fp_.read()
if 'SmartOS' in rel_data:
grains['os'] = 'SmartOS'
# FIXME: need detection of osrelease for SmartOS
grains['osrelease'] = ''
else:
try:
release_re = '(Solaris|OpenIndiana(?: Development)?)' \
'\s+(\d+ \d+\/\d+|oi_\S+)?'
osname, osrelease = re.search(release_re,
rel_data).groups()
except AttributeError:
# Set a blank osrelease grain and fallback to 'Solaris'
# as the 'os' grain.
grains['os'] = 'Solaris'
grains['osrelease'] = ''
else:
grains['os'] = osname
grains['osrelease'] = osrelease

grains.update(_sunos_cpudata(grains))
elif grains['kernel'] == 'VMkernel':
grains['os'] = 'ESXi'
Expand Down
2 changes: 1 addition & 1 deletion salt/modules/rh_service.py
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ def __virtual__():
]
if __grains__['os'] in enable:
if __grains__['os'] == 'Fedora':
if __grains__['osrelease'] > 15:
if __grains__.get('osrelease', 0) > 15:
return False
return 'service'
return False
Expand Down

0 comments on commit f2daa55

Please sign in to comment.