From a39af6b7228d8ba85b9e97aa5decbc056d081c77 Mon Sep 17 00:00:00 2001 From: Sudhir Menon Date: Thu, 23 Jun 2022 16:14:39 +0530 Subject: [PATCH] ipatests: ipa-client-install --subid adds entry in nsswitch.conf This testcase checks that when ipa-client-install command is run with --subid option, /etc/nsswitch.conf file is updated with the below entry subid: nss Related: https://pagure.io/freeipa/issue/9159 Since the newly added testsuite required client system, hence modified the below yaml files to change the topology from *master_1repl to *master_1repl_1client in the below files gating.yaml nightly_latest.yaml nightly_rawhide.yaml Signed-off-by: Sudhir Menon Reviewed-By: Rob Crittenden Reviewed-By: Michal Polovka Reviewed-By: Stanislav Levin Reviewed-By: Florence Blanc-Renaud Signed-off-by: Sudhir Menon Reviewed-By: Rob Crittenden Reviewed-By: Michal Polovka Reviewed-By: Stanislav Levin Reviewed-By: Florence Blanc-Renaud --- ipatests/prci_definitions/gating.yaml | 2 +- .../nightly_ipa-4-10_latest.yaml | 2 +- .../nightly_ipa-4-10_latest_selinux.yaml | 2 +- .../nightly_ipa-4-10_previous.yaml | 2 +- ipatests/test_integration/test_subids.py | 38 +++++++++++++++++++ 5 files changed, 42 insertions(+), 4 deletions(-) diff --git a/ipatests/prci_definitions/gating.yaml b/ipatests/prci_definitions/gating.yaml index 4083c650a17ce76bdefa243f1a7c5924039ff0bb..db4875dcfae8676287ef771805b34d988330bb40 100644 --- a/ipatests/prci_definitions/gating.yaml +++ b/ipatests/prci_definitions/gating.yaml @@ -309,4 +309,4 @@ jobs: test_suite: test_integration/test_subids.py template: *ci-ipa-4-10-latest timeout: 3600 - topology: *master_1repl + topology: *master_1repl_1client diff --git a/ipatests/prci_definitions/nightly_ipa-4-10_latest.yaml b/ipatests/prci_definitions/nightly_ipa-4-10_latest.yaml index 24aa6e7cf29e448ba9d838d1cb98169213ea63ef..027b2a5b6c0b7ec3c3b5784ec4569661a06d4ed7 100644 --- a/ipatests/prci_definitions/nightly_ipa-4-10_latest.yaml +++ b/ipatests/prci_definitions/nightly_ipa-4-10_latest.yaml @@ -1748,7 +1748,7 @@ jobs: test_suite: test_integration/test_subids.py template: *ci-ipa-4-10-latest timeout: 3600 - topology: *master_1repl + topology: *master_1repl_1client fedora-latest-ipa-4-10/test_custom_plugins: requires: [fedora-latest-ipa-4-10/build] diff --git a/ipatests/prci_definitions/nightly_ipa-4-10_latest_selinux.yaml b/ipatests/prci_definitions/nightly_ipa-4-10_latest_selinux.yaml index f22cc08384b3d50e49278d38e73bf93cd7804e80..bcc17bef935666735bfb2c2e51209362a374b511 100644 --- a/ipatests/prci_definitions/nightly_ipa-4-10_latest_selinux.yaml +++ b/ipatests/prci_definitions/nightly_ipa-4-10_latest_selinux.yaml @@ -1887,7 +1887,7 @@ jobs: test_suite: test_integration/test_subids.py template: *ci-ipa-4-10-latest timeout: 3600 - topology: *master_1repl + topology: *master_1repl_1client fedora-latest-ipa-4-10/test_custom_plugins: requires: [fedora-latest-ipa-4-10/build] diff --git a/ipatests/prci_definitions/nightly_ipa-4-10_previous.yaml b/ipatests/prci_definitions/nightly_ipa-4-10_previous.yaml index df98a66871fd90daaebd83f063e48f1580675049..37d38762e696a6394ef146a0e2b68bbc8ced515d 100644 --- a/ipatests/prci_definitions/nightly_ipa-4-10_previous.yaml +++ b/ipatests/prci_definitions/nightly_ipa-4-10_previous.yaml @@ -1748,7 +1748,7 @@ jobs: test_suite: test_integration/test_subids.py template: *ci-ipa-4-10-previous timeout: 3600 - topology: *master_1repl + topology: *master_1repl_1client fedora-previous-ipa-4-10/test_custom_plugins: requires: [fedora-previous-ipa-4-10/build] diff --git a/ipatests/test_integration/test_subids.py b/ipatests/test_integration/test_subids.py index f6d8607f237bf03358baae008dd2a6ad819751c0..8158499e1a2b71bdc1a308dec0939fd0d491599d 100644 --- a/ipatests/test_integration/test_subids.py +++ b/ipatests/test_integration/test_subids.py @@ -17,6 +17,7 @@ from ipatests.test_integration.base import IntegrationTest class TestSubordinateId(IntegrationTest): num_replicas = 0 + num_clients = 1 topology = "star" def _parse_result(self, result): @@ -268,3 +269,40 @@ class TestSubordinateId(IntegrationTest): f"--subuid={subuid}"]) owner = self._parse_result(result)["owner"] assert owner == uid + + def test_nsswitch_doesnot_contain_subid_entry(self): + """ + This testcase checks that when ipa-client-install + is installed without subid option, the nsswitch.conf + does not contain subid entry or does not use sss as + source for subid + """ + cmd = self.clients[0].run_command( + ["grep", "^subid", "/etc/nsswitch.conf"], + raiseonerr=False + ) + # a source is defined for the subid database. + # Ensure it is not "sss" + if cmd.returncode == 0: + assert 'sss' not in cmd.stdout_text + else: + # grep command returncode 1 means no matching line + # was found = no source is defined for the subid database, + # which is valid other return codes would + # mean an error occurred + assert cmd.returncode == 1 + + def test_nsswitch_is_updated_with_subid_entry(self): + """ + This test case checks that when ipa-client-install + is installed with --subid option, the nsswitch.conf + file is modified with the entry 'subid: sss' + """ + tasks.uninstall_client(self.clients[0]) + tasks.install_client(self.master, self.clients[0], + extra_args=['--subid']) + cmd = self.clients[0].run_command( + ["grep", "^subid", "/etc/nsswitch.conf"] + ) + subid = cmd.stdout_text.split() + assert ['subid:', 'sss'] == subid -- 2.37.2