Revision 27eba428 qa/ganeti-qa.py
b/qa/ganeti-qa.py | ||
---|---|---|
397 | 397 |
RunTest(qa_daemon.TestResumeWatcher) |
398 | 398 |
|
399 | 399 |
|
400 |
def RunSingleHomedHardwareFailureTests(instance, pnode): |
|
401 |
"""Test hardware failure recovery for single-homed instances. |
|
402 |
|
|
403 |
""" |
|
404 |
if qa_config.TestEnabled("instance-recreate-disks"): |
|
405 |
othernode = qa_config.AcquireNode(exclude=[pnode]) |
|
406 |
try: |
|
407 |
RunTest(qa_instance.TestRecreateDisks, |
|
408 |
instance, pnode, None, [othernode]) |
|
409 |
finally: |
|
410 |
qa_config.ReleaseNode(othernode) |
|
411 |
|
|
412 |
|
|
413 | 400 |
def RunHardwareFailureTests(instance, inodes): |
414 | 401 |
"""Test cluster internal hardware failure recovery. |
415 | 402 |
|
... | ... | |
543 | 530 |
RunTest(qa_rapi.TestRapiInstanceRemove, rapi_instance, use_client) |
544 | 531 |
del rapi_instance |
545 | 532 |
|
546 |
if qa_config.TestEnabled("instance-add-plain-disk"): |
|
547 |
instance = RunTest(qa_instance.TestInstanceAddWithPlainDisk, [pnode]) |
|
548 |
RunCommonInstanceTests(instance) |
|
549 |
RunGroupListTests() |
|
550 |
RunTestIf("cluster-epo", qa_cluster.TestClusterEpo) |
|
551 |
RunExportImportTests(instance, [pnode]) |
|
552 |
RunDaemonTests(instance) |
|
553 |
RunRepairDiskSizes() |
|
554 |
RunSingleHomedHardwareFailureTests(instance, pnode) |
|
555 |
RunTest(qa_instance.TestInstanceRemove, instance) |
|
556 |
del instance |
|
557 |
|
|
558 |
multinode_tests = [ |
|
559 |
("instance-add-drbd-disk", |
|
560 |
qa_instance.TestInstanceAddWithDrbdDisk), |
|
561 |
] |
|
562 |
|
|
563 |
for name, func in multinode_tests: |
|
564 |
if qa_config.TestEnabled(name): |
|
565 |
snode = qa_config.AcquireNode(exclude=pnode) |
|
566 |
try: |
|
567 |
instance = RunTest(func, [pnode, snode]) |
|
568 |
RunTestIf("haskell-confd", qa_node.TestNodeListDrbd, pnode) |
|
569 |
RunTestIf("haskell-confd", qa_node.TestNodeListDrbd, snode) |
|
570 |
RunCommonInstanceTests(instance) |
|
571 |
RunGroupListTests() |
|
572 |
RunTestIf("group-rwops", qa_group.TestAssignNodesIncludingSplit, |
|
573 |
constants.INITIAL_NODE_GROUP_NAME, |
|
574 |
pnode["primary"], snode["primary"]) |
|
575 |
if qa_config.TestEnabled("instance-convert-disk"): |
|
576 |
RunTest(qa_instance.TestInstanceShutdown, instance) |
|
577 |
RunTest(qa_instance.TestInstanceConvertDiskToPlain, instance, |
|
578 |
[pnode, snode]) |
|
579 |
RunTest(qa_instance.TestInstanceStartup, instance) |
|
580 |
RunExportImportTests(instance, [pnode, snode]) |
|
581 |
RunHardwareFailureTests(instance, [pnode, snode]) |
|
582 |
RunRepairDiskSizes() |
|
583 |
RunTest(qa_instance.TestInstanceRemove, instance) |
|
584 |
del instance |
|
585 |
finally: |
|
586 |
qa_config.ReleaseNode(snode) |
|
587 |
|
|
588 | 533 |
finally: |
589 | 534 |
qa_config.ReleaseNode(pnode) |
590 | 535 |
|
536 |
instance_tests = [ |
|
537 |
("instance-add-plain-disk", constants.DT_PLAIN, |
|
538 |
qa_instance.TestInstanceAddWithPlainDisk, 1), |
|
539 |
("instance-add-drbd-disk", constants.DT_DRBD8, |
|
540 |
qa_instance.TestInstanceAddWithDrbdDisk, 2), |
|
541 |
] |
|
542 |
|
|
543 |
for (test_name, templ, create_fun, num_nodes) in instance_tests: |
|
544 |
if (qa_config.TestEnabled(test_name) and |
|
545 |
qa_config.IsTemplateSupported(templ)): |
|
546 |
inodes = qa_config.AcquireManyNodes(num_nodes) |
|
547 |
try: |
|
548 |
instance = RunTest(create_fun, inodes) |
|
549 |
|
|
550 |
RunTestIf("cluster-epo", qa_cluster.TestClusterEpo) |
|
551 |
RunDaemonTests(instance) |
|
552 |
for node in inodes: |
|
553 |
RunTestIf("haskell-confd", qa_node.TestNodeListDrbd, node) |
|
554 |
if len(inodes) > 1: |
|
555 |
RunTestIf("group-rwops", qa_group.TestAssignNodesIncludingSplit, |
|
556 |
constants.INITIAL_NODE_GROUP_NAME, |
|
557 |
inodes[0]["primary"], inodes[1]["primary"]) |
|
558 |
if qa_config.TestEnabled("instance-convert-disk"): |
|
559 |
RunTest(qa_instance.TestInstanceShutdown, instance) |
|
560 |
RunTest(qa_instance.TestInstanceConvertDiskToPlain, instance, inodes) |
|
561 |
RunTest(qa_instance.TestInstanceStartup, instance) |
|
562 |
RunCommonInstanceTests(instance) |
|
563 |
RunGroupListTests() |
|
564 |
RunExportImportTests(instance, inodes) |
|
565 |
RunHardwareFailureTests(instance, inodes) |
|
566 |
RunRepairDiskSizes() |
|
567 |
RunTest(qa_instance.TestInstanceRemove, instance) |
|
568 |
del instance |
|
569 |
finally: |
|
570 |
qa_config.ReleaseManyNodes(inodes) |
|
571 |
|
|
591 | 572 |
# Test removing instance with offline drbd secondary |
592 | 573 |
if qa_config.TestEnabled("instance-remove-drbd-offline"): |
593 | 574 |
# Make sure the master is not put offline |
Also available in: Unified diff