status = FAIL
for items in pool:
cname = items.classname
if cname.find("MemoryPool") >=0 and items['InstanceID'] ==
"MemoryPool/0":
status = PASS
if cname.find("ProcessorPool") >=0 and items['InstanceID'] ==
"ProcessorPool/0":
status = PASS
if cname.find("NetworkPool") >=0 and \
items['InstanceID'] == "NetworkPool/%s" %default_network_name:
status = PASS
if cname.find("DiskPool") >=0 and \
items['InstanceID'] == "DiskPool/%s" % default_pool_name:
status = PASS
if status != PASS:
logger.error("HostedResourcePool information error")
return status
If you hit an error condition, the test should return - no point in
checking the other conditions when we already know we've failed. Plus,
the error log message is really vague.
Instead, you could do something like:
try:
for items in pool:
cname = items.classname
if cname.find("MemoryPool") >=0 and items['InstanceID'] !=
"MemoryPool/0":
raise Exception("%s does not match MemoryPool/0",
items['InstanceID'])
elif cname.find("ProcessorPool") >=0 and items['InstanceID']
!=
"ProcessorPool/0":
raise Exception("%s does not match ProcessorPool/0",
items['InstanceID'])
elif cname.find("NetworkPool") >= 0 and \
items['InstanceID'] != "NetworkPool/%s" %default_network_name:
raise Exception("%s does not match NetworkPool/%s",
items['InstanceID'], default_network_name)
elif cname.find("DiskPool") >= 0 and \
items['InstanceID'] != "DiskPool/%s" % default_pool_name:
raise Exception("%s does not match DiskPool/%s",
items['InstanceID'], default_pool_name)
except Exception, details:
logger.error(details)
return FAIL
return PASS
--
Kaitlin Rupert
IBM Linux Technology Center
kaitlin(a)linux.vnet.ibm.com