From 0700e4958e4349eb2938d2eac14c6724b7df32b7 Mon Sep 17 00:00:00 2001 From: Mike McLean Date: Aug 14 2019 15:47:39 +0000 Subject: PR#1613: Allow builder to attempt krb if gssapi is available Merges #1613 https://pagure.io/koji/pull-request/1613 Fixes: #1575 https://pagure.io/koji/issue/1575 Allow builder to attempt krb if gssapi is available --- diff --git a/builder/kojid b/builder/kojid index 142a440..73c2bf7 100755 --- a/builder/kojid +++ b/builder/kojid @@ -65,10 +65,17 @@ from koji.util import parseStatus, isSuccess, dslice, dslice_ex, to_list try: import krbV + Krb5Error = krbV.Krb5Error except ImportError: # pragma: no cover krbV = None try: + import requests_kerberos + Krb5Error = requests_kerberos.exceptions.RequestException +except ImportError: # pragma: no cover + requests_kerberos = None + +try: import librepo import io except ImportError: @@ -6264,7 +6271,7 @@ if __name__ == "__main__": quit("Error: Unable to log in. Bad credentials?") except six.moves.xmlrpc_client.ProtocolError: quit("Error: Unable to connect to server %s" % (options.server)) - elif krbV: + elif krbV or requests_kerberos: krb_principal = options.krb_principal if krb_principal is None: krb_principal = options.host_principal_format % socket.getfqdn() @@ -6272,8 +6279,8 @@ if __name__ == "__main__": session.krb_login(principal=krb_principal, keytab=options.keytab, ccache=options.ccache) - except krbV.Krb5Error as e: - quit("Kerberos authentication failed: '%s' (%s)" % (e.args[1], e.args[0])) + except Krb5Error as e: + quit("Kerberos authentication failed: %s" % e.args) except socket.error as e: quit("Could not connect to Kerberos authentication service: '%s'" % e.args[1]) else: