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
|