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)))