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