expects the 'interfaces' key in GetSlivers - review logs to always mention module
[nodemanager.git] / controller.py
index 17268d2..2f2bc0c 100644 (file)
@@ -1,9 +1,13 @@
+# $Id$
+# $URL$
+
 """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
 from pwd import getpwnam
 """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
 from pwd import getpwnam
+from grp import getgrnam
 
 class Controller(accounts.Account):
     SHELL = '/usr/bin/forward_api_calls'  # tunneling shell
 
 class Controller(accounts.Account):
     SHELL = '/usr/bin/forward_api_calls'  # tunneling shell
@@ -12,13 +16,14 @@ class Controller(accounts.Account):
     @staticmethod
     def create(name, vref = None):
         add_shell(Controller.SHELL)
     @staticmethod
     def create(name, vref = None):
         add_shell(Controller.SHELL)
-        logger.log_call('/usr/sbin/useradd', '-p', '*', '-s', Controller.SHELL, name)
+        group = getgrnam("slices")[2]
+        logger.log_call('/usr/sbin/useradd', '-p', '*', '-g', str(group), '-s', Controller.SHELL, name)
 
     @staticmethod
     def destroy(name): logger.log_call('/usr/sbin/userdel', '-r', name)
 
     def is_running(self):
 
     @staticmethod
     def destroy(name): logger.log_call('/usr/sbin/userdel', '-r', name)
 
     def is_running(self):
-        logger.verbose("Delegate:  %s" % self.name)
+        logger.verbose("controller: is_running:  %s" % self.name)
         return getpwnam(self.name)[6] == self.SHELL
     
 
         return getpwnam(self.name)[6] == self.SHELL