Cluster - Contrôlez les Swarms et accédez aux résultats et aux journaux¶
- class manta.cluster.Cluster(host: str = 'localhost', port: int = 50051, ca_port: int = 50050, secured_token: str | None = None)¶
Client gRPC pour se connecter à un cluster
- Paramètres:
host (str) – Adresse du Manager
port (int) – Port du Manager
ca_port (int) – Port pour le CA
secured_token (Optional[str]) – Jeton sécurisé pour la première connexion du Manager
- async classmethod connect(host: str = 'localhost', port: int = 50051, ca_port: int = 50050, secured_token: str | None = None) Cluster ¶
Créez un client Cluster gRPC.
- Paramètres:
host (str) – Adresse du Manager, par défaut « localhost »
port (int) – Port du Manager, par défaut 50051
ca_port (int) – Port pour le CA
secured_token (Optional[str]) – Jeton sécurisé pour la première connexion du Manager
- Renvoie:
Client gRPC en cluster
- Type renvoyé:
Exemples
>>> await Cluster.connect( ... "localhost", 50051, 50050, secured_token="TOKEN" ... )
- async is_available(service: UserStub) Response ¶
Vérifiez si le serveur est disponible
- Paramètres:
service (UserStub) – Service de connexion au serveur gRPC (non requis)
- Renvoie:
Réponse du serveur
- Type renvoyé:
Response
Exemples
>>> cluster = Cluster("localhost", 50051) >>> await cluster.is_available() Response(message="Available", status=1)
Remarques
L’argument
service
est géré par un décorateur sous le capot.
- async start_swarm(service: UserStub, swarm_id: str)¶
Démarrer un Swarm en fonction de son identifiant s’il est trouvé dans la base de données
- Paramètres:
service (UserStub) – Service de connexion au serveur gRPC (non requis)
swarm_id (str) – ID du Swarm
- Renvoie:
Réponse du serveur
- Type renvoyé:
Response
Exemples
>>> cluster = Cluster("localhost", 50051) >>> swarm_id = '9415dfd18edc45c9a6ffdf2055007bf9' >>> await cluster.start_swarm(swarm_id) Response(message='Swarm 9415dfd18edc45c9a6ffdf2055007bf9 has started.', status=2)
Remarques
L’argument
service
est géré par un décorateur sous le capot.
- async send_swarm(service: UserStub, swarm: Swarm) SwarmOverview ¶
Envoyer un Swarm au serveur pour l’insérer dans sa base de données
- Paramètres:
service (UserStub) – Service de connexion au serveur gRPC (non requis)
swarm (Swarm) – Toute classe qui hérite de la classe
Swarm
- Renvoie:
Aperçu des métadonnées du Swarm enregistré sur le serveur
- Type renvoyé:
SwarmOverview
Exemples
>>> cluster = Cluster("localhost", 50051) >>> swarm = FLSwarm() >>> await cluster.send_swarm(swarm) SwarmOverview(swarm_id='9415dfd18edc45c9a6ffdf2055007bf9', datetime='2024-09-13 10:18:06', status='ACTIVE')
Remarques
L’argument
service
est géré par un décorateur sous le capot.
- async deploy_swarm(service: UserStub, swarm: Swarm) Deployment ¶
Déployer un Swarm
- Paramètres:
service (UserStub) – Service de connexion au serveur gRPC (non requis)
swarm (Swarm) – Toute classe qui hérite de la classe
Swarm
- Renvoie:
Réponse du serveur
- Type renvoyé:
Deployment
Exemples
>>> cluster = Cluster("localhost", 50051) >>> swarm = FLSwarm() >>> await cluster.deploy_swarm(swarm) Deployment(swarm_id='9415dfd18edc45c9a6ffdf2055007bf9', datetime='2024-09-13 10:18:06', status='ACTIVE', message='Swarm 9415dfd18edc45c9a6ffdf2055007bf9 has started.')
Remarques
L’argument
service
est géré par un décorateur sous le capot.
- async list_swarms(service: UserStub) List[SwarmOverview] ¶
Lister les Swarms enregistrés sur le serveur
- Paramètres:
service – Service de connexion au serveur gRPC (non requis)
- Renvoie:
Liste des aperçus des Swarms
- Type renvoyé:
List[SwarmOverview]
Exemples
>>> cluster = Cluster("localhost", 50051) >>> await cluster.list_swarms() [SwarmOverview(swarm_id='9415dfd18edc45c9a6ffdf2055007bf9', datetime='2024-09-13 10:18:06', status='ACTIVE')]
Remarques
L’argument
service
est géré par un décorateur sous le capot.
- async remove_swarm(service: UserStub, swarm_id: str) Response ¶
Supprimer un Swarm sur le cluster
- Paramètres:
service (UserStub) – Service de connexion au serveur gRPC (non requis)
swarm_id (str) – Id du Swarm
- Renvoie:
Réponse du serveur
- Type renvoyé:
Response
Exemples
>>> cluster = Cluster("localhost", 50051) >>> swarm_id = '9415dfd18edc45c9a6ffdf2055007bf9' >>> await cluster.remove_swarm(swarm_id) Response(message='9415dfd18edc45c9a6ffdf2055007bf9 deleted.', status=2)
Remarques
L’argument
service
est géré par un décorateur sous le capot.
- async select_results(service: UserStub, *queries: Tuple[str, List[str]]) Dict[str, Results] ¶
Sélectionner les résultats de la base de données en fonction des requêtes
- Paramètres:
service (UserStub) – Service de connexion au serveur gRPC (non requis)
queries (Tuple[str, List[str]]) – Requêtes sous la structure
(swarm_id, tags)
- Renvoie:
Dictionnaire de
(swarm_id, results)
- Type renvoyé:
Dict[str, Results]
Exemples
>>> cluster = Cluster("localhost", 50051) >>> swarm_id = '9415dfd18edc45c9a6ffdf2055007bf9' >>> tags = ["accuracy", "loss"] >>> await cluster.select_results((swarm_id, tags)) {'9415dfd18edc45c9a6ffdf2055007bf9': Results(len(iteration)=10, len(nodes)=8, len(tags)=2)}
Remarques
L’argument
service
est géré par un décorateur sous le capot.
- async collect_logs(service: UserStub, id: str) List[Dict[str, str]] ¶
Collecter les journaux stockés dans la base de données
Manager
en fonction de l’ID- Paramètres:
service (UserStub) – Service de connexion au serveur gRPC (non requis)
id (str) – ID du Swarm ou ID de nœud
- Renvoie:
Liste de plusieurs informations contenant des logs
- Type renvoyé:
List[Dict[str, str]]
Exemples
>>> cluster = Cluster("localhost", 50051) >>> swarm_id = '9415dfd18edc45c9a6ffdf2055007bf9' >>> cluster.collect_logs(swarm_id) [{'swarm_id': '9415dfd18edc45c9a6ffdf2055007bf9', 'task_id': 'a2ff3abc76e045d7bb4a04a5ac416318', 'message': ..., 'datetime': '2024-09-13 10:18:06', 'iteration': '1'}, ...]
Remarques
L’argument
service
est géré par un décorateur sous le capot.