def get_service_leader(client, serice_name):
    """
    Given a service name this function will return a the tuple (address, port)
    of the leader, or None if there isnt one
    """
    try:
        if client.exists(serice_name):
            master = client.get_children(serice_name)
            if len(master) != 1:
                return

            (val, _) = client.get("%s/%s" % (serice_name, master[0]))
            return parse_address(val)
    except Exception, e:
        log.exception(e)
Esempio n. 2
0
def get_service_leader(client, serice_name):
    """
    Given a service name this function will return a the tuple (address, port)
    of the leader, or None if there isnt one
    """
    try:
        if client.exists(serice_name):
            master = client.get_children(serice_name)
            if len(master) != 1:
                return

            (val, _) = client.get("%s/%s" % (serice_name, master[0]))
            return parse_address(val)
    except Exception, e:
        log.exception(e)
    def test_service_node(self):
        handler = TestHandler(1)

        service = LeaderElectedService(self.client, "test", ("127.0.0.1", 80), handler)
        service.join()

        assert_that(handler.await(5), is_(True))
        assert_that(handler.value, is_(1))

        children = self.client.get_children("/services/test")
        assert_that(children, has_len(1))

        child, _ = self.client.get("/services/test/%s" % children[0])

        assert_that(parse_address(child), is_(("127.0.0.1", 80)))
    def test_service_node(self):
        handler = TestHandler(1)

        service = LeaderElectedService(self.client, "test", ("127.0.0.1", 80),
                                       handler)
        service.join()

        assert_that(handler. await (5), is_(True))
        assert_that(handler.value, is_(1))

        children = self.client.get_children("/services/test")
        assert_that(children, has_len(1))

        child, _ = self.client.get("/services/test/%s" % children[0])

        assert_that(parse_address(child), is_(("127.0.0.1", 80)))