import traceback
import os, os.path
import time
+from threading import BoundedSemaphore
import vserver
import accounts
import logger
import tools
-from threading import BoundedSemaphore
-
-globalsem = BoundedSemaphore()
# special constant that tells vserver to keep its existing settings
KEEP_LIMIT = vserver.VC_LIM_KEEP
SHELL = '/bin/vsh'
TYPE = 'sliver.VServer'
- _init_disk_info_sem = globalsem
+ _init_disk_info_sem = BoundedSemaphore()
def __init__(self, rec):
name=rec['name']
logger.verbose ('sliver_vs: %s init'%name)
try:
logger.log("sliver_vs: %s: first chance..."%name)
- vserver.VServer.__init__(self, name,logfile='/var/log/nm')
+ vserver.VServer.__init__(self, name,logfile='/var/log/nodemanager')
except Exception, err:
if not isinstance(err, vserver.NoSuchVServer):
# Probably a bad vserver or vserver configuration file
self.destroy(name)
self.create(name, rec['vref'])
logger.log("sliver_vs: %s: second chance..."%name)
- vserver.VServer.__init__(self, name,logfile='/var/log/nm')
+ vserver.VServer.__init__(self, name,logfile='/var/log/nodemanager')
self.keys = ''
self.rspec = {}
file('/vservers/%s/etc/slicefamily' % name, 'w').write(vref)
# set personality: only if needed (if arch's differ)
if tools.root_context_arch() != arch:
- file('/etc/vservers/%s/personality' % name, 'w').write(personality(arch))
+ file('/etc/vservers/%s/personality' % name, 'w').write(personality(arch)+"\n")
logger.log('sliver_vs: %s: set personality to %s'%(name,personality(arch)))
@staticmethod
vserver_config_path = '/etc/vservers/%s'%self.name
if not os.path.exists (vserver_config_path):
os.makedirs (vserver_config_path)
- file('%s/slice_id'%vserver_config_path, 'w').write("%d"%self.slice_id)
+ file('%s/slice_id'%vserver_config_path, 'w').write("%d\n"%self.slice_id)
logger.log("sliver_vs: Recorded slice id %d for slice %s"%(self.slice_id,self.name))
except IOError,e:
logger.log("sliver_vs: Could not record slice_id for slice %s. Error: %s"%(self.name,str(e)))