[libvirt] [libvirt-test-API] [PATCH] Add two cases for API interfaceAddresses and make small changes to global.cfg
hongming
honzhang at redhat.com
Fri Oct 9 00:31:13 UTC 2015
On 09/28/2015 05:45 PM, Shanzhi Yu wrote:
> Signed-off-by: Shanzhi Yu <shyu at redhat.com>
> ---
> cases/linux_domain.conf | 12 +++++++
> global.cfg | 8 +++--
> repos/domain/get_guest_network_info.py | 66 ++++++++++++++++++++++++++++++++++
> 3 files changed, 84 insertions(+), 2 deletions(-)
> create mode 100644 repos/domain/get_guest_network_info.py
>
> diff --git a/cases/linux_domain.conf b/cases/linux_domain.conf
> index 8440c61..5b216f9 100644
> --- a/cases/linux_domain.conf
> +++ b/cases/linux_domain.conf
> @@ -66,6 +66,18 @@ domain:set_guest_time
> flags
> sync
>
> +domain:get_guest_network_info
> + guestname
> + $defaultname
> + flags
> + lease
> +
> +domain:get_guest_network_info
> + guestname
> + $defaultname
> + flags
> + agent
> +
> virconn:connection_getAllDomainStats
> stats
> state|cpu|balloon|vcpu|interface|block
> diff --git a/global.cfg b/global.cfg
> index 56677a5..1b72119 100644
> --- a/global.cfg
> +++ b/global.cfg
> @@ -44,6 +44,8 @@ rhel6u1_i386 = http://
> rhel6u1_x86_64 = http://
> rhel6u2_i386 = http://
> rhel6u2_x86_64 = http://
> +rhel7u1_x86_64 = http://
> +rhel7u2_x86_64 = http://
> fedora12_i386 = http://
> fedora12_x86_64 = http://
> win2008_i386 = http://
> @@ -70,6 +72,8 @@ rhel6_i386_http_ks = http://
> rhel6_x86_64_http_ks = http://
> rhel6u2_i386_http_ks = http://
> rhel6u2_x86_64_http_ks = kickstart.cfg
> +rhel7u1_x86_64_http_ks = http://
> +rhel7u2_x86_64_http_ks = http://
> fedora12_i386_http_ks = http://
> fedora12_x86_64_http_ks = http://
>
> @@ -97,7 +101,7 @@ sourcepath = /media/share
> # also exercise DNS resolution
> #
> [other]
> -wget_url = http://
> +wget_url = http://libvirt.org/index.html
>
> #
> # The variables section is a set of variables used by the
> @@ -127,7 +131,7 @@ defaulthv = kvm
> defaultname = libvirt_test_api
> # default os version to use for installing a new guest
> # the value of it is the first part of 'rhel6u2_x86_64' in [guest] section above
> -defaultos = rhel6u2
> +defaultos = rhel7u2
> # default architecture to use for installing a new guest
> defaultarch = x86_64
> # default the number of vcpu to use for defining or installing a guest
> diff --git a/repos/domain/get_guest_network_info.py b/repos/domain/get_guest_network_info.py
> new file mode 100644
> index 0000000..35bba3b
> --- /dev/null
> +++ b/repos/domain/get_guest_network_info.py
> @@ -0,0 +1,66 @@
> +#!/usr/bin/python
> +
> +import libvirt
> +from libvirt import libvirtError
> +from src import sharedmod
> +
> +required_params = ('guestname', 'flags',)
> +optional_params = {}
> +
> +def check_guest_status(domobj):
> + """check guest current status
> + """
> + state = domobj.info()[0]
> + if state == libvirt.VIR_DOMAIN_SHUTOFF or \
> + state == libvirt.VIR_DOMAIN_SHUTDOWN:
> + return False
> + else:
> + return True
> +
> +def get_guest_network_info(params):
> + """get guest network interface info
> + """
> +
> + logger = params['logger']
> + guestname = params['guestname']
> + flags = params['flags']
> +
> + conn = sharedmod.libvirtobj['conn']
> +
> + domobj = conn.lookupByName(guestname)
> +
> + flags = params['flags']
> + logger.info("The flags are %s" % flags)
> + flags_string = flags.split("|")
> + flags = 0
> +
> + for flag in flags_string:
> + if flag == 'lease':
> + flags |= libvirt.VIR_DOMAIN_INTERFACE_ADDRESSES_SRC_LEASE
> + elif flag == 'agent':
> + flags |= libvirt.VIR_DOMAIN_INTERFACE_ADDRESSES_SRC_AGENT
> + else:
> + logger.error("unknow flags")
> + return 1
> +
> + logger.info("the given flags is %d" % flags)
> +
> + # Check domain status
> + if check_guest_status(domobj):
> + logger.info("Guest is running")
> + else:
> + logger.error("Guest is shut off status")
> + return 1
> +
> + try:
> + info = domobj.interfaceAddresses(flags)
> + logger.info("get guest interface info")
> +
Hi shyu
There should be two different method of checking flags "lease" and "agent"
It is invalid if only check the domain status
Expect your V2 patch cover it
Thanks
Hongming
> + except libvirtError, e:
> + logger.error("API error message: %s, error code is %s" \
> + % (e.message, e.get_error_code()))
> + return 1
> +
> + return 0
> +
> +
More information about the libvir-list
mailing list