
+ +def get_rec(netpool_rasd, inst_id='Default'): + recs = [] + for np_rasd in netpool_rasd: + if np_rasd['InstanceID'] == inst_id and \ + 'NetworkPool/0' == np_rasd['PoolID']:
libvirt-cim will only generate NetPoolRASDs for the parent pool (which is NetworkPool/0"). So there's no need to verify the PoolID here. You have PoolID in the n_rec_val list anyway, so it'll get verified in verify_rec()
+ recs.append(np_rasd) + return recs + +def verify_rec(netpool_rasd, inst_type='Default'): + logger.info("Verifying '%s' records", inst_type) + try: + n_rec_val = { 'ResourceType' : 10, + 'PoolID' : "NetworkPool/0", + 'Address' : "192.168.122.1", + 'Netmask' : "255.255.255.0", + 'IPRangeStart' : "192.168.122.2", + 'IPRangeEnd' : "192.168.122.254" + } + + n_rec = get_rec(netpool_rasd, inst_id=inst_type) + if len(n_rec) != 5: + raise Exception("Got %s recs instead of 5" %(len(n_rec))) + return FAIL + + exp_mode_device = [('None', 0L), ('None', 1L), ('eth0', 1L), + ('None', 2L), ('eth0', 2L)] + + res_mode_device = [] + for rec in n_rec: + l = (str(rec['ForwardDevice']), rec['ForwardMode']) + res_mode_device.append(l) + + if len(Set(exp_mode_device) & Set(res_mode_device)) != 5 : + raise Exception("Mismatching Mode and device values, " \ + "Got %s, Expected %s" %(exp_mode_device, \ + res_mode_device)) + + for key in n_rec_val.keys(): + for rec in n_rec: + if n_rec_val[key] != rec[key]: + raise Exception("'%s' Mismatch, Got %s, Expected %s" \ + % (key, rec[key], n_rec_val[key])) + + except Exception, details: + logger.error("Exception details: %s", details) + return FAIL + + return PASS + + +@do_main(sup_types) +def main(): + options = main.options + virt = options.virt + server = options.ip + status = FAIL + netpool_rasd = get_pool_rasds(server, virt, filter_default=False) + inst_list = [ 'Default', 'Minimum', 'Maximum', 'Increment' ] + for inst_type in inst_list: + status = verify_rec(netpool_rasd, inst_type) + if status != PASS: + return FAIL
The bulk of the test is happening in a different function.. since there's not much going on in the test, you can just put the body of verify_rec() in main. -- Kaitlin Rupert IBM Linux Technology Center kaitlin@linux.vnet.ibm.com