Revision 1c3231aa test/py/ganeti.query_unittest.py
b/test/py/ganeti.query_unittest.py | ||
---|---|---|
423 | 423 |
master_node.mtime = None |
424 | 424 |
assert master_node.name == master_name |
425 | 425 |
|
426 |
live_data_name = node_names[4]
|
|
427 |
assert live_data_name != master_name |
|
426 |
live_data_node = nodes[4]
|
|
427 |
assert live_data_node.name != master_name
|
|
428 | 428 |
|
429 | 429 |
fake_live_data = { |
430 | 430 |
"bootid": "a2504766-498e-4b25-b21e-d23098dc3af4", |
... | ... | |
443 | 443 |
assert (sorted(query._NODE_LIVE_FIELDS.keys()) == |
444 | 444 |
sorted(fake_live_data.keys())) |
445 | 445 |
|
446 |
live_data = dict.fromkeys(node_names, {})
|
|
447 |
live_data[live_data_name] = \
|
|
446 |
live_data = dict.fromkeys([node.uuid for node in nodes], {})
|
|
447 |
live_data[live_data_node.uuid] = \
|
|
448 | 448 |
dict((query._NODE_LIVE_FIELDS[name][2], value) |
449 | 449 |
for name, value in fake_live_data.items()) |
450 | 450 |
|
451 |
node_to_primary = dict((name, set()) for name in node_names)
|
|
452 |
node_to_primary[master_name].update(["inst1", "inst2"])
|
|
451 |
node_to_primary = dict((node.uuid, set()) for node in nodes)
|
|
452 |
node_to_primary[master_node.uuid].update(["inst1", "inst2"])
|
|
453 | 453 |
|
454 |
node_to_secondary = dict((name, set()) for name in node_names)
|
|
455 |
node_to_secondary[live_data_name].update(["instX", "instY", "instZ"])
|
|
454 |
node_to_secondary = dict((node.uuid, set()) for node in nodes)
|
|
455 |
node_to_secondary[live_data_node.uuid].update(["instX", "instY", "instZ"])
|
|
456 | 456 |
|
457 | 457 |
ng_uuid = "492b4b74-8670-478a-b98d-4c53a76238e6" |
458 | 458 |
groups = { |
459 | 459 |
ng_uuid: objects.NodeGroup(name="ng1", uuid=ng_uuid, ndparams={}), |
460 | 460 |
} |
461 | 461 |
|
462 |
oob_not_powered_node = node_names[0]
|
|
463 |
nodes[0].powered = False
|
|
464 |
oob_support = dict((name, False) for name in node_names)
|
|
465 |
oob_support[master_name] = True
|
|
466 |
oob_support[oob_not_powered_node] = True |
|
462 |
oob_not_powered_node = nodes[0] |
|
463 |
oob_not_powered_node.powered = False
|
|
464 |
oob_support = dict((node.uuid, False) for node in nodes)
|
|
465 |
oob_support[master_node.uuid] = True
|
|
466 |
oob_support[oob_not_powered_node.uuid] = True
|
|
467 | 467 |
|
468 | 468 |
master_node.group = ng_uuid |
469 | 469 |
|
470 |
nqd = query.NodeQueryData(nodes, live_data, master_name,
|
|
470 |
nqd = query.NodeQueryData(nodes, live_data, master_node.uuid,
|
|
471 | 471 |
node_to_primary, node_to_secondary, groups, |
472 | 472 |
oob_support, cluster) |
473 | 473 |
result = q.Query(nqd) |
... | ... | |
511 | 511 |
row[field_index["powered"]] == (constants.RS_UNAVAIL, None) |
512 | 512 |
for row, node in zip(result, nodes)) |
513 | 513 |
|
514 |
live_data_row = result[node_to_row[live_data_name]] |
|
514 |
live_data_row = result[node_to_row[live_data_node.name]]
|
|
515 | 515 |
|
516 | 516 |
for (field, value) in fake_live_data.items(): |
517 | 517 |
self.assertEqual(live_data_row[field_index[field]], |
... | ... | |
523 | 523 |
(constants.RS_NORMAL, 3)) |
524 | 524 |
self.assertEqual(master_row[field_index["pinst_list"]], |
525 | 525 |
(constants.RS_NORMAL, |
526 |
list(node_to_primary[master_name])))
|
|
526 |
list(node_to_primary[master_node.uuid])))
|
|
527 | 527 |
self.assertEqual(live_data_row[field_index["sinst_list"]], |
528 | 528 |
(constants.RS_NORMAL, |
529 |
utils.NiceSort(list(node_to_secondary[live_data_name])))) |
|
529 |
utils.NiceSort(list( |
|
530 |
node_to_secondary[live_data_node.uuid])))) |
|
530 | 531 |
|
531 | 532 |
def testGetLiveNodeField(self): |
532 | 533 |
nodes = [ |
... | ... | |
666 | 667 |
}, |
667 | 668 |
}) |
668 | 669 |
|
669 |
offline_nodes = ["nodeoff1", "nodeoff2"] |
|
670 |
bad_nodes = ["nodebad1", "nodebad2", "nodebad3"] + offline_nodes |
|
671 |
nodes = ["node%s" % i for i in range(10)] + bad_nodes |
|
670 |
offline_nodes = ["nodeoff1-uuid", "nodeoff2-uuid"] |
|
671 |
bad_nodes = ["nodebad1-uuid", "nodebad2-uuid", "nodebad3-uuid"] +\ |
|
672 |
offline_nodes |
|
673 |
node_uuids = ["node%s-uuid" % i for i in range(10)] + bad_nodes |
|
672 | 674 |
|
673 | 675 |
instances = [ |
674 | 676 |
objects.Instance(name="inst1", hvparams={}, beparams={}, nics=[], |
... | ... | |
676 | 678 |
ctime=1291244000, mtime=1291244400, serial_no=30, |
677 | 679 |
admin_state=constants.ADMINST_UP, hypervisor=constants.HT_XEN_PVM, |
678 | 680 |
os="linux1", |
679 |
primary_node="node1", |
|
681 |
primary_node="node1-uuid",
|
|
680 | 682 |
disk_template=constants.DT_PLAIN, |
681 | 683 |
disks=[], |
682 | 684 |
disks_active=True, |
... | ... | |
686 | 688 |
ctime=1291211000, mtime=1291211077, serial_no=1, |
687 | 689 |
admin_state=constants.ADMINST_UP, hypervisor=constants.HT_XEN_HVM, |
688 | 690 |
os="deb99", |
689 |
primary_node="node5", |
|
691 |
primary_node="node5-uuid",
|
|
690 | 692 |
disk_template=constants.DT_DISKLESS, |
691 | 693 |
disks=[], |
692 | 694 |
disks_active=True, |
... | ... | |
700 | 702 |
ctime=1291011000, mtime=1291013000, serial_no=1923, |
701 | 703 |
admin_state=constants.ADMINST_DOWN, hypervisor=constants.HT_KVM, |
702 | 704 |
os="busybox", |
703 |
primary_node="node6", |
|
705 |
primary_node="node6-uuid",
|
|
704 | 706 |
disk_template=constants.DT_DRBD8, |
705 | 707 |
disks=[], |
706 | 708 |
disks_active=False, |
... | ... | |
717 | 719 |
ctime=1291244390, mtime=1291244395, serial_no=25, |
718 | 720 |
admin_state=constants.ADMINST_DOWN, hypervisor=constants.HT_XEN_PVM, |
719 | 721 |
os="linux1", |
720 |
primary_node="nodeoff2", |
|
722 |
primary_node="nodeoff2-uuid",
|
|
721 | 723 |
disk_template=constants.DT_DRBD8, |
722 | 724 |
disks=[], |
723 | 725 |
disks_active=True, |
... | ... | |
743 | 745 |
ctime=1231211000, mtime=1261200000, serial_no=3, |
744 | 746 |
admin_state=constants.ADMINST_UP, hypervisor=constants.HT_XEN_HVM, |
745 | 747 |
os="deb99", |
746 |
primary_node="nodebad2", |
|
748 |
primary_node="nodebad2-uuid",
|
|
747 | 749 |
disk_template=constants.DT_DISKLESS, |
748 | 750 |
disks=[], |
749 | 751 |
disks_active=True, |
... | ... | |
757 | 759 |
ctime=7513, mtime=11501, serial_no=13390, |
758 | 760 |
admin_state=constants.ADMINST_DOWN, hypervisor=constants.HT_XEN_HVM, |
759 | 761 |
os="deb99", |
760 |
primary_node="node7", |
|
762 |
primary_node="node7-uuid",
|
|
761 | 763 |
disk_template=constants.DT_DISKLESS, |
762 | 764 |
disks=[], |
763 | 765 |
disks_active=False, |
... | ... | |
773 | 775 |
ctime=None, mtime=None, serial_no=1947, |
774 | 776 |
admin_state=constants.ADMINST_DOWN, hypervisor=constants.HT_XEN_HVM, |
775 | 777 |
os="deb99", |
776 |
primary_node="node6", |
|
778 |
primary_node="node6-uuid",
|
|
777 | 779 |
disk_template=constants.DT_DISKLESS, |
778 | 780 |
disks=[], |
779 | 781 |
disks_active=False, |
... | ... | |
784 | 786 |
ctime=None, mtime=None, serial_no=19478, |
785 | 787 |
admin_state=constants.ADMINST_OFFLINE, hypervisor=constants.HT_XEN_HVM, |
786 | 788 |
os="deb99", |
787 |
primary_node="node6", |
|
789 |
primary_node="node6-uuid",
|
|
788 | 790 |
disk_template=constants.DT_DISKLESS, |
789 | 791 |
disks=[], |
790 | 792 |
disks_active=False, |
... | ... | |
831 | 833 |
user="root", |
832 | 834 |
command=["hostname"]).ToDict() |
833 | 835 |
|
836 |
nodes = dict([(uuid, objects.Node( |
|
837 |
name="%s.example.com" % uuid, |
|
838 |
uuid=uuid, |
|
839 |
group="default-uuid")) |
|
840 |
for uuid in node_uuids]) |
|
841 |
|
|
834 | 842 |
iqd = query.InstanceQueryData(instances, cluster, disk_usage, |
835 | 843 |
offline_nodes, bad_nodes, live_data, |
836 |
wrongnode_inst, consinfo, {}, {}, {})
|
|
844 |
wrongnode_inst, consinfo, nodes, {}, {})
|
|
837 | 845 |
result = q.Query(iqd) |
838 | 846 |
self.assertEqual(len(result), len(instances)) |
839 | 847 |
self.assert_(compat.all(len(row) == len(selected) |
... | ... | |
845 | 853 |
tested_status = set() |
846 | 854 |
|
847 | 855 |
for (inst, row) in zip(instances, result): |
848 |
assert inst.primary_node in nodes |
|
856 |
assert inst.primary_node in node_uuids
|
|
849 | 857 |
|
850 | 858 |
self.assertEqual(row[fieldidx["name"]], |
851 | 859 |
(constants.RS_NORMAL, inst.name)) |
Also available in: Unified diff