class Vserver:
def __init__ (self, name, dry_run=False,verbose=False):
- try:
- (self.name,self.hostname)=name.split("@")
- except:
- (self.name,self.hostname)=(name,'localhost')
self.dry_run=dry_run
self.verbose=verbose
self._running_state=None
self._xid=None
self._autostart=None
- self.set_hostname(self.hostname)
+ try:
+ (self.name,hostname)=name.split("@")
+ except:
+ (self.name,hostname)=(name,'localhost')
+ self.set_hostname(hostname)
def set_hostname (self, hostname):
self.hostname=hostname
self.ok('no mask file %s'%mask_path)
return result
+ def delete (self):
+ # ommitting --silent just silently returns - stdin must be closed or something
+ command=["vserver","--silent",self.name,"delete"]
+ return e2b (self.ssh.run (command))
+
# renaming
def rename (self, newname):
target=Vserver(newname)
'show' : "vsname(s)\n\tdisplay status & details",
'start': "vsname(s)\n\tstart vservers",
'stop' : "vsname(s)\n\tstop vservers",
- 'check' : "vsname(s)\n\tchecks the network config for a vserver",
+ 'check' : "vsname(s)\n\tsanity check - ip from hostname, netmask, ...",
+ 'delete' : "vsname(s)\n\tdelete vservers",
'rename' : "oldname newname\n\trename a vserver - both named must be local",
'migrate' : "oldname hostname@newname\n\tmigrate a vserver over to a new box\n\tnot implemented yet",
}
(self.options,self.args) = self.parser.parse_args()
- if mode=='show':
+ if mode == 'show':
for arg in self.check_usual_args():
self.vserver(arg).show(self.options.long_format)
- elif mode=='stop':
+ elif mode == 'stop':
for arg in self.check_usual_args():
vs = self.vserver(arg)
vs.stop()
vs.show(True)
- elif mode=='start':
+ elif mode == 'start':
for arg in self.check_usual_args():
vs = self.vserver(arg)
vs.start()
vs.show(True)
- elif mode=='check':
+ elif mode == 'check':
result=True
for arg in self.check_usual_args():
if not b2e(self.vserver(arg).check()): result=False
return result
- elif mode=='rename':
+ elif mode == 'delete':
+ result=True
+ for arg in self.check_usual_args():
+ if not b2e(self.vserver(arg).delete()): result=False
+ self.vserver(arg).show(True)
+ return result
+ elif mode == 'rename':
[x,y]=self.args
return b2e(self.vserver(x).rename(y))
- elif mode=='migrate':
+ elif mode == 'migrate':
print 'migrate not yet implemented'
return 1
else: