On 07/25/2011 10:30 AM, Wayne Sun wrote:
* Add the install_linux_net_clean function
---
repos/domain/install_linux_net.py | 58 +++++++++++++++++++++++++++++++++++++
1 files changed, 58 insertions(+), 0 deletions(-)
diff --git a/repos/domain/install_linux_net.py b/repos/domain/install_linux_net.py
index 924bb05..21ae378 100644
--- a/repos/domain/install_linux_net.py
+++ b/repos/domain/install_linux_net.py
@@ -51,6 +51,13 @@ from utils.Python import env_parser
from utils.Python import xmlbuilder
from exception import LibvirtAPI
+VIRSH_QUIET_LIST = "virsh --quiet list --all|awk '{print $2}'|grep
\"^%s$\""
+VM_STAT = "virsh --quiet list --all| grep \"\\b%s\\b\"|grep off"
+VM_DESTROY = "virsh destroy %s"
+VM_UNDEFINE = "virsh undefine %s"
+
+BOOT_DIR = "/var/lib/libvirt/boot/"
+
def return_close(conn, logger, ret):
conn.close()
logger.info("closed hypervisor connection")
@@ -433,3 +440,54 @@ def install_linux_net(params):
return return_close(conn, logger, 1)
return return_close(conn, logger, 0)
+
+def install_linux_net_clean(params):
+ """ clean testing environment """
+ logger = params['logger']
+ guestname = params.get('guestname')
+ guesttype = params.get('guesttype')
+
+ util = utils.Utils()
+ hypervisor = util.get_hypervisor()
+ if hypervisor == 'xen':
+ imgfullpath = os.path.join('/var/lib/xen/images', guestname)
+ elif hypervisor == 'kvm':
+ imgfullpath = os.path.join('/var/lib/libvirt/images', guestname)
+
+ (status, output) = commands.getstatusoutput(VIRSH_QUIET_LIST % guestname)
+ if status:
+ pass
+ else:
+ logger.info("remove guest %s, and its disk image file" % guestname)
+ (status, output) = commands.getstatusoutput(VM_STAT % guestname)
+ if status:
+ (status, output) = commands.getstatusoutput(VM_DESTROY % guestname)
+ if status:
+ logger.error("failed to destroy guest %s" % guestname)
+ logger.error("%s" % output)
+ else:
+ (status, output) = commands.getstatusoutput(VM_UNDEFINE % guestname)
+ if status:
+ logger.error("failed to undefine guest %s" % guestname)
+ logger.error("%s" % output)
+ else:
+ (status, output) = commands.getstatusoutput(VM_UNDEFINE % guestname)
+ if status:
+ logger.error("failed to undefine guest %s" % guestname)
+ logger.error("%s" % output)
+
+ if os.path.exists(imgfullpath):
+ os.remove(imgfullpath)
+
+ if guesttype == 'xenpv' or guesttype == 'kvm':
+ vmlinuz = os.path.join(BOOT_DIR, 'vmlinuz')
+ initrd = os.path.join(BOOT_DIR, 'initrd.img')
+ if os.path.exists(vmlinuz):
+ os.remove(vmlinuz)
+ if os.path.exists(initrd):
+ os.remove(initrd)
+ elif guesttype == 'xenfv':
+ guest_dir = os.path.join(homepath, guestname)
+ if os.path.exists(guest_dir):
+ shutil.rmtree(guest_dir)
+
ACK
Guannan Ren