move expose_ssh_dir from sliver_vs to accounts
authorThierry Parmentelat <thierry.parmentelat@sophia.inria.fr>
Thu, 14 Jun 2012 20:54:53 +0000 (23:54 +0300)
committerThierry Parmentelat <thierry.parmentelat@sophia.inria.fr>
Thu, 14 Jun 2012 20:54:53 +0000 (23:54 +0300)
accounts.py
sliver_vs.py

index 2f3bb32..ccc1fda 100644 (file)
@@ -190,3 +190,24 @@ If still valid, check if running and configure/start if not."""
         try: shell = pwd.getpwnam(self.name)[6]
         except KeyError: return None
         return shell_acct_class[shell]
         try: shell = pwd.getpwnam(self.name)[6]
         except KeyError: return None
         return shell_acct_class[shell]
+
+    # bind mount root side dir to sliver side
+    # needs to be done before sliver starts, in the vserver case at least
+    def expose_ssh_dir (self):
+        try:
+            root_ssh="/home/%s/.ssh"%self.name
+            sliver_ssh="/vservers/%s/home/%s/.ssh"%(self.name,self.name)
+            # any of both might not exist yet
+            for path in [root_ssh,sliver_ssh]:
+                if not os.path.exists (path):
+                    os.mkdir(path)
+                if not os.path.isdir (path):
+                    raise Exception
+            mounts=file('/proc/mounts').read()
+            if mounts.find(sliver_ssh)<0:
+                # xxx perform mount
+                subprocess.call("mount --bind -o ro %s %s"%(root_ssh,sliver_ssh),shell=True)
+                logger.log("expose_ssh_dir: %s mounted into slice %s"%(root_ssh,self.name))
+        except:
+            logger.log_exc("expose_ssh_dir with slice %s failed"%self.name)
+
index 8382c6d..fdb2e34 100644 (file)
@@ -195,26 +195,6 @@ class Sliver_VS(accounts.Account, vserver.VServer):
             else:
                 logger.log("vsliver_vs: %s: Removed obsolete initscript %s"%(self.name,sliver_initscript))
 
             else:
                 logger.log("vsliver_vs: %s: Removed obsolete initscript %s"%(self.name,sliver_initscript))
 
-    # bind mount root side dir to sliver side
-    # needs to be done before sliver starts
-    def expose_ssh_dir (self):
-        try:
-            root_ssh="/home/%s/.ssh"%self.name
-            sliver_ssh="/vservers/%s/home/%s/.ssh"%(self.name,self.name)
-            # any of both might not exist yet
-            for path in [root_ssh,sliver_ssh]:
-                if not os.path.exists (path):
-                    os.mkdir(path)
-                if not os.path.isdir (path):
-                    raise Exception
-            mounts=file('/proc/mounts').read()
-            if mounts.find(sliver_ssh)<0:
-                # xxx perform mount
-                subprocess.call("mount --bind -o ro %s %s"%(root_ssh,sliver_ssh),shell=True)
-                logger.log("expose_ssh_dir: %s mounted into slice %s"%(root_ssh,self.name))
-        except:
-            logger.log_exc("expose_ssh_dir with slice %s failed"%self.name)
-
     def start(self, delay=0):
         if self.rspec['enabled'] <= 0:
             logger.log('sliver_vs: not starting %s, is not enabled'%self.name)
     def start(self, delay=0):
         if self.rspec['enabled'] <= 0:
             logger.log('sliver_vs: not starting %s, is not enabled'%self.name)