def testdoitOutput(self): """Test the consistency of the output of manager.doit""" opts = Options() # default options object opts.cluster = TEST_CLUSTER opts.quattor_nodes = True opts.ledon = True manager = Manager(opts) manager.nodes = CompositeNode(timeout=1) # create a fake node testnode = TestNode('node111', 'localhost', None) # overwrite it's testcommand to be sure it times out testnode.ledoncommand = Command('sleep 3', timeout=1) manager.nodes.add(testnode) # make sure this works for multiple nodes testnode2 = TestNode('node112', 'localhost', None) # overwrite it's testcommand to be sure it times out testnode2.ledoncommand = Command('sleep 3', timeout=1) manager.nodes.add(testnode2) # parse actions again so they get applied on the new node manager.parseActions() out = manager.doit() # make sure this output is of a format we can handle errors = [] for i in out: if len(i) > 1 and len(i[1]) > 0: for j in i[1]: # second element is an array of [outputs of commands,errors] self.assertEquals(j[1][0], None) if j[1][1]: self.assertEquals(j[1][1], 'command timed out') errors.append(i[0]) # actuall node should be in output, not just the name, because this is also used for printstatussee self.assertTrue(testnode in errors) self.assertTrue(testnode2 in errors)
def testNoDefaultRuncmdOption(self): opts = Options() # default options object opts.cluster = 'cubone' opts.quattor_nodes = True manager = Manager(opts) print "showcommands", manager.nodes.showCommands() self.assertFalse(bool(manager.nodes.showCommands()))
def testNoDefaultRuncmdOption(self): opts = Options() # default options object opts.cluster = TEST_CLUSTER opts.quattor_nodes = True manager = Manager(opts) self.assertFalse(bool(manager.nodes.showCommands()))
def testManagerQuattorOption(self): opts = Options() # default options object opts.cluster = TEST_CLUSTER opts.quattor_nodes = True opts.runcmd = "echo hello"