anyscale 0.26.55__py3-none-any.whl → 0.26.57__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/docgen/__main__.py +7 -0
- anyscale/_private/docgen/models.md +1 -0
- anyscale/client/README.md +3 -0
- anyscale/client/openapi_client/__init__.py +3 -0
- anyscale/client/openapi_client/models/__init__.py +3 -0
- anyscale/client/openapi_client/models/decorated_cloud_resource.py +30 -3
- anyscale/client/openapi_client/models/decorated_session.py +29 -1
- anyscale/client/openapi_client/models/operator_check_result.py +177 -0
- anyscale/client/openapi_client/models/operator_check_status.py +102 -0
- anyscale/client/openapi_client/models/operator_status.py +4 -4
- anyscale/client/openapi_client/models/operator_status_details.py +178 -0
- anyscale/cloud_resource.py +11 -11
- anyscale/commands/service_commands.py +10 -7
- anyscale/connect_utils/start_interactive_session.py +0 -1
- anyscale/sdk/anyscale_client/models/session.py +29 -1
- anyscale/service/__init__.py +5 -2
- anyscale/service/_private/service_sdk.py +10 -10
- anyscale/service/commands.py +3 -2
- anyscale/service/models.py +1 -1
- anyscale/version.py +1 -1
- {anyscale-0.26.55.dist-info → anyscale-0.26.57.dist-info}/METADATA +1 -1
- {anyscale-0.26.55.dist-info → anyscale-0.26.57.dist-info}/RECORD +27 -24
- {anyscale-0.26.55.dist-info → anyscale-0.26.57.dist-info}/WHEEL +0 -0
- {anyscale-0.26.55.dist-info → anyscale-0.26.57.dist-info}/entry_points.txt +0 -0
- {anyscale-0.26.55.dist-info → anyscale-0.26.57.dist-info}/licenses/LICENSE +0 -0
- {anyscale-0.26.55.dist-info → anyscale-0.26.57.dist-info}/licenses/NOTICE +0 -0
- {anyscale-0.26.55.dist-info → anyscale-0.26.57.dist-info}/top_level.txt +0 -0
@@ -2,6 +2,7 @@
|
|
2
2
|
|
3
3
|
Usage: python -m anyscale._private.docgen --help
|
4
4
|
"""
|
5
|
+
|
5
6
|
import os
|
6
7
|
|
7
8
|
import click
|
@@ -81,6 +82,8 @@ from anyscale.schedule.models import ScheduleConfig, ScheduleState, ScheduleStat
|
|
81
82
|
from anyscale.service.models import (
|
82
83
|
RayGCSExternalStorageConfig,
|
83
84
|
ServiceConfig,
|
85
|
+
ServiceSortField,
|
86
|
+
ServiceSortOrder,
|
84
87
|
ServiceState,
|
85
88
|
ServiceStatus,
|
86
89
|
ServiceVersionState,
|
@@ -253,6 +256,7 @@ ALL_MODULES = [
|
|
253
256
|
filename="service-api.md",
|
254
257
|
cli_prefix="anyscale service",
|
255
258
|
cli_commands=[
|
259
|
+
service_commands.list,
|
256
260
|
service_commands.deploy,
|
257
261
|
service_commands.status,
|
258
262
|
service_commands.wait,
|
@@ -263,6 +267,7 @@ ALL_MODULES = [
|
|
263
267
|
],
|
264
268
|
sdk_prefix="anyscale.service",
|
265
269
|
sdk_commands=[
|
270
|
+
anyscale.service.list,
|
266
271
|
anyscale.service.deploy,
|
267
272
|
anyscale.service.status,
|
268
273
|
anyscale.service.wait,
|
@@ -279,6 +284,8 @@ ALL_MODULES = [
|
|
279
284
|
ServiceState,
|
280
285
|
ServiceVersionStatus,
|
281
286
|
ServiceVersionState,
|
287
|
+
ServiceSortField,
|
288
|
+
ServiceSortOrder,
|
282
289
|
],
|
283
290
|
# The following commands are legacy
|
284
291
|
legacy_sdk_commands={
|
@@ -1620,6 +1620,7 @@ Name | Type | Description | Notes
|
|
1620
1620
|
**serve_metrics_dashboard_url** | **str** | URL for Serve Grafana dashboard for this Session. This field will only be populated after the Session finishes starting. | [optional] [default to null]
|
1621
1621
|
**serve_deployment_metrics_dashboard_url** | **str** | URL for Serve deployment Grafana dashboard for this Session. This field will only be populated after the Session finishes starting. | [optional] [default to null]
|
1622
1622
|
**serve_llm_metrics_dashboard_url** | **str** | URL for Serve LLM Grafana dashboard for this Session. This field will only be populated after the Session finishes starting. | [optional] [default to null]
|
1623
|
+
**supports_full_grafana_view** | **bool** | Whether the session supports full Grafana embedding view. This field will only be populated after the Session finishes starting. | [optional] [default to false]
|
1623
1624
|
**persistent_metrics_url** | **str** | URL for persistent Grafana (metrics) dashboard for this Session in the non-running cluster state. This field will only be populated after the Session finishes starting. | [optional] [default to null]
|
1624
1625
|
**connect_url** | **str** | URL for Anyscale connect for this Session. This field will only be populated after the Session finishes starting. | [optional] [default to null]
|
1625
1626
|
**jupyter_notebook_url** | **str** | URL for Jupyter Lab for this Session. This field will only be populated after the Session finishes starting. | [optional] [default to null]
|
anyscale/client/README.md
CHANGED
@@ -793,9 +793,12 @@ Class | Method | HTTP request | Description
|
|
793
793
|
- [OperationProgress](docs/OperationProgress.md)
|
794
794
|
- [OperationResult](docs/OperationResult.md)
|
795
795
|
- [OperatorBranch](docs/OperatorBranch.md)
|
796
|
+
- [OperatorCheckResult](docs/OperatorCheckResult.md)
|
797
|
+
- [OperatorCheckStatus](docs/OperatorCheckStatus.md)
|
796
798
|
- [OperatorId](docs/OperatorId.md)
|
797
799
|
- [OperatorMetrics](docs/OperatorMetrics.md)
|
798
800
|
- [OperatorStatus](docs/OperatorStatus.md)
|
801
|
+
- [OperatorStatusDetails](docs/OperatorStatusDetails.md)
|
799
802
|
- [Organization](docs/Organization.md)
|
800
803
|
- [OrganizationCollaborator](docs/OrganizationCollaborator.md)
|
801
804
|
- [OrganizationConfiguration](docs/OrganizationConfiguration.md)
|
@@ -432,9 +432,12 @@ from openapi_client.models.operation_error import OperationError
|
|
432
432
|
from openapi_client.models.operation_progress import OperationProgress
|
433
433
|
from openapi_client.models.operation_result import OperationResult
|
434
434
|
from openapi_client.models.operator_branch import OperatorBranch
|
435
|
+
from openapi_client.models.operator_check_result import OperatorCheckResult
|
436
|
+
from openapi_client.models.operator_check_status import OperatorCheckStatus
|
435
437
|
from openapi_client.models.operator_id import OperatorId
|
436
438
|
from openapi_client.models.operator_metrics import OperatorMetrics
|
437
439
|
from openapi_client.models.operator_status import OperatorStatus
|
440
|
+
from openapi_client.models.operator_status_details import OperatorStatusDetails
|
438
441
|
from openapi_client.models.organization import Organization
|
439
442
|
from openapi_client.models.organization_collaborator import OrganizationCollaborator
|
440
443
|
from openapi_client.models.organization_configuration import OrganizationConfiguration
|
@@ -418,9 +418,12 @@ from openapi_client.models.operation_error import OperationError
|
|
418
418
|
from openapi_client.models.operation_progress import OperationProgress
|
419
419
|
from openapi_client.models.operation_result import OperationResult
|
420
420
|
from openapi_client.models.operator_branch import OperatorBranch
|
421
|
+
from openapi_client.models.operator_check_result import OperatorCheckResult
|
422
|
+
from openapi_client.models.operator_check_status import OperatorCheckStatus
|
421
423
|
from openapi_client.models.operator_id import OperatorId
|
422
424
|
from openapi_client.models.operator_metrics import OperatorMetrics
|
423
425
|
from openapi_client.models.operator_status import OperatorStatus
|
426
|
+
from openapi_client.models.operator_status_details import OperatorStatusDetails
|
424
427
|
from openapi_client.models.organization import Organization
|
425
428
|
from openapi_client.models.organization_collaborator import OrganizationCollaborator
|
426
429
|
from openapi_client.models.organization_configuration import OrganizationConfiguration
|
@@ -47,7 +47,8 @@ class DecoratedCloudResource(object):
|
|
47
47
|
'kubernetes_config': 'KubernetesConfig',
|
48
48
|
'created_at': 'datetime',
|
49
49
|
'is_default': 'bool',
|
50
|
-
'operator_status': 'OperatorStatus'
|
50
|
+
'operator_status': 'OperatorStatus',
|
51
|
+
'operator_status_details': 'OperatorStatusDetails'
|
51
52
|
}
|
52
53
|
|
53
54
|
attribute_map = {
|
@@ -65,10 +66,11 @@ class DecoratedCloudResource(object):
|
|
65
66
|
'kubernetes_config': 'kubernetes_config',
|
66
67
|
'created_at': 'created_at',
|
67
68
|
'is_default': 'is_default',
|
68
|
-
'operator_status': 'operator_status'
|
69
|
+
'operator_status': 'operator_status',
|
70
|
+
'operator_status_details': 'operator_status_details'
|
69
71
|
}
|
70
72
|
|
71
|
-
def __init__(self, cloud_resource_id=None, cloud_deployment_id=None, name=None, provider=None, compute_stack=None, region=None, networking_mode=None, object_storage=None, file_storage=None, aws_config=None, gcp_config=None, kubernetes_config=None, created_at=None, is_default=False, operator_status=None, local_vars_configuration=None): # noqa: E501
|
73
|
+
def __init__(self, cloud_resource_id=None, cloud_deployment_id=None, name=None, provider=None, compute_stack=None, region=None, networking_mode=None, object_storage=None, file_storage=None, aws_config=None, gcp_config=None, kubernetes_config=None, created_at=None, is_default=False, operator_status=None, operator_status_details=None, local_vars_configuration=None): # noqa: E501
|
72
74
|
"""DecoratedCloudResource - a model defined in OpenAPI""" # noqa: E501
|
73
75
|
if local_vars_configuration is None:
|
74
76
|
local_vars_configuration = Configuration()
|
@@ -89,6 +91,7 @@ class DecoratedCloudResource(object):
|
|
89
91
|
self._created_at = None
|
90
92
|
self._is_default = None
|
91
93
|
self._operator_status = None
|
94
|
+
self._operator_status_details = None
|
92
95
|
self.discriminator = None
|
93
96
|
|
94
97
|
if cloud_resource_id is not None:
|
@@ -114,6 +117,7 @@ class DecoratedCloudResource(object):
|
|
114
117
|
if is_default is not None:
|
115
118
|
self.is_default = is_default
|
116
119
|
self.operator_status = operator_status
|
120
|
+
self.operator_status_details = operator_status_details
|
117
121
|
|
118
122
|
@property
|
119
123
|
def cloud_resource_id(self):
|
@@ -462,6 +466,29 @@ class DecoratedCloudResource(object):
|
|
462
466
|
|
463
467
|
self._operator_status = operator_status
|
464
468
|
|
469
|
+
@property
|
470
|
+
def operator_status_details(self):
|
471
|
+
"""Gets the operator_status_details of this DecoratedCloudResource. # noqa: E501
|
472
|
+
|
473
|
+
The details of the operator status. # noqa: E501
|
474
|
+
|
475
|
+
:return: The operator_status_details of this DecoratedCloudResource. # noqa: E501
|
476
|
+
:rtype: OperatorStatusDetails
|
477
|
+
"""
|
478
|
+
return self._operator_status_details
|
479
|
+
|
480
|
+
@operator_status_details.setter
|
481
|
+
def operator_status_details(self, operator_status_details):
|
482
|
+
"""Sets the operator_status_details of this DecoratedCloudResource.
|
483
|
+
|
484
|
+
The details of the operator status. # noqa: E501
|
485
|
+
|
486
|
+
:param operator_status_details: The operator_status_details of this DecoratedCloudResource. # noqa: E501
|
487
|
+
:type: OperatorStatusDetails
|
488
|
+
"""
|
489
|
+
|
490
|
+
self._operator_status_details = operator_status_details
|
491
|
+
|
465
492
|
def to_dict(self):
|
466
493
|
"""Returns the model properties as a dict"""
|
467
494
|
result = {}
|
@@ -61,6 +61,7 @@ class DecoratedSession(object):
|
|
61
61
|
'serve_metrics_dashboard_url': 'str',
|
62
62
|
'serve_deployment_metrics_dashboard_url': 'str',
|
63
63
|
'serve_llm_metrics_dashboard_url': 'str',
|
64
|
+
'supports_full_grafana_view': 'bool',
|
64
65
|
'persistent_metrics_url': 'str',
|
65
66
|
'connect_url': 'str',
|
66
67
|
'jupyter_notebook_url': 'str',
|
@@ -124,6 +125,7 @@ class DecoratedSession(object):
|
|
124
125
|
'serve_metrics_dashboard_url': 'serve_metrics_dashboard_url',
|
125
126
|
'serve_deployment_metrics_dashboard_url': 'serve_deployment_metrics_dashboard_url',
|
126
127
|
'serve_llm_metrics_dashboard_url': 'serve_llm_metrics_dashboard_url',
|
128
|
+
'supports_full_grafana_view': 'supports_full_grafana_view',
|
127
129
|
'persistent_metrics_url': 'persistent_metrics_url',
|
128
130
|
'connect_url': 'connect_url',
|
129
131
|
'jupyter_notebook_url': 'jupyter_notebook_url',
|
@@ -158,7 +160,7 @@ class DecoratedSession(object):
|
|
158
160
|
'latest_started_at': 'latest_started_at'
|
159
161
|
}
|
160
162
|
|
161
|
-
def __init__(self, name=None, project_id=None, cloud_id=None, cluster_config=None, build_id=None, compute_template_id=None, idle_timeout=120, uses_app_config=False, allow_public_internet_traffic=False, user_service_access=None, user_service_token=None, ha_job_id=None, id=None, state=None, pending_state=None, state_data=None, status=None, status_details=None, creator_id=None, created_at=None, archived_at=None, webterminal_auth_url=None, metrics_dashboard_url=None, data_metrics_dashboard_url=None, train_metrics_dashboard_url=None, serve_metrics_dashboard_url=None, serve_deployment_metrics_dashboard_url=None, serve_llm_metrics_dashboard_url=None, persistent_metrics_url=None, connect_url=None, jupyter_notebook_url=None, ray_dashboard_url=None, access_token=None, service_proxy_url=None, tensorboard_available=None, cluster_config_last_modified_at=None, host_name=None, head_node_ip=None, ssh_authorized_keys=None, ssh_private_key=None, anyscaled_config=None, anyscaled_config_generated_at=None, default_build_id=None, idle_timeout_last_activity_at=None, ray_version=None, ray_version_last_updated_at=None, user_service_url=None, ray_component_activities_last_reported_at=None, activity_details=None, maximum_uptime_will_terminate_cluster_at=None, idle_termination_status=None, ray_dashboard_snapshot_last_reported_at=None, build=None, cloud=None, creator=None, compute_template=None, idle_time_remaining_seconds=None, access=None, project=None, latest_started_at=None, local_vars_configuration=None): # noqa: E501
|
163
|
+
def __init__(self, name=None, project_id=None, cloud_id=None, cluster_config=None, build_id=None, compute_template_id=None, idle_timeout=120, uses_app_config=False, allow_public_internet_traffic=False, user_service_access=None, user_service_token=None, ha_job_id=None, id=None, state=None, pending_state=None, state_data=None, status=None, status_details=None, creator_id=None, created_at=None, archived_at=None, webterminal_auth_url=None, metrics_dashboard_url=None, data_metrics_dashboard_url=None, train_metrics_dashboard_url=None, serve_metrics_dashboard_url=None, serve_deployment_metrics_dashboard_url=None, serve_llm_metrics_dashboard_url=None, supports_full_grafana_view=False, persistent_metrics_url=None, connect_url=None, jupyter_notebook_url=None, ray_dashboard_url=None, access_token=None, service_proxy_url=None, tensorboard_available=None, cluster_config_last_modified_at=None, host_name=None, head_node_ip=None, ssh_authorized_keys=None, ssh_private_key=None, anyscaled_config=None, anyscaled_config_generated_at=None, default_build_id=None, idle_timeout_last_activity_at=None, ray_version=None, ray_version_last_updated_at=None, user_service_url=None, ray_component_activities_last_reported_at=None, activity_details=None, maximum_uptime_will_terminate_cluster_at=None, idle_termination_status=None, ray_dashboard_snapshot_last_reported_at=None, build=None, cloud=None, creator=None, compute_template=None, idle_time_remaining_seconds=None, access=None, project=None, latest_started_at=None, local_vars_configuration=None): # noqa: E501
|
162
164
|
"""DecoratedSession - a model defined in OpenAPI""" # noqa: E501
|
163
165
|
if local_vars_configuration is None:
|
164
166
|
local_vars_configuration = Configuration()
|
@@ -192,6 +194,7 @@ class DecoratedSession(object):
|
|
192
194
|
self._serve_metrics_dashboard_url = None
|
193
195
|
self._serve_deployment_metrics_dashboard_url = None
|
194
196
|
self._serve_llm_metrics_dashboard_url = None
|
197
|
+
self._supports_full_grafana_view = None
|
195
198
|
self._persistent_metrics_url = None
|
196
199
|
self._connect_url = None
|
197
200
|
self._jupyter_notebook_url = None
|
@@ -274,6 +277,8 @@ class DecoratedSession(object):
|
|
274
277
|
self.serve_deployment_metrics_dashboard_url = serve_deployment_metrics_dashboard_url
|
275
278
|
if serve_llm_metrics_dashboard_url is not None:
|
276
279
|
self.serve_llm_metrics_dashboard_url = serve_llm_metrics_dashboard_url
|
280
|
+
if supports_full_grafana_view is not None:
|
281
|
+
self.supports_full_grafana_view = supports_full_grafana_view
|
277
282
|
if persistent_metrics_url is not None:
|
278
283
|
self.persistent_metrics_url = persistent_metrics_url
|
279
284
|
if connect_url is not None:
|
@@ -992,6 +997,29 @@ class DecoratedSession(object):
|
|
992
997
|
|
993
998
|
self._serve_llm_metrics_dashboard_url = serve_llm_metrics_dashboard_url
|
994
999
|
|
1000
|
+
@property
|
1001
|
+
def supports_full_grafana_view(self):
|
1002
|
+
"""Gets the supports_full_grafana_view of this DecoratedSession. # noqa: E501
|
1003
|
+
|
1004
|
+
Whether the session supports full Grafana embedding view. This field will only be populated after the Session finishes starting. # noqa: E501
|
1005
|
+
|
1006
|
+
:return: The supports_full_grafana_view of this DecoratedSession. # noqa: E501
|
1007
|
+
:rtype: bool
|
1008
|
+
"""
|
1009
|
+
return self._supports_full_grafana_view
|
1010
|
+
|
1011
|
+
@supports_full_grafana_view.setter
|
1012
|
+
def supports_full_grafana_view(self, supports_full_grafana_view):
|
1013
|
+
"""Sets the supports_full_grafana_view of this DecoratedSession.
|
1014
|
+
|
1015
|
+
Whether the session supports full Grafana embedding view. This field will only be populated after the Session finishes starting. # noqa: E501
|
1016
|
+
|
1017
|
+
:param supports_full_grafana_view: The supports_full_grafana_view of this DecoratedSession. # noqa: E501
|
1018
|
+
:type: bool
|
1019
|
+
"""
|
1020
|
+
|
1021
|
+
self._supports_full_grafana_view = supports_full_grafana_view
|
1022
|
+
|
995
1023
|
@property
|
996
1024
|
def persistent_metrics_url(self):
|
997
1025
|
"""Gets the persistent_metrics_url of this DecoratedSession. # noqa: E501
|
@@ -0,0 +1,177 @@
|
|
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 OperatorCheckResult(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
|
+
'name': 'str',
|
37
|
+
'status': 'OperatorCheckStatus',
|
38
|
+
'details': 'str'
|
39
|
+
}
|
40
|
+
|
41
|
+
attribute_map = {
|
42
|
+
'name': 'name',
|
43
|
+
'status': 'status',
|
44
|
+
'details': 'details'
|
45
|
+
}
|
46
|
+
|
47
|
+
def __init__(self, name=None, status=None, details=None, local_vars_configuration=None): # noqa: E501
|
48
|
+
"""OperatorCheckResult - a model defined in OpenAPI""" # noqa: E501
|
49
|
+
if local_vars_configuration is None:
|
50
|
+
local_vars_configuration = Configuration()
|
51
|
+
self.local_vars_configuration = local_vars_configuration
|
52
|
+
|
53
|
+
self._name = None
|
54
|
+
self._status = None
|
55
|
+
self._details = None
|
56
|
+
self.discriminator = None
|
57
|
+
|
58
|
+
if name is not None:
|
59
|
+
self.name = name
|
60
|
+
if status is not None:
|
61
|
+
self.status = status
|
62
|
+
self.details = details
|
63
|
+
|
64
|
+
@property
|
65
|
+
def name(self):
|
66
|
+
"""Gets the name of this OperatorCheckResult. # noqa: E501
|
67
|
+
|
68
|
+
The name of the operator check. # noqa: E501
|
69
|
+
|
70
|
+
:return: The name of this OperatorCheckResult. # noqa: E501
|
71
|
+
:rtype: str
|
72
|
+
"""
|
73
|
+
return self._name
|
74
|
+
|
75
|
+
@name.setter
|
76
|
+
def name(self, name):
|
77
|
+
"""Sets the name of this OperatorCheckResult.
|
78
|
+
|
79
|
+
The name of the operator check. # noqa: E501
|
80
|
+
|
81
|
+
:param name: The name of this OperatorCheckResult. # noqa: E501
|
82
|
+
:type: str
|
83
|
+
"""
|
84
|
+
|
85
|
+
self._name = name
|
86
|
+
|
87
|
+
@property
|
88
|
+
def status(self):
|
89
|
+
"""Gets the status of this OperatorCheckResult. # noqa: E501
|
90
|
+
|
91
|
+
The status of the operator check. # noqa: E501
|
92
|
+
|
93
|
+
:return: The status of this OperatorCheckResult. # noqa: E501
|
94
|
+
:rtype: OperatorCheckStatus
|
95
|
+
"""
|
96
|
+
return self._status
|
97
|
+
|
98
|
+
@status.setter
|
99
|
+
def status(self, status):
|
100
|
+
"""Sets the status of this OperatorCheckResult.
|
101
|
+
|
102
|
+
The status of the operator check. # noqa: E501
|
103
|
+
|
104
|
+
:param status: The status of this OperatorCheckResult. # noqa: E501
|
105
|
+
:type: OperatorCheckStatus
|
106
|
+
"""
|
107
|
+
|
108
|
+
self._status = status
|
109
|
+
|
110
|
+
@property
|
111
|
+
def details(self):
|
112
|
+
"""Gets the details of this OperatorCheckResult. # noqa: E501
|
113
|
+
|
114
|
+
The details of the operator check. # noqa: E501
|
115
|
+
|
116
|
+
:return: The details of this OperatorCheckResult. # noqa: E501
|
117
|
+
:rtype: str
|
118
|
+
"""
|
119
|
+
return self._details
|
120
|
+
|
121
|
+
@details.setter
|
122
|
+
def details(self, details):
|
123
|
+
"""Sets the details of this OperatorCheckResult.
|
124
|
+
|
125
|
+
The details of the operator check. # noqa: E501
|
126
|
+
|
127
|
+
:param details: The details of this OperatorCheckResult. # noqa: E501
|
128
|
+
:type: str
|
129
|
+
"""
|
130
|
+
|
131
|
+
self._details = details
|
132
|
+
|
133
|
+
def to_dict(self):
|
134
|
+
"""Returns the model properties as a dict"""
|
135
|
+
result = {}
|
136
|
+
|
137
|
+
for attr, _ in six.iteritems(self.openapi_types):
|
138
|
+
value = getattr(self, attr)
|
139
|
+
if isinstance(value, list):
|
140
|
+
result[attr] = list(map(
|
141
|
+
lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
|
142
|
+
value
|
143
|
+
))
|
144
|
+
elif hasattr(value, "to_dict"):
|
145
|
+
result[attr] = value.to_dict()
|
146
|
+
elif isinstance(value, dict):
|
147
|
+
result[attr] = dict(map(
|
148
|
+
lambda item: (item[0], item[1].to_dict())
|
149
|
+
if hasattr(item[1], "to_dict") else item,
|
150
|
+
value.items()
|
151
|
+
))
|
152
|
+
else:
|
153
|
+
result[attr] = value
|
154
|
+
|
155
|
+
return result
|
156
|
+
|
157
|
+
def to_str(self):
|
158
|
+
"""Returns the string representation of the model"""
|
159
|
+
return pprint.pformat(self.to_dict())
|
160
|
+
|
161
|
+
def __repr__(self):
|
162
|
+
"""For `print` and `pprint`"""
|
163
|
+
return self.to_str()
|
164
|
+
|
165
|
+
def __eq__(self, other):
|
166
|
+
"""Returns true if both objects are equal"""
|
167
|
+
if not isinstance(other, OperatorCheckResult):
|
168
|
+
return False
|
169
|
+
|
170
|
+
return self.to_dict() == other.to_dict()
|
171
|
+
|
172
|
+
def __ne__(self, other):
|
173
|
+
"""Returns true if both objects are not equal"""
|
174
|
+
if not isinstance(other, OperatorCheckResult):
|
175
|
+
return True
|
176
|
+
|
177
|
+
return self.to_dict() != other.to_dict()
|
@@ -0,0 +1,102 @@
|
|
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 OperatorCheckStatus(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
|
+
allowed enum values
|
30
|
+
"""
|
31
|
+
UNSPECIFIED = "UNSPECIFIED"
|
32
|
+
HEALTHY = "HEALTHY"
|
33
|
+
UNHEALTHY = "UNHEALTHY"
|
34
|
+
WARNING = "WARNING"
|
35
|
+
|
36
|
+
allowable_values = [UNSPECIFIED, HEALTHY, UNHEALTHY, WARNING] # noqa: E501
|
37
|
+
|
38
|
+
"""
|
39
|
+
Attributes:
|
40
|
+
openapi_types (dict): The key is attribute name
|
41
|
+
and the value is attribute type.
|
42
|
+
attribute_map (dict): The key is attribute name
|
43
|
+
and the value is json key in definition.
|
44
|
+
"""
|
45
|
+
openapi_types = {
|
46
|
+
}
|
47
|
+
|
48
|
+
attribute_map = {
|
49
|
+
}
|
50
|
+
|
51
|
+
def __init__(self, local_vars_configuration=None): # noqa: E501
|
52
|
+
"""OperatorCheckStatus - a model defined in OpenAPI""" # noqa: E501
|
53
|
+
if local_vars_configuration is None:
|
54
|
+
local_vars_configuration = Configuration()
|
55
|
+
self.local_vars_configuration = local_vars_configuration
|
56
|
+
self.discriminator = None
|
57
|
+
|
58
|
+
def to_dict(self):
|
59
|
+
"""Returns the model properties as a dict"""
|
60
|
+
result = {}
|
61
|
+
|
62
|
+
for attr, _ in six.iteritems(self.openapi_types):
|
63
|
+
value = getattr(self, attr)
|
64
|
+
if isinstance(value, list):
|
65
|
+
result[attr] = list(map(
|
66
|
+
lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
|
67
|
+
value
|
68
|
+
))
|
69
|
+
elif hasattr(value, "to_dict"):
|
70
|
+
result[attr] = value.to_dict()
|
71
|
+
elif isinstance(value, dict):
|
72
|
+
result[attr] = dict(map(
|
73
|
+
lambda item: (item[0], item[1].to_dict())
|
74
|
+
if hasattr(item[1], "to_dict") else item,
|
75
|
+
value.items()
|
76
|
+
))
|
77
|
+
else:
|
78
|
+
result[attr] = value
|
79
|
+
|
80
|
+
return result
|
81
|
+
|
82
|
+
def to_str(self):
|
83
|
+
"""Returns the string representation of the model"""
|
84
|
+
return pprint.pformat(self.to_dict())
|
85
|
+
|
86
|
+
def __repr__(self):
|
87
|
+
"""For `print` and `pprint`"""
|
88
|
+
return self.to_str()
|
89
|
+
|
90
|
+
def __eq__(self, other):
|
91
|
+
"""Returns true if both objects are equal"""
|
92
|
+
if not isinstance(other, OperatorCheckStatus):
|
93
|
+
return False
|
94
|
+
|
95
|
+
return self.to_dict() == other.to_dict()
|
96
|
+
|
97
|
+
def __ne__(self, other):
|
98
|
+
"""Returns true if both objects are not equal"""
|
99
|
+
if not isinstance(other, OperatorCheckStatus):
|
100
|
+
return True
|
101
|
+
|
102
|
+
return self.to_dict() != other.to_dict()
|
@@ -28,10 +28,10 @@ class OperatorStatus(object):
|
|
28
28
|
"""
|
29
29
|
allowed enum values
|
30
30
|
"""
|
31
|
-
UNSPECIFIED = "
|
32
|
-
HEALTHY = "
|
33
|
-
UNHEALTHY = "
|
34
|
-
DISCONNECTED = "
|
31
|
+
UNSPECIFIED = "UNSPECIFIED"
|
32
|
+
HEALTHY = "HEALTHY"
|
33
|
+
UNHEALTHY = "UNHEALTHY"
|
34
|
+
DISCONNECTED = "DISCONNECTED"
|
35
35
|
|
36
36
|
allowable_values = [UNSPECIFIED, HEALTHY, UNHEALTHY, DISCONNECTED] # noqa: E501
|
37
37
|
|
@@ -0,0 +1,178 @@
|
|
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 OperatorStatusDetails(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
|
+
'operator_version': 'str',
|
37
|
+
'check_results': 'list[OperatorCheckResult]',
|
38
|
+
'reported_at': 'datetime'
|
39
|
+
}
|
40
|
+
|
41
|
+
attribute_map = {
|
42
|
+
'operator_version': 'operator_version',
|
43
|
+
'check_results': 'check_results',
|
44
|
+
'reported_at': 'reported_at'
|
45
|
+
}
|
46
|
+
|
47
|
+
def __init__(self, operator_version=None, check_results=None, reported_at=None, local_vars_configuration=None): # noqa: E501
|
48
|
+
"""OperatorStatusDetails - a model defined in OpenAPI""" # noqa: E501
|
49
|
+
if local_vars_configuration is None:
|
50
|
+
local_vars_configuration = Configuration()
|
51
|
+
self.local_vars_configuration = local_vars_configuration
|
52
|
+
|
53
|
+
self._operator_version = None
|
54
|
+
self._check_results = None
|
55
|
+
self._reported_at = None
|
56
|
+
self.discriminator = None
|
57
|
+
|
58
|
+
if operator_version is not None:
|
59
|
+
self.operator_version = operator_version
|
60
|
+
if check_results is not None:
|
61
|
+
self.check_results = check_results
|
62
|
+
if reported_at is not None:
|
63
|
+
self.reported_at = reported_at
|
64
|
+
|
65
|
+
@property
|
66
|
+
def operator_version(self):
|
67
|
+
"""Gets the operator_version of this OperatorStatusDetails. # noqa: E501
|
68
|
+
|
69
|
+
The version of the Anyscale Operator. # noqa: E501
|
70
|
+
|
71
|
+
:return: The operator_version of this OperatorStatusDetails. # noqa: E501
|
72
|
+
:rtype: str
|
73
|
+
"""
|
74
|
+
return self._operator_version
|
75
|
+
|
76
|
+
@operator_version.setter
|
77
|
+
def operator_version(self, operator_version):
|
78
|
+
"""Sets the operator_version of this OperatorStatusDetails.
|
79
|
+
|
80
|
+
The version of the Anyscale Operator. # noqa: E501
|
81
|
+
|
82
|
+
:param operator_version: The operator_version of this OperatorStatusDetails. # noqa: E501
|
83
|
+
:type: str
|
84
|
+
"""
|
85
|
+
|
86
|
+
self._operator_version = operator_version
|
87
|
+
|
88
|
+
@property
|
89
|
+
def check_results(self):
|
90
|
+
"""Gets the check_results of this OperatorStatusDetails. # noqa: E501
|
91
|
+
|
92
|
+
The results of the operator checks. # noqa: E501
|
93
|
+
|
94
|
+
:return: The check_results of this OperatorStatusDetails. # noqa: E501
|
95
|
+
:rtype: list[OperatorCheckResult]
|
96
|
+
"""
|
97
|
+
return self._check_results
|
98
|
+
|
99
|
+
@check_results.setter
|
100
|
+
def check_results(self, check_results):
|
101
|
+
"""Sets the check_results of this OperatorStatusDetails.
|
102
|
+
|
103
|
+
The results of the operator checks. # noqa: E501
|
104
|
+
|
105
|
+
:param check_results: The check_results of this OperatorStatusDetails. # noqa: E501
|
106
|
+
:type: list[OperatorCheckResult]
|
107
|
+
"""
|
108
|
+
|
109
|
+
self._check_results = check_results
|
110
|
+
|
111
|
+
@property
|
112
|
+
def reported_at(self):
|
113
|
+
"""Gets the reported_at of this OperatorStatusDetails. # noqa: E501
|
114
|
+
|
115
|
+
The timestamp when the operator status was last reported. # noqa: E501
|
116
|
+
|
117
|
+
:return: The reported_at of this OperatorStatusDetails. # noqa: E501
|
118
|
+
:rtype: datetime
|
119
|
+
"""
|
120
|
+
return self._reported_at
|
121
|
+
|
122
|
+
@reported_at.setter
|
123
|
+
def reported_at(self, reported_at):
|
124
|
+
"""Sets the reported_at of this OperatorStatusDetails.
|
125
|
+
|
126
|
+
The timestamp when the operator status was last reported. # noqa: E501
|
127
|
+
|
128
|
+
:param reported_at: The reported_at of this OperatorStatusDetails. # noqa: E501
|
129
|
+
:type: datetime
|
130
|
+
"""
|
131
|
+
|
132
|
+
self._reported_at = reported_at
|
133
|
+
|
134
|
+
def to_dict(self):
|
135
|
+
"""Returns the model properties as a dict"""
|
136
|
+
result = {}
|
137
|
+
|
138
|
+
for attr, _ in six.iteritems(self.openapi_types):
|
139
|
+
value = getattr(self, attr)
|
140
|
+
if isinstance(value, list):
|
141
|
+
result[attr] = list(map(
|
142
|
+
lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
|
143
|
+
value
|
144
|
+
))
|
145
|
+
elif hasattr(value, "to_dict"):
|
146
|
+
result[attr] = value.to_dict()
|
147
|
+
elif isinstance(value, dict):
|
148
|
+
result[attr] = dict(map(
|
149
|
+
lambda item: (item[0], item[1].to_dict())
|
150
|
+
if hasattr(item[1], "to_dict") else item,
|
151
|
+
value.items()
|
152
|
+
))
|
153
|
+
else:
|
154
|
+
result[attr] = value
|
155
|
+
|
156
|
+
return result
|
157
|
+
|
158
|
+
def to_str(self):
|
159
|
+
"""Returns the string representation of the model"""
|
160
|
+
return pprint.pformat(self.to_dict())
|
161
|
+
|
162
|
+
def __repr__(self):
|
163
|
+
"""For `print` and `pprint`"""
|
164
|
+
return self.to_str()
|
165
|
+
|
166
|
+
def __eq__(self, other):
|
167
|
+
"""Returns true if both objects are equal"""
|
168
|
+
if not isinstance(other, OperatorStatusDetails):
|
169
|
+
return False
|
170
|
+
|
171
|
+
return self.to_dict() == other.to_dict()
|
172
|
+
|
173
|
+
def __ne__(self, other):
|
174
|
+
"""Returns true if both objects are not equal"""
|
175
|
+
if not isinstance(other, OperatorStatusDetails):
|
176
|
+
return True
|
177
|
+
|
178
|
+
return self.to_dict() != other.to_dict()
|
anyscale/cloud_resource.py
CHANGED
@@ -50,6 +50,8 @@ S3_ARN_PREFIX = "arn:aws:s3:::"
|
|
50
50
|
S3_STORAGE_PREFIX = "s3://"
|
51
51
|
GCS_STORAGE_PREFIX = "gs://"
|
52
52
|
|
53
|
+
HTTPS_INGRESS_PORT = 443
|
54
|
+
|
53
55
|
|
54
56
|
def compare_dicts_diff(d1: Dict[Any, Any], d2: Dict[Any, Any]) -> str:
|
55
57
|
"""Returns a string representation of the difference of the two dictionaries.
|
@@ -480,8 +482,6 @@ def verify_aws_security_groups( # noqa: PLR0912, PLR0911
|
|
480
482
|
raise e
|
481
483
|
anyscale_security_groups.append(anyscale_security_group)
|
482
484
|
|
483
|
-
expected_open_ports = [443, 22] # 443 is for HTTPS ingress, 22 is for SSH
|
484
|
-
|
485
485
|
inbound_ip_permissions = [
|
486
486
|
ip_permission
|
487
487
|
for anyscale_security_group in anyscale_security_groups
|
@@ -499,20 +499,20 @@ def verify_aws_security_groups( # noqa: PLR0912, PLR0911
|
|
499
499
|
}
|
500
500
|
|
501
501
|
# Check inbound permissions
|
502
|
-
|
503
|
-
|
504
|
-
|
505
|
-
|
506
|
-
for inbound_ip_permission_port in inbound_ip_permissions_with_specific_port
|
507
|
-
):
|
508
|
-
missing_open_ports.append(port)
|
509
|
-
if missing_open_ports:
|
502
|
+
if not any(
|
503
|
+
inbound_ip_permission_port == HTTPS_INGRESS_PORT
|
504
|
+
for inbound_ip_permission_port in inbound_ip_permissions_with_specific_port
|
505
|
+
):
|
510
506
|
logger.warning(
|
511
|
-
f"Security groups {aws_security_group_ids} do not contain inbound permission for
|
507
|
+
f"Security groups {aws_security_group_ids} do not contain inbound permission for port {HTTPS_INGRESS_PORT}. This port is used for interaction with the clusters from Anyscale UI."
|
512
508
|
)
|
513
509
|
if strict:
|
514
510
|
return False
|
515
511
|
|
512
|
+
expected_open_ports = [
|
513
|
+
HTTPS_INGRESS_PORT,
|
514
|
+
22,
|
515
|
+
] # 22 was previously used for SSH but is no longer required.
|
516
516
|
if len(inbound_ip_permissions_with_specific_port) > len(expected_open_ports):
|
517
517
|
logger.warning(
|
518
518
|
f"Security groups {aws_security_group_ids} allows access to more than {expected_open_ports}. This may not be safe by default."
|
@@ -31,10 +31,10 @@ from anyscale.service.models import (
|
|
31
31
|
ServiceConfig,
|
32
32
|
ServiceLogMode,
|
33
33
|
ServiceSortField,
|
34
|
+
ServiceSortOrder,
|
34
35
|
ServiceState,
|
35
36
|
ServiceStatus,
|
36
37
|
ServiceVersionStatus,
|
37
|
-
SortOrder,
|
38
38
|
)
|
39
39
|
from anyscale.util import (
|
40
40
|
AnyscaleJSONEncoder,
|
@@ -658,13 +658,13 @@ def validate_max_items(ctx, param, value):
|
|
658
658
|
return validate_non_negative_arg(ctx, param, value)
|
659
659
|
|
660
660
|
|
661
|
-
def _parse_sort_option(sort: Optional[str],) -> Tuple[Optional[str],
|
661
|
+
def _parse_sort_option(sort: Optional[str],) -> Tuple[Optional[str], ServiceSortOrder]:
|
662
662
|
"""
|
663
663
|
Given a raw sort string (e.g. "-created_at"), return
|
664
664
|
(canonical_field_name, SortOrder).
|
665
665
|
"""
|
666
666
|
if not sort:
|
667
|
-
return None,
|
667
|
+
return None, ServiceSortOrder.ASC
|
668
668
|
|
669
669
|
# build case-insensitive map of allowed fields
|
670
670
|
allowed = {f.value.lower(): f.value for f in ServiceSortField.__members__.values()}
|
@@ -672,10 +672,10 @@ def _parse_sort_option(sort: Optional[str],) -> Tuple[Optional[str], SortOrder]:
|
|
672
672
|
# detect leading '-' for descending
|
673
673
|
if sort.startswith("-"):
|
674
674
|
raw = sort[1:]
|
675
|
-
order =
|
675
|
+
order = ServiceSortOrder.DESC
|
676
676
|
else:
|
677
677
|
raw = sort
|
678
|
-
order =
|
678
|
+
order = ServiceSortOrder.ASC
|
679
679
|
|
680
680
|
key = raw.lower()
|
681
681
|
if key not in allowed:
|
@@ -726,7 +726,10 @@ def _format_service_output_data(svc: ServiceStatus) -> Dict[str, str]:
|
|
726
726
|
|
727
727
|
|
728
728
|
@service_cli.command(
|
729
|
-
name="list",
|
729
|
+
name="list",
|
730
|
+
help="List services.",
|
731
|
+
cls=AnyscaleCommand,
|
732
|
+
example=command_examples.SERVICE_LIST_EXAMPLE,
|
730
733
|
)
|
731
734
|
@click.option("--service-id", "--id", help="ID of the service to display.")
|
732
735
|
@click.option("--name", "-n", help="Name of the service to display.")
|
@@ -979,7 +982,7 @@ def terminate(
|
|
979
982
|
anyscale.service.terminate(id=service_id)
|
980
983
|
log.info(f"Service {service_id} terminate initiated.")
|
981
984
|
log.info(
|
982
|
-
f
|
985
|
+
f"View the service in the UI at {get_endpoint(f'/services/{service_id}')}"
|
983
986
|
)
|
984
987
|
except Exception as e: # noqa: BLE001
|
985
988
|
log.error(f"Error terminating service: {e}")
|
@@ -119,7 +119,6 @@ class StartInteractiveSessionBlock:
|
|
119
119
|
python_version=self.connection_info.get("python_version"),
|
120
120
|
ray_version=self.connection_info.get("ray_version"),
|
121
121
|
ray_commit=self.connection_info.get("ray_commit"),
|
122
|
-
protocol_version=self.connection_info.get("protocol_version"),
|
123
122
|
_num_clients=self.connection_info.get("num_clients"),
|
124
123
|
)
|
125
124
|
self.log.info(
|
@@ -61,6 +61,7 @@ class Session(object):
|
|
61
61
|
'serve_metrics_dashboard_url': 'str',
|
62
62
|
'serve_deployment_metrics_dashboard_url': 'str',
|
63
63
|
'serve_llm_metrics_dashboard_url': 'str',
|
64
|
+
'supports_full_grafana_view': 'bool',
|
64
65
|
'persistent_metrics_url': 'str',
|
65
66
|
'connect_url': 'str',
|
66
67
|
'jupyter_notebook_url': 'str',
|
@@ -116,6 +117,7 @@ class Session(object):
|
|
116
117
|
'serve_metrics_dashboard_url': 'serve_metrics_dashboard_url',
|
117
118
|
'serve_deployment_metrics_dashboard_url': 'serve_deployment_metrics_dashboard_url',
|
118
119
|
'serve_llm_metrics_dashboard_url': 'serve_llm_metrics_dashboard_url',
|
120
|
+
'supports_full_grafana_view': 'supports_full_grafana_view',
|
119
121
|
'persistent_metrics_url': 'persistent_metrics_url',
|
120
122
|
'connect_url': 'connect_url',
|
121
123
|
'jupyter_notebook_url': 'jupyter_notebook_url',
|
@@ -142,7 +144,7 @@ class Session(object):
|
|
142
144
|
'ray_dashboard_snapshot_last_reported_at': 'ray_dashboard_snapshot_last_reported_at'
|
143
145
|
}
|
144
146
|
|
145
|
-
def __init__(self, name=None, project_id=None, cloud_id=None, cluster_config=None, build_id=None, compute_template_id=None, idle_timeout=120, uses_app_config=False, allow_public_internet_traffic=False, user_service_access=None, user_service_token=None, ha_job_id=None, id=None, state=None, pending_state=None, state_data=None, status=None, status_details=None, creator_id=None, created_at=None, archived_at=None, webterminal_auth_url=None, metrics_dashboard_url=None, data_metrics_dashboard_url=None, train_metrics_dashboard_url=None, serve_metrics_dashboard_url=None, serve_deployment_metrics_dashboard_url=None, serve_llm_metrics_dashboard_url=None, persistent_metrics_url=None, connect_url=None, jupyter_notebook_url=None, ray_dashboard_url=None, access_token=None, service_proxy_url=None, tensorboard_available=None, cluster_config_last_modified_at=None, host_name=None, head_node_ip=None, ssh_authorized_keys=None, ssh_private_key=None, anyscaled_config=None, anyscaled_config_generated_at=None, default_build_id=None, idle_timeout_last_activity_at=None, ray_version=None, ray_version_last_updated_at=None, user_service_url=None, ray_component_activities_last_reported_at=None, activity_details=None, maximum_uptime_will_terminate_cluster_at=None, idle_termination_status=None, ray_dashboard_snapshot_last_reported_at=None, local_vars_configuration=None): # noqa: E501
|
147
|
+
def __init__(self, name=None, project_id=None, cloud_id=None, cluster_config=None, build_id=None, compute_template_id=None, idle_timeout=120, uses_app_config=False, allow_public_internet_traffic=False, user_service_access=None, user_service_token=None, ha_job_id=None, id=None, state=None, pending_state=None, state_data=None, status=None, status_details=None, creator_id=None, created_at=None, archived_at=None, webterminal_auth_url=None, metrics_dashboard_url=None, data_metrics_dashboard_url=None, train_metrics_dashboard_url=None, serve_metrics_dashboard_url=None, serve_deployment_metrics_dashboard_url=None, serve_llm_metrics_dashboard_url=None, supports_full_grafana_view=False, persistent_metrics_url=None, connect_url=None, jupyter_notebook_url=None, ray_dashboard_url=None, access_token=None, service_proxy_url=None, tensorboard_available=None, cluster_config_last_modified_at=None, host_name=None, head_node_ip=None, ssh_authorized_keys=None, ssh_private_key=None, anyscaled_config=None, anyscaled_config_generated_at=None, default_build_id=None, idle_timeout_last_activity_at=None, ray_version=None, ray_version_last_updated_at=None, user_service_url=None, ray_component_activities_last_reported_at=None, activity_details=None, maximum_uptime_will_terminate_cluster_at=None, idle_termination_status=None, ray_dashboard_snapshot_last_reported_at=None, local_vars_configuration=None): # noqa: E501
|
146
148
|
"""Session - a model defined in OpenAPI""" # noqa: E501
|
147
149
|
if local_vars_configuration is None:
|
148
150
|
local_vars_configuration = Configuration()
|
@@ -176,6 +178,7 @@ class Session(object):
|
|
176
178
|
self._serve_metrics_dashboard_url = None
|
177
179
|
self._serve_deployment_metrics_dashboard_url = None
|
178
180
|
self._serve_llm_metrics_dashboard_url = None
|
181
|
+
self._supports_full_grafana_view = None
|
179
182
|
self._persistent_metrics_url = None
|
180
183
|
self._connect_url = None
|
181
184
|
self._jupyter_notebook_url = None
|
@@ -250,6 +253,8 @@ class Session(object):
|
|
250
253
|
self.serve_deployment_metrics_dashboard_url = serve_deployment_metrics_dashboard_url
|
251
254
|
if serve_llm_metrics_dashboard_url is not None:
|
252
255
|
self.serve_llm_metrics_dashboard_url = serve_llm_metrics_dashboard_url
|
256
|
+
if supports_full_grafana_view is not None:
|
257
|
+
self.supports_full_grafana_view = supports_full_grafana_view
|
253
258
|
if persistent_metrics_url is not None:
|
254
259
|
self.persistent_metrics_url = persistent_metrics_url
|
255
260
|
if connect_url is not None:
|
@@ -954,6 +959,29 @@ class Session(object):
|
|
954
959
|
|
955
960
|
self._serve_llm_metrics_dashboard_url = serve_llm_metrics_dashboard_url
|
956
961
|
|
962
|
+
@property
|
963
|
+
def supports_full_grafana_view(self):
|
964
|
+
"""Gets the supports_full_grafana_view of this Session. # noqa: E501
|
965
|
+
|
966
|
+
Whether the session supports full Grafana embedding view. This field will only be populated after the Session finishes starting. # noqa: E501
|
967
|
+
|
968
|
+
:return: The supports_full_grafana_view of this Session. # noqa: E501
|
969
|
+
:rtype: bool
|
970
|
+
"""
|
971
|
+
return self._supports_full_grafana_view
|
972
|
+
|
973
|
+
@supports_full_grafana_view.setter
|
974
|
+
def supports_full_grafana_view(self, supports_full_grafana_view):
|
975
|
+
"""Sets the supports_full_grafana_view of this Session.
|
976
|
+
|
977
|
+
Whether the session supports full Grafana embedding view. This field will only be populated after the Session finishes starting. # noqa: E501
|
978
|
+
|
979
|
+
:param supports_full_grafana_view: The supports_full_grafana_view of this Session. # noqa: E501
|
980
|
+
:type: bool
|
981
|
+
"""
|
982
|
+
|
983
|
+
self._supports_full_grafana_view = supports_full_grafana_view
|
984
|
+
|
957
985
|
@property
|
958
986
|
def persistent_metrics_url(self):
|
959
987
|
"""Gets the persistent_metrics_url of this Session. # noqa: E501
|
anyscale/service/__init__.py
CHANGED
@@ -39,9 +39,9 @@ from anyscale.service.models import (
|
|
39
39
|
ServiceConfig,
|
40
40
|
ServiceLogMode,
|
41
41
|
ServiceSortField,
|
42
|
+
ServiceSortOrder,
|
42
43
|
ServiceState,
|
43
44
|
ServiceStatus,
|
44
|
-
SortOrder,
|
45
45
|
)
|
46
46
|
|
47
47
|
|
@@ -162,6 +162,9 @@ class ServiceSDK:
|
|
162
162
|
"""
|
163
163
|
return self._private_sdk.delete(id=id, name=name, cloud=cloud, project=project)
|
164
164
|
|
165
|
+
@sdk_docs(
|
166
|
+
doc_py_example=_LIST_EXAMPLE, arg_docstrings=_LIST_ARG_DOCSTRINGS,
|
167
|
+
)
|
165
168
|
def list( # noqa: F811, A001
|
166
169
|
self,
|
167
170
|
*,
|
@@ -179,7 +182,7 @@ class ServiceSDK:
|
|
179
182
|
page_size: Optional[int] = None,
|
180
183
|
# Sorting
|
181
184
|
sort_field: Optional[Union[str, ServiceSortField]] = None,
|
182
|
-
sort_order: Optional[Union[str,
|
185
|
+
sort_order: Optional[Union[str, ServiceSortOrder]] = None,
|
183
186
|
) -> ResultIterator[ServiceStatus]:
|
184
187
|
"""List services.
|
185
188
|
|
@@ -24,13 +24,13 @@ from anyscale.sdk.anyscale_client.models import (
|
|
24
24
|
ServiceConfig as ExternalAPIServiceConfig,
|
25
25
|
ServiceEventCurrentState,
|
26
26
|
ServiceSortField,
|
27
|
-
SortOrder,
|
28
27
|
TracingConfig as APITracingConfg,
|
29
28
|
)
|
30
29
|
from anyscale.service.models import (
|
31
30
|
RayGCSExternalStorageConfig,
|
32
31
|
ServiceConfig,
|
33
32
|
ServiceLogMode,
|
33
|
+
ServiceSortOrder,
|
34
34
|
ServiceState,
|
35
35
|
ServiceStatus,
|
36
36
|
ServiceVersionStatus,
|
@@ -252,7 +252,9 @@ class PrivateServiceSDK(WorkloadSDK):
|
|
252
252
|
"are ignored when performing an in_place update."
|
253
253
|
)
|
254
254
|
|
255
|
-
existing_config: ProductionServiceV2VersionModel =
|
255
|
+
existing_config: ProductionServiceV2VersionModel = (
|
256
|
+
existing_service.primary_version
|
257
|
+
)
|
256
258
|
query_auth_token_enabled = existing_service.auth_token is not None
|
257
259
|
cloud_id = self.client.get_cloud_id(
|
258
260
|
compute_config_id=existing_config.compute_config_id
|
@@ -437,10 +439,10 @@ class PrivateServiceSDK(WorkloadSDK):
|
|
437
439
|
raise ValueError("max_surge_percent must be between 0 and 100.")
|
438
440
|
|
439
441
|
name = config.name or self._get_default_name()
|
440
|
-
existing_service: Optional[
|
441
|
-
|
442
|
-
|
443
|
-
|
442
|
+
existing_service: Optional[DecoratedProductionServiceV2APIModel] = (
|
443
|
+
self.client.get_service(
|
444
|
+
name=name, cloud=config.cloud, project=config.project
|
445
|
+
)
|
444
446
|
)
|
445
447
|
if existing_service is None:
|
446
448
|
self.logger.info(f"Starting new service '{name}'.")
|
@@ -585,7 +587,6 @@ class PrivateServiceSDK(WorkloadSDK):
|
|
585
587
|
project_id: str,
|
586
588
|
query_auth_token_enabled: bool,
|
587
589
|
) -> ServiceVersionStatus:
|
588
|
-
|
589
590
|
image_uri, image_build, project, compute_config = await asyncio.gather(
|
590
591
|
asyncio.to_thread(
|
591
592
|
self._image_sdk.get_image_uri_from_build_id, model.build_id
|
@@ -734,9 +735,8 @@ class PrivateServiceSDK(WorkloadSDK):
|
|
734
735
|
page_size: Optional[int] = None, # Controls items fetched per API call
|
735
736
|
# Sorting
|
736
737
|
sort_field: Optional[Union[str, ServiceSortField]] = None,
|
737
|
-
sort_order: Optional[Union[str,
|
738
|
+
sort_order: Optional[Union[str, ServiceSortOrder]] = None,
|
738
739
|
) -> ResultIterator[ServiceStatus]:
|
739
|
-
|
740
740
|
if page_size is not None and (page_size <= 0 or page_size > MAX_PAGE_SIZE):
|
741
741
|
raise ValueError(
|
742
742
|
f"page_size must be between 1 and {MAX_PAGE_SIZE}, inclusive."
|
@@ -875,7 +875,7 @@ class PrivateServiceSDK(WorkloadSDK):
|
|
875
875
|
|
876
876
|
|
877
877
|
def _normalize_state_filter(
|
878
|
-
states: Optional[Union[List[ServiceState], List[str]]]
|
878
|
+
states: Optional[Union[List[ServiceState], List[str]]],
|
879
879
|
) -> Optional[List[str]]:
|
880
880
|
if states is None:
|
881
881
|
return None
|
anyscale/service/commands.py
CHANGED
@@ -7,9 +7,9 @@ from anyscale.service.models import (
|
|
7
7
|
ServiceConfig,
|
8
8
|
ServiceLogMode,
|
9
9
|
ServiceSortField,
|
10
|
+
ServiceSortOrder,
|
10
11
|
ServiceState,
|
11
12
|
ServiceStatus,
|
12
|
-
SortOrder,
|
13
13
|
)
|
14
14
|
|
15
15
|
|
@@ -371,6 +371,7 @@ _LIST_ARG_DOCSTRINGS = {
|
|
371
371
|
"sort_order": "Sort direction (`ASC` or `DESC`).",
|
372
372
|
}
|
373
373
|
|
374
|
+
|
374
375
|
# Public command
|
375
376
|
@sdk_command(
|
376
377
|
_SERVICE_SDK_SINGLETON_KEY,
|
@@ -394,7 +395,7 @@ def list( # noqa: A001
|
|
394
395
|
page_size: Optional[int] = None,
|
395
396
|
# Sorting
|
396
397
|
sort_field: Optional[Union[str, ServiceSortField]] = None,
|
397
|
-
sort_order: Optional[Union[str,
|
398
|
+
sort_order: Optional[Union[str, ServiceSortOrder]] = None,
|
398
399
|
# Injected SDK
|
399
400
|
_private_sdk: Optional[PrivateServiceSDK] = None,
|
400
401
|
) -> ResultIterator[ServiceStatus]:
|
anyscale/service/models.py
CHANGED
@@ -724,7 +724,7 @@ class ServiceModel(ModelBase):
|
|
724
724
|
state: ServiceState = field(metadata={"docstring": "Current state of the service."})
|
725
725
|
|
726
726
|
|
727
|
-
class
|
727
|
+
class ServiceSortOrder(ModelEnum):
|
728
728
|
"""Enum for sort order directions."""
|
729
729
|
|
730
730
|
ASC = "ASC"
|
anyscale/version.py
CHANGED
@@ -1 +1 @@
|
|
1
|
-
__version__ = "0.26.
|
1
|
+
__version__ = "0.26.57"
|
@@ -8,7 +8,7 @@ anyscale/api.py,sha256=HAZZg8zWLTkMgHkIeJys-9xKvFqzBVONRUeI6MQDhSA,8271
|
|
8
8
|
anyscale/authenticate.py,sha256=4RiJ1Ruu-JKENwuMkWqq1R19DXxucVPS-GoKlii1fLI,12346
|
9
9
|
anyscale/aws_iam_policies.py,sha256=KEPS8JC_6fdRAXWMDVX5mlcI7Ab2agdx5wM2IW8-jqw,16543
|
10
10
|
anyscale/cli_logger.py,sha256=sw-sjcXPIlRWT6LCC0nhHcr53VEJba579P8mbOFTJ6k,12545
|
11
|
-
anyscale/cloud_resource.py,sha256=
|
11
|
+
anyscale/cloud_resource.py,sha256=V7qgaJ3UTwg3IhQbQ3WfQVhCucjHsc6tJTIZ2cuOp34,38985
|
12
12
|
anyscale/cloud_utils.py,sha256=R12leVFphO_DSCK54ZpDPRIcMSYSeWtCXoJbXwvvcug,8138
|
13
13
|
anyscale/cluster.py,sha256=SmSoZSGpRljOA4SWK1VcFtGXLRD11ZwP0VjgGaiaSwY,6582
|
14
14
|
anyscale/cluster_compute.py,sha256=RvlJMO_fXsoMn0bBz-3DbBI1iBjQ83srQp4J7XcAynQ,6213
|
@@ -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=-yDt8TaGigBmP7qMg7Z4EOu0HTdOPZYs7CcaTPFXA_w,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
|
@@ -36,11 +36,11 @@ anyscale/_private/anyscale_client/anyscale_client.py,sha256=iMc2DI45r5roA2_RCUU5
|
|
36
36
|
anyscale/_private/anyscale_client/common.py,sha256=J5F2vv8OBu6lbwKRpe4gqATLft_bKAwJlRUyk7smykw,27436
|
37
37
|
anyscale/_private/anyscale_client/fake_anyscale_client.py,sha256=y_Rq-nqVndWdO5y55KVL262YKCQRM8AGYvg-SbQxe_c,63526
|
38
38
|
anyscale/_private/docgen/README.md,sha256=z0tj8Jy0KmxWJBQMHKyzXGX_cYYgI8m5DCD6KCMU8oI,762
|
39
|
-
anyscale/_private/docgen/__main__.py,sha256=
|
39
|
+
anyscale/_private/docgen/__main__.py,sha256=aKBQJ7g_IXiWRURA1SYkh5uYnixGNXtV0XXKQ5mU23E,25220
|
40
40
|
anyscale/_private/docgen/api.md,sha256=VKW293yubbeUG17A38wYuaONKDL5XICMguyfZ2xkIyY,27495
|
41
41
|
anyscale/_private/docgen/generator.py,sha256=9HvkVxTmaeAFBjK59eZ5pil6tpGjFQDqf0LNP2-lg4s,24041
|
42
42
|
anyscale/_private/docgen/generator_legacy.py,sha256=f6eJzQXjkqGEOWsKPIthl8Bx1yh5MHidhEuEHN-nukk,4853
|
43
|
-
anyscale/_private/docgen/models.md,sha256=
|
43
|
+
anyscale/_private/docgen/models.md,sha256=yGeeUIlN8POgNHiAhYvDyQnT2r0HdMD9Y2zZ_55Qeec,312123
|
44
44
|
anyscale/_private/models/__init__.py,sha256=ZrkdHhJZNeCYiogsHc_po8m7vaVdxEjkNGixNeYdlgs,125
|
45
45
|
anyscale/_private/models/image_uri.py,sha256=CMzHc-MNTBsBXvX0G73bjkiznCbm95DYQusgXJ8drm8,3971
|
46
46
|
anyscale/_private/models/model_base.py,sha256=GJLA4JC0yHT554ctMYS_1es-YoTHQH9oqRHr28vV4R0,11354
|
@@ -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=muUytIoAe8VTq4ui9rR8GzNp9PNXsEzY0b5-N8G08Jg,117248
|
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=sMzroZEMhVxSMVOgQ4tiuv3iK6irQn9lbyEj69SxGW4,52386
|
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
123
|
anyscale/client/openapi_client/api/default_api.py,sha256=ZE4su4Qoq_SDdJt6yFfoCe11NwnugVy_2GltALBXuHY,1895564
|
124
|
-
anyscale/client/openapi_client/models/__init__.py,sha256=
|
124
|
+
anyscale/client/openapi_client/models/__init__.py,sha256=3aAw-hW1DrqvOHlH0ko_R8AKpENuBokxqKYQlt_gBQ4,51896
|
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
|
@@ -321,7 +321,7 @@ anyscale/client/openapi_client/models/dataset_upload.py,sha256=rOHyuUSC_14OlJU2I
|
|
321
321
|
anyscale/client/openapi_client/models/datasetupload_response.py,sha256=0c090SMm7H---lZkx9lPHAimah54Nk1hdwJK7pd82Mg,3561
|
322
322
|
anyscale/client/openapi_client/models/decorated_application_template.py,sha256=p8td6V3VQ0NqW4mnabM4W7EughggIduIo8Xv7jUZgEE,16407
|
323
323
|
anyscale/client/openapi_client/models/decorated_build.py,sha256=wel4rROizNrKxMXz5BrmhMSgO04XQrerLPLopsuEXuo,22984
|
324
|
-
anyscale/client/openapi_client/models/decorated_cloud_resource.py,sha256=
|
324
|
+
anyscale/client/openapi_client/models/decorated_cloud_resource.py,sha256=ReSK1jhW4lmI0wWz8N-z-QZN7ULvh7fEhlvagY-bIbY,17608
|
325
325
|
anyscale/client/openapi_client/models/decorated_compute_template.py,sha256=7bDVlmudYB-CPqqONBfpFc7-B2MItWEnsxefFlcSVUo,14186
|
326
326
|
anyscale/client/openapi_client/models/decorated_compute_template_config.py,sha256=TjiPN3e55YHAQG6W0yVeSfV_-og9qvnsnty5k-L5vhs,21362
|
327
327
|
anyscale/client/openapi_client/models/decorated_interactive_session.py,sha256=S2m6CuKL-yKYPSQFE5wHIZMBX-sNAG-6Wy2JnQ2sfVo,24575
|
@@ -335,7 +335,7 @@ anyscale/client/openapi_client/models/decorated_production_service_v2_version_ap
|
|
335
335
|
anyscale/client/openapi_client/models/decorated_schedule.py,sha256=zCDLO0og8GMMxv_43k3BjYB3MAGc3znGcKV28GYoJwU,18193
|
336
336
|
anyscale/client/openapi_client/models/decorated_serve_deployment.py,sha256=fujpuo3v3GNhKwwiHwBqtU8BrBvBrcbg_TTtSvVG7oY,24397
|
337
337
|
anyscale/client/openapi_client/models/decorated_service_event_api_model.py,sha256=TE2bxLquf15IQZTXDiqawOnRYQKT-0Gxrr9VJVNwu9c,17555
|
338
|
-
anyscale/client/openapi_client/models/decorated_session.py,sha256=
|
338
|
+
anyscale/client/openapi_client/models/decorated_session.py,sha256=wlBiEeIrXEbSAGMqr3zvNOP7XXOxVx23wRp1eMcYLBY,71719
|
339
339
|
anyscale/client/openapi_client/models/decorated_support_request.py,sha256=FyU8FQbCVAXUpxikWjVmEn5WasPTZeFppafbU2B0kQE,9163
|
340
340
|
anyscale/client/openapi_client/models/decorated_unified_job.py,sha256=chXCS6V5Zkweel9Xeg2mqotcLgKXwo4uoM-kZMWVeJ4,13976
|
341
341
|
anyscale/client/openapi_client/models/decoratedapplicationtemplate_list_response.py,sha256=Aqq7NLQ1JszMgO7GDZkY-taxuMuohu83MziWxKyAw3o,4617
|
@@ -526,9 +526,12 @@ anyscale/client/openapi_client/models/operation_error.py,sha256=GFDVbjzXwFb9ocl0
|
|
526
526
|
anyscale/client/openapi_client/models/operation_progress.py,sha256=K7TAuDeJ2b_uBQthLAowetZwHL6WVbB0nqY40jyJe7g,3682
|
527
527
|
anyscale/client/openapi_client/models/operation_result.py,sha256=I3d5JsCrLiXgM7TZRKIbOrrmMJP-6WuyOgkU1jXWlsE,4364
|
528
528
|
anyscale/client/openapi_client/models/operator_branch.py,sha256=_wl7vipkkcgd_fn2TG6VZp5Z7zme7kVtp6xXimdNBPg,4232
|
529
|
+
anyscale/client/openapi_client/models/operator_check_result.py,sha256=G1mFVQ-tJtuG6BeLBOV91NGEX07OrvZeMMpJQxukGSo,4975
|
530
|
+
anyscale/client/openapi_client/models/operator_check_status.py,sha256=IQsSKq3ql4nt5BYQjccvpTC68DOSUG-QQ3rXDm16LEQ,2944
|
529
531
|
anyscale/client/openapi_client/models/operator_id.py,sha256=D1gfzRMkSIl5svx9CuRdyd_WdsBwS135D6mjAUuReVg,3359
|
530
532
|
anyscale/client/openapi_client/models/operator_metrics.py,sha256=Pl6H2qzNbNhSPOtg081yDuhdAltaPvojTIn-kzNH64c,8607
|
531
|
-
anyscale/client/openapi_client/models/operator_status.py,sha256=
|
533
|
+
anyscale/client/openapi_client/models/operator_status.py,sha256=Av-_FizOfXNjcMjS1MlE37s_QPQdzKeAr_HWt2zF0S8,2939
|
534
|
+
anyscale/client/openapi_client/models/operator_status_details.py,sha256=BZABehq5rwacGZi8O0LBtWdsBxcimK5NPrQVDnsFGNs,5598
|
532
535
|
anyscale/client/openapi_client/models/organization.py,sha256=denL5QGkErdMLQkEkGWCIxLt-Wv1EWc5u7REMOTKqrw,17320
|
533
536
|
anyscale/client/openapi_client/models/organization_collaborator.py,sha256=b1EWH9jTsPKPv5aotAnf052kC_v4YQ2FVyIcJ28g5pM,8034
|
534
537
|
anyscale/client/openapi_client/models/organization_configuration.py,sha256=ut6TmxbRFp9dQjQQHJL10vV1DRsZPFtFa3sCiPU2Ae8,8754
|
@@ -777,7 +780,7 @@ anyscale/commands/project_commands.py,sha256=NFGYcPY8qaMHhO_325jeZp4Yj79JvWWN_bG
|
|
777
780
|
anyscale/commands/resource_quota_commands.py,sha256=J6r8b6Bo1wMys5pYWieD6F-VsC2OpQZGVLaNFlvAKmI,8536
|
778
781
|
anyscale/commands/schedule_commands.py,sha256=Bw2aKp_w6xcuRSVVi9FLdUjRVCr8_v4Tt2kGL6Y4aRg,14924
|
779
782
|
anyscale/commands/service_account_commands.py,sha256=u45N2akHsZxyu5LK03FGEEnZh4dTt4B2Be-dXgbSg3U,3977
|
780
|
-
anyscale/commands/service_commands.py,sha256=
|
783
|
+
anyscale/commands/service_commands.py,sha256=DBrPkW7JH3kCsr038aQStm7AF1u-n80sLjwc2Hjifks,34014
|
781
784
|
anyscale/commands/session_commands_hidden.py,sha256=APEypnUB1yV2Rr6wdSFWy1vQbAnn-lOn0rU2enF5JdM,6200
|
782
785
|
anyscale/commands/user_commands.py,sha256=C-i1dGpdhboywN_2XgPS2BekKx2y6LZq8c8gvS0S-tY,1259
|
783
786
|
anyscale/commands/util.py,sha256=fIob29G1jZ4VU9PKVSJnT6hqX7wAqsS4L9sApsMZcNs,8585
|
@@ -794,7 +797,7 @@ anyscale/compute_config/_private/compute_config_sdk.py,sha256=akJzc_cSRhxzP6N4iC
|
|
794
797
|
anyscale/connect_utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
795
798
|
anyscale/connect_utils/prepare_cluster.py,sha256=uxBjxKuzcgbQdzGT0VWPpO_Iljeep8UcpQzc0oOvvVc,41792
|
796
799
|
anyscale/connect_utils/project.py,sha256=LwcGqTQS_mZp6C79NMoMhmcWGR9j2C1Zi1S4PnPNzhQ,12239
|
797
|
-
anyscale/connect_utils/start_interactive_session.py,sha256=
|
800
|
+
anyscale/connect_utils/start_interactive_session.py,sha256=m-RCH0e_bQBF6dAOskbP9ENkD5x5pu1SIQIzREMDuHk,17371
|
798
801
|
anyscale/controllers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
799
802
|
anyscale/controllers/auth_controller.py,sha256=hDY2sPvUP8pvh8PnlDYH5rCHjQes2v3b_KBVjMbrzeE,5127
|
800
803
|
anyscale/controllers/base_controller.py,sha256=1QFJoScFUV7YTzpKarhwPOc1SvI-xqX3TZmwxKonW6I,1998
|
@@ -998,7 +1001,7 @@ anyscale/sdk/anyscale_client/models/service_type.py,sha256=rZdrus7PK1yag9evso0hM
|
|
998
1001
|
anyscale/sdk/anyscale_client/models/service_version_state.py,sha256=70UygIXv31YQgInoublJt-lZqwIbNCWJFFH0jqkS6iA,3110
|
999
1002
|
anyscale/sdk/anyscale_client/models/servicemodel_list_response.py,sha256=-71b0cU3Lj_dTh74WcTlHRbB6OqIDyRPmXBLhhY-P-w,4375
|
1000
1003
|
anyscale/sdk/anyscale_client/models/servicemodel_response.py,sha256=3rAjmUOO6HKR8gEklDxoHKvn6IXECCRCuqQiLbZCmw0,3548
|
1001
|
-
anyscale/sdk/anyscale_client/models/session.py,sha256=
|
1004
|
+
anyscale/sdk/anyscale_client/models/session.py,sha256=hdaS_DuyWKZfV2y7xv8ncfZKmj8wdDFVUAZmWL5NZbI,62417
|
1002
1005
|
anyscale/sdk/anyscale_client/models/session_response.py,sha256=wB3HFhPxlVOX4F7IJPH4mxc4qxQWsyYRPeUuftZknLQ,3493
|
1003
1006
|
anyscale/sdk/anyscale_client/models/session_starting_up_data.py,sha256=kfwpLY1s4-Tf8Gdkdah4cSkRHE2JRYJNd3Rjkj8q5eQ,4366
|
1004
1007
|
anyscale/sdk/anyscale_client/models/session_state.py,sha256=HbGrjYS-zATMtgCjKdiV0_ViadEyXIUAZU-8wVjnRF4,3388
|
@@ -1022,10 +1025,10 @@ anyscale/sdk/anyscale_client/models/user_service_access_types.py,sha256=3gW1L_VT
|
|
1022
1025
|
anyscale/sdk/anyscale_client/models/ux_instance.py,sha256=F2F2cxAJ5GElRgHcrxpB7GEpvhM-PJa3qpBBYmhwlUQ,15935
|
1023
1026
|
anyscale/sdk/anyscale_client/models/validation_error.py,sha256=h5Cope8JNSDE3Fpr1TfjcnuJPThF0dd_uawvltOqPt0,4901
|
1024
1027
|
anyscale/sdk/anyscale_client/models/worker_node_type.py,sha256=bI3sPVPA4t4axjdbj7pNlPkKPJDDkOnMgiN7B_o3IZI,15046
|
1025
|
-
anyscale/service/__init__.py,sha256=
|
1026
|
-
anyscale/service/commands.py,sha256=
|
1027
|
-
anyscale/service/models.py,sha256=
|
1028
|
-
anyscale/service/_private/service_sdk.py,sha256=
|
1028
|
+
anyscale/service/__init__.py,sha256=XB6Lo7oynMbMARhDeg_ydGVrSPomxc8H8xdM5BFjZ1A,8098
|
1029
|
+
anyscale/service/commands.py,sha256=bHCv0aErfScx52vU5avTFtegV-L_7r_ZfQDmYZry4Vs,14399
|
1030
|
+
anyscale/service/models.py,sha256=j6mEh8JK5_yxpDi9GJlGQNuQexKdYS5r5RKJzjXDx60,25992
|
1031
|
+
anyscale/service/_private/service_sdk.py,sha256=pODsuYJg6vofz4hlVj8nt5roxG9NWDUkn7ncr4s2Wi4,35119
|
1029
1032
|
anyscale/service_account/__init__.py,sha256=jV1OFo_ZTxU3vuPztO1300TuoMz-Ocudm6_84ZtjPQ4,2764
|
1030
1033
|
anyscale/service_account/commands.py,sha256=pkJjZwK8aRKFFVfE5swMTJrm9CTnPcNJETEFdMkPiic,3680
|
1031
1034
|
anyscale/service_account/models.py,sha256=MhY-Fo5AZQ68brqtolTUMW3WQDrkNyL1udtNg70sNAU,2189
|
@@ -1092,10 +1095,10 @@ anyscale/workspace/__init__.py,sha256=Innbm5ZhCyADEVBiYSo_vbpKwUNcMzVSAfxIGKOYe6
|
|
1092
1095
|
anyscale/workspace/commands.py,sha256=GBwZenhxe4LFAOCoW8y8KLSgm2HxMxozJ3njEcx53QE,18555
|
1093
1096
|
anyscale/workspace/models.py,sha256=uiMqoJRQNRgTcOIIsysSrtlHMtnI7paUWS34EN626Cg,10016
|
1094
1097
|
anyscale/workspace/_private/workspace_sdk.py,sha256=2CMeYfJt0UtIFCocDn1ukw1iI5esKHdopLe6duEs-qE,27599
|
1095
|
-
anyscale-0.26.
|
1096
|
-
anyscale-0.26.
|
1097
|
-
anyscale-0.26.
|
1098
|
-
anyscale-0.26.
|
1099
|
-
anyscale-0.26.
|
1100
|
-
anyscale-0.26.
|
1101
|
-
anyscale-0.26.
|
1098
|
+
anyscale-0.26.57.dist-info/licenses/LICENSE,sha256=UOPu974Wzsna6frFv1mu4VrZgNdZT7lbcNPzo5ue3qs,3494
|
1099
|
+
anyscale-0.26.57.dist-info/licenses/NOTICE,sha256=gHqDhSnUYlRXX-mDOL5FtE7774oiKyV_HO80qM3r9Xo,196
|
1100
|
+
anyscale-0.26.57.dist-info/METADATA,sha256=EnoQtowf5PNI8F-StrAexShkIy10cQZQ1mSnL4GLcIc,3231
|
1101
|
+
anyscale-0.26.57.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
1102
|
+
anyscale-0.26.57.dist-info/entry_points.txt,sha256=NqO18sCZn6zG6J0S38itjcN00s7aE3C3v3k5lMAfCLk,51
|
1103
|
+
anyscale-0.26.57.dist-info/top_level.txt,sha256=g3NVNS8Oh0NZwbFFgeX696C5MZZkS5dqV2NqcsbDRJE,9
|
1104
|
+
anyscale-0.26.57.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|