From fd23120d4226048f71a5a1e17016b6a3200601b3 Mon Sep 17 00:00:00 2001 From: Brian Coca Date: Tue, 1 Sep 2015 10:57:37 -0400 Subject: [PATCH] check systemctl status before show as show will not return antyhing other than rc=0 even when it fails. --- lib/ansible/modules/system/service.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/lib/ansible/modules/system/service.py b/lib/ansible/modules/system/service.py index 034f13efa21..172ebb7a914 100644 --- a/lib/ansible/modules/system/service.py +++ b/lib/ansible/modules/system/service.py @@ -520,7 +520,13 @@ class LinuxService(Service): return False def get_systemd_status_dict(self): - (rc, out, err) = self.execute_command("%s show %s" % (self.enable_cmd, self.__systemd_unit,)) + + # Check status first as show will not fail if service does not exist + (rc, out, err) = self.execute_command("%s status '%s'" % (self.enable_cmd, self.__systemd_unit,)) + if rc != 0: + self.module.fail_json(msg='failure %d running systemctl status for %r: %s' % (rc, self.__systemd_unit, err)) + + (rc, out, err) = self.execute_command("%s show '%s'" % (self.enable_cmd, self.__systemd_unit,)) if rc != 0: self.module.fail_json(msg='failure %d running systemctl show for %r: %s' % (rc, self.__systemd_unit, err)) key = None