Revision e4889779

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
......
349 350
  AssertCommand(["gnt-cluster", "verify-disks"])
350 351

  
351 352

  
352
# pylint: disable=W0613
353 353
def TestClusterVerifyDisksBrokenDRBD(instance, inst_nodes):
354 354
  """gnt-cluster verify-disks with broken DRBD"""
355
  pass
355
  qa_daemon.TestPauseWatcher()
356 356

  
357
# FIXME (thomasth): reenable once it works (see issue 516!)
358
# qa_daemon.TestPauseWatcher()
359
#
360
# try:
361
#   info = qa_instance.GetInstanceInfo(instance.name)
362
#   snode = inst_nodes[1]
363
#   for idx, minor in enumerate(info["drbd-minors"][snode.primary]):
364
#     if idx % 2 == 0:
365
#       break_drbd_cmd = \
366
#         "(drbdsetup %d down >/dev/null 2>&1;" \
367
#         " drbdsetup down resource%d >/dev/null 2>&1) || /bin/true" % \
368
#         (minor, minor)
369
#     else:
370
#       break_drbd_cmd = \
371
#         "(drbdsetup %d detach >/dev/null 2>&1;" \
372
#         " drbdsetup detach %d >/dev/null 2>&1) || /bin/true" % \
373
#         (minor, minor)
374
#     AssertCommand(break_drbd_cmd, node=snode)
375
#
376
#   verify_output = GetCommandOutput(qa_config.GetMasterNode().primary,
377
#                                    "gnt-cluster verify-disks")
378
#   activation_msg = "Activating disks for instance '%s'" % instance.name
379
#   if activation_msg not in verify_output:
380
#     raise qa_error.Error("gnt-cluster verify-disks did not activate broken"
381
#                          " DRBD disks:\n%s" % verify_output)
382
#
383
#   verify_output = GetCommandOutput(qa_config.GetMasterNode().primary,
384
#                                    "gnt-cluster verify-disks")
385
#   if activation_msg in verify_output:
386
#     raise qa_error.Error("gnt-cluster verify-disks wants to activate broken"
387
#                          " DRBD disks on second attempt:\n%s" % verify_output)
388
#
389
#   AssertCommand(_CLUSTER_VERIFY)
390
# finally:
391
#   qa_daemon.TestResumeWatcher()
357
  try:
358
    info = qa_instance.GetInstanceInfo(instance.name)
359
    snode = inst_nodes[1]
360
    for idx, minor in enumerate(info["drbd-minors"][snode.primary]):
361
      if idx % 2 == 0:
362
        break_drbd_cmd = \
363
          "(drbdsetup %d down >/dev/null 2>&1;" \
364
          " drbdsetup down resource%d >/dev/null 2>&1) || /bin/true" % \
365
          (minor, minor)
366
      else:
367
        break_drbd_cmd = \
368
          "(drbdsetup %d detach >/dev/null 2>&1;" \
369
          " drbdsetup detach %d >/dev/null 2>&1) || /bin/true" % \
370
          (minor, minor)
371
      AssertCommand(break_drbd_cmd, node=snode)
372

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

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

  
386
    AssertCommand(_CLUSTER_VERIFY)
387
  finally:
388
    qa_daemon.TestResumeWatcher()
392 389

  
393 390

  
394 391
def TestJobqueue():

Also available in: Unified diff