Revision f3fd2c9d qa/qa_group.py
b/qa/qa_group.py | ||
---|---|---|
21 | 21 |
|
22 | 22 |
from ganeti import constants |
23 | 23 |
from ganeti import query |
24 |
from ganeti import utils |
|
24 | 25 |
|
25 | 26 |
import qa_config |
26 | 27 |
import qa_utils |
27 | 28 |
|
28 |
from qa_utils import AssertCommand |
|
29 |
from qa_utils import AssertCommand, AssertEqual, GetCommandOutput
|
|
29 | 30 |
|
30 | 31 |
|
31 | 32 |
def TestGroupAddRemoveRename(): |
... | ... | |
94 | 95 |
def TestGroupListFields(): |
95 | 96 |
"""gnt-group list-fields""" |
96 | 97 |
qa_utils.GenericQueryFieldsTest("gnt-group", query.GROUP_FIELDS.keys()) |
98 |
|
|
99 |
|
|
100 |
def TestAssignNodesIncludingSplit(orig_group, node1, node2): |
|
101 |
"""gnt-group assign-nodes --force |
|
102 |
|
|
103 |
Expects node1 and node2 to be primary and secondary for a common instance. |
|
104 |
|
|
105 |
""" |
|
106 |
assert node1 != node2 |
|
107 |
groups = qa_config.get("groups", {}) |
|
108 |
other_group = groups.get("inexistent-groups", ["group1"])[0] |
|
109 |
|
|
110 |
master_node = qa_config.GetMasterNode()["primary"] |
|
111 |
|
|
112 |
def AssertInGroup(group, nodes): |
|
113 |
real_output = GetCommandOutput(master_node, |
|
114 |
"gnt-node list --no-headers -o group " + |
|
115 |
utils.ShellQuoteArgs(nodes)) |
|
116 |
AssertEqual(real_output.splitlines(), [group] * len(nodes)) |
|
117 |
|
|
118 |
AssertInGroup(orig_group, [node1, node2]) |
|
119 |
AssertCommand(["gnt-group", "add", other_group]) |
|
120 |
|
|
121 |
try: |
|
122 |
AssertCommand(["gnt-group", "assign-nodes", other_group, node1, node2]) |
|
123 |
AssertInGroup(other_group, [node1, node2]) |
|
124 |
|
|
125 |
# This should fail because moving node1 to orig_group would leave their |
|
126 |
# common instance split between orig_group and other_group. |
|
127 |
AssertCommand(["gnt-group", "assign-nodes", orig_group, node1], fail=True) |
|
128 |
AssertInGroup(other_group, [node1, node2]) |
|
129 |
|
|
130 |
AssertCommand(["gnt-group", "assign-nodes", "--force", orig_group, node1]) |
|
131 |
AssertInGroup(orig_group, [node1]) |
|
132 |
AssertInGroup(other_group, [node2]) |
|
133 |
|
|
134 |
AssertCommand(["gnt-group", "assign-nodes", orig_group, node2]) |
|
135 |
AssertInGroup(orig_group, [node1, node2]) |
|
136 |
finally: |
|
137 |
AssertCommand(["gnt-group", "remove", other_group]) |
Also available in: Unified diff