summaryrefslogtreecommitdiff
path: root/src/leap/util/polkit.py
blob: 7067112457b7940b48dc41cc4017a28bccc3cbb4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
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()