[libvirt] [libvirt-test-api][PATCH] Introduce new test case for setMemoryStatsPeriod
hongming
honzhang at redhat.com
Fri Jul 31 07:05:06 UTC 2015
On 07/02/2015 05:25 PM, Luyao Huang wrote:
> Signed-off-by: Luyao Huang <lhuang at redhat.com>
> ---
> cases/linux_domain.conf | 6 +++
> repos/domain/set_memory_period.py | 84 +++++++++++++++++++++++++++++++++++++++
> 2 files changed, 90 insertions(+)
> create mode 100644 repos/domain/set_memory_period.py
>
> diff --git a/cases/linux_domain.conf b/cases/linux_domain.conf
> index 9f64226..fd32aad 100644
> --- a/cases/linux_domain.conf
> +++ b/cases/linux_domain.conf
> @@ -275,6 +275,12 @@ domain:virDomain_getCPUStats
> conn
> qemu:///system
>
> +domain:set_memory_period
> + guestname
> + $defaultname
> + conn
> + qemu:///system
> +
> domain:destroy
> guestname
> $defaultname
> diff --git a/repos/domain/set_memory_period.py b/repos/domain/set_memory_period.py
> new file mode 100644
> index 0000000..56b71ae
> --- /dev/null
> +++ b/repos/domain/set_memory_period.py
> @@ -0,0 +1,84 @@
> +#!/usr/bin/env python
> +
> +import libvirt
> +from libvirt import libvirtError
> +import lxml
> +import lxml.etree
> +
> +required_params = ('guestname',)
> +optional_params = {'conn': 'qemu:///system'}
> +
> +def get_period_fromxml(vm, running):
> + if (running == 1):
> + tree = lxml.etree.fromstring(vm.XMLDesc(0))
> + else:
> + tree = lxml.etree.fromstring(vm.XMLDesc(libvirt.VIR_DOMAIN_XML_INACTIVE))
> +
> + set = tree.xpath("//memballoon/stats")
> + if len(set) == 0:
> + return 0
> + for n in set:
> + period = n.attrib['period']
> + return period
> +
> +def check_memoryStats(vm):
> + memstats = vm.memoryStats()
> + try:
> + available = memstats["available"]
> + if available:
> + logger.info("can get available from memoryStats()")
> + return 0
> + except KeyError:
> + logger.info("cannot get available from memoryStats()")
> + return 1
> +
> +def set_memory_period(params):
> + """
> + test API for setMemoryStatsPeriod in class virDomain
> + """
> + global logger
> + logger = params['logger']
> + fail=0
> +
> + try:
> + conn = libvirt.open(params['conn'])
> +
> + logger.info("get connection to libvirtd")
> + guest = params['guestname']
> + vm = conn.lookupByName(guest)
> + logger.info("test guest name: %s" % guest)
> +
> + """ test with running vm """
> + if vm.isActive() == 1:
> + logger.info("guest is running test with running guest")
> + period = int(get_period_fromxml(vm, 1))
> + if period == 0:
> + vm.setMemoryStatsPeriod(1, libvirt.VIR_DOMAIN_AFFECT_LIVE)
> + if int(get_period_fromxml(vm, 1)) != 1:
> + logger.error("Period value from xml is not right")
> + fail = 1
> + elif check_memoryStats(vm) == 0:
> + period = 1
> + else:
> + fail = 1
> +
> + if period > 0:
> + if check_memoryStats(vm) == 0:
> + vm.setMemoryStatsPeriod(period + 1, libvirt.VIR_DOMAIN_AFFECT_LIVE)
> + if int(get_period_fromxml(vm, 1)) != period + 1:
> + logger.error("Period value from xml is not right")
> + fail = 1
> + else:
> + fail = 1
> +
> + """ test with vm config """
> + period = int(get_period_fromxml(vm, 0))
> + vm.setMemoryStatsPeriod(period + 1, libvirt.VIR_DOMAIN_AFFECT_CONFIG)
> + if int(get_period_fromxml(vm, 0)) != period + 1:
> + logger.error("Period value from xml is not right")
> + fail = 1
> +
> + except libvirtError, e:
> + logger.error("API error message: %s" % e.message)
> + fail=1
> + return fail
ACK and Pushed
Thanks
Hongming
More information about the libvir-list
mailing list