[Libvirt-cim] [PATCH 1 of 2] [Test] Test adding multiple bridge type interface to domain
Deepti B Kalakeri
deeptik at linux.vnet.ibm.com
Wed Jul 22 12:55:20 UTC 2009
Thanks for the patch yogi... except for few comments the patch looks good...
Yogananth Subramanian wrote:
> # HG changeset patch
> # User anantyog at linux.vnet.ibm.com
> # Date 1248260644 25200
> # Node ID f50cabfd259e6f31cf01bf6e7a39bd4b8f03d1c8
> # Parent 69398bff34dec41bd773fd7d8be550109d41913f
> [Test] Test adding multiple bridge type interface to domain
>
> This testcase verifies adding a bridge type interface using AddRS
>
> Signed-off-by: Yogananth Subramanian <anantyog at linux.vnet.ibm.com>
>
> diff -r 69398bff34de -r f50cabfd259e suites/libvirt-cim/cimtest/VirtualSystemManagementService/22_addmulti_brg_interface.py
> --- /dev/null Thu Jan 01 00:00:00 1970 +0000
> +++ b/suites/libvirt-cim/cimtest/VirtualSystemManagementService/22_addmulti_brg_interface.py Wed Jul 22 04:04:04 2009 -0700
> @@ -0,0 +1,122 @@
> +#!/usr/bin/python
> +#
> +# Copyright 2009 IBM Corp.
> +#
> +# Authors:
> +# Yogananth subramanian <anantyog at linux.vnet.ibm.com>
> +#
> +# This library is free software; you can redistribute it and/or
> +# modify it under the terms of the GNU General Public
> +# License as published by the Free Software Foundation; either
> +# version 2.1 of the License, or (at your option) any later version.
> +#
> +# This library is distributed in the hope that it will be useful,
> +# but WITHOUT ANY WARRANTY; without even the implied warranty of
> +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
> +# General Public License for more details.
> +#
> +# You should have received a copy of the GNU General Public
> +# License along with this library; if not, write to the Free Software
> +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
> +#
> +# The testcase verifies adding multiple bridge type interface to domain
> +#
> +import sys
> +from XenKvmLib.enumclass import GetInstance, EnumNames
> +from XenKvmLib.classes import get_typed_class, inst_to_mof
> +from XenKvmLib.vxml import XenXML, KVMXML, get_class
> +from CimTest.Globals import logger
> +from XenKvmLib.const import do_main, get_provider_version, sles11_changeset
> +from CimTest.ReturnCodes import PASS, FAIL, XFAIL_RC
> +from XenKvmLib.common_util import create_netpool_conf,destroy_netpool
> +from pywbem.cim_obj import CIMInstanceName
>
No need to import CIMInstanceName as it not used in the test.
> +from XenKvmLib.vsms import get_vsms_class, get_nasd_class
> +from XenKvmLib.vsms_util import add_net_res
> +
> +sup_types = ['Xen', 'KVM', 'XenFV']
> +test_dom = "my_domain1"
> +default_net = "my_network0"
> +test_net = "my_network1"
> +test_mac = '99:aa:bb:cc:ee:ff'
> +default_mac = "00:11:33:33:44:55"
> +ntype = 'bridge'
> +default_brg = 'mybr0'
> +test_brg = 'mybr1'
> +bug_libvirt = "00015"
> +
> +def cleanup_env(ip, virt, net_name, cxml):
> + cxml.cim_destroy(ip)
> + cxml.undefine(ip)
> + destroy_netpool(ip, virt, net_name)
> +
> + at do_main(sup_types)
> +def main():
> + options = main.options
> +
> + status, net_name = create_netpool_conf(options.ip, options.virt,
> + net_name=default_net,
> + bridge_name=default_brg)
> + if status != PASS:
> + logger.error('Unable to create network pool %s',
> + default_net)
> + return FAIL
> +
> + service = get_vsms_class(options.virt)(options.ip)
> + classname = get_typed_class(options.virt, 'VirtualSystemSettingData')
> +
> + vsxml = get_class(options.virt)(test_dom, mac=default_mac, ntype=ntype,
> + net_name=default_brg)
> + try:
> + ret = vsxml.cim_define(options.ip)
> + if not ret:
> + raise Exception("Failed to define the dom: %s" % default_dom)
> +
> + ret = vsxml.cim_start(options.ip)
> + if ret:
> + raise Exception("Failed to define the dom: %s" % default_dom)
> +
> + inst_id = '%s:%s' % (options.virt, test_dom)
> + netpool = EnumNames(options.ip, classname)
> + vssd_ref = None
> + for i in range(0, len(netpool)):
> + ret_pool = netpool[i].keybindings['InstanceID']
> + if ret_pool == inst_id:
> + vssd_ref = netpool[i]
> + break
> +
> + if vssd_ref == None:
> + raise Exception("Failed to get vssd_ref for '%s'"% test_dom)
> +
> + status, net_name = create_netpool_conf(options.ip, options.virt,
> + net_name=test_net,
> + bridge_name=test_brg)
> + if status != PASS:
> + raise Exception('Unable to create network pool %s'%
> + test_net)
> +
> + except Exception, details:
> + logger.error(details)
> + cleanup_env(options.ip, options.virt, default_net, vsxml)
> + return FAIL
> +
> + nasd = get_nasd_class(options.virt)(type=ntype, mac=test_mac,
> + name=test_dom, virt_net=test_brg)
> +
> + net_attr = { 'ntype' : ntype,
> + 'net_name' : net_name,
> + 'nmac' : test_mac,
> + 'virt_net' : test_brg
> + }
> +
> + status = add_net_res(options.ip, service, options.virt, vsxml,
> + vssd_ref, nasd, net_attr)
> + cleanup_env(options.ip, options.virt, default_net, vsxml)
> + destroy_netpool(options.ip, options.virt, net_name=test_net)
> +
> + if status != PASS:
> + return XFAIL_RC(bug_libvirt)
> + else:
> + return status
>
Include the add_net_res() and the rest of the statements in the above
try..except block..
like below or something better you know of:
try:
........
........
nasd = get_nasd_class(options.virt)(type=ntype, mac=test_mac,
name=test_dom, virt_net=test_brg)
net_attr = { 'ntype' : ntype,
'net_name' : net_name,
'nmac' : test_mac,
'virt_net' : test_brg
}
status = add_net_res(options.ip, service, options.virt, vsxml,
vssd_ref, nasd, net_attr)
if status != PASS:
status = XFAIL_RC(bug_libvirt)
except Exception, details:
logger.error(details)
status = FAIL
cleanup_env(options.ip, options.virt, default_net, vsxml)
destroy_netpool(options.ip, options.virt, net_name=test_net)
return status
This will avoid redundant call to cleanup_env and return statements.
> +
> +if __name__ == "__main__":
> + sys.exit(main())
>
> _______________________________________________
> Libvirt-cim mailing list
> Libvirt-cim at redhat.com
> https://www.redhat.com/mailman/listinfo/libvirt-cim
>
--
Thanks and Regards,
Deepti B. Kalakeri
IBM Linux Technology Center
deeptik at linux.vnet.ibm.com
More information about the Libvirt-cim
mailing list