示例#1
0
 def testManagerLEDs(self):
     """
     test the Ledon, ledoff and ledstatus option parameter
     """
     opts = Options()  # default options object
     opts.cluster = TEST_CLUSTER
     opts.node = TEST_NODE
     opts.ledon = True
     Manager(opts).doit()
     # TODO: get led status and test if it's on
     opts.ledon = False
     opts.ledoff = True
     Manager(opts).doit()
示例#2
0
    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)