[Libvirt-cim] [PATCH] [TEST] #2 Fix potiential false positive in AC 01

Kaitlin Rupert kaitlin at linux.vnet.ibm.com
Mon Jul 21 14:52:09 UTC 2008


>> +def enum_pools_and_ac(ip, virt, cn):
>> +    pools = {}
>> +    ac = []
>> +
>> +    pt = ['MemoryPool', 'ProcessorPool', 'DiskPool', 'NetworkPool']
>> +
>> +    try:
>> +        key = ["InstanceID"]
>> +        ac = enumclass.enumerate(ip, cn, key, virt)
>> +
>> +        for p in pt:
>> +            enum_list = enumclass.enumerate(ip, p, key, virt)
>> +
>> +            if len(enum_list) < 1:
>> +                logger.error("%s did not return any instances" % p)
>> +                return pools, ac +
>> +            for pool in enum_list:
>> +                pools[pool.InstanceID] = pool +
>> +    except Exception, details:
>> +        logger.error(CIM_ERROR_ENUMERATE, cn)
>> +        logger.error(details)
>> +        return pools, ac +
>> +    if len(ac) != len(pools):
>> +        logger.error("%s returned %s instances, expected %s" % (cn, 
>> len(ac), +                     len(pools)))
>> +    return pools, ac +

>> enum_pools_and_ac(options.ip, options.virt, cn)
>> +    if len(pools) < 1:
>> +        cleanup_restore(options.ip, options.virt)
>> +        destroy_netpool(options.ip, options.virt, test_network)
>>          return FAIL
>>   
> I think the check used in the prev patch, len(ac) != len(pools) is 
> better

This check is still here - it's included in the enum_pools_and_ac() 
function.  See the piece quoted above.

It can be moved outside of this function to help with clarity.


  and also we should be checking len(ac) != 4 to make sure that AC
> values == enum of MemoryPool + ProcessorPool + DiskPool + NetworkPool. 
> Any specific reason for not doing this ?
> otherwise +1 for me.

You can't guarantee 4 pools.  The test creates a disk pool and a network 
  pool, but it's possible for additional net and disk pools to exist on 
the system.  That's why you want to check len(ac) != len(pools).

-- 
Kaitlin Rupert
IBM Linux Technology Center
kaitlin at linux.vnet.ibm.com




More information about the Libvirt-cim mailing list