anyscale 0.26.0__py3-none-any.whl → 0.26.2__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.
- anyscale/_private/anyscale_client/anyscale_client.py +13 -1
- anyscale/_private/anyscale_client/common.py +1 -1
- anyscale/_private/docgen/models.md +2 -2
- anyscale/client/README.md +21 -10
- anyscale/client/openapi_client/__init__.py +15 -6
- anyscale/client/openapi_client/api/default_api.py +322 -83
- anyscale/client/openapi_client/models/__init__.py +15 -6
- anyscale/client/openapi_client/models/{customer_billing_type.py → actor_status.py} +7 -8
- anyscale/client/openapi_client/models/aggregated_instance_usage_csv.py +81 -3
- anyscale/client/openapi_client/models/baseimagesenum.py +59 -1
- anyscale/client/openapi_client/models/create_organization_configuration.py +3 -3
- anyscale/client/openapi_client/models/{create_resource_alert.py → create_resource_notification.py} +40 -40
- anyscale/client/openapi_client/models/job_details.py +173 -0
- anyscale/client/openapi_client/models/{list_resource_alerts_query.py → list_resource_notifications_query.py} +24 -24
- anyscale/client/openapi_client/models/machine_launch_failure.py +152 -0
- anyscale/client/openapi_client/models/organization_configuration.py +3 -3
- anyscale/client/openapi_client/models/organization_configuration_response.py +3 -3
- anyscale/client/openapi_client/models/resource_alert_event_type.py +5 -1
- anyscale/client/openapi_client/models/{resource_alert.py → resource_notification.py} +64 -64
- anyscale/client/openapi_client/models/resourcenotification_list_response.py +147 -0
- anyscale/client/openapi_client/models/{resourcealert_response.py → resourcenotification_response.py} +11 -11
- anyscale/client/openapi_client/models/run_attempt_status.py +103 -0
- anyscale/client/openapi_client/models/run_status.py +106 -0
- anyscale/client/openapi_client/models/scheduler_info.py +32 -3
- anyscale/client/openapi_client/models/supportedbaseimagesenum.py +59 -1
- anyscale/client/openapi_client/models/tool.py +2 -1
- anyscale/client/openapi_client/models/train_resources.py +121 -0
- anyscale/client/openapi_client/models/train_run.py +387 -0
- anyscale/client/openapi_client/models/train_run_attempt.py +308 -0
- anyscale/client/openapi_client/models/train_worker.py +363 -0
- anyscale/client/openapi_client/models/{resourcealert_list_response.py → trainrun_list_response.py} +15 -15
- anyscale/client/openapi_client/models/workspace_dataplane_proxied_artifacts.py +31 -3
- anyscale/commands/machine_pool_commands.py +15 -10
- anyscale/resource_quota/commands.py +1 -2
- anyscale/sdk/anyscale_client/models/baseimagesenum.py +59 -1
- anyscale/sdk/anyscale_client/models/supportedbaseimagesenum.py +59 -1
- anyscale/service/_private/service_sdk.py +2 -3
- anyscale/shared_anyscale_utils/constants.py +3 -0
- anyscale/shared_anyscale_utils/latest_ray_version.py +1 -1
- anyscale/version.py +1 -1
- {anyscale-0.26.0.dist-info → anyscale-0.26.2.dist-info}/METADATA +1 -1
- {anyscale-0.26.0.dist-info → anyscale-0.26.2.dist-info}/RECORD +47 -37
- {anyscale-0.26.0.dist-info → anyscale-0.26.2.dist-info}/LICENSE +0 -0
- {anyscale-0.26.0.dist-info → anyscale-0.26.2.dist-info}/NOTICE +0 -0
- {anyscale-0.26.0.dist-info → anyscale-0.26.2.dist-info}/WHEEL +0 -0
- {anyscale-0.26.0.dist-info → anyscale-0.26.2.dist-info}/entry_points.txt +0 -0
- {anyscale-0.26.0.dist-info → anyscale-0.26.2.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,363 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
|
3
|
+
"""
|
4
|
+
Managed Ray API
|
5
|
+
|
6
|
+
No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
|
7
|
+
|
8
|
+
The version of the OpenAPI document: 0.1.0
|
9
|
+
Generated by: https://openapi-generator.tech
|
10
|
+
"""
|
11
|
+
|
12
|
+
|
13
|
+
import pprint
|
14
|
+
import re # noqa: F401
|
15
|
+
|
16
|
+
import six
|
17
|
+
|
18
|
+
from openapi_client.configuration import Configuration
|
19
|
+
|
20
|
+
|
21
|
+
class TrainWorker(object):
|
22
|
+
"""NOTE: This class is auto generated by OpenAPI Generator.
|
23
|
+
Ref: https://openapi-generator.tech
|
24
|
+
|
25
|
+
Do not edit the class manually.
|
26
|
+
"""
|
27
|
+
|
28
|
+
"""
|
29
|
+
Attributes:
|
30
|
+
openapi_types (dict): The key is attribute name
|
31
|
+
and the value is attribute type.
|
32
|
+
attribute_map (dict): The key is attribute name
|
33
|
+
and the value is json key in definition.
|
34
|
+
"""
|
35
|
+
openapi_types = {
|
36
|
+
'actor_id': 'str',
|
37
|
+
'world_rank': 'int',
|
38
|
+
'local_rank': 'int',
|
39
|
+
'node_rank': 'int',
|
40
|
+
'node_id': 'str',
|
41
|
+
'node_ip': 'str',
|
42
|
+
'pid': 'int',
|
43
|
+
'gpu_ids': 'list[int]',
|
44
|
+
'status': 'ActorStatus',
|
45
|
+
'resources': 'TrainResources'
|
46
|
+
}
|
47
|
+
|
48
|
+
attribute_map = {
|
49
|
+
'actor_id': 'actor_id',
|
50
|
+
'world_rank': 'world_rank',
|
51
|
+
'local_rank': 'local_rank',
|
52
|
+
'node_rank': 'node_rank',
|
53
|
+
'node_id': 'node_id',
|
54
|
+
'node_ip': 'node_ip',
|
55
|
+
'pid': 'pid',
|
56
|
+
'gpu_ids': 'gpu_ids',
|
57
|
+
'status': 'status',
|
58
|
+
'resources': 'resources'
|
59
|
+
}
|
60
|
+
|
61
|
+
def __init__(self, actor_id=None, world_rank=None, local_rank=None, node_rank=None, node_id=None, node_ip=None, pid=None, gpu_ids=None, status=None, resources=None, local_vars_configuration=None): # noqa: E501
|
62
|
+
"""TrainWorker - a model defined in OpenAPI""" # noqa: E501
|
63
|
+
if local_vars_configuration is None:
|
64
|
+
local_vars_configuration = Configuration()
|
65
|
+
self.local_vars_configuration = local_vars_configuration
|
66
|
+
|
67
|
+
self._actor_id = None
|
68
|
+
self._world_rank = None
|
69
|
+
self._local_rank = None
|
70
|
+
self._node_rank = None
|
71
|
+
self._node_id = None
|
72
|
+
self._node_ip = None
|
73
|
+
self._pid = None
|
74
|
+
self._gpu_ids = None
|
75
|
+
self._status = None
|
76
|
+
self._resources = None
|
77
|
+
self.discriminator = None
|
78
|
+
|
79
|
+
self.actor_id = actor_id
|
80
|
+
self.world_rank = world_rank
|
81
|
+
self.local_rank = local_rank
|
82
|
+
self.node_rank = node_rank
|
83
|
+
self.node_id = node_id
|
84
|
+
self.node_ip = node_ip
|
85
|
+
self.pid = pid
|
86
|
+
self.gpu_ids = gpu_ids
|
87
|
+
self.status = status
|
88
|
+
if resources is not None:
|
89
|
+
self.resources = resources
|
90
|
+
|
91
|
+
@property
|
92
|
+
def actor_id(self):
|
93
|
+
"""Gets the actor_id of this TrainWorker. # noqa: E501
|
94
|
+
|
95
|
+
|
96
|
+
:return: The actor_id of this TrainWorker. # noqa: E501
|
97
|
+
:rtype: str
|
98
|
+
"""
|
99
|
+
return self._actor_id
|
100
|
+
|
101
|
+
@actor_id.setter
|
102
|
+
def actor_id(self, actor_id):
|
103
|
+
"""Sets the actor_id of this TrainWorker.
|
104
|
+
|
105
|
+
|
106
|
+
:param actor_id: The actor_id of this TrainWorker. # noqa: E501
|
107
|
+
:type: str
|
108
|
+
"""
|
109
|
+
if self.local_vars_configuration.client_side_validation and actor_id is None: # noqa: E501
|
110
|
+
raise ValueError("Invalid value for `actor_id`, must not be `None`") # noqa: E501
|
111
|
+
|
112
|
+
self._actor_id = actor_id
|
113
|
+
|
114
|
+
@property
|
115
|
+
def world_rank(self):
|
116
|
+
"""Gets the world_rank of this TrainWorker. # noqa: E501
|
117
|
+
|
118
|
+
|
119
|
+
:return: The world_rank of this TrainWorker. # noqa: E501
|
120
|
+
:rtype: int
|
121
|
+
"""
|
122
|
+
return self._world_rank
|
123
|
+
|
124
|
+
@world_rank.setter
|
125
|
+
def world_rank(self, world_rank):
|
126
|
+
"""Sets the world_rank of this TrainWorker.
|
127
|
+
|
128
|
+
|
129
|
+
:param world_rank: The world_rank of this TrainWorker. # noqa: E501
|
130
|
+
:type: int
|
131
|
+
"""
|
132
|
+
if self.local_vars_configuration.client_side_validation and world_rank is None: # noqa: E501
|
133
|
+
raise ValueError("Invalid value for `world_rank`, must not be `None`") # noqa: E501
|
134
|
+
|
135
|
+
self._world_rank = world_rank
|
136
|
+
|
137
|
+
@property
|
138
|
+
def local_rank(self):
|
139
|
+
"""Gets the local_rank of this TrainWorker. # noqa: E501
|
140
|
+
|
141
|
+
|
142
|
+
:return: The local_rank of this TrainWorker. # noqa: E501
|
143
|
+
:rtype: int
|
144
|
+
"""
|
145
|
+
return self._local_rank
|
146
|
+
|
147
|
+
@local_rank.setter
|
148
|
+
def local_rank(self, local_rank):
|
149
|
+
"""Sets the local_rank of this TrainWorker.
|
150
|
+
|
151
|
+
|
152
|
+
:param local_rank: The local_rank of this TrainWorker. # noqa: E501
|
153
|
+
:type: int
|
154
|
+
"""
|
155
|
+
if self.local_vars_configuration.client_side_validation and local_rank is None: # noqa: E501
|
156
|
+
raise ValueError("Invalid value for `local_rank`, must not be `None`") # noqa: E501
|
157
|
+
|
158
|
+
self._local_rank = local_rank
|
159
|
+
|
160
|
+
@property
|
161
|
+
def node_rank(self):
|
162
|
+
"""Gets the node_rank of this TrainWorker. # noqa: E501
|
163
|
+
|
164
|
+
|
165
|
+
:return: The node_rank of this TrainWorker. # noqa: E501
|
166
|
+
:rtype: int
|
167
|
+
"""
|
168
|
+
return self._node_rank
|
169
|
+
|
170
|
+
@node_rank.setter
|
171
|
+
def node_rank(self, node_rank):
|
172
|
+
"""Sets the node_rank of this TrainWorker.
|
173
|
+
|
174
|
+
|
175
|
+
:param node_rank: The node_rank of this TrainWorker. # noqa: E501
|
176
|
+
:type: int
|
177
|
+
"""
|
178
|
+
if self.local_vars_configuration.client_side_validation and node_rank is None: # noqa: E501
|
179
|
+
raise ValueError("Invalid value for `node_rank`, must not be `None`") # noqa: E501
|
180
|
+
|
181
|
+
self._node_rank = node_rank
|
182
|
+
|
183
|
+
@property
|
184
|
+
def node_id(self):
|
185
|
+
"""Gets the node_id of this TrainWorker. # noqa: E501
|
186
|
+
|
187
|
+
|
188
|
+
:return: The node_id of this TrainWorker. # noqa: E501
|
189
|
+
:rtype: str
|
190
|
+
"""
|
191
|
+
return self._node_id
|
192
|
+
|
193
|
+
@node_id.setter
|
194
|
+
def node_id(self, node_id):
|
195
|
+
"""Sets the node_id of this TrainWorker.
|
196
|
+
|
197
|
+
|
198
|
+
:param node_id: The node_id of this TrainWorker. # noqa: E501
|
199
|
+
:type: str
|
200
|
+
"""
|
201
|
+
if self.local_vars_configuration.client_side_validation and node_id is None: # noqa: E501
|
202
|
+
raise ValueError("Invalid value for `node_id`, must not be `None`") # noqa: E501
|
203
|
+
|
204
|
+
self._node_id = node_id
|
205
|
+
|
206
|
+
@property
|
207
|
+
def node_ip(self):
|
208
|
+
"""Gets the node_ip of this TrainWorker. # noqa: E501
|
209
|
+
|
210
|
+
|
211
|
+
:return: The node_ip of this TrainWorker. # noqa: E501
|
212
|
+
:rtype: str
|
213
|
+
"""
|
214
|
+
return self._node_ip
|
215
|
+
|
216
|
+
@node_ip.setter
|
217
|
+
def node_ip(self, node_ip):
|
218
|
+
"""Sets the node_ip of this TrainWorker.
|
219
|
+
|
220
|
+
|
221
|
+
:param node_ip: The node_ip of this TrainWorker. # noqa: E501
|
222
|
+
:type: str
|
223
|
+
"""
|
224
|
+
if self.local_vars_configuration.client_side_validation and node_ip is None: # noqa: E501
|
225
|
+
raise ValueError("Invalid value for `node_ip`, must not be `None`") # noqa: E501
|
226
|
+
|
227
|
+
self._node_ip = node_ip
|
228
|
+
|
229
|
+
@property
|
230
|
+
def pid(self):
|
231
|
+
"""Gets the pid of this TrainWorker. # noqa: E501
|
232
|
+
|
233
|
+
|
234
|
+
:return: The pid of this TrainWorker. # noqa: E501
|
235
|
+
:rtype: int
|
236
|
+
"""
|
237
|
+
return self._pid
|
238
|
+
|
239
|
+
@pid.setter
|
240
|
+
def pid(self, pid):
|
241
|
+
"""Sets the pid of this TrainWorker.
|
242
|
+
|
243
|
+
|
244
|
+
:param pid: The pid of this TrainWorker. # noqa: E501
|
245
|
+
:type: int
|
246
|
+
"""
|
247
|
+
if self.local_vars_configuration.client_side_validation and pid is None: # noqa: E501
|
248
|
+
raise ValueError("Invalid value for `pid`, must not be `None`") # noqa: E501
|
249
|
+
|
250
|
+
self._pid = pid
|
251
|
+
|
252
|
+
@property
|
253
|
+
def gpu_ids(self):
|
254
|
+
"""Gets the gpu_ids of this TrainWorker. # noqa: E501
|
255
|
+
|
256
|
+
|
257
|
+
:return: The gpu_ids of this TrainWorker. # noqa: E501
|
258
|
+
:rtype: list[int]
|
259
|
+
"""
|
260
|
+
return self._gpu_ids
|
261
|
+
|
262
|
+
@gpu_ids.setter
|
263
|
+
def gpu_ids(self, gpu_ids):
|
264
|
+
"""Sets the gpu_ids of this TrainWorker.
|
265
|
+
|
266
|
+
|
267
|
+
:param gpu_ids: The gpu_ids of this TrainWorker. # noqa: E501
|
268
|
+
:type: list[int]
|
269
|
+
"""
|
270
|
+
if self.local_vars_configuration.client_side_validation and gpu_ids is None: # noqa: E501
|
271
|
+
raise ValueError("Invalid value for `gpu_ids`, must not be `None`") # noqa: E501
|
272
|
+
|
273
|
+
self._gpu_ids = gpu_ids
|
274
|
+
|
275
|
+
@property
|
276
|
+
def status(self):
|
277
|
+
"""Gets the status of this TrainWorker. # noqa: E501
|
278
|
+
|
279
|
+
|
280
|
+
:return: The status of this TrainWorker. # noqa: E501
|
281
|
+
:rtype: ActorStatus
|
282
|
+
"""
|
283
|
+
return self._status
|
284
|
+
|
285
|
+
@status.setter
|
286
|
+
def status(self, status):
|
287
|
+
"""Sets the status of this TrainWorker.
|
288
|
+
|
289
|
+
|
290
|
+
:param status: The status of this TrainWorker. # noqa: E501
|
291
|
+
:type: ActorStatus
|
292
|
+
"""
|
293
|
+
if self.local_vars_configuration.client_side_validation and status is None: # noqa: E501
|
294
|
+
raise ValueError("Invalid value for `status`, must not be `None`") # noqa: E501
|
295
|
+
|
296
|
+
self._status = status
|
297
|
+
|
298
|
+
@property
|
299
|
+
def resources(self):
|
300
|
+
"""Gets the resources of this TrainWorker. # noqa: E501
|
301
|
+
|
302
|
+
|
303
|
+
:return: The resources of this TrainWorker. # noqa: E501
|
304
|
+
:rtype: TrainResources
|
305
|
+
"""
|
306
|
+
return self._resources
|
307
|
+
|
308
|
+
@resources.setter
|
309
|
+
def resources(self, resources):
|
310
|
+
"""Sets the resources of this TrainWorker.
|
311
|
+
|
312
|
+
|
313
|
+
:param resources: The resources of this TrainWorker. # noqa: E501
|
314
|
+
:type: TrainResources
|
315
|
+
"""
|
316
|
+
|
317
|
+
self._resources = resources
|
318
|
+
|
319
|
+
def to_dict(self):
|
320
|
+
"""Returns the model properties as a dict"""
|
321
|
+
result = {}
|
322
|
+
|
323
|
+
for attr, _ in six.iteritems(self.openapi_types):
|
324
|
+
value = getattr(self, attr)
|
325
|
+
if isinstance(value, list):
|
326
|
+
result[attr] = list(map(
|
327
|
+
lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
|
328
|
+
value
|
329
|
+
))
|
330
|
+
elif hasattr(value, "to_dict"):
|
331
|
+
result[attr] = value.to_dict()
|
332
|
+
elif isinstance(value, dict):
|
333
|
+
result[attr] = dict(map(
|
334
|
+
lambda item: (item[0], item[1].to_dict())
|
335
|
+
if hasattr(item[1], "to_dict") else item,
|
336
|
+
value.items()
|
337
|
+
))
|
338
|
+
else:
|
339
|
+
result[attr] = value
|
340
|
+
|
341
|
+
return result
|
342
|
+
|
343
|
+
def to_str(self):
|
344
|
+
"""Returns the string representation of the model"""
|
345
|
+
return pprint.pformat(self.to_dict())
|
346
|
+
|
347
|
+
def __repr__(self):
|
348
|
+
"""For `print` and `pprint`"""
|
349
|
+
return self.to_str()
|
350
|
+
|
351
|
+
def __eq__(self, other):
|
352
|
+
"""Returns true if both objects are equal"""
|
353
|
+
if not isinstance(other, TrainWorker):
|
354
|
+
return False
|
355
|
+
|
356
|
+
return self.to_dict() == other.to_dict()
|
357
|
+
|
358
|
+
def __ne__(self, other):
|
359
|
+
"""Returns true if both objects are not equal"""
|
360
|
+
if not isinstance(other, TrainWorker):
|
361
|
+
return True
|
362
|
+
|
363
|
+
return self.to_dict() != other.to_dict()
|
anyscale/client/openapi_client/models/{resourcealert_list_response.py → trainrun_list_response.py}
RENAMED
@@ -18,7 +18,7 @@ import six
|
|
18
18
|
from openapi_client.configuration import Configuration
|
19
19
|
|
20
20
|
|
21
|
-
class
|
21
|
+
class TrainrunListResponse(object):
|
22
22
|
"""NOTE: This class is auto generated by OpenAPI Generator.
|
23
23
|
Ref: https://openapi-generator.tech
|
24
24
|
|
@@ -33,7 +33,7 @@ class ResourcealertListResponse(object):
|
|
33
33
|
and the value is json key in definition.
|
34
34
|
"""
|
35
35
|
openapi_types = {
|
36
|
-
'results': 'list[
|
36
|
+
'results': 'list[TrainRun]',
|
37
37
|
'metadata': 'ListResponseMetadata'
|
38
38
|
}
|
39
39
|
|
@@ -43,7 +43,7 @@ class ResourcealertListResponse(object):
|
|
43
43
|
}
|
44
44
|
|
45
45
|
def __init__(self, results=None, metadata=None, local_vars_configuration=None): # noqa: E501
|
46
|
-
"""
|
46
|
+
"""TrainrunListResponse - a model defined in OpenAPI""" # noqa: E501
|
47
47
|
if local_vars_configuration is None:
|
48
48
|
local_vars_configuration = Configuration()
|
49
49
|
self.local_vars_configuration = local_vars_configuration
|
@@ -58,21 +58,21 @@ class ResourcealertListResponse(object):
|
|
58
58
|
|
59
59
|
@property
|
60
60
|
def results(self):
|
61
|
-
"""Gets the results of this
|
61
|
+
"""Gets the results of this TrainrunListResponse. # noqa: E501
|
62
62
|
|
63
63
|
|
64
|
-
:return: The results of this
|
65
|
-
:rtype: list[
|
64
|
+
:return: The results of this TrainrunListResponse. # noqa: E501
|
65
|
+
:rtype: list[TrainRun]
|
66
66
|
"""
|
67
67
|
return self._results
|
68
68
|
|
69
69
|
@results.setter
|
70
70
|
def results(self, results):
|
71
|
-
"""Sets the results of this
|
71
|
+
"""Sets the results of this TrainrunListResponse.
|
72
72
|
|
73
73
|
|
74
|
-
:param results: The results of this
|
75
|
-
:type: list[
|
74
|
+
:param results: The results of this TrainrunListResponse. # noqa: E501
|
75
|
+
:type: list[TrainRun]
|
76
76
|
"""
|
77
77
|
if self.local_vars_configuration.client_side_validation and results is None: # noqa: E501
|
78
78
|
raise ValueError("Invalid value for `results`, must not be `None`") # noqa: E501
|
@@ -81,20 +81,20 @@ class ResourcealertListResponse(object):
|
|
81
81
|
|
82
82
|
@property
|
83
83
|
def metadata(self):
|
84
|
-
"""Gets the metadata of this
|
84
|
+
"""Gets the metadata of this TrainrunListResponse. # noqa: E501
|
85
85
|
|
86
86
|
|
87
|
-
:return: The metadata of this
|
87
|
+
:return: The metadata of this TrainrunListResponse. # noqa: E501
|
88
88
|
:rtype: ListResponseMetadata
|
89
89
|
"""
|
90
90
|
return self._metadata
|
91
91
|
|
92
92
|
@metadata.setter
|
93
93
|
def metadata(self, metadata):
|
94
|
-
"""Sets the metadata of this
|
94
|
+
"""Sets the metadata of this TrainrunListResponse.
|
95
95
|
|
96
96
|
|
97
|
-
:param metadata: The metadata of this
|
97
|
+
:param metadata: The metadata of this TrainrunListResponse. # noqa: E501
|
98
98
|
:type: ListResponseMetadata
|
99
99
|
"""
|
100
100
|
|
@@ -134,14 +134,14 @@ class ResourcealertListResponse(object):
|
|
134
134
|
|
135
135
|
def __eq__(self, other):
|
136
136
|
"""Returns true if both objects are equal"""
|
137
|
-
if not isinstance(other,
|
137
|
+
if not isinstance(other, TrainrunListResponse):
|
138
138
|
return False
|
139
139
|
|
140
140
|
return self.to_dict() == other.to_dict()
|
141
141
|
|
142
142
|
def __ne__(self, other):
|
143
143
|
"""Returns true if both objects are not equal"""
|
144
|
-
if not isinstance(other,
|
144
|
+
if not isinstance(other, TrainrunListResponse):
|
145
145
|
return True
|
146
146
|
|
147
147
|
return self.to_dict() != other.to_dict()
|
@@ -36,17 +36,19 @@ class WorkspaceDataplaneProxiedArtifacts(object):
|
|
36
36
|
'requirements': 'str',
|
37
37
|
'skip_packages_tracking': 'str',
|
38
38
|
'environment_variables': 'list[str]',
|
39
|
-
'dockerfile': 'str'
|
39
|
+
'dockerfile': 'str',
|
40
|
+
'dockerfile_draft': 'str'
|
40
41
|
}
|
41
42
|
|
42
43
|
attribute_map = {
|
43
44
|
'requirements': 'requirements',
|
44
45
|
'skip_packages_tracking': 'skip_packages_tracking',
|
45
46
|
'environment_variables': 'environment_variables',
|
46
|
-
'dockerfile': 'dockerfile'
|
47
|
+
'dockerfile': 'dockerfile',
|
48
|
+
'dockerfile_draft': 'dockerfile_draft'
|
47
49
|
}
|
48
50
|
|
49
|
-
def __init__(self, requirements=None, skip_packages_tracking=None, environment_variables=None, dockerfile=None, local_vars_configuration=None): # noqa: E501
|
51
|
+
def __init__(self, requirements=None, skip_packages_tracking=None, environment_variables=None, dockerfile=None, dockerfile_draft=None, local_vars_configuration=None): # noqa: E501
|
50
52
|
"""WorkspaceDataplaneProxiedArtifacts - a model defined in OpenAPI""" # noqa: E501
|
51
53
|
if local_vars_configuration is None:
|
52
54
|
local_vars_configuration = Configuration()
|
@@ -56,6 +58,7 @@ class WorkspaceDataplaneProxiedArtifacts(object):
|
|
56
58
|
self._skip_packages_tracking = None
|
57
59
|
self._environment_variables = None
|
58
60
|
self._dockerfile = None
|
61
|
+
self._dockerfile_draft = None
|
59
62
|
self.discriminator = None
|
60
63
|
|
61
64
|
if requirements is not None:
|
@@ -66,6 +69,8 @@ class WorkspaceDataplaneProxiedArtifacts(object):
|
|
66
69
|
self.environment_variables = environment_variables
|
67
70
|
if dockerfile is not None:
|
68
71
|
self.dockerfile = dockerfile
|
72
|
+
if dockerfile_draft is not None:
|
73
|
+
self.dockerfile_draft = dockerfile_draft
|
69
74
|
|
70
75
|
@property
|
71
76
|
def requirements(self):
|
@@ -159,6 +164,29 @@ class WorkspaceDataplaneProxiedArtifacts(object):
|
|
159
164
|
|
160
165
|
self._dockerfile = dockerfile
|
161
166
|
|
167
|
+
@property
|
168
|
+
def dockerfile_draft(self):
|
169
|
+
"""Gets the dockerfile_draft of this WorkspaceDataplaneProxiedArtifacts. # noqa: E501
|
170
|
+
|
171
|
+
The Dockerfile.draft of the workspace. # noqa: E501
|
172
|
+
|
173
|
+
:return: The dockerfile_draft of this WorkspaceDataplaneProxiedArtifacts. # noqa: E501
|
174
|
+
:rtype: str
|
175
|
+
"""
|
176
|
+
return self._dockerfile_draft
|
177
|
+
|
178
|
+
@dockerfile_draft.setter
|
179
|
+
def dockerfile_draft(self, dockerfile_draft):
|
180
|
+
"""Sets the dockerfile_draft of this WorkspaceDataplaneProxiedArtifacts.
|
181
|
+
|
182
|
+
The Dockerfile.draft of the workspace. # noqa: E501
|
183
|
+
|
184
|
+
:param dockerfile_draft: The dockerfile_draft of this WorkspaceDataplaneProxiedArtifacts. # noqa: E501
|
185
|
+
:type: str
|
186
|
+
"""
|
187
|
+
|
188
|
+
self._dockerfile_draft = dockerfile_draft
|
189
|
+
|
162
190
|
def to_dict(self):
|
163
191
|
"""Returns the model properties as a dict"""
|
164
192
|
result = {}
|
@@ -102,6 +102,10 @@ def describe(name: str, format_: str) -> None:
|
|
102
102
|
if format_ == "json":
|
103
103
|
print(json.dumps(scheduler_info.to_dict(), default=str))
|
104
104
|
elif format_ == "table":
|
105
|
+
|
106
|
+
def format_time(timestamp):
|
107
|
+
return str(timestamp.astimezone().strftime("%m/%d/%Y %I:%M:%S %p %Z"))
|
108
|
+
|
105
109
|
machines_table = []
|
106
110
|
columns = [
|
107
111
|
"MACHINE ID",
|
@@ -124,11 +128,7 @@ def describe(name: str, format_: str) -> None:
|
|
124
128
|
if row.workload_info.workload_name
|
125
129
|
else "",
|
126
130
|
row.workload_score,
|
127
|
-
|
128
|
-
row.workload_info.workload_start_time.astimezone().strftime(
|
129
|
-
"%m/%d/%Y %I:%M:%S %p %Z"
|
130
|
-
)
|
131
|
-
)
|
131
|
+
format_time(row.workload_info.workload_start_time)
|
132
132
|
if row.workload_info.workload_name
|
133
133
|
else "",
|
134
134
|
row.cloud_instance_id,
|
@@ -160,11 +160,7 @@ def describe(name: str, format_: str) -> None:
|
|
160
160
|
row.size,
|
161
161
|
row.machine_type,
|
162
162
|
f"{row.workload_info.workload_type}/{row.workload_info.workload_name}",
|
163
|
-
|
164
|
-
row.workload_info.workload_start_time.astimezone().strftime(
|
165
|
-
"%m/%d/%Y %I:%M:%S %p %Z"
|
166
|
-
)
|
167
|
-
)
|
163
|
+
format_time(row.workload_info.workload_start_time)
|
168
164
|
if row.workload_info.workload_name
|
169
165
|
else "",
|
170
166
|
row.workload_info.workload_cloud,
|
@@ -180,6 +176,15 @@ def describe(name: str, format_: str) -> None:
|
|
180
176
|
)
|
181
177
|
)
|
182
178
|
|
179
|
+
if (
|
180
|
+
scheduler_info.recent_launch_failures
|
181
|
+
and len(scheduler_info.recent_launch_failures) > 0
|
182
|
+
):
|
183
|
+
print("Recent Launch Failures:")
|
184
|
+
for failure in scheduler_info.recent_launch_failures:
|
185
|
+
error = failure.error.replace("\n", " ")
|
186
|
+
print(f"- [{format_time(failure.timestamp)}] {error}")
|
187
|
+
|
183
188
|
|
184
189
|
@machine_pool_cli.command(
|
185
190
|
name="delete",
|
@@ -12,7 +12,7 @@ import anyscale
|
|
12
12
|
from anyscale.resource_quota.models import CreateResourceQuota
|
13
13
|
|
14
14
|
anyscale.resource_quota.create(
|
15
|
-
|
15
|
+
CreateResourceQuota(
|
16
16
|
name="my-resource-quota",
|
17
17
|
cloud="my-cloud",
|
18
18
|
project="my-project",
|
@@ -25,7 +25,6 @@ _CREATE_DOCSTRINGS = {"create_resource_quota": "The resource quota to be created
|
|
25
25
|
|
26
26
|
_LIST_EXAMPLE = """
|
27
27
|
import anyscale
|
28
|
-
from anyscale.resource_quota.models import CreateResourceQuota
|
29
28
|
|
30
29
|
anyscale.resource_quota.list(
|
31
30
|
name="my-resource-quota",
|