Revision 52e9bef0
b/qa/ganeti-qa.py | ||
---|---|---|
503 | 503 |
if len(inodes) >= 2: |
504 | 504 |
RunTestIf("node-evacuate", qa_node.TestNodeEvacuate, inodes[0], inodes[1]) |
505 | 505 |
RunTestIf("node-failover", qa_node.TestNodeFailover, inodes[0], inodes[1]) |
506 |
RunTestIf("node-migrate", qa_node.TestNodeMigrate, inodes[0], inodes[1]) |
|
506 | 507 |
|
507 | 508 |
|
508 | 509 |
def RunExclusiveStorageTests(): |
b/qa/qa-sample.json | ||
---|---|---|
183 | 183 |
"node-modify": true, |
184 | 184 |
"node-oob": true, |
185 | 185 |
|
186 |
"# This test needs at least three nodes": null,
|
|
186 |
"# These tests need at least three nodes": null,
|
|
187 | 187 |
"node-evacuate": false, |
188 |
"node-migrate": false, |
|
188 | 189 |
|
189 | 190 |
"# This test needs at least two nodes": null, |
190 | 191 |
"node-failover": false, |
b/qa/qa_node.py | ||
---|---|---|
201 | 201 |
AssertCommand(["gnt-node", "failover", "-f", node2.primary]) |
202 | 202 |
|
203 | 203 |
|
204 |
def TestNodeMigrate(node, node2): |
|
205 |
"""gnt-node migrate""" |
|
206 |
if qa_utils.GetNodeInstances(node2, secondaries=False): |
|
207 |
raise qa_error.UnusableNodeError("Secondary node has at least one" |
|
208 |
" primary instance. This test requires" |
|
209 |
" it to have no primary instances.") |
|
210 |
|
|
211 |
# Migrate to secondary node |
|
212 |
AssertCommand(["gnt-node", "migrate", "-f", node.primary]) |
|
213 |
|
|
214 |
# ... and back again. |
|
215 |
AssertCommand(["gnt-node", "migrate", "-f", node2.primary]) |
|
216 |
|
|
217 |
|
|
204 | 218 |
def TestNodeEvacuate(node, node2): |
205 | 219 |
"""gnt-node evacuate""" |
206 | 220 |
node3 = qa_config.AcquireNode(exclude=[node, node2]) |
Also available in: Unified diff