main
py 17 lines 728 Bytes
Raw
1 from loguru import logger
2
3 from app.connectors.portainer.schema.nodes import NodesResponse
4 from app.connectors.portainer.utils.universal import get_endpoint_id
5 from app.connectors.portainer.utils.universal import send_get_request
6
7
8 async def get_node_details() -> NodesResponse:
9 """
10 Get the node details from the Portainer API.
11 """
12 logger.info("Getting swarm node IPs")
13 endpoint_id = await get_endpoint_id()
14 logger.info(f"Endpoint ID: {endpoint_id}")
15 nodes_response = await send_get_request(f"/api/endpoints/{endpoint_id}/docker/nodes")
16 # Transform the response to match our simpler model
17 return NodesResponse(nodes=nodes_response["data"], success=True, message="Nodes fetched successfully")