7e1b55
From 7a13200fd8b92dd90ebc4b6416ef25659df8aa71 Mon Sep 17 00:00:00 2001
7e1b55
From: Rob Crittenden <rcritten@redhat.com>
7e1b55
Date: Fri, 16 Jul 2021 12:59:47 -0400
7e1b55
Subject: [PATCH] ipatests: test ipa-getkeytab server option
7e1b55
7e1b55
Test various usages of the -s/--server option:
7e1b55
* -s is defined, use it as the server
7e1b55
* no -s, use the host value from /etc/ipa/default.conf
7e1b55
* -s is '_srv_', do DNS discovery
7e1b55
7e1b55
https://pagure.io/freeipa/issue/8478
7e1b55
7e1b55
Signed-off-by: Rob Crittenden <rcritten@redhat.com>
7e1b55
Reviewed-By: Alexander Bokovoy <abokovoy@redhat.com>
7e1b55
Reviewed-By: Alexander Bokovoy <abokovoy@redhat.com>
7e1b55
Reviewed-By: Florence Blanc-Renaud <flo@redhat.com>
7e1b55
---
7e1b55
 ipatests/test_integration/test_commands.py | 58 ++++++++++++++++++++++
7e1b55
 1 file changed, 58 insertions(+)
7e1b55
7e1b55
diff --git a/ipatests/test_integration/test_commands.py b/ipatests/test_integration/test_commands.py
7e1b55
index d64519eb7..2035ced56 100644
7e1b55
--- a/ipatests/test_integration/test_commands.py
7e1b55
+++ b/ipatests/test_integration/test_commands.py
7e1b55
@@ -1467,6 +1467,64 @@ class TestIPACommand(IntegrationTest):
7e1b55
             assert 'This account is currently not available' in \
7e1b55
                 result.stdout_text
7e1b55
 
7e1b55
+    def test_ipa_getkeytab_server(self):
7e1b55
+        """
7e1b55
+        Exercise the ipa-getkeytab server options
7e1b55
+
7e1b55
+        This relies on the behavior that without a TGT
7e1b55
+        ipa-getkeytab will quit and not do much of anything.
7e1b55
+
7e1b55
+        A bogus keytab and principal are passed in to satisfy the
7e1b55
+        minimum requirements.
7e1b55
+        """
7e1b55
+        tasks.kdestroy_all(self.master)
7e1b55
+
7e1b55
+        # Pass in a server name to use
7e1b55
+        result = self.master.run_command(
7e1b55
+            [
7e1b55
+                paths.IPA_GETKEYTAB,
7e1b55
+                "-k",
7e1b55
+                "/tmp/keytab",
7e1b55
+                "-p",
7e1b55
+                "foo",
7e1b55
+                "-s",
7e1b55
+                self.master.hostname,
7e1b55
+                "-v",
7e1b55
+            ], raiseonerr=False).stderr_text
7e1b55
+
7e1b55
+        assert 'Using provided server %s' % self.master.hostname in result
7e1b55
+
7e1b55
+        # Don't pass in a name, should use /etc/ipa/default.conf
7e1b55
+        result = self.master.run_command(
7e1b55
+            [
7e1b55
+                paths.IPA_GETKEYTAB,
7e1b55
+                "-k",
7e1b55
+                "/tmp/keytab",
7e1b55
+                "-p",
7e1b55
+                "foo",
7e1b55
+                "-v",
7e1b55
+            ], raiseonerr=False).stderr_text
7e1b55
+
7e1b55
+        assert (
7e1b55
+            'Using server from config %s' % self.master.hostname
7e1b55
+            in result
7e1b55
+        )
7e1b55
+
7e1b55
+        # Use DNS SRV lookup
7e1b55
+        result = self.master.run_command(
7e1b55
+            [
7e1b55
+                paths.IPA_GETKEYTAB,
7e1b55
+                "-k",
7e1b55
+                "/tmp/keytab",
7e1b55
+                "-p",
7e1b55
+                "foo",
7e1b55
+                "-s",
7e1b55
+                "_srv_",
7e1b55
+                "-v",
7e1b55
+            ], raiseonerr=False).stderr_text
7e1b55
+
7e1b55
+        assert 'Discovered server %s' % self.master.hostname in result
7e1b55
+
7e1b55
 
7e1b55
 class TestIPACommandWithoutReplica(IntegrationTest):
7e1b55
     """
7e1b55
-- 
7e1b55
2.31.1
7e1b55