anyscale 0.26.15__py3-none-any.whl → 0.26.17__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- anyscale/_private/anyscale_client/anyscale_client.py +4 -2
- anyscale/_private/anyscale_client/common.py +6 -4
- anyscale/_private/anyscale_client/fake_anyscale_client.py +15 -6
- anyscale/_private/docgen/__main__.py +4 -4
- anyscale/_private/docgen/generator.py +2 -2
- anyscale/_private/sdk/__init__.py +2 -2
- anyscale/_private/workload/workload_sdk.py +6 -4
- anyscale/aggregated_instance_usage/commands.py +6 -2
- anyscale/anyscale-cloud-setup-gcp.yaml +2 -0
- anyscale/client/README.md +11 -6
- anyscale/client/openapi_client/__init__.py +8 -4
- anyscale/client/openapi_client/api/default_api.py +402 -270
- anyscale/client/openapi_client/models/__init__.py +8 -4
- anyscale/client/openapi_client/models/alert_type.py +11 -2
- anyscale/client/openapi_client/models/create_job_queue_requests.py +3 -32
- anyscale/client/openapi_client/models/i_know_response.py +174 -0
- anyscale/client/openapi_client/models/i_know_time_series_event.py +148 -0
- anyscale/client/openapi_client/models/job_report.py +199 -0
- anyscale/client/openapi_client/models/job_with_report.py +254 -0
- anyscale/client/openapi_client/models/jobwithreport_list_response.py +147 -0
- anyscale/client/openapi_client/models/{product_autoscaler_flag.py → list_ray_sessions_response.py} +22 -23
- anyscale/client/openapi_client/models/{productautoscalerflag_response.py → listraysessionsresponse_response.py} +11 -11
- anyscale/client/openapi_client/models/metric.py +133 -3
- anyscale/client/openapi_client/models/ray_session.py +121 -0
- anyscale/cloud/__init__.py +2 -2
- anyscale/cloud/_private/cloud_sdk.py +2 -2
- anyscale/cloud/commands.py +9 -6
- anyscale/cloud_utils.py +5 -4
- anyscale/cluster_compute.py +2 -2
- anyscale/cluster_env.py +2 -0
- anyscale/commands/cloud_commands.py +43 -0
- anyscale/commands/login_commands.py +24 -3
- anyscale/commands/schedule_commands.py +2 -1
- anyscale/compute_config/commands.py +15 -7
- anyscale/controllers/cloud_controller.py +151 -8
- anyscale/controllers/cluster_controller.py +1 -0
- anyscale/controllers/job_controller.py +1 -1
- anyscale/controllers/service_controller.py +1 -0
- anyscale/image/commands.py +6 -6
- anyscale/job/_private/job_sdk.py +22 -24
- anyscale/job/commands.py +12 -12
- anyscale/organization_invitation/commands.py +11 -7
- anyscale/project/__init__.py +2 -2
- anyscale/project/_private/project_sdk.py +2 -2
- anyscale/project/commands.py +3 -3
- anyscale/project_utils.py +1 -1
- anyscale/resource_quota/commands.py +18 -10
- anyscale/schedule/commands.py +12 -8
- anyscale/sdk/anyscale_client/sdk.py +1 -0
- anyscale/service/commands.py +17 -17
- anyscale/service_account/commands.py +12 -10
- anyscale/user/commands.py +5 -3
- anyscale/utils/gcp_utils.py +25 -9
- anyscale/version.py +1 -1
- anyscale/workspace/__init__.py +1 -1
- anyscale/workspace/_private/workspace_sdk.py +5 -3
- anyscale/workspace/commands.py +26 -24
- {anyscale-0.26.15.dist-info → anyscale-0.26.17.dist-info}/METADATA +1 -1
- {anyscale-0.26.15.dist-info → anyscale-0.26.17.dist-info}/RECORD +64 -60
- anyscale/client/openapi_client/models/aviary_model_config_v2.py +0 -358
- anyscale/client/openapi_client/models/finish_ft_job_request_v2.py +0 -183
- {anyscale-0.26.15.dist-info → anyscale-0.26.17.dist-info}/LICENSE +0 -0
- {anyscale-0.26.15.dist-info → anyscale-0.26.17.dist-info}/NOTICE +0 -0
- {anyscale-0.26.15.dist-info → anyscale-0.26.17.dist-info}/WHEEL +0 -0
- {anyscale-0.26.15.dist-info → anyscale-0.26.17.dist-info}/entry_points.txt +0 -0
- {anyscale-0.26.15.dist-info → anyscale-0.26.17.dist-info}/top_level.txt +0 -0
anyscale/schedule/commands.py
CHANGED
@@ -36,12 +36,14 @@ _APPLY_ARG_DOCSTRINGS = {"config": "The config options defining the schedule."}
|
|
36
36
|
doc_py_example=_APPLY_EXAMPLE,
|
37
37
|
arg_docstrings=_APPLY_ARG_DOCSTRINGS,
|
38
38
|
)
|
39
|
-
def apply(
|
39
|
+
def apply(
|
40
|
+
config: ScheduleConfig, *, _private_sdk: Optional[PrivateScheduleSDK] = None
|
41
|
+
) -> str:
|
40
42
|
"""Apply or update a schedule.
|
41
43
|
|
42
44
|
Returns the id of the schedule.
|
43
45
|
"""
|
44
|
-
return
|
46
|
+
return _private_sdk.apply(config) # type: ignore
|
45
47
|
|
46
48
|
|
47
49
|
_SET_STATE_EXAMPLE = """
|
@@ -76,13 +78,15 @@ def set_state(
|
|
76
78
|
cloud: Optional[str] = None,
|
77
79
|
project: Optional[str] = None,
|
78
80
|
state: ScheduleState,
|
79
|
-
|
81
|
+
_private_sdk: Optional[PrivateScheduleSDK] = None
|
80
82
|
) -> str:
|
81
83
|
"""Set the state of a schedule.
|
82
84
|
|
83
85
|
Returns the id of the schedule.
|
84
86
|
"""
|
85
|
-
return
|
87
|
+
return _private_sdk.set_state( # type: ignore
|
88
|
+
id=id, name=name, cloud=cloud, project=project, state=state,
|
89
|
+
)
|
86
90
|
|
87
91
|
|
88
92
|
_STATUS_EXAMPLE = """
|
@@ -110,11 +114,11 @@ def status(
|
|
110
114
|
name: Optional[str] = None,
|
111
115
|
cloud: Optional[str] = None,
|
112
116
|
project: Optional[str] = None,
|
113
|
-
|
117
|
+
_private_sdk: Optional[PrivateScheduleSDK] = None
|
114
118
|
) -> ScheduleStatus:
|
115
119
|
"""Return the status of the schedule.
|
116
120
|
"""
|
117
|
-
return
|
121
|
+
return _private_sdk.status(id=id, name=name, cloud=cloud, project=project) # type: ignore
|
118
122
|
|
119
123
|
|
120
124
|
_TRIGGER_EXAMPLE = """
|
@@ -142,8 +146,8 @@ def trigger(
|
|
142
146
|
name: Optional[str] = None,
|
143
147
|
cloud: Optional[str] = None,
|
144
148
|
project: Optional[str] = None,
|
145
|
-
|
149
|
+
_private_sdk: Optional[PrivateScheduleSDK] = None
|
146
150
|
) -> str:
|
147
151
|
"""Trigger the execution of the schedule.
|
148
152
|
"""
|
149
|
-
return
|
153
|
+
return _private_sdk.trigger(id=id, name=name, cloud=cloud, project=project) # type: ignore
|
anyscale/service/commands.py
CHANGED
@@ -48,7 +48,7 @@ def deploy(
|
|
48
48
|
in_place: bool = False,
|
49
49
|
canary_percent: Optional[int] = None,
|
50
50
|
max_surge_percent: Optional[int] = None,
|
51
|
-
|
51
|
+
_private_sdk: Optional[PrivateServiceSDK] = None,
|
52
52
|
) -> str:
|
53
53
|
"""Deploy a service.
|
54
54
|
|
@@ -58,7 +58,7 @@ def deploy(
|
|
58
58
|
|
59
59
|
Returns the id of the deployed service.
|
60
60
|
"""
|
61
|
-
return
|
61
|
+
return _private_sdk.deploy( # type: ignore
|
62
62
|
config,
|
63
63
|
in_place=in_place,
|
64
64
|
canary_percent=canary_percent,
|
@@ -92,7 +92,7 @@ def rollback(
|
|
92
92
|
cloud: Optional[str] = None,
|
93
93
|
project: Optional[str] = None,
|
94
94
|
max_surge_percent: Optional[int] = None,
|
95
|
-
|
95
|
+
_private_sdk: Optional[PrivateServiceSDK] = None,
|
96
96
|
) -> str:
|
97
97
|
"""Rollback to the primary version of the service.
|
98
98
|
|
@@ -103,7 +103,7 @@ def rollback(
|
|
103
103
|
|
104
104
|
Returns the id of the rolled back service.
|
105
105
|
"""
|
106
|
-
return
|
106
|
+
return _private_sdk.rollback( # type: ignore
|
107
107
|
name=name, cloud=cloud, project=project, max_surge_percent=max_surge_percent
|
108
108
|
)
|
109
109
|
|
@@ -132,7 +132,7 @@ def terminate(
|
|
132
132
|
*,
|
133
133
|
cloud: Optional[str] = None,
|
134
134
|
project: Optional[str] = None,
|
135
|
-
|
135
|
+
_private_sdk: Optional[PrivateServiceSDK] = None,
|
136
136
|
) -> str:
|
137
137
|
"""Terminate a service.
|
138
138
|
|
@@ -140,7 +140,7 @@ def terminate(
|
|
140
140
|
|
141
141
|
Returns the id of the terminated service.
|
142
142
|
"""
|
143
|
-
return
|
143
|
+
return _private_sdk.terminate(name=name, cloud=cloud, project=project) # type: ignore
|
144
144
|
|
145
145
|
|
146
146
|
_ARCHIVE_EXAMPLE = """
|
@@ -169,7 +169,7 @@ def archive(
|
|
169
169
|
*,
|
170
170
|
cloud: Optional[str] = None,
|
171
171
|
project: Optional[str] = None,
|
172
|
-
|
172
|
+
_private_sdk: Optional[PrivateServiceSDK] = None,
|
173
173
|
) -> str:
|
174
174
|
"""Archive a service.
|
175
175
|
|
@@ -177,7 +177,7 @@ def archive(
|
|
177
177
|
|
178
178
|
Returns the ID of the archived service.
|
179
179
|
"""
|
180
|
-
return
|
180
|
+
return _private_sdk.archive(id=id, name=name, cloud=cloud, project=project) # type: ignore
|
181
181
|
|
182
182
|
|
183
183
|
_DELETE_EXAMPLE = """
|
@@ -206,7 +206,7 @@ def delete(
|
|
206
206
|
*,
|
207
207
|
cloud: Optional[str] = None,
|
208
208
|
project: Optional[str] = None,
|
209
|
-
|
209
|
+
_private_sdk: Optional[PrivateServiceSDK] = None,
|
210
210
|
) -> str:
|
211
211
|
"""Delete a service.
|
212
212
|
|
@@ -214,7 +214,7 @@ def delete(
|
|
214
214
|
|
215
215
|
Returns the ID of the deleted service.
|
216
216
|
"""
|
217
|
-
return
|
217
|
+
return _private_sdk.delete(id=id, name=name, cloud=cloud, project=project) # type: ignore
|
218
218
|
|
219
219
|
|
220
220
|
_STATUS_EXAMPLE = """
|
@@ -242,10 +242,10 @@ def status(
|
|
242
242
|
*,
|
243
243
|
cloud: Optional[str] = None,
|
244
244
|
project: Optional[str] = None,
|
245
|
-
|
245
|
+
_private_sdk: Optional[PrivateServiceSDK] = None,
|
246
246
|
) -> ServiceStatus:
|
247
247
|
"""Get the status of a service."""
|
248
|
-
return
|
248
|
+
return _private_sdk.status(name=name, cloud=cloud, project=project) # type: ignore
|
249
249
|
|
250
250
|
|
251
251
|
_WAIT_EXAMPLE = """
|
@@ -277,18 +277,18 @@ def wait(
|
|
277
277
|
project: Optional[str] = None,
|
278
278
|
state: Union[str, ServiceState] = ServiceState.RUNNING,
|
279
279
|
timeout_s: float = 600,
|
280
|
-
|
280
|
+
_private_sdk: Optional[PrivateServiceSDK] = None,
|
281
281
|
_interval_s: float = 5,
|
282
282
|
):
|
283
283
|
"""Wait for a service to reach a target state."""
|
284
|
-
|
284
|
+
_private_sdk.wait( # type: ignore
|
285
285
|
name=name,
|
286
286
|
cloud=cloud,
|
287
287
|
project=project,
|
288
288
|
state=ServiceState(state),
|
289
289
|
timeout_s=timeout_s,
|
290
290
|
interval_s=_interval_s,
|
291
|
-
)
|
291
|
+
) # type: ignore
|
292
292
|
|
293
293
|
|
294
294
|
_CONTROLLER_LOGS_EXAMPLE = """
|
@@ -322,10 +322,10 @@ def _controller_logs(
|
|
322
322
|
canary: bool = False,
|
323
323
|
mode: Union[str, ServiceLogMode] = ServiceLogMode.TAIL,
|
324
324
|
max_lines: int = 1000,
|
325
|
-
|
325
|
+
_private_sdk: Optional[PrivateServiceSDK] = None,
|
326
326
|
):
|
327
327
|
"""Wait for a service to reach a target state."""
|
328
|
-
return
|
328
|
+
return _private_sdk.controller_logs( # type: ignore
|
329
329
|
name,
|
330
330
|
cloud=cloud,
|
331
331
|
project=project,
|
@@ -77,10 +77,12 @@ _ROTATE_API_KEYS_DOCSTRINGS = {
|
|
77
77
|
doc_py_example=_CREATE_EXAMPLE,
|
78
78
|
arg_docstrings=_CREATE_DOCSTRINGS,
|
79
79
|
)
|
80
|
-
def create(
|
80
|
+
def create(
|
81
|
+
name: str, *, _private_sdk: Optional[PrivateServiceAccountSDK] = None
|
82
|
+
) -> str:
|
81
83
|
"""Create a service account and return the API key.
|
82
84
|
"""
|
83
|
-
return
|
85
|
+
return _private_sdk.create(name) # type: ignore
|
84
86
|
|
85
87
|
|
86
88
|
@sdk_command(
|
@@ -93,11 +95,11 @@ def create_api_key(
|
|
93
95
|
email: Optional[str] = None,
|
94
96
|
name: Optional[str] = None,
|
95
97
|
*,
|
96
|
-
|
98
|
+
_private_sdk: Optional[PrivateServiceAccountSDK] = None
|
97
99
|
) -> str:
|
98
100
|
"""Create an API key for the service account and return the API key.
|
99
101
|
"""
|
100
|
-
return
|
102
|
+
return _private_sdk.create_api_key(email, name) # type: ignore
|
101
103
|
|
102
104
|
|
103
105
|
@sdk_command(
|
@@ -107,10 +109,10 @@ def create_api_key(
|
|
107
109
|
arg_docstrings=_LIST_DOCSTRINGS,
|
108
110
|
)
|
109
111
|
def list( # noqa: A001
|
110
|
-
max_items: int = 20, *,
|
112
|
+
max_items: int = 20, *, _private_sdk: Optional[PrivateServiceAccountSDK] = None
|
111
113
|
) -> List[ServiceAccount]:
|
112
114
|
"""List service accounts. """
|
113
|
-
return
|
115
|
+
return _private_sdk.list(max_items) # type: ignore
|
114
116
|
|
115
117
|
|
116
118
|
@sdk_command(
|
@@ -123,11 +125,11 @@ def delete(
|
|
123
125
|
email: Optional[str] = None,
|
124
126
|
name: Optional[str] = None,
|
125
127
|
*,
|
126
|
-
|
128
|
+
_private_sdk: Optional[PrivateServiceAccountSDK] = None
|
127
129
|
):
|
128
130
|
"""Delete a service account.
|
129
131
|
"""
|
130
|
-
return
|
132
|
+
return _private_sdk.delete(email, name) # type: ignore
|
131
133
|
|
132
134
|
|
133
135
|
@sdk_command(
|
@@ -140,8 +142,8 @@ def rotate_api_keys(
|
|
140
142
|
email: Optional[str] = None,
|
141
143
|
name: Optional[str] = None,
|
142
144
|
*,
|
143
|
-
|
145
|
+
_private_sdk: Optional[PrivateServiceAccountSDK] = None
|
144
146
|
) -> str:
|
145
147
|
"""Rotate all api keys of a service account and return the new API key.
|
146
148
|
"""
|
147
|
-
return
|
149
|
+
return _private_sdk.rotate_api_keys(email, name) # type: ignore
|
anyscale/user/commands.py
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
from typing import List
|
1
|
+
from typing import List, Optional
|
2
2
|
|
3
3
|
from anyscale._private.sdk import sdk_command
|
4
4
|
from anyscale.user._private.user_sdk import PrivateUserSDK
|
@@ -35,8 +35,10 @@ _ADMIN_BATCH_CREATE_ARG_DOCSTRINGS = {
|
|
35
35
|
arg_docstrings=_ADMIN_BATCH_CREATE_ARG_DOCSTRINGS,
|
36
36
|
)
|
37
37
|
def admin_batch_create(
|
38
|
-
admin_create_users: List[AdminCreateUser],
|
38
|
+
admin_create_users: List[AdminCreateUser],
|
39
|
+
*,
|
40
|
+
_private_sdk: Optional[PrivateUserSDK] = None
|
39
41
|
) -> List[AdminCreatedUser]:
|
40
42
|
"""Batch create, as an admin, users without email verification.
|
41
43
|
"""
|
42
|
-
return
|
44
|
+
return _private_sdk.admin_batch_create(admin_create_users) # type: ignore
|
anyscale/utils/gcp_utils.py
CHANGED
@@ -41,15 +41,31 @@ GCP_REQUIRED_APIS = [
|
|
41
41
|
]
|
42
42
|
|
43
43
|
GCP_RESOURCE_DICT: Dict[str, CloudAnalyticsEventCloudResource] = {
|
44
|
-
"VPC": CloudAnalyticsEventCloudResource.GCP_VPC,
|
45
|
-
"Subnet": CloudAnalyticsEventCloudResource
|
46
|
-
|
47
|
-
|
48
|
-
"
|
49
|
-
|
50
|
-
|
51
|
-
"
|
52
|
-
|
44
|
+
"VPC": CloudAnalyticsEventCloudResource(CloudAnalyticsEventCloudResource.GCP_VPC),
|
45
|
+
"Subnet": CloudAnalyticsEventCloudResource(
|
46
|
+
CloudAnalyticsEventCloudResource.GCP_SUBNET
|
47
|
+
),
|
48
|
+
"Project": CloudAnalyticsEventCloudResource(
|
49
|
+
CloudAnalyticsEventCloudResource.GCP_PROJECT
|
50
|
+
),
|
51
|
+
"Anyscale Access Service Account": CloudAnalyticsEventCloudResource(
|
52
|
+
CloudAnalyticsEventCloudResource.GCP_SERVICE_ACCOUNT
|
53
|
+
),
|
54
|
+
"Dataplane Service Account": CloudAnalyticsEventCloudResource(
|
55
|
+
CloudAnalyticsEventCloudResource.GCP_SERVICE_ACCOUNT
|
56
|
+
),
|
57
|
+
"Firewall Policy": CloudAnalyticsEventCloudResource(
|
58
|
+
CloudAnalyticsEventCloudResource.GCP_FIREWALL_POLICY
|
59
|
+
),
|
60
|
+
"Filestore": CloudAnalyticsEventCloudResource(
|
61
|
+
CloudAnalyticsEventCloudResource.GCP_FILESTORE
|
62
|
+
),
|
63
|
+
"Google Cloud Storage Bucket": CloudAnalyticsEventCloudResource(
|
64
|
+
CloudAnalyticsEventCloudResource.GCP_STORAGE_BUCKET
|
65
|
+
),
|
66
|
+
"Memorystore": CloudAnalyticsEventCloudResource(
|
67
|
+
CloudAnalyticsEventCloudResource.GCP_MEMORYSTORE
|
68
|
+
),
|
53
69
|
}
|
54
70
|
|
55
71
|
|
anyscale/version.py
CHANGED
@@ -1 +1 @@
|
|
1
|
-
__version__ = "0.26.
|
1
|
+
__version__ = "0.26.17"
|
anyscale/workspace/__init__.py
CHANGED
@@ -253,7 +253,7 @@ class WorkspaceSDK:
|
|
253
253
|
doc_py_example=_UPDATE_EXAMPLE, arg_docstrings=_UPDATE_ARG_DOCSTRINGS,
|
254
254
|
)
|
255
255
|
def update( # noqa: F811
|
256
|
-
self, *, id: str = None, config: UpdateWorkspaceConfig # noqa: A002
|
256
|
+
self, *, id: Optional[str] = None, config: UpdateWorkspaceConfig # noqa: A002
|
257
257
|
):
|
258
258
|
"""Update a workspace."""
|
259
259
|
self._private_sdk.update(
|
@@ -292,7 +292,7 @@ class PrivateWorkspaceSDK(WorkloadSDK):
|
|
292
292
|
f"Workspace '{workspace_id_or_name}' did not reach target state {state} within {timeout_s}s. Last seen state: {curr_state}."
|
293
293
|
)
|
294
294
|
|
295
|
-
def _get_workspace_status(self, workspace_id: str) -> WorkspaceState:
|
295
|
+
def _get_workspace_status(self, workspace_id: Optional[str]) -> WorkspaceState:
|
296
296
|
|
297
297
|
cluster = self.client.get_workspace_cluster(workspace_id)
|
298
298
|
if not cluster:
|
@@ -564,7 +564,9 @@ class PrivateWorkspaceSDK(WorkloadSDK):
|
|
564
564
|
delete=delete,
|
565
565
|
)
|
566
566
|
|
567
|
-
def update(
|
567
|
+
def update(
|
568
|
+
self, *, id: Optional[str], config: UpdateWorkspaceConfig # noqa: A002
|
569
|
+
) -> str:
|
568
570
|
workspace = self.client.get_workspace(id=id) # type: ignore
|
569
571
|
|
570
572
|
if not workspace:
|
@@ -642,7 +644,7 @@ class PrivateWorkspaceSDK(WorkloadSDK):
|
|
642
644
|
)
|
643
645
|
self._logger.info(f"Applied environment variables to workspace id: {id}")
|
644
646
|
|
645
|
-
return id
|
647
|
+
return id # type: ignore
|
646
648
|
|
647
649
|
def _convert_cluster_state_to_workspace_state(
|
648
650
|
self, state: SessionState
|
anyscale/workspace/commands.py
CHANGED
@@ -34,12 +34,14 @@ _WAIT_TIMEOUT_SECONDS = 1800.0
|
|
34
34
|
doc_py_example=_CREATE_EXAMPLE,
|
35
35
|
arg_docstrings=_CREATE_ARG_DOCSTRINGS,
|
36
36
|
)
|
37
|
-
def create(
|
37
|
+
def create(
|
38
|
+
config: WorkspaceConfig, *, _private_sdk: Optional[PrivateWorkspaceSDK] = None
|
39
|
+
) -> str:
|
38
40
|
"""Create a workspace.
|
39
41
|
|
40
42
|
Returns the id of the created workspace.
|
41
43
|
"""
|
42
|
-
return
|
44
|
+
return _private_sdk.create(config) # type: ignore
|
43
45
|
|
44
46
|
|
45
47
|
_START_EXAMPLE = """
|
@@ -70,13 +72,13 @@ def start(
|
|
70
72
|
id: Optional[str] = None, # noqa: A002
|
71
73
|
cloud: Optional[str] = None,
|
72
74
|
project: Optional[str] = None,
|
73
|
-
|
75
|
+
_private_sdk: Optional[PrivateWorkspaceSDK] = None,
|
74
76
|
) -> str:
|
75
77
|
"""Start a workspace.
|
76
78
|
|
77
79
|
Returns the id of the started workspace.
|
78
80
|
"""
|
79
|
-
return
|
81
|
+
return _private_sdk.start(name=name, id=id, cloud=cloud, project=project) # type: ignore
|
80
82
|
|
81
83
|
|
82
84
|
_TERMINATE_EXAMPLE = """
|
@@ -107,13 +109,13 @@ def terminate(
|
|
107
109
|
id: Optional[str] = None, # noqa: A002
|
108
110
|
cloud: Optional[str] = None,
|
109
111
|
project: Optional[str] = None,
|
110
|
-
|
112
|
+
_private_sdk: Optional[PrivateWorkspaceSDK] = None,
|
111
113
|
) -> str:
|
112
114
|
"""Terminate a workspace.
|
113
115
|
|
114
116
|
Returns the id of the terminated workspace.
|
115
117
|
"""
|
116
|
-
return
|
118
|
+
return _private_sdk.terminate(name=name, id=id, cloud=cloud, project=project) # type: ignore
|
117
119
|
|
118
120
|
|
119
121
|
_STATUS_EXAMPLE = """
|
@@ -144,13 +146,13 @@ def status(
|
|
144
146
|
id: Optional[str] = None, # noqa: A002
|
145
147
|
cloud: Optional[str] = None,
|
146
148
|
project: Optional[str] = None,
|
147
|
-
|
149
|
+
_private_sdk: Optional[PrivateWorkspaceSDK] = None,
|
148
150
|
) -> str:
|
149
151
|
"""Get the status of a workspace.
|
150
152
|
|
151
153
|
Returns the status of the workspace.
|
152
154
|
"""
|
153
|
-
return
|
155
|
+
return _private_sdk.status(name=name, id=id, cloud=cloud, project=project) # type: ignore
|
154
156
|
|
155
157
|
|
156
158
|
_WAIT_EXAMPLE = """
|
@@ -185,13 +187,13 @@ def wait(
|
|
185
187
|
project: Optional[str] = None,
|
186
188
|
timeout_s: float = _WAIT_TIMEOUT_SECONDS,
|
187
189
|
state: str = WorkspaceState.RUNNING,
|
188
|
-
|
190
|
+
_private_sdk: Optional[PrivateWorkspaceSDK] = None,
|
189
191
|
) -> str:
|
190
192
|
"""Wait for a workspace to reach a terminal state.
|
191
193
|
|
192
194
|
Returns the status of the workspace.
|
193
195
|
"""
|
194
|
-
return
|
196
|
+
return _private_sdk.wait( # type: ignore
|
195
197
|
name=name,
|
196
198
|
id=id,
|
197
199
|
cloud=cloud,
|
@@ -235,13 +237,13 @@ def generate_ssh_config_file(
|
|
235
237
|
cloud: Optional[str] = None,
|
236
238
|
project: Optional[str] = None,
|
237
239
|
ssh_config_path: Optional[str] = None,
|
238
|
-
|
240
|
+
_private_sdk: Optional[PrivateWorkspaceSDK] = None,
|
239
241
|
) -> Tuple[str, str]:
|
240
242
|
"""Generate an SSH config file for a workspace.
|
241
243
|
|
242
244
|
Returns the hostname and path to the generated config file.
|
243
245
|
"""
|
244
|
-
return
|
246
|
+
return _private_sdk.generate_ssh_config_file( # type: ignore
|
245
247
|
name=name, id=id, cloud=cloud, project=project, ssh_config_path=ssh_config_path,
|
246
248
|
)
|
247
249
|
|
@@ -281,14 +283,14 @@ def run_command(
|
|
281
283
|
cloud: Optional[str] = None,
|
282
284
|
project: Optional[str] = None,
|
283
285
|
command: str,
|
284
|
-
|
286
|
+
_private_sdk: Optional[PrivateWorkspaceSDK] = None,
|
285
287
|
**kwargs: Dict[str, Any],
|
286
288
|
):
|
287
289
|
"""Run a command in a workspace.
|
288
290
|
|
289
291
|
Returns a subprocess.CompletedProcess object.
|
290
292
|
"""
|
291
|
-
return
|
293
|
+
return _private_sdk.run_command( # type: ignore
|
292
294
|
name=name, id=id, cloud=cloud, project=project, command=command, **kwargs,
|
293
295
|
)
|
294
296
|
|
@@ -328,13 +330,13 @@ def pull(
|
|
328
330
|
pull_git_state: bool = False,
|
329
331
|
rsync_args: Optional[List[str]] = None,
|
330
332
|
delete: bool = False,
|
331
|
-
|
333
|
+
_private_sdk: Optional[PrivateWorkspaceSDK] = None,
|
332
334
|
) -> None:
|
333
335
|
"""Pull a workspace to a local directory.
|
334
336
|
|
335
337
|
Returns the path to the pulled workspace.
|
336
338
|
"""
|
337
|
-
|
339
|
+
_private_sdk.pull( # type: ignore
|
338
340
|
name=name,
|
339
341
|
id=id,
|
340
342
|
cloud=cloud,
|
@@ -383,13 +385,13 @@ def push(
|
|
383
385
|
push_git_state: bool = False,
|
384
386
|
rsync_args: Optional[List[str]] = None,
|
385
387
|
delete: bool = False,
|
386
|
-
|
388
|
+
_private_sdk: Optional[PrivateWorkspaceSDK] = None,
|
387
389
|
) -> None:
|
388
390
|
"""Push a local directory to a workspace.
|
389
391
|
|
390
392
|
Returns the path to the pushed workspace.
|
391
393
|
"""
|
392
|
-
|
394
|
+
_private_sdk.push( # type: ignore
|
393
395
|
name=name,
|
394
396
|
id=id,
|
395
397
|
cloud=cloud,
|
@@ -427,13 +429,13 @@ _UPDATE_ARG_DOCSTRINGS = {
|
|
427
429
|
)
|
428
430
|
def update(
|
429
431
|
*,
|
430
|
-
id: str = None, # noqa: A002
|
432
|
+
id: Optional[str] = None, # noqa: A002
|
431
433
|
config: UpdateWorkspaceConfig,
|
432
|
-
|
434
|
+
_private_sdk: Optional[PrivateWorkspaceSDK] = None,
|
433
435
|
) -> None:
|
434
436
|
"""Update a workspace."""
|
435
|
-
|
436
|
-
id=id, config=config,
|
437
|
+
_private_sdk.update( # type: ignore
|
438
|
+
id=id, config=config,
|
437
439
|
)
|
438
440
|
|
439
441
|
|
@@ -466,7 +468,7 @@ def get(
|
|
466
468
|
id: Optional[str] = None, # noqa: A002
|
467
469
|
cloud: Optional[str] = None,
|
468
470
|
project: Optional[str] = None,
|
469
|
-
|
471
|
+
_private_sdk: Optional[PrivateWorkspaceSDK] = None,
|
470
472
|
) -> Workspace:
|
471
473
|
"""Get a workspace."""
|
472
|
-
return
|
474
|
+
return _private_sdk.get(name=name, id=id, cloud=cloud, project=project) # type: ignore
|