[Libvirt-cim] [PATCH] [TEST] Adding cim_state_change() to VirtCIM class of vxml
Kaitlin Rupert
kaitlin at linux.vnet.ibm.com
Tue Nov 18 22:40:42 UTC 2008
Deepti B. Kalakeri wrote:
> # HG changeset patch
> # User Deepti B. Kalakeri<deeptik at linux.vnet.ibm.com
> # Date 1227012098 28800
> # Node ID 588efe005eaaf7f56218e844b84bd63e347d0dc0
> # Parent ac693577d27b1b5f24fdc6c50272b11d02c91c7f
> [TEST] Adding cim_state_change() to VirtCIM class of vxml.
>
> cim_state_change() fn can be used to start/reboot/suspend the domain.
> The function verifies that the state of the domain is changed by calling poll_for_state_change().
> Included poll_for_state_change(), .get_cs_instance() fn in the vxml since including it from common_util
> was causing a circular chain and was failing.
Once tests are updated to use cim_state_change(), get_cs_instance() and
poll_for_state_change() will need to be removed from common_util.py to
prevent collisions (since the functions have the same names).
>
> -#Get the value of the EnabledState property and RequestedState property.
> try:
> + #Change the state of the VS to Start
> + status = cxml.cim_state_change(options.ip, options.virt, test_dom,
> + REQUESTED_STATE, TIME)
Instead of passing in the requested state, I would make a set of
functions (cim_start(), cim_reboot(), etc). This way, the test cases
don't have to be concerned with the appropriate requested state value.
Also, if the values ever change, they can be changed in one place.
> diff -r ac693577d27b -r 588efe005eaa suites/libvirt-cim/lib/XenKvmLib/vxml.py
> +
>
> class XMLClass:
> xml_string = ""
> @@ -524,6 +527,81 @@ class VirtCIM:
> return False
> return ret[0] == 0
>
> + def get_cs_instance(self, server, virt, domain_name, cs_class, keys):
I don't think there's a need for this function. In
poll_for_state_change(), you do something similar to get the instance..
I think this can be handled in a similar manner in cim_state_change().
> +
> + def cim_state_change(self, server, virt, domain_name, rs, time,
> + poll_timeout=30):
I would make time an optional value. In most cases, the test case won't
need to set it. Also, I'd rename the value to something other than
time, because there is a python module of the same name (which might
cause some conflicts).
> +
> + cs_class = get_typed_class(virt, 'ComputerSystem')
> + keys = { 'Name' : domain_name, 'CreationClassName' : cs_class }
> +
> + status, cs = self.get_cs_instance(server, virt, domain_name,
> + cs_class, keys)
Replace this - just call GetInstance() directly here.
--
Kaitlin Rupert
IBM Linux Technology Center
kaitlin at linux.vnet.ibm.com
More information about the Libvirt-cim
mailing list