Merge pull request #1 from terminalmage/pr-36538

Move check for service availability to a helper function
This commit is contained in:
Clint Armstrong 2016-09-28 16:42:13 -04:00 committed by GitHub
commit 833beb9b36

View File

@ -71,6 +71,23 @@ def _canonical_unit_name(name):
return '%s.service' % name
def _check_available(name):
'''
Returns boolean telling whether or not the named service is available
'''
out = _systemctl_status(name).lower()
for line in salt.utils.itertools.split(out, '\n'):
match = re.match(r'\s+loaded:\s+(\S+)', line)
if match:
ret = match.group(1) != 'not-found'
break
else:
raise CommandExecutionError(
'Failed to get information on unit \'%s\'' % name
)
return ret
def _check_for_unit_changes(name):
'''
Check for modified/updated unit files, and run a daemon-reload if any are
@ -298,7 +315,7 @@ def _untracked_custom_unit_found(name):
'''
unit_path = os.path.join('/etc/systemd/system',
_canonical_unit_name(name))
return os.access(unit_path, os.R_OK) and not available(name, False)
return os.access(unit_path, os.R_OK) and not _check_available(name)
def _unit_file_changed(name):
@ -468,7 +485,7 @@ def get_all():
return sorted(ret)
def available(name, check_units=True):
def available(name):
'''
.. versionadded:: 0.10.4
@ -481,19 +498,8 @@ def available(name, check_units=True):
salt '*' service.available sshd
'''
if check_units:
_check_for_unit_changes(name)
out = _systemctl_status(name).lower()
for line in salt.utils.itertools.split(out, '\n'):
match = re.match(r'\s+loaded:\s+(\S+)', line)
if match:
ret = match.group(1) != 'not-found'
break
else:
raise CommandExecutionError(
'Failed to get information on unit \'%s\'' % name
)
return ret
_check_for_unit_changes(name)
return _check_available(name)
def missing(name):