Source code for easyfl.registry.registry
from easyfl.registry import etcd_client
from easyfl.registry import k8s
from easyfl.registry.vclient import VirtualClient
SOURCE_MANUAL = "manual"
SOURCE_ETCD = "etcd"
SOURCE_K8S = "kubernetes"
SOURCES = [SOURCE_MANUAL, SOURCE_ETCD, SOURCE_K8S]
CLIENT_DOCKER_IMAGE = "easyfl-client"
[docs]def get_clients(source, etcd_addresses=None):
"""Get clients from registry.
Args:
source (str): Registry source, options: manual, etcd, kubernetes.
etcd_addresses (str, optional): The addresses of etcd service.
Returns:
list[:obj:`VirtualClient`]: A list of clients with addresses.
"""
if source == SOURCE_MANUAL:
return [VirtualClient("1", "localhost:23400", 0), VirtualClient("2", "localhost:23401", 1)]
elif source == SOURCE_ETCD:
etcd = etcd_client.EtcdClient("server", etcd_addresses, "backends")
return etcd.get_clients(CLIENT_DOCKER_IMAGE)
elif source == SOURCE_K8S:
return k8s.get_clients()
else:
raise ValueError("Not supported source type")