kalavai-client 0.6.10__py3-none-any.whl → 0.6.12__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- kalavai_client/__init__.py +1 -1
- kalavai_client/assets/apps.yaml +1 -1
- kalavai_client/bridge_api.py +19 -1
- kalavai_client/bridge_models.py +9 -1
- kalavai_client/core.py +62 -3
- {kalavai_client-0.6.10.dist-info → kalavai_client-0.6.12.dist-info}/METADATA +1 -1
- {kalavai_client-0.6.10.dist-info → kalavai_client-0.6.12.dist-info}/RECORD +10 -10
- {kalavai_client-0.6.10.dist-info → kalavai_client-0.6.12.dist-info}/WHEEL +1 -1
- {kalavai_client-0.6.10.dist-info → kalavai_client-0.6.12.dist-info}/LICENSE +0 -0
- {kalavai_client-0.6.10.dist-info → kalavai_client-0.6.12.dist-info}/entry_points.txt +0 -0
kalavai_client/__init__.py
CHANGED
@@ -1,2 +1,2 @@
|
|
1
1
|
|
2
|
-
__version__ = "0.6.
|
2
|
+
__version__ = "0.6.12"
|
kalavai_client/assets/apps.yaml
CHANGED
kalavai_client/bridge_api.py
CHANGED
@@ -14,7 +14,9 @@ from kalavai_client.bridge_models import (
|
|
14
14
|
DeployJobRequest,
|
15
15
|
DeleteJobRequest,
|
16
16
|
JobDetailsRequest,
|
17
|
-
NodesActionRequest
|
17
|
+
NodesActionRequest,
|
18
|
+
NodeLabelsRequest,
|
19
|
+
GetNodeLabelsRequest
|
18
20
|
)
|
19
21
|
from kalavai_client.core import (
|
20
22
|
create_pool,
|
@@ -46,6 +48,8 @@ from kalavai_client.core import (
|
|
46
48
|
delete_nodes,
|
47
49
|
cordon_nodes,
|
48
50
|
uncordon_nodes,
|
51
|
+
add_node_labels,
|
52
|
+
get_node_labels,
|
49
53
|
TokenType
|
50
54
|
)
|
51
55
|
from kalavai_client.utils import load_user_id
|
@@ -244,6 +248,20 @@ def pool_connected(user_only: bool=False, api_key: str = Depends(verify_api_key)
|
|
244
248
|
result = list_available_pools(user_only=user_only)
|
245
249
|
return result
|
246
250
|
|
251
|
+
@app.post("/add_node_labels")
|
252
|
+
def node_labels(request: NodeLabelsRequest, api_key: str = Depends(verify_api_key)):
|
253
|
+
result = add_node_labels(
|
254
|
+
node_name=request.node_name,
|
255
|
+
labels=request.labels
|
256
|
+
)
|
257
|
+
return result
|
258
|
+
|
259
|
+
@app.post("/get_node_labels")
|
260
|
+
def node_labels_get(request: GetNodeLabelsRequest, api_key: str = Depends(verify_api_key)):
|
261
|
+
result = get_node_labels(
|
262
|
+
node_names=request.node_names
|
263
|
+
)
|
264
|
+
return result
|
247
265
|
|
248
266
|
def run_api(host="0.0.0.0", port=8001, log_level="critical"):
|
249
267
|
uvicorn.run(
|
kalavai_client/bridge_models.py
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
from pydantic import BaseModel
|
2
|
+
from typing import List, Dict, Optional
|
2
3
|
|
3
4
|
from kalavai_client.core import Job, TokenType
|
4
5
|
|
@@ -42,4 +43,11 @@ class DeployJobRequest(BaseModel):
|
|
42
43
|
|
43
44
|
class DeleteJobRequest(BaseModel):
|
44
45
|
name: str
|
45
|
-
force_namespace: str = None
|
46
|
+
force_namespace: str = None
|
47
|
+
|
48
|
+
class NodeLabelsRequest(BaseModel):
|
49
|
+
node_name: str
|
50
|
+
labels: Dict[str, str]
|
51
|
+
|
52
|
+
class GetNodeLabelsRequest(BaseModel):
|
53
|
+
node_names: List[str]
|
kalavai_client/core.py
CHANGED
@@ -550,7 +550,7 @@ def uncordon_nodes(nodes):
|
|
550
550
|
|
551
551
|
def attach_to_pool(token, node_name=None):
|
552
552
|
if node_name is None:
|
553
|
-
node_name =
|
553
|
+
node_name = socket.gethostname()
|
554
554
|
|
555
555
|
# check token
|
556
556
|
valid = check_token(token=token)
|
@@ -651,7 +651,7 @@ def join_pool(token, num_gpus=None, node_name=None, ip_address=None):
|
|
651
651
|
num_gpus = get_max_gpus()
|
652
652
|
|
653
653
|
if node_name is None:
|
654
|
-
node_name =
|
654
|
+
node_name = socket.gethostname()
|
655
655
|
|
656
656
|
# check token
|
657
657
|
valid = check_token(token=token)
|
@@ -743,7 +743,7 @@ def create_pool(
|
|
743
743
|
if pool_config_values is None:
|
744
744
|
pool_config_values = POOL_CONFIG_DEFAULT_VALUES
|
745
745
|
|
746
|
-
node_name =
|
746
|
+
node_name = socket.gethostname()
|
747
747
|
user_id = load_user_id()
|
748
748
|
|
749
749
|
node_labels = {
|
@@ -1058,3 +1058,62 @@ def send_invites(invitees):
|
|
1058
1058
|
user_cookie=USER_COOKIE
|
1059
1059
|
)
|
1060
1060
|
return result
|
1061
|
+
|
1062
|
+
def add_node_labels(node_name: str, labels: dict):
|
1063
|
+
"""
|
1064
|
+
Add labels to a node in the cluster.
|
1065
|
+
|
1066
|
+
Args:
|
1067
|
+
node_name (str): Name of the node to label
|
1068
|
+
labels (dict): Dictionary of labels to add to the node
|
1069
|
+
|
1070
|
+
Returns:
|
1071
|
+
dict: Result of the operation with either success or error message
|
1072
|
+
"""
|
1073
|
+
data = {
|
1074
|
+
"node_name": node_name,
|
1075
|
+
"labels": labels
|
1076
|
+
}
|
1077
|
+
try:
|
1078
|
+
result = request_to_server(
|
1079
|
+
method="post",
|
1080
|
+
endpoint="/v1/add_labels_to_node",
|
1081
|
+
data=data,
|
1082
|
+
server_creds=USER_LOCAL_SERVER_FILE,
|
1083
|
+
user_cookie=USER_COOKIE
|
1084
|
+
)
|
1085
|
+
if "error" in result:
|
1086
|
+
return {"error": result["error"]}
|
1087
|
+
else:
|
1088
|
+
return {"success": result}
|
1089
|
+
|
1090
|
+
except Exception as e:
|
1091
|
+
return {"error": f"Error when adding labels to node {node_name}: {str(e)}"}
|
1092
|
+
|
1093
|
+
def get_node_labels(node_names: list[str]):
|
1094
|
+
"""
|
1095
|
+
Get labels for specified nodes in the cluster.
|
1096
|
+
|
1097
|
+
Args:
|
1098
|
+
node_names (list[str]): List of node names to fetch labels from
|
1099
|
+
|
1100
|
+
Returns:
|
1101
|
+
dict: Result containing the labels for each node or error message
|
1102
|
+
"""
|
1103
|
+
data = {
|
1104
|
+
"node_names": node_names
|
1105
|
+
}
|
1106
|
+
try:
|
1107
|
+
result = request_to_server(
|
1108
|
+
method="post",
|
1109
|
+
endpoint="/v1/get_node_labels",
|
1110
|
+
data=data,
|
1111
|
+
server_creds=USER_LOCAL_SERVER_FILE,
|
1112
|
+
user_cookie=USER_COOKIE
|
1113
|
+
)
|
1114
|
+
if result is not None:
|
1115
|
+
return {"labels": result}
|
1116
|
+
else:
|
1117
|
+
return {"error": "Failed to fetch node labels"}
|
1118
|
+
except Exception as e:
|
1119
|
+
return {"error": f"Error when fetching node labels: {str(e)}"}
|
@@ -1,7 +1,7 @@
|
|
1
|
-
kalavai_client/__init__.py,sha256=
|
1
|
+
kalavai_client/__init__.py,sha256=RnWDr4VWcRjJDXe1q7REqBSUCBo44AvIa_8rGwJtT44,23
|
2
2
|
kalavai_client/__main__.py,sha256=WQUfxvRsBJH5gsCJg8pLz95QnZIj7Ol8psTO77m0QE0,73
|
3
3
|
kalavai_client/assets/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
4
|
-
kalavai_client/assets/apps.yaml,sha256=
|
4
|
+
kalavai_client/assets/apps.yaml,sha256=AhTA3VZI27y05xHoHJCA9nvGnk8sWMhFDruBI2is3LM,6365
|
5
5
|
kalavai_client/assets/apps_values.yaml,sha256=WRew3bS1MztjzcJfphuJcKn0n2T1ICRupPpr_Csjt_s,1644
|
6
6
|
kalavai_client/assets/docker-compose-gui.yaml,sha256=DGCyGYzz1kH6kkMbo62FJHe3F9vcAmA8DOHw-c_o0Kw,752
|
7
7
|
kalavai_client/assets/docker-compose-template.yaml,sha256=Nz_JzeBnQCzPCyWP5cEQHFeZzPwQqqBJ3C_xrToWlMA,1654
|
@@ -11,15 +11,15 @@ kalavai_client/assets/pool_config_values.yaml,sha256=VrM3XHQfQo6QLZ68qvagooUptaY
|
|
11
11
|
kalavai_client/assets/user_workspace.yaml,sha256=wDvlMYknOPABAEo0dsQwU7bac8iubjAG9tdkFbJZ5Go,476
|
12
12
|
kalavai_client/assets/user_workspace_values.yaml,sha256=G0HOzQUxrDMCwuW9kbWUZaKMzDDPVwDwzBHCL2Xi2ZM,542
|
13
13
|
kalavai_client/auth.py,sha256=EB3PMvKUn5_KAQkezkEHEt-OMZXyfkZguIQlUFkEHcA,3243
|
14
|
-
kalavai_client/bridge_api.py,sha256=
|
15
|
-
kalavai_client/bridge_models.py,sha256=
|
14
|
+
kalavai_client/bridge_api.py,sha256=ZLyFOOz_o4agm-7DrHzoSBFrH65y__hZUoEe4diBTOA,7557
|
15
|
+
kalavai_client/bridge_models.py,sha256=GbIaqGFAVs-3ikVUQZldwTTc06SsxmP6iAifH0oVDro,1219
|
16
16
|
kalavai_client/cli.py,sha256=tBn3l12XhOJF17cWeX84xm10HPG7rSzalyOyugzcLhw,46900
|
17
17
|
kalavai_client/cluster.py,sha256=ojUBXp2bR3hVyikIEkiGDbXvQfhBXBSk_mCqLxvyP0c,12943
|
18
|
-
kalavai_client/core.py,sha256=
|
18
|
+
kalavai_client/core.py,sha256=QOzNSxNJZ8tXhUTUPZUEFI3PX8UlVVnONYqVA61NU6U,34268
|
19
19
|
kalavai_client/env.py,sha256=YsfZj7LWf6ABquDsoIFFkXCFYwenpDk8zVnGsf7qv98,2823
|
20
20
|
kalavai_client/utils.py,sha256=EmjWVLjTBILjw87_6ih_v5CbVqihsYHSKxfD-C_Z-es,12276
|
21
|
-
kalavai_client-0.6.
|
22
|
-
kalavai_client-0.6.
|
23
|
-
kalavai_client-0.6.
|
24
|
-
kalavai_client-0.6.
|
25
|
-
kalavai_client-0.6.
|
21
|
+
kalavai_client-0.6.12.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
22
|
+
kalavai_client-0.6.12.dist-info/METADATA,sha256=ShcxZWQofBxd_VVg6LbOGaPiPDrWSix_yLIbhn7MiJ4,13354
|
23
|
+
kalavai_client-0.6.12.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
|
24
|
+
kalavai_client-0.6.12.dist-info/entry_points.txt,sha256=9T6D45gxwzfVbglMm1r6XPdXuuZdHfy_7fCeu2jUphc,50
|
25
|
+
kalavai_client-0.6.12.dist-info/RECORD,,
|
File without changes
|
File without changes
|