From 25c3c03a111b146028d490b7cf5edfb8a3645fde Mon Sep 17 00:00:00 2001 From: Patrik Lundin Date: Sun, 31 Aug 2014 11:58:37 +0200 Subject: [PATCH] Tweak error checking for "enabled" code. Based on input from @jarmani: * A return value of 2 now means a service does not exist. Instead of trying to handle the different meanings of rc after running "status", just look at stderr to know if something failed. * Skip looking at stdout to make the code cleaner. Any errors should turn up on stderr. --- lib/ansible/modules/system/service.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/lib/ansible/modules/system/service.py b/lib/ansible/modules/system/service.py index efbba7e1b30..22ff5545a2c 100644 --- a/lib/ansible/modules/system/service.py +++ b/lib/ansible/modules/system/service.py @@ -1022,6 +1022,9 @@ class OpenBsdService(Service): rc, stdout, stderr = self.execute_command("%s %s %s" % (self.enable_cmd, 'status', self.name)) + if stderr: + self.module.fail_json(msg=stderr) + if self.enable: action = "enable %s flags %s" % (self.name, self.arguments) args = self.arguments @@ -1030,8 +1033,6 @@ class OpenBsdService(Service): else: action = "disable %s" % self.name if rc == 1: - if stderr: - self.module.fail_json(msg=stderr) return if self.module.check_mode: @@ -1042,8 +1043,6 @@ class OpenBsdService(Service): if rc != 0: if stderr: self.module.fail_json(msg=stderr) - elif stdout: - self.module.fail_json(msg=stdout) else: self.module.fail_json(msg="rcctl failed to modify service enablement")