X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=delegate.py;h=73a0743d57fa57fe3b1de3d5efd85aae3ad7826b;hb=fcfe522fb2137be5e5c29255c01a311f91c727fa;hp=6dd85e82746c45c10c587f884c380b3bab2269ec;hpb=aac3e5d7c3443d6e1cb33525aefad35be5fe077a;p=nodemanager.git diff --git a/delegate.py b/delegate.py index 6dd85e8..73a0743 100644 --- a/delegate.py +++ b/delegate.py @@ -1,28 +1,22 @@ +"""Delegate accounts are used to provide secure access to the XMLRPC API. They are normal Unix accounts with a shell that tunnels XMLRPC requests to the API server.""" + import accounts import logger import tools -class Delegate: - SHELL = '/bin/forward_api_calls' +class Delegate(accounts.Account): + SHELL = '/usr/bin/forward_api_calls' # tunneling shell TYPE = 'delegate' - def __init__(self, name): self.name = name - @staticmethod - def create(name): + def create(name, vref = None): add_shell(Delegate.SHELL) - logger.log_call('/usr/sbin/useradd', - '-p', '*', '-s', Delegate.SHELL, name) + logger.log_call('/usr/sbin/useradd', '-p', '*', '-s', Delegate.SHELL, name) @staticmethod def destroy(name): logger.log_call('/usr/sbin/userdel', '-r', name) - def configure(self, rec): accounts.install_ssh_keys(rec) - def start(self): pass - def stop(self): pass - - def add_shell(shell): """Add to /etc/shells if it's not already there.""" etc_shells = open('/etc/shells')