mirror of
https://github.com/valitydev/salt.git
synced 2024-11-07 17:09:03 +00:00
Fix traceback in service.py when OS not identified
If the OS was not properly identified, salt/modules/service.py is used as a fallback provider for the service module/state. However, the way it looks up the location of the initscripts directory results in a traceback if the OS grain isn't in the lookup dict. This commit simplifies the lookup dict and has the module use /etc/init.d as the location for initscripts if the 'os' grain is not in the lookup dict, fixing this traceback.
This commit is contained in:
parent
a3339d9b81
commit
5495a5fdca
@ -11,21 +11,9 @@ __func_alias__ = {
|
|||||||
'reload_': 'reload'
|
'reload_': 'reload'
|
||||||
}
|
}
|
||||||
|
|
||||||
GRAINMAP = {
|
_GRAINMAP = {
|
||||||
'Arch': '/etc/rc.d',
|
'Arch': '/etc/rc.d',
|
||||||
'Arch ARM': '/etc/rc.d',
|
'Arch ARM': '/etc/rc.d'
|
||||||
'Debian': '/etc/init.d',
|
|
||||||
'Fedora': '/etc/init.d',
|
|
||||||
'RedHat': '/etc/init.d',
|
|
||||||
'Ubuntu': '/etc/init.d',
|
|
||||||
'Gentoo': '/etc/init.d',
|
|
||||||
'CentOS': '/etc/init.d',
|
|
||||||
'CloudLinux': '/etc/init.d',
|
|
||||||
'Amazon': '/etc/init.d',
|
|
||||||
'SunOS': '/etc/init.d',
|
|
||||||
'SUSE Enterprise Server': '/etc/init.d',
|
|
||||||
'openSUSE': '/etc/init.d',
|
|
||||||
'OEL': '/etc/init.d',
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -77,8 +65,10 @@ def start(name):
|
|||||||
|
|
||||||
salt '*' service.start <service name>
|
salt '*' service.start <service name>
|
||||||
'''
|
'''
|
||||||
cmd = os.path.join(GRAINMAP[__grains__['os']],
|
cmd = os.path.join(
|
||||||
name + ' start')
|
_GRAINMAP.get(__grains__.get('os'), '/etc/init.d'),
|
||||||
|
name + ' start'
|
||||||
|
)
|
||||||
return not __salt__['cmd.retcode'](cmd)
|
return not __salt__['cmd.retcode'](cmd)
|
||||||
|
|
||||||
|
|
||||||
@ -92,8 +82,10 @@ def stop(name):
|
|||||||
|
|
||||||
salt '*' service.stop <service name>
|
salt '*' service.stop <service name>
|
||||||
'''
|
'''
|
||||||
cmd = os.path.join(GRAINMAP[__grains__['os']],
|
cmd = os.path.join(
|
||||||
name + ' stop')
|
_GRAINMAP.get(__grains__.get('os'), '/etc/init.d'),
|
||||||
|
name + ' stop'
|
||||||
|
)
|
||||||
return not __salt__['cmd.retcode'](cmd)
|
return not __salt__['cmd.retcode'](cmd)
|
||||||
|
|
||||||
|
|
||||||
@ -107,8 +99,10 @@ def restart(name):
|
|||||||
|
|
||||||
salt '*' service.restart <service name>
|
salt '*' service.restart <service name>
|
||||||
'''
|
'''
|
||||||
cmd = os.path.join(GRAINMAP[__grains__['os']],
|
cmd = os.path.join(
|
||||||
name + ' restart')
|
_GRAINMAP.get(__grains__.get('os'), '/etc/init.d'),
|
||||||
|
name + ' restart'
|
||||||
|
)
|
||||||
return not __salt__['cmd.retcode'](cmd)
|
return not __salt__['cmd.retcode'](cmd)
|
||||||
|
|
||||||
|
|
||||||
@ -137,8 +131,10 @@ def reload_(name):
|
|||||||
|
|
||||||
salt '*' service.reload <service name>
|
salt '*' service.reload <service name>
|
||||||
'''
|
'''
|
||||||
cmd = os.path.join(GRAINMAP[__grains__['os']],
|
cmd = os.path.join(
|
||||||
name + ' reload')
|
_GRAINMAP.get(__grains__.get('os'), '/etc/init.d'),
|
||||||
|
name + ' reload'
|
||||||
|
)
|
||||||
return not __salt__['cmd.retcode'](cmd)
|
return not __salt__['cmd.retcode'](cmd)
|
||||||
|
|
||||||
|
|
||||||
@ -152,9 +148,9 @@ def get_all():
|
|||||||
|
|
||||||
salt '*' service.get_all
|
salt '*' service.get_all
|
||||||
'''
|
'''
|
||||||
if not os.path.isdir(GRAINMAP[__grains__['os']]):
|
if not os.path.isdir(_GRAINMAP.get(__grains__.get('os'), '/etc/init.d')):
|
||||||
return []
|
return []
|
||||||
return sorted(os.listdir(GRAINMAP[__grains__['os']]))
|
return sorted(os.listdir(_GRAINMAP.get(__grains__.get('os'), '/etc/init.d')))
|
||||||
|
|
||||||
|
|
||||||
def available(name):
|
def available(name):
|
||||||
|
Loading…
Reference in New Issue
Block a user