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.
@@ -1,2 +1,2 @@
1
1
 
2
- __version__ = "0.6.10"
2
+ __version__ = "0.6.12"
@@ -152,7 +152,7 @@ releases:
152
152
  - name: replicas
153
153
  value: 1
154
154
  - name: image_tag
155
- value: "v2025.04.2"
155
+ value: "v2025.05.2"
156
156
  - name: deployment.in_cluster
157
157
  value: "True"
158
158
  - name: deployment.kalavai_username_key
@@ -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(
@@ -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 = f"{socket.gethostname()}-{uuid.uuid4().hex[:6]}"
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 = f"{socket.gethostname()}-{uuid.uuid4().hex[:6]}"
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 = f"{socket.gethostname()}-{uuid.uuid4().hex[:6]}"
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,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: kalavai-client
3
- Version: 0.6.10
3
+ Version: 0.6.12
4
4
  Summary: Client app for kalavai platform
5
5
  License: Apache-2.0
6
6
  Keywords: LLM,platform
@@ -1,7 +1,7 @@
1
- kalavai_client/__init__.py,sha256=vHDA_1Wsc8bqniOeYrKHuU5fuCZ_w3-plFaYRacXd4Q,23
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=Wu2Pk3k4I_S3r_rW9bNDWMWIm5gzNpmz0K6agNH3YMg,6365
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=KecIZvsGRiZgUQaDSgvRBLaqPDBhxFKS6FBH_w5ArCc,7015
15
- kalavai_client/bridge_models.py,sha256=IGPLAYEZG4f5EUtBuoR2u_cYoyCCVkhx4H2rMeGuJ_Y,1030
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=bi8r7Twh2aQEDNn1shySlwx4704KG1pDmgMSSkzA1qk,32641
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.10.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
22
- kalavai_client-0.6.10.dist-info/METADATA,sha256=sRmVhRkTkXpWaY0UUJHGclAOZPdjX97GG9VkXI1wXFg,13354
23
- kalavai_client-0.6.10.dist-info/WHEEL,sha256=fGIA9gx4Qxk2KDKeNJCbOEwSrmLtjWCwzBz351GyrPQ,88
24
- kalavai_client-0.6.10.dist-info/entry_points.txt,sha256=9T6D45gxwzfVbglMm1r6XPdXuuZdHfy_7fCeu2jUphc,50
25
- kalavai_client-0.6.10.dist-info/RECORD,,
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,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: poetry-core 2.1.2
2
+ Generator: poetry-core 2.1.3
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any