From 08229a0c5457d4e0c13d6b02a1f38f60ea787856 Mon Sep 17 00:00:00 2001 From: Jan Cholasta Date: Thu, 4 Jun 2015 11:59:22 +0000 Subject: install: Move private_ccache from ipaserver to ipapython https://fedorahosted.org/freeipa/ticket/4468 Reviewed-By: Martin Basti --- ipapython/ipautil.py | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'ipapython/ipautil.py') diff --git a/ipapython/ipautil.py b/ipapython/ipautil.py index abdb96d9b..f0c9c6b5a 100644 --- a/ipapython/ipautil.py +++ b/ipapython/ipautil.py @@ -38,6 +38,7 @@ import krbV import pwd from dns import resolver, rdatatype from dns.exception import DNSException +from contextlib import contextmanager from ipapython.ipa_log_manager import * from ipapython import ipavalidate @@ -1300,3 +1301,26 @@ def restore_hostname(statestore): run([paths.BIN_HOSTNAME, old_hostname]) except CalledProcessError, e: print >>sys.stderr, "Failed to set this machine hostname back to %s: %s" % (old_hostname, str(e)) + + +@contextmanager +def private_ccache(path=None): + + if path is None: + (desc, path) = tempfile.mkstemp(prefix='krbcc') + os.close(desc) + + original_value = os.environ.get('KRB5CCNAME', None) + + os.environ['KRB5CCNAME'] = path + + try: + yield + finally: + if original_value is not None: + os.environ['KRB5CCNAME'] = original_value + else: + os.environ.pop('KRB5CCNAME') + + if os.path.exists(path): + os.remove(path) -- cgit