From 9677308caa78ed722570aea32f21334b8c27bad3 Mon Sep 17 00:00:00 2001 From: Martin Kosek Date: Fri, 29 Nov 2013 13:29:20 +0100 Subject: Allow kernel keyring CCACHE when supported Server and client installer should allow kernel keyring ccache when supported. https://fedorahosted.org/freeipa/ticket/4013 --- ipapython/kernel_keyring.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'ipapython/kernel_keyring.py') diff --git a/ipapython/kernel_keyring.py b/ipapython/kernel_keyring.py index 547dd3de6..d30531cab 100644 --- a/ipapython/kernel_keyring.py +++ b/ipapython/kernel_keyring.py @@ -17,6 +17,8 @@ # along with this program. If not, see . # +import os + from ipapython.ipautil import run # NOTE: Absolute path not required for keyctl since we reset the environment @@ -47,6 +49,21 @@ def get_real_key(key): raise ValueError('key %s not found' % key) return stdout.rstrip() +def get_persistent_key(key): + (stdout, stderr, rc) = run(['keyctl', 'get_persistent', KEYRING, key], raiseonerr=False) + if rc: + raise ValueError('persistent key %s not found' % key) + return stdout.rstrip() + +def is_persistent_keyring_supported(): + uid = os.geteuid() + try: + get_persistent_key(str(uid)) + except ValueError: + return False + + return True + def has_key(key): """ Returns True/False whether the key exists in the keyring. -- cgit