Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:13.2:Update
salt
allow-systemd-units-no-unit-files.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File allow-systemd-units-no-unit-files.patch of Package salt
From 90bece1faa1862465e97f7caf262c65cd84583ff Mon Sep 17 00:00:00 2001 From: Massimiliano Torromeo <massimiliano.torromeo@gmail.com> Date: Fri, 11 Apr 2014 14:43:02 +0200 Subject: [PATCH] Allow systemd units no provided by unit files to be handled. This allows to query status, start, stop, restart and list units that are not actually provided by unit files. Such units cannot be enabled/disabled and that's why those actions still prefer the "list-unit-files" output over "list-units". Units that couldn't be handled otherwise include for example mount units and sysvinit compatibility units such as those present on debian systems. The output of a "service.running ssh" state on a debian wheezy target is: ID: ssh Function: service.running Result: False Comment: The named service ssh is not available Changes: after this patch: ID: ssh Function: service.running Result: True Comment: The service ssh is already running Changes: --- salt/modules/systemd.py | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/salt/modules/systemd.py b/salt/modules/systemd.py index 57b55f5..e2cfb1d 100644 --- a/salt/modules/systemd.py +++ b/salt/modules/systemd.py @@ -72,6 +72,28 @@ def _systemctl_cmd(action, name): return 'systemctl {0} {1}'.format(action, _canonical_unit_name(name)) +def _get_all_units(): + ''' + Get all units and their state. Units ending in .service + are normalized so that they can be referenced without a type suffix. + ''' + rexp = re.compile(r'(?m)^(?P<name>.+)\.(?P<type>' + + '|'.join(VALID_UNIT_TYPES) + + r')\s+loaded\s+(?P<active>[^\s]+)') + + out = __salt__['cmd.run_stdout']( + 'systemctl --full list-units | col -b' + ) + + ret = {} + for match in rexp.finditer(out): + name = match.group('name') + if match.group('type') != 'service': + name += '.' + match.group('type') + ret[name] = match.group('active') + return ret + + def _get_all_unit_files(): ''' Get all unit files and their state. Unit files ending in .service @@ -173,7 +195,7 @@ def get_all(): salt '*' service.get_all ''' - return sorted(_get_all_unit_files().keys()) + return sorted(_get_all_units().keys()) def available(name): -- 1.9.3
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor