You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@spot.apache.org by na...@apache.org on 2018/03/19 19:28:33 UTC
[24/42] incubator-spot git commit: [SPOT-213][SPOT-223] attempt to
fix kerberos authenticate issue with kerberos.py
[SPOT-213][SPOT-223] attempt to fix kerberos authenticate issue with kerberos.py
Project: http://git-wip-us.apache.org/repos/asf/incubator-spot/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-spot/commit/d7b1d37e
Tree: http://git-wip-us.apache.org/repos/asf/incubator-spot/tree/d7b1d37e
Diff: http://git-wip-us.apache.org/repos/asf/incubator-spot/diff/d7b1d37e
Branch: refs/heads/SPOT-181_ODM
Commit: d7b1d37efc8ea23c35745dbd2fc32d1d5a69854f
Parents: 1582c4c
Author: natedogs911 <na...@gmail.com>
Authored: Fri Jan 19 09:43:05 2018 -0800
Committer: natedogs911 <na...@gmail.com>
Committed: Fri Jan 19 09:43:05 2018 -0800
----------------------------------------------------------------------
spot-ingest/common/kerberos.py | 42 +++++++++++++++++++++----------------
1 file changed, 24 insertions(+), 18 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-spot/blob/d7b1d37e/spot-ingest/common/kerberos.py
----------------------------------------------------------------------
diff --git a/spot-ingest/common/kerberos.py b/spot-ingest/common/kerberos.py
index 1cdca78..95baef9 100755
--- a/spot-ingest/common/kerberos.py
+++ b/spot-ingest/common/kerberos.py
@@ -17,31 +17,37 @@
# limitations under the License.
#
-import os
-import subprocess
import sys
+import os
+import common.configurator as config
+from common.utils import Util
-class Kerberos(object):
+class Kerberos(object):
def __init__(self):
- self._kinit = os.getenv('KINITPATH')
- self._kinitopts = os.getenv('KINITOPTS')
- self._keytab = os.getenv('KEYTABPATH')
- self._krb_user = os.getenv('KRB_USER')
+ self._logger = Util.get_logger('SPOT.COMMON.KERBEROS')
+ principal, keytab, sasl_mech, security_proto = config.kerberos()
+
+ if os.getenv('KINITPATH'):
+ self._kinit = os.getenv('KINITPATH')
+ else:
+ self._kinit = "kinit"
+
+ self._kinitopts = os.getenv('KINITOPTS')
+ self._keytab = "-kt {0}".format(keytab)
+ self._krb_user = principal
- if self._kinit == None or self._kinitopts == None or self._keytab == None or self._krb_user == None:
- print "Please verify kerberos configuration, some environment variables are missing."
+ if self._kinit == None or self._keytab == None or self._krb_user == None:
+ self._logger.error("Please verify kerberos configuration, some environment variables are missing.")
sys.exit(1)
- self._kinit_args = [self._kinit,self._kinitopts,self._keytab,self._krb_user]
+ if self._kinitopts is None:
+ self._kinit_cmd = "{0} {1} {2}".format(self._kinit, self._keytab, self._krb_user)
+ else:
+ self._kinit_cmd = "{0} {1} {2} {3}".format(self._kinit, self._kinitopts, self._keytab, self._krb_user)
- def authenticate(self):
+ def authenticate(self):
- kinit = subprocess.Popen(self._kinit_args, stderr = subprocess.PIPE)
- output,error = kinit.communicate()
- if not kinit.returncode == 0:
- if error:
- print error.rstrip()
- sys.exit(kinit.returncode)
- print "Successfully authenticated!"
+ Util.execute_cmd(self._kinit_cmd, self._logger)
+ self._logger.info("Kerberos ticket obtained")