|
8 | 8 |
|
9 | 9 | from servicereportpkg.check import DaemonCheck |
10 | 10 | from servicereportpkg.utils import is_daemon_enabled |
| 11 | +from servicereportpkg.utils import get_service_status |
11 | 12 | from servicereportpkg.validate.plugins import Plugin |
12 | 13 | from servicereportpkg.validate.schemes.schemes import PSeriesScheme |
13 | 14 | from servicereportpkg.validate.schemes.schemes import BMCPowerNVScheme |
|
19 | 20 |
|
20 | 21 |
|
21 | 22 | def generate_daemon_check(self, daemon): |
22 | | - """Generates a function that checks the given daemon is enabled or not""" |
| 23 | + """Generates a function to check daemon status""" |
23 | 24 |
|
24 | 25 | def check(): |
25 | | - check_daemon = daemon |
26 | | - daemon_status = is_daemon_enabled(check_daemon) |
27 | | - |
28 | | - if daemon_status is None: |
29 | | - self.log.warning("Unable to find %s daemon status", check_daemon) |
30 | | - elif daemon_status is False: |
31 | | - self.log.error("%s is not enabled" % check_daemon) |
| 26 | + status = True |
| 27 | + enabled = is_daemon_enabled(daemon) |
| 28 | + |
| 29 | + if enabled is None: |
| 30 | + self.log.warning("Unable to find %s daemon status", daemon) |
| 31 | + elif enabled is False: |
| 32 | + self.log.error("%s is not enabled" % daemon) |
| 33 | + |
| 34 | + active = get_service_status(daemon) |
| 35 | + if active is None or active != 0: |
| 36 | + self.log.error("%s daemon is not active", daemon) |
| 37 | + self.log.recommendation("Start the service: systemctl start %s", |
| 38 | + daemon) |
| 39 | + active = False |
32 | 40 | else: |
33 | | - self.log.info("%s is enabled" % check_daemon) |
| 41 | + self.log.info("%s is active" % daemon) |
| 42 | + active = True |
| 43 | + |
| 44 | + if enabled is None or active is None: |
| 45 | + status = None |
| 46 | + elif enabled is False or active is False: |
| 47 | + status = False |
34 | 48 |
|
35 | | - return DaemonCheck(check_daemon, check_daemon, daemon_status) |
| 49 | + return DaemonCheck(daemon, status, enabled, active) |
36 | 50 |
|
37 | 51 | check.__doc__ = "%s" % (daemon) |
38 | 52 | return check |
|
0 commit comments