From d1fe483c9e4d4f70572cad3c53e4ebcb57304b12 Mon Sep 17 00:00:00 2001 From: thierry Date: Tue, 30 Mar 2010 14:40:33 +0000 Subject: [PATCH] welcome to vs-delete --- scripts/vs-delete | 1 + scripts/vserver_tools.py | 36 ++++++++++++++++++++++++------------ 2 files changed, 25 insertions(+), 12 deletions(-) create mode 120000 scripts/vs-delete diff --git a/scripts/vs-delete b/scripts/vs-delete new file mode 120000 index 0000000..a7d826c --- /dev/null +++ b/scripts/vs-delete @@ -0,0 +1 @@ +vserver_tools.py \ No newline at end of file diff --git a/scripts/vserver_tools.py b/scripts/vserver_tools.py index d1a8c83..4918d33 100755 --- a/scripts/vserver_tools.py +++ b/scripts/vserver_tools.py @@ -186,16 +186,16 @@ class Ssh (Shell): 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 @@ -318,6 +318,11 @@ class Vserver: 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) @@ -373,7 +378,8 @@ class VserverTools: '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", } @@ -442,28 +448,34 @@ class VserverTools: (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: -- 2.43.0