Delete running container is not supprted and will report an error.
Related to bug:
https://bugzilla.redhat.com/show_bug.cgi?id=994495
Signed-off-by: Wayne Sun <gsun(a)redhat.com>
---
bin/virt-sandbox-service | 15 ++++++++++-----
1 files changed, 10 insertions(+), 5 deletions(-)
diff --git a/bin/virt-sandbox-service b/bin/virt-sandbox-service
index 550d46c..c07c33b 100755
--- a/bin/virt-sandbox-service
+++ b/bin/virt-sandbox-service
@@ -254,11 +254,16 @@ class Container:
def delete(self):
self.connect()
- # Stop service if it is running
- try:
- self.stop()
- except:
- pass
+ # Check container is running or not
+ cmd = "/usr/bin/virsh -c %s list | sed '1d;2d;$d' | awk -F'
'\
+ '{ print $2}'" % self.uri
+ p = Popen(cmd, shell=True, stdout=PIPE, stderr=PIPE)
+ out, err = p.communicate()
+ if p.returncode and p.returncode != 0:
+ raise OSError(_("Failed to list running domain"))
+
+ if self.name in out.splitlines():
+ raise ValueError([_("Delete running container is not supported")])
virt-sandbox-service already has a connection to libvirt - no need to
spawn virsh here. Just do something like this (untested):
self.conn.fetch_domains()
dom = self.conn.find_domain_by_name(self.name)
info = dom.get_info()
if info.state == LibvirtGObject.DomainState.RUNNING:
.....error...
Daniel
--
|: