anyscale 0.26.53__py3-none-any.whl → 0.26.55__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/client/README.md +2 -0
- anyscale/client/openapi_client/__init__.py +1 -0
- anyscale/client/openapi_client/api/default_api.py +123 -0
- anyscale/client/openapi_client/models/__init__.py +1 -0
- anyscale/client/openapi_client/models/cloud_data_bucket_file_type.py +2 -1
- anyscale/client/openapi_client/models/presigned_url_response.py +123 -0
- anyscale/client/openapi_client/models/production_job_event.py +31 -3
- anyscale/client/openapi_client/models/task_table_row.py +27 -1
- anyscale/cloud/models.py +15 -11
- anyscale/controllers/cloud_controller.py +35 -16
- anyscale/version.py +1 -1
- {anyscale-0.26.53.dist-info → anyscale-0.26.55.dist-info}/METADATA +1 -1
- {anyscale-0.26.53.dist-info → anyscale-0.26.55.dist-info}/RECORD +18 -17
- {anyscale-0.26.53.dist-info → anyscale-0.26.55.dist-info}/WHEEL +0 -0
- {anyscale-0.26.53.dist-info → anyscale-0.26.55.dist-info}/entry_points.txt +0 -0
- {anyscale-0.26.53.dist-info → anyscale-0.26.55.dist-info}/licenses/LICENSE +0 -0
- {anyscale-0.26.53.dist-info → anyscale-0.26.55.dist-info}/licenses/NOTICE +0 -0
- {anyscale-0.26.53.dist-info → anyscale-0.26.55.dist-info}/top_level.txt +0 -0
anyscale/client/README.md
CHANGED
@@ -234,6 +234,7 @@ Class | Method | HTTP request | Description
|
|
234
234
|
*DefaultApi* | [**get_resource_notification_api_v2_resource_notifications_resource_notification_id_get**](docs/DefaultApi.md#get_resource_notification_api_v2_resource_notifications_resource_notification_id_get) | **GET** /api/v2/resource_notifications/{resource_notification_id} | Get Resource Notification
|
235
235
|
*DefaultApi* | [**get_resource_quota_api_v2_resource_quotas_resource_quota_id_get**](docs/DefaultApi.md#get_resource_quota_api_v2_resource_quotas_resource_quota_id_get) | **GET** /api/v2/resource_quotas/{resource_quota_id} | Get Resource Quota
|
236
236
|
*DefaultApi* | [**get_root_cause_for_job_api_v2_iknow_get**](docs/DefaultApi.md#get_root_cause_for_job_api_v2_iknow_get) | **GET** /api/v2/iknow/ | Get Root Cause For Job
|
237
|
+
*DefaultApi* | [**get_sensitive_message_presigned_url_api_v2_decorated_ha_jobs_production_job_id_events_ha_job_event_id_sensitive_message_presigned_url_get**](docs/DefaultApi.md#get_sensitive_message_presigned_url_api_v2_decorated_ha_jobs_production_job_id_events_ha_job_event_id_sensitive_message_presigned_url_get) | **GET** /api/v2/decorated_ha_jobs/{production_job_id}/events/{ha_job_event_id}/sensitive_message_presigned_url | Get Sensitive Message Presigned Url
|
237
238
|
*DefaultApi* | [**get_serve_logs_download_api_v2_logs_serve_logs_download_cluster_id_get**](docs/DefaultApi.md#get_serve_logs_download_api_v2_logs_serve_logs_download_cluster_id_get) | **GET** /api/v2/logs/serve_logs_download/{cluster_id} | Get Serve Logs Download
|
238
239
|
*DefaultApi* | [**get_service_api_v2_services_v2_service_id_get**](docs/DefaultApi.md#get_service_api_v2_services_v2_service_id_get) | **GET** /api/v2/services-v2/{service_id} | Get Service
|
239
240
|
*DefaultApi* | [**get_service_event_verbose_message_api_v2_services_v2_events_event_id_verbose_message_get**](docs/DefaultApi.md#get_service_event_verbose_message_api_v2_services_v2_events_event_id_verbose_message_get) | **GET** /api/v2/services-v2/events/{event_id}/verbose_message | Get Service Event Verbose Message
|
@@ -818,6 +819,7 @@ Class | Method | HTTP request | Description
|
|
818
819
|
- [PauseSchedule](docs/PauseSchedule.md)
|
819
820
|
- [PermissionLevel](docs/PermissionLevel.md)
|
820
821
|
- [PlanStatus](docs/PlanStatus.md)
|
822
|
+
- [PresignedUrlResponse](docs/PresignedUrlResponse.md)
|
821
823
|
- [ProductionJob](docs/ProductionJob.md)
|
822
824
|
- [ProductionJobConfig](docs/ProductionJobConfig.md)
|
823
825
|
- [ProductionJobEvent](docs/ProductionJobEvent.md)
|
@@ -458,6 +458,7 @@ from openapi_client.models.partition_info import PartitionInfo
|
|
458
458
|
from openapi_client.models.pause_schedule import PauseSchedule
|
459
459
|
from openapi_client.models.permission_level import PermissionLevel
|
460
460
|
from openapi_client.models.plan_status import PlanStatus
|
461
|
+
from openapi_client.models.presigned_url_response import PresignedUrlResponse
|
461
462
|
from openapi_client.models.production_job import ProductionJob
|
462
463
|
from openapi_client.models.production_job_config import ProductionJobConfig
|
463
464
|
from openapi_client.models.production_job_event import ProductionJobEvent
|
@@ -18764,6 +18764,129 @@ class DefaultApi(object):
|
|
18764
18764
|
_request_timeout=local_var_params.get('_request_timeout'),
|
18765
18765
|
collection_formats=collection_formats)
|
18766
18766
|
|
18767
|
+
def get_sensitive_message_presigned_url_api_v2_decorated_ha_jobs_production_job_id_events_ha_job_event_id_sensitive_message_presigned_url_get(self, production_job_id, ha_job_event_id, **kwargs): # noqa: E501
|
18768
|
+
"""Get Sensitive Message Presigned Url # noqa: E501
|
18769
|
+
|
18770
|
+
Get the presigned url for the sensitive message details # noqa: E501
|
18771
|
+
This method makes a synchronous HTTP request by default. To make an
|
18772
|
+
asynchronous HTTP request, please pass async_req=True
|
18773
|
+
>>> thread = api.get_sensitive_message_presigned_url_api_v2_decorated_ha_jobs_production_job_id_events_ha_job_event_id_sensitive_message_presigned_url_get(production_job_id, ha_job_event_id, async_req=True)
|
18774
|
+
>>> result = thread.get()
|
18775
|
+
|
18776
|
+
:param async_req bool: execute request asynchronously
|
18777
|
+
:param str production_job_id: (required)
|
18778
|
+
:param str ha_job_event_id: (required)
|
18779
|
+
:param _preload_content: if False, the urllib3.HTTPResponse object will
|
18780
|
+
be returned without reading/decoding response
|
18781
|
+
data. Default is True.
|
18782
|
+
:param _request_timeout: timeout setting for this request. If one
|
18783
|
+
number provided, it will be total request
|
18784
|
+
timeout. It can also be a pair (tuple) of
|
18785
|
+
(connection, read) timeouts.
|
18786
|
+
:return: PresignedUrlResponse
|
18787
|
+
If the method is called asynchronously,
|
18788
|
+
returns the request thread.
|
18789
|
+
"""
|
18790
|
+
kwargs['_return_http_data_only'] = True
|
18791
|
+
return self.get_sensitive_message_presigned_url_api_v2_decorated_ha_jobs_production_job_id_events_ha_job_event_id_sensitive_message_presigned_url_get_with_http_info(production_job_id, ha_job_event_id, **kwargs) # noqa: E501
|
18792
|
+
|
18793
|
+
def get_sensitive_message_presigned_url_api_v2_decorated_ha_jobs_production_job_id_events_ha_job_event_id_sensitive_message_presigned_url_get_with_http_info(self, production_job_id, ha_job_event_id, **kwargs): # noqa: E501
|
18794
|
+
"""Get Sensitive Message Presigned Url # noqa: E501
|
18795
|
+
|
18796
|
+
Get the presigned url for the sensitive message details # noqa: E501
|
18797
|
+
This method makes a synchronous HTTP request by default. To make an
|
18798
|
+
asynchronous HTTP request, please pass async_req=True
|
18799
|
+
>>> thread = api.get_sensitive_message_presigned_url_api_v2_decorated_ha_jobs_production_job_id_events_ha_job_event_id_sensitive_message_presigned_url_get_with_http_info(production_job_id, ha_job_event_id, async_req=True)
|
18800
|
+
>>> result = thread.get()
|
18801
|
+
|
18802
|
+
:param async_req bool: execute request asynchronously
|
18803
|
+
:param str production_job_id: (required)
|
18804
|
+
:param str ha_job_event_id: (required)
|
18805
|
+
:param _return_http_data_only: response data without head status code
|
18806
|
+
and headers
|
18807
|
+
:param _preload_content: if False, the urllib3.HTTPResponse object will
|
18808
|
+
be returned without reading/decoding response
|
18809
|
+
data. Default is True.
|
18810
|
+
:param _request_timeout: timeout setting for this request. If one
|
18811
|
+
number provided, it will be total request
|
18812
|
+
timeout. It can also be a pair (tuple) of
|
18813
|
+
(connection, read) timeouts.
|
18814
|
+
:return: tuple(PresignedUrlResponse, status_code(int), headers(HTTPHeaderDict))
|
18815
|
+
If the method is called asynchronously,
|
18816
|
+
returns the request thread.
|
18817
|
+
"""
|
18818
|
+
|
18819
|
+
local_var_params = locals()
|
18820
|
+
|
18821
|
+
all_params = [
|
18822
|
+
'production_job_id',
|
18823
|
+
'ha_job_event_id'
|
18824
|
+
]
|
18825
|
+
all_params.extend(
|
18826
|
+
[
|
18827
|
+
'async_req',
|
18828
|
+
'_return_http_data_only',
|
18829
|
+
'_preload_content',
|
18830
|
+
'_request_timeout'
|
18831
|
+
]
|
18832
|
+
)
|
18833
|
+
|
18834
|
+
for key, val in six.iteritems(local_var_params['kwargs']):
|
18835
|
+
if key not in all_params:
|
18836
|
+
raise ApiTypeError(
|
18837
|
+
"Got an unexpected keyword argument '%s'"
|
18838
|
+
" to method get_sensitive_message_presigned_url_api_v2_decorated_ha_jobs_production_job_id_events_ha_job_event_id_sensitive_message_presigned_url_get" % key
|
18839
|
+
)
|
18840
|
+
local_var_params[key] = val
|
18841
|
+
del local_var_params['kwargs']
|
18842
|
+
# verify the required parameter 'production_job_id' is set
|
18843
|
+
if self.api_client.client_side_validation and ('production_job_id' not in local_var_params or # noqa: E501
|
18844
|
+
local_var_params['production_job_id'] is None): # noqa: E501
|
18845
|
+
raise ApiValueError("Missing the required parameter `production_job_id` when calling `get_sensitive_message_presigned_url_api_v2_decorated_ha_jobs_production_job_id_events_ha_job_event_id_sensitive_message_presigned_url_get`") # noqa: E501
|
18846
|
+
# verify the required parameter 'ha_job_event_id' is set
|
18847
|
+
if self.api_client.client_side_validation and ('ha_job_event_id' not in local_var_params or # noqa: E501
|
18848
|
+
local_var_params['ha_job_event_id'] is None): # noqa: E501
|
18849
|
+
raise ApiValueError("Missing the required parameter `ha_job_event_id` when calling `get_sensitive_message_presigned_url_api_v2_decorated_ha_jobs_production_job_id_events_ha_job_event_id_sensitive_message_presigned_url_get`") # noqa: E501
|
18850
|
+
|
18851
|
+
collection_formats = {}
|
18852
|
+
|
18853
|
+
path_params = {}
|
18854
|
+
if 'production_job_id' in local_var_params:
|
18855
|
+
path_params['production_job_id'] = local_var_params['production_job_id'] # noqa: E501
|
18856
|
+
if 'ha_job_event_id' in local_var_params:
|
18857
|
+
path_params['ha_job_event_id'] = local_var_params['ha_job_event_id'] # noqa: E501
|
18858
|
+
|
18859
|
+
query_params = []
|
18860
|
+
|
18861
|
+
header_params = {}
|
18862
|
+
|
18863
|
+
form_params = []
|
18864
|
+
local_var_files = {}
|
18865
|
+
|
18866
|
+
body_params = None
|
18867
|
+
# HTTP header `Accept`
|
18868
|
+
header_params['Accept'] = self.api_client.select_header_accept(
|
18869
|
+
['application/json']) # noqa: E501
|
18870
|
+
|
18871
|
+
# Authentication setting
|
18872
|
+
auth_settings = [] # noqa: E501
|
18873
|
+
|
18874
|
+
return self.api_client.call_api(
|
18875
|
+
'/api/v2/decorated_ha_jobs/{production_job_id}/events/{ha_job_event_id}/sensitive_message_presigned_url', 'GET',
|
18876
|
+
path_params,
|
18877
|
+
query_params,
|
18878
|
+
header_params,
|
18879
|
+
body=body_params,
|
18880
|
+
post_params=form_params,
|
18881
|
+
files=local_var_files,
|
18882
|
+
response_type='PresignedUrlResponse', # noqa: E501
|
18883
|
+
auth_settings=auth_settings,
|
18884
|
+
async_req=local_var_params.get('async_req'),
|
18885
|
+
_return_http_data_only=local_var_params.get('_return_http_data_only'), # noqa: E501
|
18886
|
+
_preload_content=local_var_params.get('_preload_content', True),
|
18887
|
+
_request_timeout=local_var_params.get('_request_timeout'),
|
18888
|
+
collection_formats=collection_formats)
|
18889
|
+
|
18767
18890
|
def get_serve_logs_download_api_v2_logs_serve_logs_download_cluster_id_get(self, cluster_id, **kwargs): # noqa: E501
|
18768
18891
|
"""Get Serve Logs Download # noqa: E501
|
18769
18892
|
|
@@ -444,6 +444,7 @@ from openapi_client.models.partition_info import PartitionInfo
|
|
444
444
|
from openapi_client.models.pause_schedule import PauseSchedule
|
445
445
|
from openapi_client.models.permission_level import PermissionLevel
|
446
446
|
from openapi_client.models.plan_status import PlanStatus
|
447
|
+
from openapi_client.models.presigned_url_response import PresignedUrlResponse
|
447
448
|
from openapi_client.models.production_job import ProductionJob
|
448
449
|
from openapi_client.models.production_job_config import ProductionJobConfig
|
449
450
|
from openapi_client.models.production_job_event import ProductionJobEvent
|
@@ -33,8 +33,9 @@ class CloudDataBucketFileType(object):
|
|
33
33
|
AUDIT_LOGS = "audit_logs"
|
34
34
|
SYSTEM_STORAGE_WORKSPACE_TRACKING_DEPENDENCIES = "system_storage/workspace_tracking_dependencies"
|
35
35
|
SYSTEM_STORAGE_WORKSPACES = "system_storage/workspaces"
|
36
|
+
JOB_MESSAGES = "job_messages"
|
36
37
|
|
37
|
-
allowable_values = [RUNTIME_ENV_PACKAGES, DATASETS, AUDIT_LOGS, SYSTEM_STORAGE_WORKSPACE_TRACKING_DEPENDENCIES, SYSTEM_STORAGE_WORKSPACES] # noqa: E501
|
38
|
+
allowable_values = [RUNTIME_ENV_PACKAGES, DATASETS, AUDIT_LOGS, SYSTEM_STORAGE_WORKSPACE_TRACKING_DEPENDENCIES, SYSTEM_STORAGE_WORKSPACES, JOB_MESSAGES] # noqa: E501
|
38
39
|
|
39
40
|
"""
|
40
41
|
Attributes:
|
@@ -0,0 +1,123 @@
|
|
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 PresignedUrlResponse(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
|
+
'url': 'str'
|
37
|
+
}
|
38
|
+
|
39
|
+
attribute_map = {
|
40
|
+
'url': 'url'
|
41
|
+
}
|
42
|
+
|
43
|
+
def __init__(self, url=None, local_vars_configuration=None): # noqa: E501
|
44
|
+
"""PresignedUrlResponse - a model defined in OpenAPI""" # noqa: E501
|
45
|
+
if local_vars_configuration is None:
|
46
|
+
local_vars_configuration = Configuration()
|
47
|
+
self.local_vars_configuration = local_vars_configuration
|
48
|
+
|
49
|
+
self._url = None
|
50
|
+
self.discriminator = None
|
51
|
+
|
52
|
+
self.url = url
|
53
|
+
|
54
|
+
@property
|
55
|
+
def url(self):
|
56
|
+
"""Gets the url of this PresignedUrlResponse. # noqa: E501
|
57
|
+
|
58
|
+
The presigned url # noqa: E501
|
59
|
+
|
60
|
+
:return: The url of this PresignedUrlResponse. # noqa: E501
|
61
|
+
:rtype: str
|
62
|
+
"""
|
63
|
+
return self._url
|
64
|
+
|
65
|
+
@url.setter
|
66
|
+
def url(self, url):
|
67
|
+
"""Sets the url of this PresignedUrlResponse.
|
68
|
+
|
69
|
+
The presigned url # noqa: E501
|
70
|
+
|
71
|
+
:param url: The url of this PresignedUrlResponse. # noqa: E501
|
72
|
+
:type: str
|
73
|
+
"""
|
74
|
+
if self.local_vars_configuration.client_side_validation and url is None: # noqa: E501
|
75
|
+
raise ValueError("Invalid value for `url`, must not be `None`") # noqa: E501
|
76
|
+
|
77
|
+
self._url = url
|
78
|
+
|
79
|
+
def to_dict(self):
|
80
|
+
"""Returns the model properties as a dict"""
|
81
|
+
result = {}
|
82
|
+
|
83
|
+
for attr, _ in six.iteritems(self.openapi_types):
|
84
|
+
value = getattr(self, attr)
|
85
|
+
if isinstance(value, list):
|
86
|
+
result[attr] = list(map(
|
87
|
+
lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
|
88
|
+
value
|
89
|
+
))
|
90
|
+
elif hasattr(value, "to_dict"):
|
91
|
+
result[attr] = value.to_dict()
|
92
|
+
elif isinstance(value, dict):
|
93
|
+
result[attr] = dict(map(
|
94
|
+
lambda item: (item[0], item[1].to_dict())
|
95
|
+
if hasattr(item[1], "to_dict") else item,
|
96
|
+
value.items()
|
97
|
+
))
|
98
|
+
else:
|
99
|
+
result[attr] = value
|
100
|
+
|
101
|
+
return result
|
102
|
+
|
103
|
+
def to_str(self):
|
104
|
+
"""Returns the string representation of the model"""
|
105
|
+
return pprint.pformat(self.to_dict())
|
106
|
+
|
107
|
+
def __repr__(self):
|
108
|
+
"""For `print` and `pprint`"""
|
109
|
+
return self.to_str()
|
110
|
+
|
111
|
+
def __eq__(self, other):
|
112
|
+
"""Returns true if both objects are equal"""
|
113
|
+
if not isinstance(other, PresignedUrlResponse):
|
114
|
+
return False
|
115
|
+
|
116
|
+
return self.to_dict() == other.to_dict()
|
117
|
+
|
118
|
+
def __ne__(self, other):
|
119
|
+
"""Returns true if both objects are not equal"""
|
120
|
+
if not isinstance(other, PresignedUrlResponse):
|
121
|
+
return True
|
122
|
+
|
123
|
+
return self.to_dict() != other.to_dict()
|
@@ -42,7 +42,8 @@ class ProductionJobEvent(object):
|
|
42
42
|
'origin': 'HaJobEventOrigin',
|
43
43
|
'ha_job_id': 'str',
|
44
44
|
'cluster_id': 'str',
|
45
|
-
'metadata': 'object'
|
45
|
+
'metadata': 'object',
|
46
|
+
'has_additional_sensitive_message': 'bool'
|
46
47
|
}
|
47
48
|
|
48
49
|
attribute_map = {
|
@@ -55,10 +56,11 @@ class ProductionJobEvent(object):
|
|
55
56
|
'origin': 'origin',
|
56
57
|
'ha_job_id': 'ha_job_id',
|
57
58
|
'cluster_id': 'cluster_id',
|
58
|
-
'metadata': 'metadata'
|
59
|
+
'metadata': 'metadata',
|
60
|
+
'has_additional_sensitive_message': 'has_additional_sensitive_message'
|
59
61
|
}
|
60
62
|
|
61
|
-
def __init__(self, id=None, created_at=None, event_type=None, error_type=None, level=None, message=None, origin=None, ha_job_id=None, cluster_id=None, metadata=None, local_vars_configuration=None): # noqa: E501
|
63
|
+
def __init__(self, id=None, created_at=None, event_type=None, error_type=None, level=None, message=None, origin=None, ha_job_id=None, cluster_id=None, metadata=None, has_additional_sensitive_message=False, local_vars_configuration=None): # noqa: E501
|
62
64
|
"""ProductionJobEvent - a model defined in OpenAPI""" # noqa: E501
|
63
65
|
if local_vars_configuration is None:
|
64
66
|
local_vars_configuration = Configuration()
|
@@ -74,6 +76,7 @@ class ProductionJobEvent(object):
|
|
74
76
|
self._ha_job_id = None
|
75
77
|
self._cluster_id = None
|
76
78
|
self._metadata = None
|
79
|
+
self._has_additional_sensitive_message = None
|
77
80
|
self.discriminator = None
|
78
81
|
|
79
82
|
self.id = id
|
@@ -92,6 +95,8 @@ class ProductionJobEvent(object):
|
|
92
95
|
self.cluster_id = cluster_id
|
93
96
|
if metadata is not None:
|
94
97
|
self.metadata = metadata
|
98
|
+
if has_additional_sensitive_message is not None:
|
99
|
+
self.has_additional_sensitive_message = has_additional_sensitive_message
|
95
100
|
|
96
101
|
@property
|
97
102
|
def id(self):
|
@@ -331,6 +336,29 @@ class ProductionJobEvent(object):
|
|
331
336
|
|
332
337
|
self._metadata = metadata
|
333
338
|
|
339
|
+
@property
|
340
|
+
def has_additional_sensitive_message(self):
|
341
|
+
"""Gets the has_additional_sensitive_message of this ProductionJobEvent. # noqa: E501
|
342
|
+
|
343
|
+
Whether we have additional sensitive message details stored that can be subsequently fetched. # noqa: E501
|
344
|
+
|
345
|
+
:return: The has_additional_sensitive_message of this ProductionJobEvent. # noqa: E501
|
346
|
+
:rtype: bool
|
347
|
+
"""
|
348
|
+
return self._has_additional_sensitive_message
|
349
|
+
|
350
|
+
@has_additional_sensitive_message.setter
|
351
|
+
def has_additional_sensitive_message(self, has_additional_sensitive_message):
|
352
|
+
"""Sets the has_additional_sensitive_message of this ProductionJobEvent.
|
353
|
+
|
354
|
+
Whether we have additional sensitive message details stored that can be subsequently fetched. # noqa: E501
|
355
|
+
|
356
|
+
:param has_additional_sensitive_message: The has_additional_sensitive_message of this ProductionJobEvent. # noqa: E501
|
357
|
+
:type: bool
|
358
|
+
"""
|
359
|
+
|
360
|
+
self._has_additional_sensitive_message = has_additional_sensitive_message
|
361
|
+
|
334
362
|
def to_dict(self):
|
335
363
|
"""Returns the model properties as a dict"""
|
336
364
|
result = {}
|
@@ -43,6 +43,7 @@ class TaskTableRow(object):
|
|
43
43
|
'start_time_ns': 'int',
|
44
44
|
'end_time_ns': 'int',
|
45
45
|
'required_resources': 'str',
|
46
|
+
'runtime_env': 'str',
|
46
47
|
'node_id': 'str',
|
47
48
|
'worker_id': 'str',
|
48
49
|
'worker_pid': 'str',
|
@@ -62,6 +63,7 @@ class TaskTableRow(object):
|
|
62
63
|
'start_time_ns': 'start_time_ns',
|
63
64
|
'end_time_ns': 'end_time_ns',
|
64
65
|
'required_resources': 'required_resources',
|
66
|
+
'runtime_env': 'runtime_env',
|
65
67
|
'node_id': 'node_id',
|
66
68
|
'worker_id': 'worker_id',
|
67
69
|
'worker_pid': 'worker_pid',
|
@@ -70,7 +72,7 @@ class TaskTableRow(object):
|
|
70
72
|
'exception_type': 'exception_type'
|
71
73
|
}
|
72
74
|
|
73
|
-
def __init__(self, id=None, attempt_number=None, job_id=None, function_name=None, task_type=None, current_state=None, error_message=None, start_time_ns=None, end_time_ns=None, required_resources=None, node_id=None, worker_id=None, worker_pid=None, parent_task_id=None, ray_session_name=None, exception_type=None, local_vars_configuration=None): # noqa: E501
|
75
|
+
def __init__(self, id=None, attempt_number=None, job_id=None, function_name=None, task_type=None, current_state=None, error_message=None, start_time_ns=None, end_time_ns=None, required_resources=None, runtime_env=None, node_id=None, worker_id=None, worker_pid=None, parent_task_id=None, ray_session_name=None, exception_type=None, local_vars_configuration=None): # noqa: E501
|
74
76
|
"""TaskTableRow - a model defined in OpenAPI""" # noqa: E501
|
75
77
|
if local_vars_configuration is None:
|
76
78
|
local_vars_configuration = Configuration()
|
@@ -86,6 +88,7 @@ class TaskTableRow(object):
|
|
86
88
|
self._start_time_ns = None
|
87
89
|
self._end_time_ns = None
|
88
90
|
self._required_resources = None
|
91
|
+
self._runtime_env = None
|
89
92
|
self._node_id = None
|
90
93
|
self._worker_id = None
|
91
94
|
self._worker_pid = None
|
@@ -108,6 +111,8 @@ class TaskTableRow(object):
|
|
108
111
|
self.end_time_ns = end_time_ns
|
109
112
|
if required_resources is not None:
|
110
113
|
self.required_resources = required_resources
|
114
|
+
if runtime_env is not None:
|
115
|
+
self.runtime_env = runtime_env
|
111
116
|
if node_id is not None:
|
112
117
|
self.node_id = node_id
|
113
118
|
if worker_id is not None:
|
@@ -342,6 +347,27 @@ class TaskTableRow(object):
|
|
342
347
|
|
343
348
|
self._required_resources = required_resources
|
344
349
|
|
350
|
+
@property
|
351
|
+
def runtime_env(self):
|
352
|
+
"""Gets the runtime_env of this TaskTableRow. # noqa: E501
|
353
|
+
|
354
|
+
|
355
|
+
:return: The runtime_env of this TaskTableRow. # noqa: E501
|
356
|
+
:rtype: str
|
357
|
+
"""
|
358
|
+
return self._runtime_env
|
359
|
+
|
360
|
+
@runtime_env.setter
|
361
|
+
def runtime_env(self, runtime_env):
|
362
|
+
"""Sets the runtime_env of this TaskTableRow.
|
363
|
+
|
364
|
+
|
365
|
+
:param runtime_env: The runtime_env of this TaskTableRow. # noqa: E501
|
366
|
+
:type: str
|
367
|
+
"""
|
368
|
+
|
369
|
+
self._runtime_env = runtime_env
|
370
|
+
|
345
371
|
@property
|
346
372
|
def node_id(self):
|
347
373
|
"""Gets the node_id of this TaskTableRow. # noqa: E501
|
anyscale/cloud/models.py
CHANGED
@@ -109,12 +109,14 @@ class CloudProvider(ModelEnum):
|
|
109
109
|
AWS = "AWS"
|
110
110
|
GCP = "GCP"
|
111
111
|
AZURE = "AZURE"
|
112
|
+
GENERIC = "GENERIC"
|
112
113
|
|
113
114
|
__docstrings__ = {
|
114
115
|
UNKNOWN: "Unknown cloud provider.",
|
115
116
|
AWS: "Amazon Web Services.",
|
116
117
|
GCP: "Google Cloud Platform.",
|
117
118
|
AZURE: "Microsoft Azure.",
|
119
|
+
GENERIC: "Generic cloud provider.",
|
118
120
|
} # type: ignore
|
119
121
|
|
120
122
|
|
@@ -141,7 +143,7 @@ cloud = Cloud(
|
|
141
143
|
id: str = field(metadata={"docstring": "Unique identifier for this Cloud."})
|
142
144
|
provider: Union[CloudProvider, str] = field(
|
143
145
|
metadata={
|
144
|
-
"docstring": "Cloud provider (AWS, GCP, AZURE) or UNKNOWN if not recognized."
|
146
|
+
"docstring": "Cloud provider (AWS, GCP, AZURE, GENERIC) or UNKNOWN if not recognized."
|
145
147
|
},
|
146
148
|
)
|
147
149
|
compute_stack: Union[ComputeStack, str] = field(
|
@@ -499,15 +501,15 @@ bucket_name: s3://my-bucket
|
|
499
501
|
file_storage:
|
500
502
|
file_storage_id: fs-12345678901234567
|
501
503
|
aws_config:
|
502
|
-
vpc_id: vpc-12345678901234567
|
503
|
-
subnet_ids:
|
504
|
-
|
505
|
-
|
506
|
-
security_group_ids:
|
507
|
-
|
508
|
-
anyscale_iam_role_id: arn:aws:iam::123456789012:role/anyscale-iam-role
|
509
|
-
cluster_iam_role_id: arn:aws:iam::123456789012:role/cluster-node-role
|
510
|
-
memorydb_cluster_name: my-memorydb-cluster
|
504
|
+
vpc_id: vpc-12345678901234567
|
505
|
+
subnet_ids:
|
506
|
+
- subnet-11111111111111111
|
507
|
+
- subnet-22222222222222222
|
508
|
+
security_group_ids:
|
509
|
+
- sg-12345678901234567
|
510
|
+
anyscale_iam_role_id: arn:aws:iam::123456789012:role/anyscale-iam-role
|
511
|
+
cluster_iam_role_id: arn:aws:iam::123456789012:role/cluster-node-role
|
512
|
+
memorydb_cluster_name: my-memorydb-cluster
|
511
513
|
"""
|
512
514
|
|
513
515
|
cloud_resource_id: Optional[str] = field(
|
@@ -519,7 +521,9 @@ memorydb_cluster_name: my-memorydb-cluster
|
|
519
521
|
)
|
520
522
|
provider: Union[CloudProvider, str] = field(
|
521
523
|
default=CloudProvider.UNKNOWN,
|
522
|
-
metadata={
|
524
|
+
metadata={
|
525
|
+
"docstring": "The cloud provider type (e.g., AWS, GCP, AZURE, or GENERIC)."
|
526
|
+
},
|
523
527
|
)
|
524
528
|
compute_stack: Union[ComputeStack, str] = field(
|
525
529
|
default=ComputeStack.VM,
|
@@ -1471,18 +1471,26 @@ class CloudController(BaseController):
|
|
1471
1471
|
d.pop("cloud_deployment_id", None)
|
1472
1472
|
return formatted_cloud_resources
|
1473
1473
|
|
1474
|
-
def
|
1475
|
-
|
1476
|
-
|
1474
|
+
def _convert_decorated_cloud_resource_to_cloud_deployment(
|
1475
|
+
self, decorated_cloud_resource: DecoratedCloudResource
|
1476
|
+
) -> CloudDeployment:
|
1477
1477
|
# DecoratedCloudResource has extra fields that are not in CloudDeployment.
|
1478
1478
|
allowed_keys = set(CloudDeployment.attribute_map.keys())
|
1479
1479
|
allowed_keys.remove(
|
1480
1480
|
"cloud_deployment_id"
|
1481
1481
|
) # Remove deprecated cloud_deployment_id field.
|
1482
|
+
return CloudDeployment(
|
1483
|
+
**{
|
1484
|
+
k: v
|
1485
|
+
for k, v in decorated_cloud_resource.to_dict().items()
|
1486
|
+
if k in allowed_keys
|
1487
|
+
}
|
1488
|
+
)
|
1489
|
+
|
1490
|
+
def get_cloud_resources(self, cloud_id: str) -> List[CloudDeployment]:
|
1491
|
+
decorated_cloud_resources = self.get_decorated_cloud_resources(cloud_id)
|
1482
1492
|
return [
|
1483
|
-
|
1484
|
-
**{k: v for k, v in resource.to_dict().items() if k in allowed_keys}
|
1485
|
-
)
|
1493
|
+
self._convert_decorated_cloud_resource_to_cloud_deployment(resource)
|
1486
1494
|
for resource in decorated_cloud_resources
|
1487
1495
|
]
|
1488
1496
|
|
@@ -1815,24 +1823,25 @@ class CloudController(BaseController):
|
|
1815
1823
|
"Please use `anyscale cloud resource create` to add cloud resources."
|
1816
1824
|
)
|
1817
1825
|
|
1818
|
-
# Diff the existing and new specs
|
1819
|
-
diff = self._generate_diff(
|
1820
|
-
[self._remove_empty_values(r.to_dict()) for r in existing_resources], spec
|
1821
|
-
)
|
1822
|
-
if not diff:
|
1823
|
-
self.log.info("No changes detected.")
|
1824
|
-
return
|
1825
|
-
|
1826
1826
|
existing_resources_dict = {
|
1827
1827
|
resource.cloud_resource_id: resource for resource in existing_resources
|
1828
1828
|
}
|
1829
1829
|
|
1830
|
+
all_deployments: List[CloudDeployment] = []
|
1830
1831
|
updated_deployments: List[CloudDeployment] = []
|
1831
1832
|
for d in spec:
|
1832
1833
|
try:
|
1833
1834
|
deployment = CloudDeployment(**d)
|
1834
1835
|
except Exception as e: # noqa: BLE001
|
1835
|
-
|
1836
|
+
try:
|
1837
|
+
# Try to parse the cloud deployment as a DecoratedCloudResource as well,
|
1838
|
+
# which has extra fields that are not in CloudDeployment.
|
1839
|
+
deployment = self._convert_decorated_cloud_resource_to_cloud_deployment(
|
1840
|
+
DecoratedCloudResource(**d)
|
1841
|
+
)
|
1842
|
+
except: # noqa: E722
|
1843
|
+
# Raise original error from parsing as CloudDeployment.
|
1844
|
+
raise ClickException(f"Failed to parse cloud resource: {e}")
|
1836
1845
|
|
1837
1846
|
if not deployment.cloud_resource_id:
|
1838
1847
|
raise ClickException(
|
@@ -1846,10 +1855,20 @@ class CloudController(BaseController):
|
|
1846
1855
|
raise ClickException(
|
1847
1856
|
"Please use the `anyscale machine-pool` CLI to update machine pools."
|
1848
1857
|
)
|
1858
|
+
|
1859
|
+
all_deployments.append(deployment)
|
1849
1860
|
if deployment != existing_resources_dict[deployment.cloud_resource_id]:
|
1850
1861
|
updated_deployments.append(deployment)
|
1851
1862
|
|
1852
|
-
#
|
1863
|
+
# Diff the existing and new specs and confirm.
|
1864
|
+
diff = self._generate_diff(
|
1865
|
+
[self._remove_empty_values(r.to_dict()) for r in existing_resources],
|
1866
|
+
[self._remove_empty_values(r.to_dict()) for r in all_deployments],
|
1867
|
+
)
|
1868
|
+
if not diff:
|
1869
|
+
self.log.info("No changes detected.")
|
1870
|
+
return
|
1871
|
+
|
1853
1872
|
self.log.info(f"Detected the following changes:\n{diff}")
|
1854
1873
|
|
1855
1874
|
confirm("Would you like to proceed with updating this cloud?", yes)
|
anyscale/version.py
CHANGED
@@ -1 +1 @@
|
|
1
|
-
__version__ = "0.26.
|
1
|
+
__version__ = "0.26.55"
|
@@ -28,7 +28,7 @@ anyscale/snapshot.py,sha256=UGJT5C1s_4xmQxjWODK5DFpGxHRBX5jOCdSCqXESH8E,1685
|
|
28
28
|
anyscale/tables.py,sha256=TV4F2uLnwehvbkAfaP7iuLlT2wLIo6ORH2LVdRGXW5g,2840
|
29
29
|
anyscale/telemetry.py,sha256=U90C2Vgx48z9PMTI6EbzHFbP3jWnDUutbIfMPBb8-SI,14711
|
30
30
|
anyscale/util.py,sha256=7YPUcm1KCWnmwQpgO0iy0Ly3kSKEAdsCI2jmFridKH0,42881
|
31
|
-
anyscale/version.py,sha256=
|
31
|
+
anyscale/version.py,sha256=Q91RXdcQACvk1n5hluPOYNf8C1ugDnw4_PqOP-z1lsI,24
|
32
32
|
anyscale/workspace_utils.py,sha256=OViE88CnIF5ruVxd3kazQ0Mf2BxqtMq6wx-XQ5A2cp8,1204
|
33
33
|
anyscale/_private/anyscale_client/README.md,sha256=kSfI2Jfw5RHZWYtu0di3XtdSCx0d2pSwKMfjmDvw7Tg,3770
|
34
34
|
anyscale/_private/anyscale_client/__init__.py,sha256=807Blx3RHQeS8BmKZcsOQQ4dYoKlCnpm6Bdsif2CrHg,337
|
@@ -106,7 +106,7 @@ anyscale/background/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSu
|
|
106
106
|
anyscale/background/job_runner.py,sha256=LTuv9JOahyv6C9i7DLQAONgQF6--FfYZEmJrKy-sUG8,2687
|
107
107
|
anyscale/client/.gitignore,sha256=JZyvYEtT2DCSK9V5Joi6lQofhMik4PXiJRCWsg7SvqI,807
|
108
108
|
anyscale/client/.openapi-generator-ignore,sha256=pu2PTide7pJtJ-DFLzDy0cTYQJRlrB-8RRH3zGLeUds,1040
|
109
|
-
anyscale/client/README.md,sha256
|
109
|
+
anyscale/client/README.md,sha256=drReIpsz3aOF68F7ZdDWi-tdexu2HtkkAFIqHzpZPYs,117082
|
110
110
|
anyscale/client/git_push.sh,sha256=EDCZOTTiLxbtPHmiU63qC99rGH67B7dhdPZdNUKivF0,1827
|
111
111
|
anyscale/client/requirements.txt,sha256=dkVKYUStC5h_g_87SH7pRdhXCj7ySozAJMGAFEzGgFc,126
|
112
112
|
anyscale/client/setup.cfg,sha256=l7bdKSIedeBhhoDtupsBwx1xPrlBf2yYeTH7a8kMga4,28
|
@@ -114,14 +114,14 @@ anyscale/client/setup.py,sha256=tSxqw1kAL1B9adnrnOarjnQfSbwGmnTr_kg8ZXhlm5A,1109
|
|
114
114
|
anyscale/client/test-requirements.txt,sha256=sTjmDTj5W9fh1ZAeo8UT2EBdeGDBNttj_PHiPBXg1D4,111
|
115
115
|
anyscale/client/tox.ini,sha256=M6L3UmvAdvU65LsoAF-Oi7oRjwZlCJZn8I7ofdXn5Ok,156
|
116
116
|
anyscale/client/.openapi-generator/VERSION,sha256=J0RzX-4u4jfin1kviKtmncjUePyjHm2kyvmkobOrt_E,5
|
117
|
-
anyscale/client/openapi_client/__init__.py,sha256=
|
117
|
+
anyscale/client/openapi_client/__init__.py,sha256=KOoXXkErPM_UsuBVuf8Qi3gvLAseOrCukFI6EAx49Sc,52154
|
118
118
|
anyscale/client/openapi_client/api_client.py,sha256=d8Un6j2Ny2vlS2qBXPVFj6_ql0k36DFahpWt_28TfCk,25563
|
119
119
|
anyscale/client/openapi_client/configuration.py,sha256=Dd5XrlHwv-wxnf0C35PG_-HBQoY3Yaz6hKrmkZz-m0E,12363
|
120
120
|
anyscale/client/openapi_client/exceptions.py,sha256=3egwsXQG2j_vARbqgBxUO1xSltAhpfiHTYVP7VXTvU0,3792
|
121
121
|
anyscale/client/openapi_client/rest.py,sha256=Ehj37v7GHW6SXV067Hze5HE42ayKaGi6a6ZlkR7u3Lg,12501
|
122
122
|
anyscale/client/openapi_client/api/__init__.py,sha256=i8u7BI2xX1GrXTL3hN0pKpYIlnT-D_uDxH2ElOfYG1I,141
|
123
|
-
anyscale/client/openapi_client/api/default_api.py,sha256=
|
124
|
-
anyscale/client/openapi_client/models/__init__.py,sha256=
|
123
|
+
anyscale/client/openapi_client/api/default_api.py,sha256=ZE4su4Qoq_SDdJt6yFfoCe11NwnugVy_2GltALBXuHY,1895564
|
124
|
+
anyscale/client/openapi_client/models/__init__.py,sha256=xveymwyO79TG-b3lfrZWJWV3sp9tDwB0pMYrQpbqmc8,51664
|
125
125
|
anyscale/client/openapi_client/models/access_config.py,sha256=b2mA0qtuTA5PFbp6C61Jc_T2zUMaojM1v32IhZo0MfY,3648
|
126
126
|
anyscale/client/openapi_client/models/actor_status.py,sha256=6xyX_aIqURj2raBdY9DmBxsdDACFrqqYvElGiM6YG2E,2813
|
127
127
|
anyscale/client/openapi_client/models/admin_create_user.py,sha256=9DPr8D0lKgoEZ3Z2kGsAd8L7ocFCiP6woOGLVs8SRb8,7251
|
@@ -188,7 +188,7 @@ anyscale/client/openapi_client/models/cloud_collaborator_value.py,sha256=67xXXXl
|
|
188
188
|
anyscale/client/openapi_client/models/cloud_collaborators_query.py,sha256=G2pjjNQZ6lvktbjsbl-M9JV2Pwer8LiNPRB-4Xa68qI,3853
|
189
189
|
anyscale/client/openapi_client/models/cloud_config.py,sha256=cAn8jOFF9lX1Uy2Z1noDvXZ40s6aqqC9ZrUGU3A-R4M,7507
|
190
190
|
anyscale/client/openapi_client/models/cloud_data_bucket_access_mode.py,sha256=RpskZfLKeCtLrM-DKtpW9W6Xo9lKKrTq1HIOFGHUzaQ,2869
|
191
|
-
anyscale/client/openapi_client/models/cloud_data_bucket_file_type.py,sha256=
|
191
|
+
anyscale/client/openapi_client/models/cloud_data_bucket_file_type.py,sha256=Oz3rb36kt479cUWz-7s9lA42i7V9owda_q1QUfm2YJ8,3245
|
192
192
|
anyscale/client/openapi_client/models/cloud_data_bucket_presigned_upload_info.py,sha256=oDuxszeCGe8_mMBx84yIE9uQypMRNDvUoN8CR84QaDQ,10068
|
193
193
|
anyscale/client/openapi_client/models/cloud_data_bucket_presigned_upload_request.py,sha256=1a5lhtKDaXO46Mrdm6s5HMGFuoj5o_4kkEc7gFTadiI,5268
|
194
194
|
anyscale/client/openapi_client/models/cloud_data_bucket_presigned_upload_scheme.py,sha256=5si79TIn1yIdm52omXlmNmyrfHgbCykKPmVXtOIlWXQ,2943
|
@@ -552,9 +552,10 @@ anyscale/client/openapi_client/models/partition_info.py,sha256=XaAsTffyjTxdCZN3w
|
|
552
552
|
anyscale/client/openapi_client/models/pause_schedule.py,sha256=ru7_OzH7oDw5y2h1o5QNfKW8TXbkF1h-NDwccbUDRd0,3661
|
553
553
|
anyscale/client/openapi_client/models/permission_level.py,sha256=fGnBgKrcZkGLYl7RpQQm0_gaGzkTehnJjOnIX8G4jAw,2868
|
554
554
|
anyscale/client/openapi_client/models/plan_status.py,sha256=4Gl0dZDiPeP4ar87viHvggfjZwQeqWuMZ78i8bRWV9k,3855
|
555
|
+
anyscale/client/openapi_client/models/presigned_url_response.py,sha256=2f2D4FGpCCzaP2fRUBMGiMeG94JKu9OPQ0E3HOGhcQ4,3540
|
555
556
|
anyscale/client/openapi_client/models/production_job.py,sha256=fVDrDRonEiH6OVfKl3Xwc1RPaPs0S4EKLqBEzvRIraY,13672
|
556
557
|
anyscale/client/openapi_client/models/production_job_config.py,sha256=cW2TxSTUw-dDm3kGWa_tNet7dmJM3VVPJ75pWumosiA,12527
|
557
|
-
anyscale/client/openapi_client/models/production_job_event.py,sha256=
|
558
|
+
anyscale/client/openapi_client/models/production_job_event.py,sha256=TbXg3vxM8FKkctaYg8BQKbjFjiXCbivQa362t_afz54,12829
|
558
559
|
anyscale/client/openapi_client/models/production_job_event_scope_filter.py,sha256=12DobzeEMTXhjDgELgR4noOLLodf-7lkwHcER2IED7s,2910
|
559
560
|
anyscale/client/openapi_client/models/production_job_state_transition.py,sha256=yj6OVCo_bmJYNSa3t7RquX98KPdyaL3M-qlDcSwPUPU,9692
|
560
561
|
anyscale/client/openapi_client/models/productionjob_response.py,sha256=5ft3ywRCus84N9g1FUt85PPe2FVRHyQBFBaPThG0TAA,3561
|
@@ -666,7 +667,7 @@ anyscale/client/openapi_client/models/task_state.py,sha256=KpRA6VImK3r0qNeaiHh4a
|
|
666
667
|
anyscale/client/openapi_client/models/task_summary.py,sha256=8GIpf9xxmPDV8LJgIsGmSQex2R6CDKx0oJ9_VrL7oPw,9102
|
667
668
|
anyscale/client/openapi_client/models/task_table_config.py,sha256=sy9cStVRjjT6KFU_47ibBbSRPf7fXjXe9YW2hwtPFhM,6928
|
668
669
|
anyscale/client/openapi_client/models/task_table_response.py,sha256=T8VDBMlOzD1c2hY_Q1JdOF8ZF1MqA5JUMbnRjCKZmcg,5074
|
669
|
-
anyscale/client/openapi_client/models/task_table_row.py,sha256=
|
670
|
+
anyscale/client/openapi_client/models/task_table_row.py,sha256=7fXOimaIWXfTd7SLMsktKVUH6Mg7P4IOshBCL3bm9rs,16151
|
670
671
|
anyscale/client/openapi_client/models/task_type.py,sha256=BwGeFgSgxL8aazGdhr58L7KyPHK5EqRrE_rVWuWyWCE,2807
|
671
672
|
anyscale/client/openapi_client/models/tasksummary_response.py,sha256=sgOV63ZyYroVvcLbISXz0LU44tW8tLCefcqYB1WFsQ0,3539
|
672
673
|
anyscale/client/openapi_client/models/text_query.py,sha256=aMcKF6nRme1J1jYKhvqUIG8VzlcDN72znSFF9kKCc2Y,5107
|
@@ -747,7 +748,7 @@ anyscale/client/openapi_client/models/write_project.py,sha256=48Jym8VDE57cZXTnVH
|
|
747
748
|
anyscale/client/openapi_client/models/write_support_request.py,sha256=pFOalGDQi9FCDjeJV7ccBpq6iRq1Sub4NBfcUVfCglE,3614
|
748
749
|
anyscale/cloud/__init__.py,sha256=cpMh-fHKh-LaK2VKF7uDtUN4gnFXhgWnVrtaIEZPPuU,4508
|
749
750
|
anyscale/cloud/commands.py,sha256=2tGXjhL4QinVUE2ayGhUNRnsRPgHdSust1flWBi7QIw,4159
|
750
|
-
anyscale/cloud/models.py,sha256=
|
751
|
+
anyscale/cloud/models.py,sha256=cy2NPzBmyg614QXqDe69Lx627XcMSSTXe20jPFY6C14,19059
|
751
752
|
anyscale/cloud/_private/cloud_sdk.py,sha256=5TBGyGSjMI4jLOnSle1WWC6za0psP9xgTGWU2LgwemA,4099
|
752
753
|
anyscale/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
753
754
|
anyscale/commands/aggregated_instance_usage_commands.py,sha256=TRP1X3hdIWbKg9V20VtazlDXsYAeV--M0DH3-Z5tnj4,2293
|
@@ -797,7 +798,7 @@ anyscale/connect_utils/start_interactive_session.py,sha256=DbuIK2wuWofmbwJ9MLbsb
|
|
797
798
|
anyscale/controllers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
798
799
|
anyscale/controllers/auth_controller.py,sha256=hDY2sPvUP8pvh8PnlDYH5rCHjQes2v3b_KBVjMbrzeE,5127
|
799
800
|
anyscale/controllers/base_controller.py,sha256=1QFJoScFUV7YTzpKarhwPOc1SvI-xqX3TZmwxKonW6I,1998
|
800
|
-
anyscale/controllers/cloud_controller.py,sha256=
|
801
|
+
anyscale/controllers/cloud_controller.py,sha256=Yjrqmy-gcUXD0mmTyVON0fRc2ok0bReGbNKn2qixsOY,202329
|
801
802
|
anyscale/controllers/cloud_file_storage_utils.py,sha256=ifaqClEybTgxhqGWHYoH1vrlbxwjRuO-De_3666R2O4,6987
|
802
803
|
anyscale/controllers/cloud_functional_verification_controller.py,sha256=YsEfdHT9hPtxy_3a5Q62UlRXW0iFJ1lVS4IZ_NHoemE,33399
|
803
804
|
anyscale/controllers/cluster_controller.py,sha256=Sb5wVjrjpycg5iqmENAVtZ4iy9Kr6kM97_ck-KH85LM,28745
|
@@ -1091,10 +1092,10 @@ anyscale/workspace/__init__.py,sha256=Innbm5ZhCyADEVBiYSo_vbpKwUNcMzVSAfxIGKOYe6
|
|
1091
1092
|
anyscale/workspace/commands.py,sha256=GBwZenhxe4LFAOCoW8y8KLSgm2HxMxozJ3njEcx53QE,18555
|
1092
1093
|
anyscale/workspace/models.py,sha256=uiMqoJRQNRgTcOIIsysSrtlHMtnI7paUWS34EN626Cg,10016
|
1093
1094
|
anyscale/workspace/_private/workspace_sdk.py,sha256=2CMeYfJt0UtIFCocDn1ukw1iI5esKHdopLe6duEs-qE,27599
|
1094
|
-
anyscale-0.26.
|
1095
|
-
anyscale-0.26.
|
1096
|
-
anyscale-0.26.
|
1097
|
-
anyscale-0.26.
|
1098
|
-
anyscale-0.26.
|
1099
|
-
anyscale-0.26.
|
1100
|
-
anyscale-0.26.
|
1095
|
+
anyscale-0.26.55.dist-info/licenses/LICENSE,sha256=UOPu974Wzsna6frFv1mu4VrZgNdZT7lbcNPzo5ue3qs,3494
|
1096
|
+
anyscale-0.26.55.dist-info/licenses/NOTICE,sha256=gHqDhSnUYlRXX-mDOL5FtE7774oiKyV_HO80qM3r9Xo,196
|
1097
|
+
anyscale-0.26.55.dist-info/METADATA,sha256=Eckny4k8rW5-VXvfnrA2lu9Mx6GXNWP_aPUMFeMksLo,3231
|
1098
|
+
anyscale-0.26.55.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
1099
|
+
anyscale-0.26.55.dist-info/entry_points.txt,sha256=NqO18sCZn6zG6J0S38itjcN00s7aE3C3v3k5lMAfCLk,51
|
1100
|
+
anyscale-0.26.55.dist-info/top_level.txt,sha256=g3NVNS8Oh0NZwbFFgeX696C5MZZkS5dqV2NqcsbDRJE,9
|
1101
|
+
anyscale-0.26.55.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|