
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@linux.vnet.ibm.com