Kaitlin Rupert wrote:
>> Below are the part code of libvirt-cim provider. I tried to
define
>> the test_mode as [0, 1, 2], but it
What failure are you seeing? This works for me.. here's my pywbem
script:
from pywbem import WBEMConnection, CIMInstanceName, CIMInstance,
cim_types
c = WBEMConnection("http://localhost",
("root", "pass"),
"root/virt")
c.debug = True
iname = CIMInstanceName('KVM_NetPoolResourceAllocationSettingData',
namespace='root/virt',keybindings =
{'InstanceID':'DiskPool/meep-net'})
rasd = CIMInstance('KVM_NetPoolResourceAllocationSettingData',
path=iname, properties={"Address":"192.168.0.4",
"Netmask":"255.255.254.0",
"IPRangeStart":"192.168.0.5",
"IPRangeEnd":"192.168.0.27",
"ForwardMode":cim_types.Uint16(2),
"ForwardDevice":"eth1"})
rasds = [rasd.tomof()]
print rasds
res = c.InvokeMethod("CreateChildResourcePool",
"KVM_ResourcePoolConfigurationService",
Settings=rasds,
ElementName="meep-net")
print c.last_request
>> fails yet. How to set the test_mode in cimtest for different types?
>>
>>
>> if (cu_get_u16_prop(inst, "ForwardMode", &type) !=
>> CMPI_RC_OK) {
>> pool->pool_info.net.forward_mode = strdup("nat");
>> } else {
>> free(pool->pool_info.net.forward_mode);
>>
>> switch (type) {
>> case NETPOOL_FORWARD_NONE:
>> pool->pool_info.net.forward_mode = NULL;
>> break;
>> case NETPOOL_FORWARD_NAT:
>> pool->pool_info.net.forward_mode =
>> strdup("nat");
>> break;
>> case NETPOOL_FORWARD_ROUTED:
>> pool->pool_info.net.forward_mode =
>> strdup("route");
>> break;
>> default:
>> return "Storage pool type not supported";
>>
> I checked this too in Virt_RPCS.c file..
> Here is the XML that is generated for the route type:
> xmlgen.c(981): Created pool XML:
> <network>
> <name>testpool</name>
> <bridge/>
> <forward mode="nat" dev="eth1"/>
> <ip address="192.168.0.51" netmask="255.255.255.0">
> <dhcp>
> <range start="192.168.0.52" end="192.168.0.61"/>
> </dhcp>
> </ip>
> </network>
>
> Seems like only the if condition is getting executed for some reason.
>
> Daisy,
>
> In your test case I think we need to specify pool_attr["ForwardMode"]
> = "route" and pool_attr["ForwardDevice"] = "eth1" for
route type.
>
The ForwardDevice is a uint16 - it needs to take a number. If you
look at the schema:
[Description ("Network pool forwarding mode"),
ValueMap {"0", "1", "2"},
Values {"None", "NAT", "Routed"}]
uint16 ForwardMode;
In Daisy's test, she is using strings, but it should be the following:
pool_attr["ForwardMode"] = 2 #This will give you a route pool type.
Oh!
Thanks so much. Yup! I had tried with the numbers as well which had
not worked. May be I missed something.