From 359fe09b9c56bb24fee2d828d2baddfaec7f9c05 Mon Sep 17 00:00:00 2001 From: Thierry Parmentelat Date: Thu, 14 Jun 2012 23:54:53 +0300 Subject: [PATCH 1/1] move expose_ssh_dir from sliver_vs to accounts --- accounts.py | 21 +++++++++++++++++++++ sliver_vs.py | 20 -------------------- 2 files changed, 21 insertions(+), 20 deletions(-) diff --git a/accounts.py b/accounts.py index 2f3bb32..ccc1fda 100644 --- a/accounts.py +++ b/accounts.py @@ -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] + + # 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) + diff --git a/sliver_vs.py b/sliver_vs.py index 8382c6d..fdb2e34 100644 --- a/sliver_vs.py +++ b/sliver_vs.py @@ -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)) - # 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) -- 2.43.0