Added ReCreate. Also added try catch to api eval of rpc method.
[nodemanager.git] / delegate.py
index 6dd85e8..73a0743 100644 (file)
@@ -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 <shell> to /etc/shells if it's not already there."""
     etc_shells = open('/etc/shells')