parent
b8e82f8504
commit
7f611468a8
1 changed files with 27 additions and 1 deletions
|
@ -501,7 +501,33 @@ class LinuxService(Service):
|
||||||
(rc, out, err) = self.execute_command("%s show %s" % (self.enable_cmd, self.__systemd_unit,))
|
(rc, out, err) = self.execute_command("%s show %s" % (self.enable_cmd, self.__systemd_unit,))
|
||||||
if rc != 0:
|
if rc != 0:
|
||||||
self.module.fail_json(msg='failure %d running systemctl show for %r: %s' % (rc, self.__systemd_unit, err))
|
self.module.fail_json(msg='failure %d running systemctl show for %r: %s' % (rc, self.__systemd_unit, err))
|
||||||
return dict(line.split('=', 1) for line in out.splitlines())
|
key = None
|
||||||
|
value_buffer = []
|
||||||
|
status_dict = {}
|
||||||
|
for line in out.splitlines():
|
||||||
|
if not key:
|
||||||
|
key, value = line.split('=', 1)
|
||||||
|
# systemd fields that are shell commands can be multi-line
|
||||||
|
# We take a value that begins with a "{" as the start of
|
||||||
|
# a shell command and a line that ends with "}" as the end of
|
||||||
|
# the command
|
||||||
|
if value.lstrip().startswith('{'):
|
||||||
|
if value.rstrip().endswith('}'):
|
||||||
|
status_dict[key] = value
|
||||||
|
key = None
|
||||||
|
else:
|
||||||
|
value_buffer.append(value)
|
||||||
|
else:
|
||||||
|
status_dict[key] = value
|
||||||
|
key = None
|
||||||
|
else:
|
||||||
|
if line.rstrip().endswith('}'):
|
||||||
|
status_dict[key] = '\n'.join(value_buffer)
|
||||||
|
key = None
|
||||||
|
else:
|
||||||
|
value_buffer.append(value)
|
||||||
|
|
||||||
|
return status_dict
|
||||||
|
|
||||||
def get_systemd_service_status(self):
|
def get_systemd_service_status(self):
|
||||||
d = self.get_systemd_status_dict()
|
d = self.get_systemd_status_dict()
|
||||||
|
|
Loading…
Reference in a new issue