Revision 8ec505dd
b/test/ganeti.cmdlib_unittest.py | ||
---|---|---|
36 | 36 |
from ganeti import utils |
37 | 37 |
from ganeti import luxi |
38 | 38 |
from ganeti import ht |
39 |
from ganeti import objects |
|
39 | 40 |
|
40 | 41 |
import testutils |
41 | 42 |
import mocks |
... | ... | |
156 | 157 |
"xyz") |
157 | 158 |
|
158 | 159 |
|
160 |
class TestLUAssignGroupNodes(unittest.TestCase): |
|
161 |
|
|
162 |
def testCheckAssignmentForSplitInstances(self): |
|
163 |
node_data = dict((name, objects.Node(name=name, group=group)) |
|
164 |
for (name, group) in [("n1a", "g1"), ("n1b", "g1"), |
|
165 |
("n2a", "g2"), ("n2b", "g2"), |
|
166 |
("n3a", "g3"), ("n3b", "g3"), |
|
167 |
("n3c", "g3"), |
|
168 |
]) |
|
169 |
|
|
170 |
def Instance(name, pnode, snode): |
|
171 |
if snode is None: |
|
172 |
disks = [] |
|
173 |
disk_template = constants.DT_DISKLESS |
|
174 |
else: |
|
175 |
disks = [objects.Disk(dev_type=constants.LD_DRBD8, |
|
176 |
logical_id=[pnode, snode, 1, 17, 17])] |
|
177 |
disk_template = constants.DT_DRBD8 |
|
178 |
|
|
179 |
return objects.Instance(name=name, primary_node=pnode, disks=disks, |
|
180 |
disk_template=disk_template) |
|
181 |
|
|
182 |
instance_data = dict((name, Instance(name, pnode, snode)) |
|
183 |
for name, pnode, snode in [("inst1a", "n1a", "n1b"), |
|
184 |
("inst1b", "n1b", "n1a"), |
|
185 |
("inst2a", "n2a", "n2b"), |
|
186 |
("inst3a", "n3a", None), |
|
187 |
("inst3b", "n3b", "n1b"), |
|
188 |
("inst3c", "n3b", "n2b"), |
|
189 |
]) |
|
190 |
|
|
191 |
# Test first with the existing state. |
|
192 |
(new, prev) = \ |
|
193 |
cmdlib.LUAssignGroupNodes.CheckAssignmentForSplitInstances([], |
|
194 |
node_data, |
|
195 |
instance_data) |
|
196 |
|
|
197 |
self.assertEqual([], new) |
|
198 |
self.assertEqual(set(["inst3b", "inst3c"]), set(prev)) |
|
199 |
|
|
200 |
# And now some changes. |
|
201 |
(new, prev) = \ |
|
202 |
cmdlib.LUAssignGroupNodes.CheckAssignmentForSplitInstances([("n1b", |
|
203 |
"g3")], |
|
204 |
node_data, |
|
205 |
instance_data) |
|
206 |
|
|
207 |
self.assertEqual(set(["inst1a", "inst1b"]), set(new)) |
|
208 |
self.assertEqual(set(["inst3c"]), set(prev)) |
|
209 |
|
|
210 |
|
|
159 | 211 |
if __name__ == "__main__": |
160 | 212 |
testutils.GanetiTestProgram() |
Also available in: Unified diff