Revision 1c3231aa test/py/ganeti.hooks_unittest.py
b/test/py/ganeti.hooks_unittest.py | ||
---|---|---|
51 | 51 |
return {} |
52 | 52 |
|
53 | 53 |
def BuildHooksNodes(self): |
54 |
return ["localhost"], ["localhost"]
|
|
54 |
return ["a"], ["a"]
|
|
55 | 55 |
|
56 | 56 |
|
57 | 57 |
class TestHooksRunner(unittest.TestCase): |
... | ... | |
290 | 290 |
return self.hook_env |
291 | 291 |
|
292 | 292 |
def BuildHooksNodes(self): |
293 |
return (["localhost"], ["localhost"])
|
|
293 |
return (["a"], ["a"])
|
|
294 | 294 |
|
295 | 295 |
|
296 | 296 |
class FakeNoHooksLU(cmdlib.NoHooksLU): |
... | ... | |
327 | 327 |
hm.RunPhase(constants.HOOKS_PHASE_PRE) |
328 | 328 |
|
329 | 329 |
(node_list, hpath, phase, env) = self._rpcs.pop(0) |
330 |
self.assertEqual(node_list, set(["localhost"]))
|
|
330 |
self.assertEqual(node_list, set(["node_a.example.com"]))
|
|
331 | 331 |
self.assertEqual(hpath, self.lu.HPATH) |
332 | 332 |
self.assertEqual(phase, constants.HOOKS_PHASE_PRE) |
333 | 333 |
self._CheckEnv(env, constants.HOOKS_PHASE_PRE, self.lu.HPATH) |
... | ... | |
337 | 337 |
hm.RunPhase(constants.HOOKS_PHASE_POST) |
338 | 338 |
|
339 | 339 |
(node_list, hpath, phase, env) = self._rpcs.pop(0) |
340 |
self.assertEqual(node_list, set(["localhost"]))
|
|
340 |
self.assertEqual(node_list, set(["node_a.example.com"]))
|
|
341 | 341 |
self.assertEqual(hpath, self.lu.HPATH) |
342 | 342 |
self.assertEqual(phase, constants.HOOKS_PHASE_POST) |
343 | 343 |
self._CheckEnv(env, constants.HOOKS_PHASE_POST, self.lu.HPATH) |
... | ... | |
353 | 353 |
hm.RunPhase(constants.HOOKS_PHASE_PRE) |
354 | 354 |
|
355 | 355 |
(node_list, hpath, phase, env) = self._rpcs.pop(0) |
356 |
self.assertEqual(node_list, set(["localhost"]))
|
|
356 |
self.assertEqual(node_list, set(["node_a.example.com"]))
|
|
357 | 357 |
self.assertEqual(hpath, self.lu.HPATH) |
358 | 358 |
self.assertEqual(phase, constants.HOOKS_PHASE_PRE) |
359 | 359 |
self.assertEqual(env["GANETI_FOO"], "pre-foo-value") |
... | ... | |
368 | 368 |
hm.RunPhase(constants.HOOKS_PHASE_POST) |
369 | 369 |
|
370 | 370 |
(node_list, hpath, phase, env) = self._rpcs.pop(0) |
371 |
self.assertEqual(node_list, set(["localhost"]))
|
|
371 |
self.assertEqual(node_list, set(["node_a.example.com"]))
|
|
372 | 372 |
self.assertEqual(hpath, self.lu.HPATH) |
373 | 373 |
self.assertEqual(phase, constants.HOOKS_PHASE_POST) |
374 | 374 |
self.assertEqual(env["GANETI_FOO"], "pre-foo-value") |
... | ... | |
382 | 382 |
# Check configuration update hook |
383 | 383 |
hm.RunConfigUpdate() |
384 | 384 |
(node_list, hpath, phase, env) = self._rpcs.pop(0) |
385 |
self.assertEqual(set(node_list), set([self.lu.cfg.GetMasterNode()])) |
|
385 |
self.assertEqual(set(node_list), set([self.lu.cfg.GetMasterNodeName()]))
|
|
386 | 386 |
self.assertEqual(hpath, constants.HOOKS_NAME_CFGUPDATE) |
387 | 387 |
self.assertEqual(phase, constants.HOOKS_PHASE_POST) |
388 | 388 |
self._CheckEnv(env, constants.HOOKS_PHASE_POST, |
... | ... | |
405 | 405 |
def testNoNodes(self): |
406 | 406 |
self.lu.hook_env = {} |
407 | 407 |
hm = hooksmaster.HooksMaster.BuildFromLu(self._HooksRpc, self.lu) |
408 |
hm.RunPhase(constants.HOOKS_PHASE_PRE, nodes=[]) |
|
408 |
hm.RunPhase(constants.HOOKS_PHASE_PRE, node_names=[])
|
|
409 | 409 |
self.assertRaises(IndexError, self._rpcs.pop) |
410 | 410 |
|
411 | 411 |
def testSpecificNodes(self): |
... | ... | |
419 | 419 |
hm = hooksmaster.HooksMaster.BuildFromLu(self._HooksRpc, self.lu) |
420 | 420 |
|
421 | 421 |
for phase in [constants.HOOKS_PHASE_PRE, constants.HOOKS_PHASE_POST]: |
422 |
hm.RunPhase(phase, nodes=nodes) |
|
422 |
hm.RunPhase(phase, node_names=nodes)
|
|
423 | 423 |
|
424 | 424 |
(node_list, hpath, rpc_phase, env) = self._rpcs.pop(0) |
425 | 425 |
self.assertEqual(set(node_list), set(nodes)) |
... | ... | |
438 | 438 |
hm.RunConfigUpdate() |
439 | 439 |
|
440 | 440 |
(node_list, hpath, phase, env) = self._rpcs.pop(0) |
441 |
self.assertEqual(set(node_list), set([self.lu.cfg.GetMasterNode()])) |
|
441 |
self.assertEqual(set(node_list), set([self.lu.cfg.GetMasterNodeName()]))
|
|
442 | 442 |
self.assertEqual(hpath, constants.HOOKS_NAME_CFGUPDATE) |
443 | 443 |
self.assertEqual(phase, constants.HOOKS_PHASE_POST) |
444 | 444 |
self.assertEqual(env["GANETI_FOO"], "value") |
... | ... | |
457 | 457 |
hm.RunPhase(constants.HOOKS_PHASE_POST) |
458 | 458 |
|
459 | 459 |
(node_list, hpath, phase, env) = self._rpcs.pop(0) |
460 |
self.assertEqual(node_list, set(["localhost"]))
|
|
460 |
self.assertEqual(node_list, set(["node_a.example.com"]))
|
|
461 | 461 |
self.assertEqual(hpath, self.lu.HPATH) |
462 | 462 |
self.assertEqual(phase, constants.HOOKS_PHASE_POST) |
463 | 463 |
self.assertEqual(env["GANETI_FOO"], "value") |
... | ... | |
484 | 484 |
hm.RunConfigUpdate() |
485 | 485 |
|
486 | 486 |
(node_list, hpath, phase, env) = self._rpcs.pop(0) |
487 |
self.assertEqual(set(node_list), set([self.lu.cfg.GetMasterNode()])) |
|
487 |
self.assertEqual(set(node_list), set([self.lu.cfg.GetMasterNodeName()]))
|
|
488 | 488 |
self.assertEqual(hpath, constants.HOOKS_NAME_CFGUPDATE) |
489 | 489 |
self.assertEqual(phase, constants.HOOKS_PHASE_POST) |
490 | 490 |
self.assertFalse(compat.any(key.startswith("GANETI_POST") for key in env)) |
... | ... | |
495 | 495 |
assert isinstance(self.lu, FakeNoHooksLU), "LU was replaced" |
496 | 496 |
|
497 | 497 |
|
498 |
class FakeEnvWithNodeNameLU(cmdlib.LogicalUnit): |
|
499 |
HPATH = "env_test_lu" |
|
500 |
HTYPE = constants.HTYPE_GROUP |
|
501 |
|
|
502 |
def __init__(self, *args): |
|
503 |
cmdlib.LogicalUnit.__init__(self, *args) |
|
504 |
|
|
505 |
def BuildHooksEnv(self): |
|
506 |
return {} |
|
507 |
|
|
508 |
def BuildHooksNodes(self): |
|
509 |
return (["a"], ["a"], ["explicit.node1.com", "explicit.node2.com"]) |
|
510 |
|
|
511 |
|
|
512 |
class TestHooksRunnerEnv(unittest.TestCase): |
|
513 |
def setUp(self): |
|
514 |
self._rpcs = [] |
|
515 |
|
|
516 |
self.op = opcodes.OpTestDummy(result=False, messages=[], fail=False) |
|
517 |
self.lu = FakeEnvWithNodeNameLU(FakeProc(), self.op, FakeContext(), None) |
|
518 |
|
|
519 |
def _HooksRpc(self, *args): |
|
520 |
self._rpcs.append(args) |
|
521 |
return FakeHooksRpcSuccess(*args) |
|
522 |
|
|
523 |
def testEmptyEnv(self): |
|
524 |
# Check pre-phase hook |
|
525 |
hm = hooksmaster.HooksMaster.BuildFromLu(self._HooksRpc, self.lu) |
|
526 |
hm.RunPhase(constants.HOOKS_PHASE_PRE) |
|
527 |
|
|
528 |
(node_list, hpath, phase, env) = self._rpcs.pop(0) |
|
529 |
self.assertEqual(node_list, set(["node_a.example.com"])) |
|
530 |
|
|
531 |
# Check post-phase hook |
|
532 |
hm.RunPhase(constants.HOOKS_PHASE_POST) |
|
533 |
|
|
534 |
(node_list, hpath, phase, env) = self._rpcs.pop(0) |
|
535 |
self.assertEqual(node_list, set(["node_a.example.com", |
|
536 |
"explicit.node1.com", |
|
537 |
"explicit.node2.com"])) |
|
538 |
|
|
539 |
self.assertRaises(IndexError, self._rpcs.pop) |
|
540 |
|
|
541 |
|
|
498 | 542 |
if __name__ == "__main__": |
499 | 543 |
testutils.GanetiTestProgram() |
Also available in: Unified diff