[libvirt] [test-API][PATCH v2 3/4] Add libvirtd upstart test case

Alex Jia ajia at redhat.com
Thu Sep 15 03:04:52 UTC 2011


On 09/14/2011 06:31 PM, Wayne Sun wrote:
>    * repos/libvirtd/upstart.py
>
>      After set libvirtd upstart, libvirtd could restarted after force
>      kill libvirtd process
> ---
>   repos/libvirtd/upstart.py |  213 +++++++++++++++++++++++++++++++++++++++++++++
>   1 files changed, 213 insertions(+), 0 deletions(-)
>   create mode 100644 repos/libvirtd/upstart.py
>
> diff --git a/repos/libvirtd/upstart.py b/repos/libvirtd/upstart.py
> new file mode 100644
> index 0000000..904baa9
> --- /dev/null
> +++ b/repos/libvirtd/upstart.py
> @@ -0,0 +1,213 @@
> +#!/usr/bin/env python
> +"""Upstart libvirtd testing
> +"""
> +
> +__author__ = 'Wayne Sun: gsun at redhat.com'
> +__date__ = 'Thu Aug 4, 2011'
> +__version__ = '0.1.0'
> +__credits__ = 'Copyright (C) 2011 Red Hat, Inc.'
> +__all__ = ['upstart']
> +
> +import os
> +import re
> +import sys
> +import time
> +
> +def append_path(path):
> +    """Append root path of package"""
> +    if path not in sys.path:
> +        sys.path.append(path)
> +
> +pwd = os.getcwd()
> +result = re.search('(.*)libvirt-test-API', pwd)
> +append_path(result.group(0))
> +
> +from utils.Python import utils
> +from shutil import copy
> +
> +VIRSH_LIST = "virsh list --all"
> +UPSTART_CONF = "rpm -ql libvirt|grep upstart"
> +INITCTL_CMD = "/sbin/initctl"
> +SYSTEMCTL_CMD = "/bin/systemctl"
> +INITCTL_RELOAD_CMD = "initctl reload-configuration"
> +SYSTEMCTL_RELOAD_CMD = "systemctl daemon-reload"
> +INIT_CONF = "/etc/init/libvirtd.conf"
> +
> +def libvirtd_check(util, logger):
> +    """check libvirtd status
> +    """
> +    cmd = "service libvirtd status"
> +    ret, out = util.exec_cmd(cmd, shell=True)
> +    if ret != 0:
> +        logger.error("failed to get libvirtd status")
> +        return 1
> +    else:
> +        logger.info(out[0])
> +
> +    logger.info(VIRSH_LIST)
> +    ret, out = util.exec_cmd(VIRSH_LIST, shell=True)
> +    if ret != 0:
> +        logger.error("failed to get virsh list result")
> +        return 1
> +    else:
> +        for i in range(len(out)):
> +            logger.info(out[i])
> +
> +    return 0
> +
> +def upstart(params):
> +    """Set libvirtd upstart"""
> +    logger = params['logger']
> +    util = utils.Utils()
> +
> +    logger.info("chkconfig libvirtd off:")
> +    cmd = "chkconfig libvirtd off"
> +    ret, out = util.exec_cmd(cmd, shell=True)
> +    if ret != 0:
> +        logger.error("failed")
> +        return 1
> +    else:
> +        logger.info("succeed")
> +
> +    cmd = "service libvirtd stop"
> +    logger.info(cmd)
> +    ret, out = util.exec_cmd(cmd, shell=True)
> +    if ret != 0:
> +        logger.error("failed to stop libvirtd service")
> +        return 1
> +    else:
> +        logger.info(out[0])
> +
> +    logger.info("find libvirtd.upstart file in libvirt package:")
> +    ret, conf = util.exec_cmd(UPSTART_CONF, shell=True)
> +    if ret != 0:
> +        logger.error("can't find libvirtd.upstart as part of libvirt package")
> +        return 1
> +    elif conf[0]:
> +        logger.info("succeed")
> +        logger.info("copy %s to %s" % (conf[0], INIT_CONF))
> +        copy(conf[0], INIT_CONF)
> +
> +    if os.path.exists(INITCTL_CMD):
> +        logger.info(INITCTL_RELOAD_CMD)
> +        ret, out = util.exec_cmd(INITCTL_RELOAD_CMD, shell=True)
> +        if ret != 0:
> +            logger.error("failed to reload configuration")
> +            return 1
> +        else:
> +            logger.info("succeed")
> +
> +        cmd = "initctl start libvirtd"
> +        logger.info(cmd)
> +        ret, out = util.exec_cmd(cmd, shell=True)
> +        if ret != 0:
> +            logger.error("failed to start libvirtd by initctl")
> +            return 1
> +        else:
> +            logger.info(out[0])
> +
> +        cmd = "initctl status libvirtd"
> +        logger.info("get libvirtd status by initctl:")
> +        ret, out = util.exec_cmd(cmd, shell=True)
> +        if ret !=0:
Operator not followed by a space.
> +            logger.info("failed to get libvirtd status by initctl")
> +            return 1
> +        else:
> +            logger.info(out[0])
> +
> +    elif os.path.exists(SYSTEMCTL_CMD):
> +        logger.info(SYSTEMCTL_RELOAD_CMD)
> +        ret, out = util.exec_cmd(SYSTEMCTL_RELOAD_CMD, shell=True)
> +        if ret != 0:
> +            logger.error("failed to reload systemd manager configuration")
> +            return 1
> +        else:
> +            logger.info("succeed")
> +
> +        cmd = "systemctl start libvirtd.service"
> +        logger.info(cmd)
> +        ret, out = util.exec_cmd(cmd, shell=True)
> +        if ret != 0:
> +            logger.error("failed to start libvirtd.service by systemctl")
> +            return 1
> +        else:
> +            logger.info(out[0])
> +
> +        cmd = "systemctl status libvirtd.service"
> +        logger.info("get libvirtd.service status by systemctl:")
> +        ret, out = util.exec_cmd(cmd, shell=True)
> +        if ret !=0:
Same as above.
> +            logger.info("failed to get libvirtd.service status by systemctl")
> +            return 1
> +        else:
> +            logger.info(out[0])
> +    else:
> +        return 1
> +
> +    time.sleep(5)
> +
> +    logger.info("check the libvirtd status:")
> +    result = libvirtd_check(util, logger)
Redefining name 'result' from outer scope.
> +    if result:
> +        return 1
> +
> +    cmd = "killall -9 libvirtd"
> +    logger.info("kill libvirtd process")
> +    ret, out = util.exec_cmd(cmd, shell=True)
> +    if ret != 0:
> +        logger.error("failed to kill libvirtd process")
> +        return 1
> +    else:
> +        logger.info("succeed")
> +
> +    time.sleep(5)
> +
> +    logger.info("recheck libvirtd status:")
> +    result = libvirtd_check(util, logger)
> +    if result:
> +        return 1
> +    else:
> +        logger.info("the libvirtd process successfully restarted after kill")
> +
> +    return 0
> +
> +def upstart_clean(params):
> +    """clean testing environment"""
> +    logger = params['logger']
> +    util = utils.Utils()
> +
> +    if os.path.exists(INITCTL_CMD):
> +        cmd = "initctl stop libvirtd"
> +        ret, out = util.exec_cmd(cmd, shell=True)
> +        if ret !=0:
Same as above.
> +            logger.error("failed to stop libvirtd by initctl")
> +
> +        if os.path.exists(INIT_CONF):
> +            os.remove(INIT_CONF)
> +
> +        ret, out = util.exec_cmd(INITCTL_RELOAD_CMD, shell=True)
> +        if ret !=0:
Same as above.
> +            logger.error("failed to reload init confituration")
> +
> +    elif os.path.exists(SYSTEMCTL_CMD):
> +        cmd = "systemctl stop libvirtd.service"
> +        ret, out = util.exec_cmd(cmd, shell=True)
> +        if ret !=0:
Same as above.
> +            logger.error("failed to stop libvirtd.service by systemctl")
> +
> +        if os.path.exists(INIT_CONF):
> +            os.remove(INIT_CONF)
> +
> +        ret, out = util.exec_cmd(SYSTEMCTL_RELOAD_CMD, shell=True)
> +        if ret !=0:
Same as above.
> +            logger.error("failed to reload systemd manager confituration")
> +
> +    cmd = "service libvirtd restart"
> +    ret, out = util.exec_cmd(cmd, shell=True)
> +    if ret !=0:
Same as above.
> +        logger.error("failed to restart libvirtd")
> +
> +    cmd = "chkconfig --level 345 libvirtd on"
> +    ret, out = util.exec_cmd(cmd, shell=True)
Unused variable 'out'.
> +    if ret !=0:
Same as above.
> +        logger.error("failed to set chkconfig")




More information about the libvir-list mailing list