ctfy.sdk.resources.nodes

client.nodes — public worker-node list.

Operator node management (register / remove / patch / invites / health) lives on ctfy.sdk.AdminClient under client.admin.nodes.

 1"""``client.nodes`` — public worker-node list.
 2
 3Operator node management (register / remove / patch / invites / health) lives
 4on :class:`ctfy.sdk.AdminClient` under ``client.admin.nodes``.
 5"""
 6
 7from __future__ import annotations
 8
 9import builtins
10
11from ctfy.sdk._helpers import _extract_items, _raise_for_status
12from ctfy.sdk.base import BaseHttpClient
13from ctfy.server.models import NodeInfo
14
15
16class NodesResource:
17    """Public read of the worker-node roster."""
18
19    def __init__(self, http: BaseHttpClient) -> None:
20        self._http = http
21
22    def list(self, offset: int = 0, limit: int = 50) -> builtins.list[NodeInfo]:
23        resp = self._http.request("GET", "/nodes", params={"offset": offset, "limit": limit})
24        _raise_for_status(resp)
25        return _extract_items(resp.json(), NodeInfo)
class NodesResource:
17class NodesResource:
18    """Public read of the worker-node roster."""
19
20    def __init__(self, http: BaseHttpClient) -> None:
21        self._http = http
22
23    def list(self, offset: int = 0, limit: int = 50) -> builtins.list[NodeInfo]:
24        resp = self._http.request("GET", "/nodes", params={"offset": offset, "limit": limit})
25        _raise_for_status(resp)
26        return _extract_items(resp.json(), NodeInfo)

Public read of the worker-node roster.

NodesResource(http: ctfy.sdk.base.BaseHttpClient)
20    def __init__(self, http: BaseHttpClient) -> None:
21        self._http = http
def list( self, offset: int = 0, limit: int = 50) -> list[ctfy.server.models.NodeInfo]:
23    def list(self, offset: int = 0, limit: int = 50) -> builtins.list[NodeInfo]:
24        resp = self._http.request("GET", "/nodes", params={"offset": offset, "limit": limit})
25        _raise_for_status(resp)
26        return _extract_items(resp.json(), NodeInfo)