Revision 4b62db14 qa/qa_node.py

b/qa/qa_node.py
20 20

  
21 21
import qa_config
22 22
import qa_error
23
import qa_utils
23 24

  
24 25
from qa_utils import AssertEqual, StartSSH
25 26

  
......
81 82
  cmd = ['gnt-node', 'volumes']
82 83
  AssertEqual(StartSSH(master['primary'],
83 84
                       utils.ShellQuoteArgs(cmd)).wait(), 0)
85

  
86

  
87
def TestNodeFailover(node, node2):
88
  """gnt-node failover"""
89
  master = qa_config.GetMasterNode()
90

  
91
  if qa_utils.GetNodeInstances(node2):
92
    raise qa_errors.UnusableNodeError("Secondary node has at least one "
93
                                      "primary instance. This test requires "
94
                                      "it to have no primary instances.")
95

  
96
  # Fail over to secondary node
97
  cmd = ['gnt-node', 'failover', '-f', node['primary']]
98
  AssertEqual(StartSSH(master['primary'],
99
                       utils.ShellQuoteArgs(cmd)).wait(), 0)
100

  
101
  # ... and back again.
102
  cmd = ['gnt-node', 'failover', '-f', node2['primary']]
103
  AssertEqual(StartSSH(master['primary'],
104
                       utils.ShellQuoteArgs(cmd)).wait(), 0)
105

  
106

  
107
def TestNodeEvacuate(node, node2):
108
  """gnt-node evacuate"""
109
  master = qa_config.GetMasterNode()
110

  
111
  node3 = qa_config.AcquireNode(exclude=[node, node2])
112
  try:
113
    if qa_utils.GetNodeInstances(node3):
114
      raise qa_errors.UnusableNodeError("Evacuation node has at least one "
115
                                        "secondary instance. This test requires "
116
                                        "it to have no secondary instances.")
117

  
118
    # Evacuate all secondary instances
119
    cmd = ['gnt-node', 'evacuate', '-f', node2['primary'], node3['primary']]
120
    AssertEqual(StartSSH(master['primary'],
121
                         utils.ShellQuoteArgs(cmd)).wait(), 0)
122

  
123
    # ... and back again.
124
    cmd = ['gnt-node', 'evacuate', '-f', node3['primary'], node2['primary']]
125
    AssertEqual(StartSSH(master['primary'],
126
                         utils.ShellQuoteArgs(cmd)).wait(), 0)
127
  finally:
128
    qa_config.ReleaseNode(node3)

Also available in: Unified diff