summaryrefslogtreecommitdiff
path: root/src/leap/util
diff options
context:
space:
mode:
authorkali <kali@leap.se>2013-02-13 01:32:35 +0900
committerkali <kali@leap.se>2013-02-13 01:33:27 +0900
commit1032e07a50c8bb265ff9bd31b3bb00e83ddb451e (patch)
tree9f512367b1d47ced5614702a00f3ff0a8fe746d7 /src/leap/util
parentb1f4715334a1b6559ce35dbfe40cd1e1ad91cf7f (diff)
launch policykit agent if not running
Diffstat (limited to 'src/leap/util')
-rw-r--r--src/leap/util/polkit.py26
1 files changed, 26 insertions, 0 deletions
diff --git a/src/leap/util/polkit.py b/src/leap/util/polkit.py
new file mode 100644
index 00000000..70671124
--- /dev/null
+++ b/src/leap/util/polkit.py
@@ -0,0 +1,26 @@
+import logging
+
+import sh
+from sh import grep
+from sh import ps
+
+logger = logging.getLogger(__name__)
+
+
+def run_polkit_auth_agent():
+ logger.debug('launching policykit authentication agent in background...')
+ polkit = sh.Command('/usr/lib/policykit-1-gnome/'
+ 'polkit-gnome-authentication-agent-1')
+ polkit(_bg=True)
+
+
+def check_if_running_polkit_auth():
+ """
+ check if polkit authentication agent is running
+ and launch it if it is not
+ """
+ try:
+ grep(ps('aux'), '[p]olkit-gnome-authentication-agent-1')
+ except sh.ErrorReturnCode_1:
+ logger.debug('polkit auth agent not found, trying to launch it...')
+ run_polkit_auth_agent()