Revision 7af293d7 qa/qa_cluster.py

b/qa/qa_cluster.py
33 33
from ganeti import pathutils
34 34

  
35 35
import qa_config
36
import qa_daemon
36 37
import qa_utils
37 38
import qa_error
38 39
import qa_instance
......
347 348
  AssertCommand(["gnt-cluster", "verify-disks"])
348 349

  
349 350

  
351
def TestClusterVerifyDisksBrokenDRBD(instance, inst_nodes):
352
  """gnt-cluster verify-disks with broken DRBD"""
353
  qa_daemon.TestPauseWatcher()
354

  
355
  try:
356
    info = qa_instance.GetInstanceInfo(instance.name)
357
    snode = inst_nodes[1]
358
    for idx, minor in enumerate(info["drbd-minors"][snode.primary]):
359
      if idx % 2 == 0:
360
        break_drbd_cmd = \
361
          "(drbdsetup %d down >/dev/null 2>&1;" \
362
          " drbdsetup down resource%d >/dev/null 2>&1) || /bin/true" % \
363
          (minor, minor)
364
      else:
365
        break_drbd_cmd = \
366
          "(drbdsetup %d detach >/dev/null 2>&1;" \
367
          " drbdsetup detach %d >/dev/null 2>&1) || /bin/true" % \
368
          (minor, minor)
369
      AssertCommand(break_drbd_cmd, node=snode)
370

  
371
    verify_output = GetCommandOutput(qa_config.GetMasterNode().primary,
372
                                     "gnt-cluster verify-disks")
373
    activation_msg = "Activating disks for instance '%s'" % instance.name
374
    if activation_msg not in verify_output:
375
      raise qa_error.Error("gnt-cluster verify-disks did not activate broken"
376
                           " DRBD disks:\n%s" % verify_output)
377

  
378
    verify_output = GetCommandOutput(qa_config.GetMasterNode().primary,
379
                                     "gnt-cluster verify-disks")
380
    if activation_msg in verify_output:
381
      raise qa_error.Error("gnt-cluster verify-disks wants to activate broken"
382
                           " DRBD disks on second attempt:\n%s" % verify_output)
383

  
384
    AssertCommand(_CLUSTER_VERIFY)
385
  finally:
386
    qa_daemon.TestResumeWatcher()
387

  
388

  
350 389
def TestJobqueue():
351 390
  """gnt-debug test-jobqueue"""
352 391
  AssertCommand(["gnt-debug", "test-jobqueue"])

Also available in: Unified diff