summaryrefslogtreecommitdiff
path: root/test/units/modules
diff options
context:
space:
mode:
authordberg1 <48122102+dberg1@users.noreply.github.com>2020-10-13 17:28:59 +0200
committerGitHub <noreply@github.com>2020-10-13 11:28:59 -0400
commitcdf62edc65f564fff6b7e575e084026fa7faa409 (patch)
treef53389e22ed0a4552d5217986048e05d60e45d07 /test/units/modules
parentcaba47dd3f3f37e989357bce676e420ff8b6a86f (diff)
downloadansible-cdf62edc65f564fff6b7e575e084026fa7faa409.tar.gz
service_facts: return service state information on AIX (#72073)
* service_facts: return service state information on AIX AIX uses the System Resource Controller (SRC) to manage services. See https://www.ibm.com/support/knowledgecenter/ssw_aix_72/osmanagement/sysrescon.htm Use lssrc command on AIX to return service state information. Co-authored-by: dberg1 <dberg1@github.com>
Diffstat (limited to 'test/units/modules')
-rw-r--r--test/units/modules/test_service_facts.py126
1 files changed, 126 insertions, 0 deletions
diff --git a/test/units/modules/test_service_facts.py b/test/units/modules/test_service_facts.py
new file mode 100644
index 0000000000..07f6827e02
--- /dev/null
+++ b/test/units/modules/test_service_facts.py
@@ -0,0 +1,126 @@
+# -*- coding: utf-8 -*-
+# Copyright (c) 2020 Ansible Project
+# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+from __future__ import absolute_import, division, print_function
+__metaclass__ = type
+
+from units.compat import unittest
+from units.compat.mock import patch
+
+from ansible.module_utils import basic
+from ansible.modules.service_facts import AIXScanService
+
+
+# AIX # lssrc -a
+LSSRC_OUTPUT = """
+Subsystem Group PID Status
+ sendmail mail 5243302 active
+ syslogd ras 5636528 active
+ portmap portmap 5177768 active
+ snmpd tcpip 5308844 active
+ hostmibd tcpip 5374380 active
+ snmpmibd tcpip 5439918 active
+ aixmibd tcpip 5505456 active
+ nimsh nimclient 5571004 active
+ aso 6029758 active
+ biod nfs 6357464 active
+ nfsd nfs 5701906 active
+ rpc.mountd nfs 6488534 active
+ rpc.statd nfs 7209216 active
+ rpc.lockd nfs 7274988 active
+ qdaemon spooler 6816222 active
+ writesrv spooler 6685150 active
+ clcomd caa 7471600 active
+ sshd ssh 7602674 active
+ pfcdaemon 7012860 active
+ ctrmc rsct 6947312 active
+ IBM.HostRM rsct_rm 14418376 active
+ IBM.ConfigRM rsct_rm 6160674 active
+ IBM.DRM rsct_rm 14680550 active
+ IBM.MgmtDomainRM rsct_rm 14090676 active
+ IBM.ServiceRM rsct_rm 13828542 active
+ cthats cthats 13959668 active
+ cthags cthags 14025054 active
+ IBM.StorageRM rsct_rm 12255706 active
+ inetd tcpip 12517828 active
+ lpd spooler inoperative
+ keyserv keyserv inoperative
+ ypbind yp inoperative
+ gsclvmd inoperative
+ cdromd inoperative
+ ndpd-host tcpip inoperative
+ ndpd-router tcpip inoperative
+ netcd netcd inoperative
+ tftpd tcpip inoperative
+ routed tcpip inoperative
+ mrouted tcpip inoperative
+ rsvpd qos inoperative
+ policyd qos inoperative
+ timed tcpip inoperative
+ iptrace tcpip inoperative
+ dpid2 tcpip inoperative
+ rwhod tcpip inoperative
+ pxed tcpip inoperative
+ binld tcpip inoperative
+ xntpd tcpip inoperative
+ gated tcpip inoperative
+ dhcpcd tcpip inoperative
+ dhcpcd6 tcpip inoperative
+ dhcpsd tcpip inoperative
+ dhcpsdv6 tcpip inoperative
+ dhcprd tcpip inoperative
+ dfpd tcpip inoperative
+ named tcpip inoperative
+ automountd autofs inoperative
+ nfsrgyd nfs inoperative
+ gssd nfs inoperative
+ cpsd ike inoperative
+ tmd ike inoperative
+ isakmpd inoperative
+ ikev2d inoperative
+ iked ike inoperative
+ clconfd caa inoperative
+ ksys_vmmon inoperative
+ nimhttp inoperative
+ IBM.SRVPROXY ibmsrv inoperative
+ ctcas rsct inoperative
+ IBM.ERRM rsct_rm inoperative
+ IBM.AuditRM rsct_rm inoperative
+ isnstgtd isnstgtd inoperative
+ IBM.LPRM rsct_rm inoperative
+ cthagsglsm cthags inoperative
+"""
+
+
+class TestAIXScanService(unittest.TestCase):
+
+ def setUp(self):
+ self.mock1 = patch.object(basic.AnsibleModule, 'get_bin_path', return_value='/usr/sbin/lssrc')
+ self.mock1.start()
+ self.addCleanup(self.mock1.stop)
+ self.mock2 = patch.object(basic.AnsibleModule, 'run_command', return_value=(0, LSSRC_OUTPUT, ''))
+ self.mock2.start()
+ self.addCleanup(self.mock2.stop)
+ self.mock3 = patch('platform.system', return_value='AIX')
+ self.mock3.start()
+ self.addCleanup(self.mock3.stop)
+
+ def test_gather_services(self):
+ svcmod = AIXScanService(basic.AnsibleModule)
+ result = svcmod.gather_services()
+
+ self.assertIsInstance(result, dict)
+
+ self.assertIn('IBM.HostRM', result)
+ self.assertEqual(result['IBM.HostRM'], {
+ 'name': 'IBM.HostRM',
+ 'source': 'src',
+ 'state': 'running',
+ })
+ self.assertIn('IBM.AuditRM', result)
+ self.assertEqual(result['IBM.AuditRM'], {
+ 'name': 'IBM.AuditRM',
+ 'source': 'src',
+ 'state': 'stopped',
+ })