def kinit()

in src/ab/plugins/kerberos.py [0:0]


def kinit(principal, keytab: str = None, password: str = None, refresh_interval_in_seconds=3600):
    """
    always return 0
    raise CalledProcessError on error
    """
    assert (keytab and not password) or (password and not keytab), 'kinit need either keytab or password'

    cmd = ['kinit', principal]
    input = password.encode() if password else None
    if keytab:
        cmd.extend(['-kt', keytab])

    timer = LiveTimer(refresh_interval_in_seconds, _inner_kinit, kwargs={'cmd': cmd, 'input': input})
    timer.daemon = True
    timer.start()

    return _inner_kinit(cmd, input)