welcome to vs-delete
authorthierry <thierry@41d37cc5-eb28-0410-a9bf-d37491348ade>
Tue, 30 Mar 2010 14:40:33 +0000 (14:40 +0000)
committerthierry <thierry@41d37cc5-eb28-0410-a9bf-d37491348ade>
Tue, 30 Mar 2010 14:40:33 +0000 (14:40 +0000)
scripts/vs-delete [new symlink]
scripts/vserver_tools.py

diff --git a/scripts/vs-delete b/scripts/vs-delete
new file mode 120000 (symlink)
index 0000000..a7d826c
--- /dev/null
@@ -0,0 +1 @@
+vserver_tools.py
\ No newline at end of file
index d1a8c83..4918d33 100755 (executable)
@@ -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: