Name the sizes a node can ask for
Raw cpus and gpus are a property of the machines an installation has, so a node written against a cluster quietly stops meaning anything when the cluster is replaced. A node says "gpu-small" instead, and what that is stored here — editable, and read again every time the node is built, so changing the flavor changes what the next run gets. Memory joins the schema properly (`ram`, in MB, accepting "2G"), along with `duration_s` for how long a node is expected to take. That one is recorded and shown and nothing else yet: a statement for whoever is planning around the node, not a limit — the limit is still `timeout`. A flavor and a number for the same thing is refused, compared by value so an editor writing the whole object back with its defaults still round-trips. A name nothing stores is refused at the save, which covers the canvas and `fluksio sync` at once, and deleting one a node still asks for says which node. Four sizes are seeded on an installation that has none, and never re-seeded: re-adding one somebody deliberately removed is an argument nobody wins. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01A6HeySA27EkGANZN95QySW
This commit is contained in:
@@ -272,6 +272,16 @@ class Client:
|
||||
result = self._call("GET", "/flows/")
|
||||
return list(result.get("data") or [])
|
||||
|
||||
def flavors(self) -> list[dict[str, Any]]:
|
||||
"""The named sizes a node can ask for."""
|
||||
result = self._call("GET", "/flavors/")
|
||||
return list(result.get("data") or [])
|
||||
|
||||
def resources(self) -> dict[str, Any]:
|
||||
"""Every machine, what is free of it, and which nodes are queued."""
|
||||
result: dict[str, Any] = self._call("GET", "/workers/resources")
|
||||
return result
|
||||
|
||||
# -- how the engine is doing -------------------------------------------
|
||||
|
||||
def summary(self) -> dict[str, Any]:
|
||||
|
||||
Reference in New Issue
Block a user