yellowdog-sdk 9.3.4__py3-none-any.whl → 9.5.0__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.
- yellowdog_client/_version.py +1 -1
- yellowdog_client/model/namespace_policy_search.py +2 -1
- yellowdog_client/model/namespace_search.py +2 -1
- yellowdog_client/model/node.py +4 -0
- yellowdog_client/model/node_search.py +3 -0
- yellowdog_client/namespaces/namespaces_client.py +44 -1
- yellowdog_client/namespaces/namespaces_client_impl.py +18 -1
- yellowdog_client/namespaces/namespaces_service_proxy.py +19 -1
- {yellowdog_sdk-9.3.4.dist-info → yellowdog_sdk-9.5.0.dist-info}/METADATA +1 -1
- {yellowdog_sdk-9.3.4.dist-info → yellowdog_sdk-9.5.0.dist-info}/RECORD +13 -13
- {yellowdog_sdk-9.3.4.dist-info → yellowdog_sdk-9.5.0.dist-info}/WHEEL +0 -0
- {yellowdog_sdk-9.3.4.dist-info → yellowdog_sdk-9.5.0.dist-info}/licenses/LICENSE +0 -0
- {yellowdog_sdk-9.3.4.dist-info → yellowdog_sdk-9.5.0.dist-info}/top_level.txt +0 -0
yellowdog_client/_version.py
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
__version__ = '9.
|
|
1
|
+
__version__ = '9.5.0' # YEL-13674
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
from dataclasses import dataclass
|
|
2
|
-
from typing import Optional
|
|
2
|
+
from typing import List, Optional
|
|
3
3
|
|
|
4
4
|
from .sort_direction import SortDirection
|
|
5
5
|
|
|
@@ -9,3 +9,4 @@ class NamespacePolicySearch:
|
|
|
9
9
|
sortField: Optional[str] = None
|
|
10
10
|
sortDirection: Optional[SortDirection] = None
|
|
11
11
|
namespace: Optional[str] = None
|
|
12
|
+
namespaces: Optional[List[str]] = None
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
from dataclasses import dataclass
|
|
2
|
-
from typing import Optional
|
|
2
|
+
from typing import List, Optional
|
|
3
3
|
|
|
4
4
|
from .sort_direction import SortDirection
|
|
5
5
|
|
|
@@ -7,6 +7,7 @@ from .sort_direction import SortDirection
|
|
|
7
7
|
@dataclass
|
|
8
8
|
class NamespaceSearch:
|
|
9
9
|
namespace: Optional[str] = None
|
|
10
|
+
namespaces: Optional[List[str]] = None
|
|
10
11
|
deletable: Optional[bool] = None
|
|
11
12
|
sortField: Optional[str] = None
|
|
12
13
|
sortDirection: Optional[SortDirection] = None
|
yellowdog_client/model/node.py
CHANGED
|
@@ -24,6 +24,10 @@ class Node(Identified):
|
|
|
24
24
|
"""The date and time when the status last changed."""
|
|
25
25
|
registeredTime: Optional[datetime] = None
|
|
26
26
|
"""The time when the node was registered."""
|
|
27
|
+
deregisteredTime: Optional[datetime] = None
|
|
28
|
+
"""The time when the node was deregistered."""
|
|
29
|
+
preemptionWarningTime: Optional[datetime] = None
|
|
30
|
+
"""The time when the node notified of preemption."""
|
|
27
31
|
workers: Optional[List[Worker]] = None
|
|
28
32
|
"""The workers on this instance."""
|
|
29
33
|
actionQueueStatus: Optional[NodeActionQueueStatus] = None
|
|
@@ -22,6 +22,9 @@ class NodeSearch:
|
|
|
22
22
|
vcpus: Optional[DoubleRange] = None
|
|
23
23
|
workerClaimCount: Optional[LongRange] = None
|
|
24
24
|
workerRegisteredTime: Optional[InstantRange] = None
|
|
25
|
+
registeredTime: Optional[InstantRange] = None
|
|
26
|
+
deregisteredTime: Optional[InstantRange] = None
|
|
27
|
+
preemptionWarningTime: Optional[InstantRange] = None
|
|
25
28
|
workerTaskGroupId: Optional[str] = None
|
|
26
29
|
workerTag: Optional[str] = None
|
|
27
30
|
workerStatuses: Optional[List[WorkerStatus]] = None
|
|
@@ -3,12 +3,55 @@ from __future__ import annotations
|
|
|
3
3
|
from abc import ABC, abstractmethod
|
|
4
4
|
|
|
5
5
|
from yellowdog_client.common import Closeable, SearchClient
|
|
6
|
-
from yellowdog_client.model import NamespacePolicy, NamespacePolicySearch
|
|
6
|
+
from yellowdog_client.model import CreateNamespaceRequest, Namespace, NamespacePolicy, NamespacePolicySearch, NamespaceSearch
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
class NamespacesClient(ABC, Closeable):
|
|
10
10
|
"""The API interface exposed by the YellowDog Namespaces Service"""
|
|
11
11
|
|
|
12
|
+
@abstractmethod
|
|
13
|
+
def get_namespace(self, namespace_id: str) -> Namespace:
|
|
14
|
+
"""
|
|
15
|
+
Gets the namespace with a matching ID.
|
|
16
|
+
|
|
17
|
+
:param namespace_id: the namespace ID
|
|
18
|
+
:return: the namespace
|
|
19
|
+
"""
|
|
20
|
+
|
|
21
|
+
pass
|
|
22
|
+
|
|
23
|
+
@abstractmethod
|
|
24
|
+
def get_namespaces(self, search: NamespaceSearch) -> SearchClient[Namespace]:
|
|
25
|
+
"""
|
|
26
|
+
Returns a search client for namespaces that match the NamespaceSearch parameter.
|
|
27
|
+
|
|
28
|
+
:param search: the search object to filter and sort results
|
|
29
|
+
:return: a search client for matching namespaces
|
|
30
|
+
"""
|
|
31
|
+
|
|
32
|
+
pass
|
|
33
|
+
|
|
34
|
+
@abstractmethod
|
|
35
|
+
def create_namespace(self, request: CreateNamespaceRequest) -> str:
|
|
36
|
+
"""
|
|
37
|
+
Creates a namespace.
|
|
38
|
+
|
|
39
|
+
:param request: the request containing the data to create the namespace
|
|
40
|
+
:return: the namespace ID
|
|
41
|
+
"""
|
|
42
|
+
|
|
43
|
+
pass
|
|
44
|
+
|
|
45
|
+
@abstractmethod
|
|
46
|
+
def delete_namespace(self, namespace_id: str) -> None:
|
|
47
|
+
"""
|
|
48
|
+
Deletes a namespace.
|
|
49
|
+
|
|
50
|
+
:param namespace_id: the ID of the namespace to delete
|
|
51
|
+
"""
|
|
52
|
+
|
|
53
|
+
pass
|
|
54
|
+
|
|
12
55
|
@abstractmethod
|
|
13
56
|
def save_namespace_policy(self, namespace_policy: NamespacePolicy) -> None:
|
|
14
57
|
"""
|
|
@@ -3,13 +3,30 @@ from typing import Callable
|
|
|
3
3
|
from .namespaces_client import NamespacesClient
|
|
4
4
|
from .namespaces_service_proxy import NamespacesServiceProxy
|
|
5
5
|
from yellowdog_client.common import SearchClient
|
|
6
|
-
from yellowdog_client.model import NamespacePolicy, NamespacePolicySearch, Slice, SliceReference
|
|
6
|
+
from yellowdog_client.model import NamespacePolicy, NamespacePolicySearch, Slice, SliceReference, \
|
|
7
|
+
CreateNamespaceRequest, Namespace, NamespaceSearch
|
|
7
8
|
|
|
8
9
|
|
|
9
10
|
class NamespacesClientImpl(NamespacesClient):
|
|
10
11
|
def __init__(self, service_proxy: NamespacesServiceProxy) -> None:
|
|
11
12
|
self.__service_proxy = service_proxy
|
|
12
13
|
|
|
14
|
+
def get_namespace(self, namespace_id: str) -> Namespace:
|
|
15
|
+
return self.__service_proxy.get_namespace(namespace_id)
|
|
16
|
+
|
|
17
|
+
def get_namespaces(self, search: NamespaceSearch) -> SearchClient[Namespace]:
|
|
18
|
+
get_next_slice_function: Callable[[SliceReference], Slice[Namespace]] = \
|
|
19
|
+
lambda slice_reference: self.__service_proxy.search_namespaces(search, slice_reference)
|
|
20
|
+
|
|
21
|
+
return SearchClient(get_next_slice_function)
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
def create_namespace(self, request: CreateNamespaceRequest) -> str:
|
|
25
|
+
return self.__service_proxy.create_namespace(request)
|
|
26
|
+
|
|
27
|
+
def delete_namespace(self, namespace_id: str):
|
|
28
|
+
self.__service_proxy.delete_namespace(namespace_id)
|
|
29
|
+
|
|
13
30
|
def save_namespace_policy(self, namespace_policy: NamespacePolicy) -> None:
|
|
14
31
|
self.__service_proxy.save_namespace_policy(namespace_policy)
|
|
15
32
|
|
|
@@ -1,11 +1,29 @@
|
|
|
1
1
|
from yellowdog_client.common import Proxy
|
|
2
|
-
from yellowdog_client.
|
|
2
|
+
from yellowdog_client.common.json import Json
|
|
3
|
+
from yellowdog_client.model import NamespacePolicy, NamespacePolicySearch, SliceReference, Slice, \
|
|
4
|
+
CreateNamespaceRequest, Namespace, NamespaceSearch
|
|
3
5
|
|
|
4
6
|
|
|
5
7
|
class NamespacesServiceProxy:
|
|
6
8
|
def __init__(self, proxy: Proxy) -> None:
|
|
7
9
|
self._proxy: Proxy = proxy.append_base_url("/namespaces/")
|
|
8
10
|
|
|
11
|
+
def get_namespace(self, namespace_id: str) -> Namespace:
|
|
12
|
+
return self._proxy.get(return_type=Namespace, url=namespace_id)
|
|
13
|
+
|
|
14
|
+
def search_namespaces(
|
|
15
|
+
self,
|
|
16
|
+
search: NamespaceSearch,
|
|
17
|
+
slice_reference: SliceReference
|
|
18
|
+
) -> Slice[Namespace]:
|
|
19
|
+
return self._proxy.get(return_type=Slice[Namespace], params=self._proxy.to_params(search, slice_reference))
|
|
20
|
+
|
|
21
|
+
def create_namespace(self, request: CreateNamespaceRequest) -> str:
|
|
22
|
+
return self._proxy.raw_execute(method='POST', json=Json.dump(request)).text
|
|
23
|
+
|
|
24
|
+
def delete_namespace(self, namespace_id: str):
|
|
25
|
+
return self._proxy.delete(url=f"/{namespace_id}")
|
|
26
|
+
|
|
9
27
|
def save_namespace_policy(self, namespace_policy: NamespacePolicy) -> None:
|
|
10
28
|
return self._proxy.put(url=f"{namespace_policy.namespace}/policy", data=namespace_policy)
|
|
11
29
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
2
2
|
yellowdog_client/__init__.py,sha256=xHGTw5UbjkeEl_hC8_gJCacfji6462qJWD1nvJdFssE,13162
|
|
3
|
-
yellowdog_client/_version.py,sha256=
|
|
3
|
+
yellowdog_client/_version.py,sha256=KOrXGVqNLM-qQVLLWjJIn0D075G0KGTmWmvBn--LfNk,34
|
|
4
4
|
yellowdog_client/client_collection.py,sha256=VSEzjf6iR1qCQ0YGLyDq_Kgvw8r832QDwTp6-MLB4Vs,388
|
|
5
5
|
yellowdog_client/platform_client.py,sha256=yCzKsOQKllnfzwP9bG-JGtvOdvY7EaEQzFsgX3ERzVY,7476
|
|
6
6
|
yellowdog_client/account/__init__.py,sha256=DiLL3uSMyVlAKWsncX0k5Ioc2hw87HQoEkSYO0ro0fg,456
|
|
@@ -241,11 +241,11 @@ yellowdog_client/model/namespace.py,sha256=wMAxOBoDKCKC_SyVFfBEH6ro817qr1qfrDZ6Y
|
|
|
241
241
|
yellowdog_client/model/namespace_autoscaling_capacity_response.py,sha256=p1Z0OUYmAvEIVo2KrzkFQGFAruF-1YyIBiR1nSGns94,233
|
|
242
242
|
yellowdog_client/model/namespace_objects_response.py,sha256=icPFUDS5AaTGd0eJK1uRKt4cBHNE-TDFQVRIuH_ykh4,189
|
|
243
243
|
yellowdog_client/model/namespace_policy.py,sha256=90j_9G5xjMRLzdfjq3BeDOyxOiCECrRRvVoRkx2CEAU,163
|
|
244
|
-
yellowdog_client/model/namespace_policy_search.py,sha256=
|
|
245
|
-
yellowdog_client/model/namespace_search.py,sha256=
|
|
244
|
+
yellowdog_client/model/namespace_policy_search.py,sha256=6RFeLBTccVMKzINijN3tuXEYulHPYkdb2-JSXRZOE2A,318
|
|
245
|
+
yellowdog_client/model/namespace_search.py,sha256=aMv44U_Op74dItLv5q1YwMqQF_IKd5S7YWFogAbSWGY,349
|
|
246
246
|
yellowdog_client/model/namespace_storage_configuration.py,sha256=6JSDmRbrsWhJqOeqz3skdR8t2hlP40kvPoW0CV4hYbc,139
|
|
247
247
|
yellowdog_client/model/new_password_request.py,sha256=7zJkK_3GJde6QQidaxFaj49DKIQg52FTJrbmgdfTxrE,91
|
|
248
|
-
yellowdog_client/model/node.py,sha256=
|
|
248
|
+
yellowdog_client/model/node.py,sha256=h4s6yYKER8HLigv0swJt5ejptNzcIbEtRIesAb4O1c8,1347
|
|
249
249
|
yellowdog_client/model/node_action.py,sha256=4NTsvuwlIVC5Fd-VQ9dg0no-93UTyhcaKAG_CG7dV3g,122
|
|
250
250
|
yellowdog_client/model/node_action_group.py,sha256=hLKSy9MrLWvJrVgdiqT9jXy-3vTAeAMYiw8zNUvmeQM,161
|
|
251
251
|
yellowdog_client/model/node_action_queue_snapshot.py,sha256=PcY8jVyKM93GGkSyGyTlDw-YzgH4OV54SHfmHfI9-pc,467
|
|
@@ -255,7 +255,7 @@ yellowdog_client/model/node_details.py,sha256=lfzGHPQaf64kyrEQA84w_iHoiSnN9ySK1R
|
|
|
255
255
|
yellowdog_client/model/node_event.py,sha256=AssuGpCASFE1utM3cyWyjMPNTgQ20L9Q-aBo0EGceNA,591
|
|
256
256
|
yellowdog_client/model/node_id_filter.py,sha256=jQushAfXGtvUEzRfr_1iUZQeyD4eFC6oJk7ZhAYIoXo,144
|
|
257
257
|
yellowdog_client/model/node_run_command_action.py,sha256=joUk0g13ZKdsLTxnpyIpDNfiwwTBJdMpfU8uckJJhI0,466
|
|
258
|
-
yellowdog_client/model/node_search.py,sha256=
|
|
258
|
+
yellowdog_client/model/node_search.py,sha256=sUAATgd_2FqtQvJ44WCv41mTD41ADE993DGn19ZoUdg,1184
|
|
259
259
|
yellowdog_client/model/node_slot_numbering.py,sha256=qKA4nXwu1iv58rdqaIr9sJhDh_KL1XjaHMexBWUWuek,137
|
|
260
260
|
yellowdog_client/model/node_status.py,sha256=O5ZOl6bI7cpvPYgAamvdyfxZTBIcWqmdVerwxMV9p0c,831
|
|
261
261
|
yellowdog_client/model/node_summary.py,sha256=u5X27f0MxyJb6e24Czb0f7aMkLDUlHdtglQdyB6x214,604
|
|
@@ -392,9 +392,9 @@ yellowdog_client/model/exceptions/session_close_exception.py,sha256=MyR8SUNioWh_
|
|
|
392
392
|
yellowdog_client/model/exceptions/session_not_found_exception.py,sha256=2afDI5Ff00sYRJ2ZIr7ynq6DoA0xZda0_YboISc8ujU,286
|
|
393
393
|
yellowdog_client/model/exceptions/unknown_exception.py,sha256=RhLAommtxskrJO14-zCyltzVtaSh9rYxFJ8byrK1GUk,261
|
|
394
394
|
yellowdog_client/namespaces/__init__.py,sha256=lgPlMSE_AU6ea6Zt15q2zyLWkIiFl0CEXeNd_UI3KPY,263
|
|
395
|
-
yellowdog_client/namespaces/namespaces_client.py,sha256=
|
|
396
|
-
yellowdog_client/namespaces/namespaces_client_impl.py,sha256=
|
|
397
|
-
yellowdog_client/namespaces/namespaces_service_proxy.py,sha256=
|
|
395
|
+
yellowdog_client/namespaces/namespaces_client.py,sha256=9O1K0ON8sYnOdgRuSVlp1xqYAmd9qs0AxtgWHK4xB8A,2580
|
|
396
|
+
yellowdog_client/namespaces/namespaces_client_impl.py,sha256=1liR-XVg9EyCZTOto3OQAQxAnGkKGGFFZa5ghgEwwyE,2010
|
|
397
|
+
yellowdog_client/namespaces/namespaces_service_proxy.py,sha256=IYoCGc9XmWTr5YAcDt_vFI1DToSsIB6T7L7Izb2Qzuc,1781
|
|
398
398
|
yellowdog_client/object_store/__init__.py,sha256=qAthNBl1jEziG7MK3o2VbLO1Rb4AUW5Q17eLW5DIlTU,272
|
|
399
399
|
yellowdog_client/object_store/object_store_client.py,sha256=mhPmCXsMP5x1coiDic17KniJ5lV7Zg_5nhOSj1ZLibo,16361
|
|
400
400
|
yellowdog_client/object_store/object_store_service_proxy.py,sha256=izoxh0ij9jlmkx4lmc2Sqg4Bj0nPvB14FNFwVhn8iZw,6273
|
|
@@ -468,8 +468,8 @@ yellowdog_client/usage/__init__.py,sha256=XQwRJqTdxKZa1QUTsxBEL0TqQJeQHGyPklFeqc
|
|
|
468
468
|
yellowdog_client/usage/allowances_client.py,sha256=H6n63jXjT4OwuWJgFUXSjSmvGTZz9uspy3kj3upinaA,1337
|
|
469
469
|
yellowdog_client/usage/allowances_client_impl.py,sha256=nQPnSzJKhL3WvyCn5fmiDkwE84xZryH9YvV5Z1GjU4M,2061
|
|
470
470
|
yellowdog_client/usage/allowances_service_proxy.py,sha256=uO6LWnpjIzUcZTGdOxPXn7SyYX7NMRqO5KUiHUGr490,1320
|
|
471
|
-
yellowdog_sdk-9.
|
|
472
|
-
yellowdog_sdk-9.
|
|
473
|
-
yellowdog_sdk-9.
|
|
474
|
-
yellowdog_sdk-9.
|
|
475
|
-
yellowdog_sdk-9.
|
|
471
|
+
yellowdog_sdk-9.5.0.dist-info/licenses/LICENSE,sha256=QwcOLU5TJoTeUhuIXzhdCEEDDvorGiC6-3YTOl4TecE,11356
|
|
472
|
+
yellowdog_sdk-9.5.0.dist-info/METADATA,sha256=KjIaWiwVtFqySGS_IESaGX2yI-GrOmyqCgBaK7f8AH0,3238
|
|
473
|
+
yellowdog_sdk-9.5.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
474
|
+
yellowdog_sdk-9.5.0.dist-info/top_level.txt,sha256=6PH16DcoqpYHhQ5A0UJOjf0tg-1rTrNC9C2CLqCMuFo,26
|
|
475
|
+
yellowdog_sdk-9.5.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|