mirror of
https://github.com/valitydev/salt.git
synced 2024-11-07 08:58:59 +00:00
Update smf.py to fix availability check on SmartOS
Checking availability uses the services name, not the package name. The get_all function (which is used by available and missing functions) returns the service name. While to install the package, you need the package name. For example, for nginx, you have pkgsrc/nginx for the service name and nginx for the package name. /usr/bin/svcs -H -o SVC <packagename> will take the package name and return abbreviated service name which can then be compared against the service list returned by the get_all function. This fix works on SmartOS, but it was not compared to other SMF distributions. Therefore, the fix was confined to SmartOS.
This commit is contained in:
parent
e1508f5517
commit
c354e076aa
@ -87,7 +87,10 @@ def get_stopped():
|
||||
def available(name):
|
||||
'''
|
||||
Returns ``True`` if the specified service is available, otherwise returns
|
||||
``False``.
|
||||
``False``.
|
||||
|
||||
The SmartOS if statement uses svcs to return the service name from the
|
||||
package name.
|
||||
|
||||
CLI Example:
|
||||
|
||||
@ -95,8 +98,13 @@ def available(name):
|
||||
|
||||
salt '*' service.available net-snmp
|
||||
'''
|
||||
return name in get_all()
|
||||
|
||||
if 'SmartOS' in __grains__['os']:
|
||||
cmd = '/usr/bin/svcs -H -o SVC {0}'.format(name)
|
||||
name = __salt__['cmd.run'](cmd)
|
||||
return name in get_all()
|
||||
else:
|
||||
return name in get_all()
|
||||
|
||||
|
||||
def missing(name):
|
||||
'''
|
||||
@ -110,8 +118,13 @@ def missing(name):
|
||||
|
||||
salt '*' service.missing net-snmp
|
||||
'''
|
||||
return name not in get_all()
|
||||
|
||||
if 'SmartOS' in __grains__['os']:
|
||||
cmd = '/usr/bin/svcs -H -o SVC {0}'.format(name)
|
||||
name = __salt__['cmd.run'](cmd)
|
||||
return name not in get_all()
|
||||
else:
|
||||
return name not in get_all()
|
||||
|
||||
|
||||
def get_all():
|
||||
'''
|
||||
|
Loading…
Reference in New Issue
Block a user