X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=sliver_vs.py;h=a1f1b66f1a15c08ae05c60f1e9257360815d3470;hb=5278c90a37dce3a7d81d173db85976a0b36e06f7;hp=432704cdc3df7bdbf550ab3417bc08f452d3cf50;hpb=d88a6b97acdd56a303918cac7ed16ffad269d648;p=nodemanager.git diff --git a/sliver_vs.py b/sliver_vs.py index 432704c..a1f1b66 100644 --- a/sliver_vs.py +++ b/sliver_vs.py @@ -84,11 +84,10 @@ class Sliver_VS(vserver.VServer, Account, Initscript): logger.verbose('sliver_vs: %s: create'%name) vref = rec['vref'] if vref is None: - logger.log("sliver_vs: %s: ERROR - no vref attached, this is unexpected"%(name)) # added by caglar # band-aid for short period as old API doesn't have GetSliceFamily function - #return vref = "planetlab-f8-i386" + logger.log("sliver_vs: %s: ERROR - no vref attached, using hard-wired default %s"%(name,vref)) # used to look in /etc/planetlab/family, # now relies on the 'GetSliceFamily' extra attribute in GetSlivers() @@ -99,7 +98,7 @@ class Sliver_VS(vserver.VServer, Account, Initscript): logger.log ("sliver_vs: %s: ERROR Could not create sliver - vreference image %s not found"%(name,vref)) return - # guess arch + # compute guest personality try: (x,y,arch)=vref.split('-') # mh, this of course applies when 'vref' is e.g. 'netflow' @@ -107,11 +106,7 @@ class Sliver_VS(vserver.VServer, Account, Initscript): except: arch='i386' - def personality (arch): - personality="linux32" - if arch.find("64")>=0: - personality="linux64" - return personality + def personality (arch): return "linux64" if arch.find("64") >=0 else "linux32" command=[] # be verbose @@ -153,10 +148,14 @@ class Sliver_VS(vserver.VServer, Account, Initscript): self.set_resources() # do the configure part from Initscript - Initscript.configure(self,rec) - - Account.configure(self, rec) # install ssh keys - + # i.e. install slice initscript if defined + Initscript.configure(self, rec) + # install ssh keys + Account.configure(self, rec) + + # remember configure() always gets called *before* start() + # in particular the slice initscript + # is expected to be in place already at this point def start(self, delay=0): if self.rspec['enabled'] <= 0: logger.log('sliver_vs: not starting %s, is not enabled'%self.name) @@ -168,8 +167,6 @@ class Sliver_VS(vserver.VServer, Account, Initscript): # expose .ssh for omf_friendly slivers if 'omf_control' in self.rspec['tags']: Account.mount_ssh_dir(self.name) - # if a change has occured in the slice initscript, reflect this in /etc/init.d/vinit.slice - self.refresh_slice_vinit() child_pid = os.fork() if child_pid == 0: # VServer.start calls fork() internally,