def register(self, service: str, url: URL) -> None: n_key = self._node_key(service, url.get_param("node")) value = "{}:{}".format(url.host, url.port) ttl = self.url.get_param("ttl", 10) logger.info(f"register key: {n_key} value: {value}") self.heartbeat(n_key, value, ttl=ttl)
def registry_factory(self, url: URL) -> Client: address = url.get_param("address") if address: return etcd.Client( allow_reconnect=True, host=tuple([str_to_host(add) for add in address.split(",")]), ) return etcd.Client(host=url.host, port=url.port)
def test_deregister(self, registry): service = "test" url = URL("locahost", 80, params={"node": "n1"}) registry.register(service, url) registry.deregister(service, url) res = registry.discovery(service) key = registry._node_key(service, url.get_param("node")) assert key not in res
def test_deregister(self, registry): service = 'test' url = URL('locahost', 80, params={"node": 'n1'}) registry.register(service, url) registry.deregister(service, url) res = registry.discovery(service) key = registry._node_key(service, url.get_param("node")) assert not key in res
def test_register(self, registry): service = "test" url = URL("locahost", 80, params={"node": "n1"}) self.registry = registry self.args = [service, url] registry.register(service, url) res = registry.discovery(service) key = registry._node_key(service, url.get_param("node")) assert key in res assert res[key] == ":".join((url.host, str(url.port)))
def test_zaddress(self): service = "test" url = URL("locahost", 80, params={"node": "n1"}) rurl = URL(None, None, params={"ttl": 10, "address": "127.0.0.1:2379"}) registry = EtcdRegistry(rurl) self.registry = registry self.args = [service, url] registry.register(service, url) res = registry.discovery(service) key = registry._node_key(service, url.get_param("node")) assert key in res assert res[key] == ":".join((url.host, str(url.port)))
def deregister(self, service: str, url: URL) -> None: n_key = self._node_key(service, url.get_param("node")) logger.debug(f"deregister key: {n_key}") self.etcd.delete(n_key)