Revision deadfa13 qa/ganeti-qa.py

b/qa/ganeti-qa.py
482 482
    qa_config.ReleaseNode(node)
483 483

  
484 484

  
485
def RunInstanceTests():
486
  """Create and exercise instances."""
487
  instance_tests = [
488
    ("instance-add-plain-disk", constants.DT_PLAIN,
489
     qa_instance.TestInstanceAddWithPlainDisk, 1),
490
    ("instance-add-drbd-disk", constants.DT_DRBD8,
491
     qa_instance.TestInstanceAddWithDrbdDisk, 2),
492
  ]
493

  
494
  for (test_name, templ, create_fun, num_nodes) in instance_tests:
495
    if (qa_config.TestEnabled(test_name) and
496
        qa_config.IsTemplateSupported(templ)):
497
      inodes = qa_config.AcquireManyNodes(num_nodes)
498
      try:
499
        instance = RunTest(create_fun, inodes)
500

  
501
        RunTestIf("cluster-epo", qa_cluster.TestClusterEpo)
502
        RunDaemonTests(instance)
503
        for node in inodes:
504
          RunTestIf("haskell-confd", qa_node.TestNodeListDrbd, node)
505
        if len(inodes) > 1:
506
          RunTestIf("group-rwops", qa_group.TestAssignNodesIncludingSplit,
507
                    constants.INITIAL_NODE_GROUP_NAME,
508
                    inodes[0]["primary"], inodes[1]["primary"])
509
        if qa_config.TestEnabled("instance-convert-disk"):
510
          RunTest(qa_instance.TestInstanceShutdown, instance)
511
          RunTest(qa_instance.TestInstanceConvertDiskToPlain, instance, inodes)
512
          RunTest(qa_instance.TestInstanceStartup, instance)
513
        RunCommonInstanceTests(instance)
514
        RunGroupListTests()
515
        RunExportImportTests(instance, inodes)
516
        RunHardwareFailureTests(instance, inodes)
517
        RunRepairDiskSizes()
518
        RunTest(qa_instance.TestInstanceRemove, instance)
519
        del instance
520
      finally:
521
        qa_config.ReleaseManyNodes(inodes)
522
      qa_cluster.AssertClusterVerify()
523

  
524

  
485 525
def RunQa():
486 526
  """Main QA body.
487 527

  
......
536 576
  finally:
537 577
    qa_config.ReleaseNode(pnode)
538 578

  
539
  instance_tests = [
540
    ("instance-add-plain-disk", constants.DT_PLAIN,
541
     qa_instance.TestInstanceAddWithPlainDisk, 1),
542
    ("instance-add-drbd-disk", constants.DT_DRBD8,
543
     qa_instance.TestInstanceAddWithDrbdDisk, 2),
579
  config_list = [
580
    ("default-instance-tests", lambda: None, lambda _: None),
581
    ("exclusive-storage-instance-tests",
582
     lambda: qa_cluster.TestSetExclStorCluster(True),
583
     qa_cluster.TestSetExclStorCluster),
544 584
  ]
545

  
546
  for (test_name, templ, create_fun, num_nodes) in instance_tests:
547
    if (qa_config.TestEnabled(test_name) and
548
        qa_config.IsTemplateSupported(templ)):
549
      inodes = qa_config.AcquireManyNodes(num_nodes)
550
      try:
551
        instance = RunTest(create_fun, inodes)
552

  
553
        RunTestIf("cluster-epo", qa_cluster.TestClusterEpo)
554
        RunDaemonTests(instance)
555
        for node in inodes:
556
          RunTestIf("haskell-confd", qa_node.TestNodeListDrbd, node)
557
        if len(inodes) > 1:
558
          RunTestIf("group-rwops", qa_group.TestAssignNodesIncludingSplit,
559
                    constants.INITIAL_NODE_GROUP_NAME,
560
                    inodes[0]["primary"], inodes[1]["primary"])
561
        if qa_config.TestEnabled("instance-convert-disk"):
562
          RunTest(qa_instance.TestInstanceShutdown, instance)
563
          RunTest(qa_instance.TestInstanceConvertDiskToPlain, instance, inodes)
564
          RunTest(qa_instance.TestInstanceStartup, instance)
565
        RunCommonInstanceTests(instance)
566
        RunGroupListTests()
567
        RunExportImportTests(instance, inodes)
568
        RunHardwareFailureTests(instance, inodes)
569
        RunRepairDiskSizes()
570
        RunTest(qa_instance.TestInstanceRemove, instance)
571
        del instance
572
      finally:
573
        qa_config.ReleaseManyNodes(inodes)
574
      qa_cluster.AssertClusterVerify()
585
  for (conf_name, setup_conf_f, restore_conf_f) in config_list:
586
    if qa_config.TestEnabled(conf_name):
587
      oldconf = setup_conf_f()
588
      RunInstanceTests()
589
      restore_conf_f(oldconf)
575 590

  
576 591
  pnode = qa_config.AcquireNode()
577 592
  try:

Also available in: Unified diff