yicloud-sdk-python 0.5.1__tar.gz → 0.5.2__tar.gz
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.
- {yicloud_sdk_python-0.5.1/yicloud_sdk_python.egg-info → yicloud_sdk_python-0.5.2}/PKG-INFO +1 -1
- {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/pyproject.toml +1 -1
- {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/version.py +1 -1
- {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/__init__.py +1 -1
- {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/services/fs/__init__.py +1 -0
- {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/services/fs/models.py +8 -0
- {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/services/job/__init__.py +5 -0
- {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/services/job/actions.py +34 -0
- {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/services/job/models.py +17 -0
- {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/services/mc/__init__.py +5 -0
- {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/services/mc/actions.py +30 -0
- {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/services/mc/models.py +18 -2
- {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/services/modelrepo/models.py +8 -1
- yicloud_sdk_python-0.5.2/yicloud/services/monitor/__init__.py +23 -0
- yicloud_sdk_python-0.5.2/yicloud/services/monitor/actions.py +70 -0
- yicloud_sdk_python-0.5.2/yicloud/services/monitor/client.py +21 -0
- yicloud_sdk_python-0.5.2/yicloud/services/monitor/models.py +52 -0
- {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/services/oss/__init__.py +1 -0
- {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/services/oss/models.py +9 -0
- {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/services/workspace/models.py +1 -0
- {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2/yicloud_sdk_python.egg-info}/PKG-INFO +1 -1
- {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud_sdk_python.egg-info/SOURCES.txt +4 -0
- {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/LICENSE +0 -0
- {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/README.md +0 -0
- {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/setup.cfg +0 -0
- {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/base/__init__.py +0 -0
- {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/base/auth/__init__.py +0 -0
- {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/base/auth/credential.py +0 -0
- {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/base/auth/sign.py +0 -0
- {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/base/client.py +0 -0
- {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/base/config.py +0 -0
- {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/base/errs/__init__.py +0 -0
- {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/base/log/__init__.py +0 -0
- {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/base/log/logger.py +0 -0
- {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/base/log/std.py +0 -0
- {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/base/msgs/__init__.py +0 -0
- {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/base/utils/__init__.py +0 -0
- {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/base/utils/helps.py +0 -0
- {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/base/utils/retry/__init__.py +0 -0
- {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/base/utils/retry/retry.py +0 -0
- {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/services/__init__.py +0 -0
- {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/services/bc/__init__.py +0 -0
- {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/services/bc/actions.py +0 -0
- {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/services/bc/client.py +0 -0
- {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/services/bc/models.py +0 -0
- {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/services/dataset/__init__.py +0 -0
- {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/services/dataset/actions.py +0 -0
- {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/services/dataset/client.py +0 -0
- {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/services/dataset/models.py +0 -0
- {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/services/fs/actions.py +0 -0
- {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/services/fs/client.py +0 -0
- {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/services/iam/__init__.py +0 -0
- {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/services/iam/actions.py +0 -0
- {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/services/iam/client.py +0 -0
- {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/services/iam/models.py +0 -0
- {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/services/inferset/__init__.py +0 -0
- {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/services/inferset/actions.py +0 -0
- {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/services/inferset/client.py +0 -0
- {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/services/inferset/models.py +0 -0
- {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/services/job/client.py +0 -0
- {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/services/mc/client.py +0 -0
- {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/services/modelrepo/__init__.py +0 -0
- {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/services/modelrepo/actions.py +0 -0
- {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/services/modelrepo/client.py +0 -0
- {yicloud_sdk_python-0.5.1/yicloud/services/monitor → yicloud_sdk_python-0.5.2/yicloud/services/monitor/v1alpha1}/__init__.py +0 -0
- {yicloud_sdk_python-0.5.1/yicloud/services/monitor → yicloud_sdk_python-0.5.2/yicloud/services/monitor/v1alpha1}/actions.py +0 -0
- {yicloud_sdk_python-0.5.1/yicloud/services/monitor → yicloud_sdk_python-0.5.2/yicloud/services/monitor/v1alpha1}/client.py +0 -0
- {yicloud_sdk_python-0.5.1/yicloud/services/monitor → yicloud_sdk_python-0.5.2/yicloud/services/monitor/v1alpha1}/models.py +0 -0
- {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/services/oss/actions.py +0 -0
- {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/services/oss/client.py +0 -0
- {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/services/ray/__init__.py +0 -0
- {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/services/ray/actions.py +0 -0
- {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/services/ray/client.py +0 -0
- {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/services/ray/models.py +0 -0
- {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/services/registry/__init__.py +0 -0
- {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/services/registry/actions.py +0 -0
- {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/services/registry/client.py +0 -0
- {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/services/registry/models.py +0 -0
- {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/services/sandbox/__init__.py +0 -0
- {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/services/sandbox/actions.py +0 -0
- {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/services/sandbox/client.py +0 -0
- {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/services/sandbox/models.py +0 -0
- {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/services/service/__init__.py +0 -0
- {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/services/service/actions.py +0 -0
- {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/services/service/client.py +0 -0
- {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/services/service/models.py +0 -0
- {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/services/volume/__init__.py +0 -0
- {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/services/volume/actions.py +0 -0
- {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/services/volume/client.py +0 -0
- {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/services/volume/models.py +0 -0
- {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/services/workspace/__init__.py +0 -0
- {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/services/workspace/actions.py +0 -0
- {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/services/workspace/client.py +0 -0
- {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud_sdk_python.egg-info/dependency_links.txt +0 -0
- {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud_sdk_python.egg-info/not-zip-safe +0 -0
- {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud_sdk_python.egg-info/requires.txt +0 -0
- {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud_sdk_python.egg-info/top_level.txt +0 -0
|
@@ -44,6 +44,7 @@ class BucketResponse:
|
|
|
44
44
|
Fs: Optional[str] = "" # 文件系统 json:"Fs,omitempty"
|
|
45
45
|
FsCluster: Optional[str] = "" # 文件系统集群 json:"FsCluster,omitempty"
|
|
46
46
|
Owner: Optional[str] = "" # 文件集所有者 json:"Owner,omitempty"
|
|
47
|
+
OwnerTransfer: Optional[List[OwnerTransfer]] = None # 所有权转移记录 json:"OwnerTransfer,omitempty"
|
|
47
48
|
Permission: Optional[str] = "" # 文件集权限 json:"Permission,omitempty"
|
|
48
49
|
Size: Optional[str] = "" # 已使用容量(字节) json:"Size,omitempty"
|
|
49
50
|
State: Optional[str] = "" # 文件集状态 json:"State,omitempty"
|
|
@@ -97,6 +98,13 @@ class FilesetItem:
|
|
|
97
98
|
BucketResponse: Optional[BucketResponse] = None # 文件集详情 json:"BucketResponse,omitempty"
|
|
98
99
|
ID: Optional[str] = "" # 文件集ID json:"ID,omitempty"
|
|
99
100
|
|
|
101
|
+
@dataclass
|
|
102
|
+
class OwnerTransfer:
|
|
103
|
+
OperateTime: Optional[str] = "" # 操作时间(Unix 时间戳,秒) json:"OperateTime,omitempty"
|
|
104
|
+
Operator: Optional[str] = "" # 操作人 json:"Operator,omitempty"
|
|
105
|
+
Source: Optional[str] = "" # 原所有者 json:"Source,omitempty"
|
|
106
|
+
Target: Optional[str] = "" # 目标所有者 json:"Target,omitempty"
|
|
107
|
+
|
|
100
108
|
@dataclass
|
|
101
109
|
class ListDirData:
|
|
102
110
|
Files: Optional[List[GetFileInfoData]] = None # 文件/目录列表 json:"Files,omitempty"
|
|
@@ -12,6 +12,7 @@ from .actions import (
|
|
|
12
12
|
edit_job,
|
|
13
13
|
batch_delete_jobs,
|
|
14
14
|
batch_stop_jobs,
|
|
15
|
+
batch_stop_self_heal_jobs,
|
|
15
16
|
stop_job,
|
|
16
17
|
stop_replica,
|
|
17
18
|
get_logs,
|
|
@@ -26,6 +27,7 @@ from .actions import (
|
|
|
26
27
|
edit_job_async,
|
|
27
28
|
batch_delete_jobs_async,
|
|
28
29
|
batch_stop_jobs_async,
|
|
30
|
+
batch_stop_self_heal_jobs_async,
|
|
29
31
|
stop_job_async,
|
|
30
32
|
stop_replica_async,
|
|
31
33
|
get_logs_async,
|
|
@@ -50,6 +52,8 @@ from .models import (
|
|
|
50
52
|
BatchDeleteJobsReq,
|
|
51
53
|
BatchStopJobsReq,
|
|
52
54
|
BatchStopJobsData,
|
|
55
|
+
BatchStopSelfHealJobsReq,
|
|
56
|
+
BatchStopSelfHealJobsData,
|
|
53
57
|
CreateJobReq,
|
|
54
58
|
CreateJobData,
|
|
55
59
|
EditJobReq,
|
|
@@ -72,6 +76,7 @@ from .models import (
|
|
|
72
76
|
GetJobReplicaData,
|
|
73
77
|
BatchDeleteJobsReqResourceIdentifier,
|
|
74
78
|
BatchStopJobsReqResourceIdentifier,
|
|
79
|
+
BatchStopSelfHealJobsReqResourceIdentifier,
|
|
75
80
|
Result,
|
|
76
81
|
RootfsSourceResponse,
|
|
77
82
|
S3Config,
|
|
@@ -223,6 +223,40 @@ async def batch_stop_jobs_async(ctx: Optional[dict], req: models.BatchStopJobsRe
|
|
|
223
223
|
return rsp.get_typed_data()
|
|
224
224
|
|
|
225
225
|
|
|
226
|
+
def batch_stop_self_heal_jobs(ctx: Optional[dict], req: models.BatchStopSelfHealJobsReq) -> models.BatchStopSelfHealJobsData:
|
|
227
|
+
"""批量中止 Job 自愈
|
|
228
|
+
批量中止指定 Job 列表的自愈(不打断任务本身运行)。
|
|
229
|
+
服务端为每个 Job 写入 self-health.brainpp.cn/stop 注解;
|
|
230
|
+
控制器(maintain-ctler)识别后取消待定重拉并清理本轮自愈占位。
|
|
231
|
+
POST /job/v1alpha1/BatchStopSelfHealJobs
|
|
232
|
+
Action: BatchStopSelfHealJobs
|
|
233
|
+
|
|
234
|
+
Returns BatchStopSelfHealJobsData on success.
|
|
235
|
+
Raises YiCloudException on error.
|
|
236
|
+
"""
|
|
237
|
+
path = f"/{_PRODUCT_CODE}/{_LAST_VERSION}/BatchStopSelfHealJobs"
|
|
238
|
+
rsp = msgs.Rsp[models.BatchStopSelfHealJobsData]()
|
|
239
|
+
client.base.post(ctx, path, {k: v for k, v in req.__dict__.items() if v is not None}, rsp)
|
|
240
|
+
return rsp.get_typed_data()
|
|
241
|
+
|
|
242
|
+
|
|
243
|
+
async def batch_stop_self_heal_jobs_async(ctx: Optional[dict], req: models.BatchStopSelfHealJobsReq) -> models.BatchStopSelfHealJobsData:
|
|
244
|
+
"""批量中止 Job 自愈(异步)
|
|
245
|
+
批量中止指定 Job 列表的自愈(不打断任务本身运行)。
|
|
246
|
+
服务端为每个 Job 写入 self-health.brainpp.cn/stop 注解;
|
|
247
|
+
控制器(maintain-ctler)识别后取消待定重拉并清理本轮自愈占位。
|
|
248
|
+
POST /job/v1alpha1/BatchStopSelfHealJobs
|
|
249
|
+
Action: BatchStopSelfHealJobs
|
|
250
|
+
|
|
251
|
+
Returns BatchStopSelfHealJobsData on success.
|
|
252
|
+
Raises YiCloudException on error.
|
|
253
|
+
"""
|
|
254
|
+
path = f"/{_PRODUCT_CODE}/{_LAST_VERSION}/BatchStopSelfHealJobs"
|
|
255
|
+
rsp = msgs.Rsp[models.BatchStopSelfHealJobsData]()
|
|
256
|
+
await client.base.post_async(ctx, path, {k: v for k, v in req.__dict__.items() if v is not None}, rsp)
|
|
257
|
+
return rsp.get_typed_data()
|
|
258
|
+
|
|
259
|
+
|
|
226
260
|
def stop_job(ctx: Optional[dict], req: models.StopJobReq):
|
|
227
261
|
"""停止 Job
|
|
228
262
|
停止运行中的 Job
|
|
@@ -85,6 +85,17 @@ class BatchStopJobsData:
|
|
|
85
85
|
Message: Optional[str] = "" # 操作结果消息 json:"Message,omitempty"
|
|
86
86
|
Reasons: Optional[Dict[str, str]] = None # 失败原因映射,key 为 Job ID,value 为失败原因 json:"Reasons,omitempty"
|
|
87
87
|
|
|
88
|
+
@dataclass
|
|
89
|
+
class BatchStopSelfHealJobsReq:
|
|
90
|
+
Resources: List[BatchStopSelfHealJobsReqResourceIdentifier] # 待中止自愈的 Job 列表 json:"Resources"
|
|
91
|
+
ZoneId: Optional[str] = None # 可用区(AZ),如 cn-shanghai-b;可选,当前服务端暂不处理。RegionId 由网关通过 X-OGW-REGION-ID 头注入,不在 body 中传递 json:"ZoneId,omitempty"
|
|
92
|
+
|
|
93
|
+
@dataclass
|
|
94
|
+
class BatchStopSelfHealJobsData:
|
|
95
|
+
Failed: Optional[List[str]] = None # 中止自愈失败的 Job ID 列表 json:"Failed,omitempty"
|
|
96
|
+
Message: Optional[str] = "" # 操作结果消息 json:"Message,omitempty"
|
|
97
|
+
Reasons: Optional[Dict[str, str]] = None # 失败原因映射,key 为 Job ID,value 为失败原因 json:"Reasons,omitempty"
|
|
98
|
+
|
|
88
99
|
@dataclass
|
|
89
100
|
class CreateJobReq:
|
|
90
101
|
Name: str # Job 显示名称 json:"Name"
|
|
@@ -187,6 +198,7 @@ class GetJobData:
|
|
|
187
198
|
SelfHealLimitCount: Optional[int] = 0 # 自愈最大重试次数 json:"SelfHealLimitCount,omitempty"
|
|
188
199
|
SelfHealNotifyWebhook: Optional[str] = "" # 自愈事件通知 Webhook URL json:"SelfHealNotifyWebhook,omitempty"
|
|
189
200
|
SelfHealRetryScope: Optional[str] = "" # 自愈重试粒度(rjob/task) json:"SelfHealRetryScope,omitempty"
|
|
201
|
+
SelfHealStopRequested: Optional[bool] = False # 是否已点击终止自愈;RJob 的 self-health.brainpp.cn/stop 注解为 true 时返回 true json:"SelfHealStopRequested,omitempty"
|
|
190
202
|
SelfHealTerminationGracePeriodSeconds: Optional[int] = 0 # 自愈数据回收时间(秒),读取自愈注解 self-health.brainpp.cn/termination-grace-period-seconds;未设置时不返回 json:"SelfHealTerminationGracePeriodSeconds,omitempty"
|
|
191
203
|
StopTime: Optional[str] = "" # 停止时间(RFC3339 格式) json:"StopTime,omitempty"
|
|
192
204
|
TaskSpecs: Optional[Dict[str, TaskSpecResponse]] = None # 任务规格映射,key 为任务名(如 t0),value 为任务规格 json:"TaskSpecs,omitempty"
|
|
@@ -294,6 +306,11 @@ class BatchStopJobsReqResourceIdentifier:
|
|
|
294
306
|
JobId: Optional[str] = None # Job 唯一标识 json:"JobId,omitempty"
|
|
295
307
|
Project: Optional[str] = None # 项目名称 json:"Project,omitempty"
|
|
296
308
|
|
|
309
|
+
@dataclass
|
|
310
|
+
class BatchStopSelfHealJobsReqResourceIdentifier:
|
|
311
|
+
JobId: Optional[str] = None # Job 唯一标识 json:"JobId,omitempty"
|
|
312
|
+
Project: Optional[str] = None # 项目名称 json:"Project,omitempty"
|
|
313
|
+
|
|
297
314
|
@dataclass
|
|
298
315
|
class Result:
|
|
299
316
|
Metric: Optional[Dict[str, str]] = None # 指标标签 json:"Metric,omitempty"
|
|
@@ -23,6 +23,7 @@ from .actions import (
|
|
|
23
23
|
get_resource_pool,
|
|
24
24
|
list_audit_logs,
|
|
25
25
|
list_events,
|
|
26
|
+
list_gpu_types,
|
|
26
27
|
list_node_configuration,
|
|
27
28
|
list_node_instances,
|
|
28
29
|
list_nodes,
|
|
@@ -68,6 +69,7 @@ from .actions import (
|
|
|
68
69
|
get_resource_pool_async,
|
|
69
70
|
list_audit_logs_async,
|
|
70
71
|
list_events_async,
|
|
72
|
+
list_gpu_types_async,
|
|
71
73
|
list_node_configuration_async,
|
|
72
74
|
list_node_instances_async,
|
|
73
75
|
list_nodes_async,
|
|
@@ -120,8 +122,10 @@ from .models import (
|
|
|
120
122
|
DeleteProjectReq,
|
|
121
123
|
DeleteResourcePoolReq,
|
|
122
124
|
EventItem,
|
|
125
|
+
GpuTypeDisplayData,
|
|
123
126
|
ListAuditLogsData,
|
|
124
127
|
ListEventsData,
|
|
128
|
+
ListGpuTypesData,
|
|
125
129
|
ListNodeInstancesData,
|
|
126
130
|
ListNodesData,
|
|
127
131
|
ListProjectUsersData,
|
|
@@ -196,6 +200,7 @@ from .models import (
|
|
|
196
200
|
GetResourcePoolReq,
|
|
197
201
|
ListAuditLogsReq,
|
|
198
202
|
ListEventsReq,
|
|
203
|
+
ListGpuTypesReq,
|
|
199
204
|
ListNodeConfigurationReq,
|
|
200
205
|
ListNodeInstancesReq,
|
|
201
206
|
ListNodesReq,
|
|
@@ -537,6 +537,36 @@ async def list_events_async(ctx: Optional[dict], req: models.ListEventsReq) -> m
|
|
|
537
537
|
return rsp.get_typed_data()
|
|
538
538
|
|
|
539
539
|
|
|
540
|
+
def list_gpu_types(ctx: Optional[dict], req: models.ListGpuTypesReq) -> models.ListGpuTypesData:
|
|
541
|
+
"""列出GPU卡类型(双语对照表)
|
|
542
|
+
返回全部GPU卡型的协议值/英文/中文显示名(敏感卡型已脱敏);返回值与租户无关,全局缓存即可
|
|
543
|
+
GET /mc/v1alpha1/ListGpuTypes
|
|
544
|
+
Action: ListGpuTypes
|
|
545
|
+
|
|
546
|
+
Returns ListGpuTypesData on success.
|
|
547
|
+
Raises YiCloudException on error.
|
|
548
|
+
"""
|
|
549
|
+
path = f"/{_PRODUCT_CODE}/{_LAST_VERSION}/ListGpuTypes"
|
|
550
|
+
rsp = msgs.Rsp[models.ListGpuTypesData]()
|
|
551
|
+
client.base.get(ctx, path, req, rsp)
|
|
552
|
+
return rsp.get_typed_data()
|
|
553
|
+
|
|
554
|
+
|
|
555
|
+
async def list_gpu_types_async(ctx: Optional[dict], req: models.ListGpuTypesReq) -> models.ListGpuTypesData:
|
|
556
|
+
"""列出GPU卡类型(双语对照表)(异步)
|
|
557
|
+
返回全部GPU卡型的协议值/英文/中文显示名(敏感卡型已脱敏);返回值与租户无关,全局缓存即可
|
|
558
|
+
GET /mc/v1alpha1/ListGpuTypes
|
|
559
|
+
Action: ListGpuTypes
|
|
560
|
+
|
|
561
|
+
Returns ListGpuTypesData on success.
|
|
562
|
+
Raises YiCloudException on error.
|
|
563
|
+
"""
|
|
564
|
+
path = f"/{_PRODUCT_CODE}/{_LAST_VERSION}/ListGpuTypes"
|
|
565
|
+
rsp = msgs.Rsp[models.ListGpuTypesData]()
|
|
566
|
+
await client.base.get_async(ctx, path, req, rsp)
|
|
567
|
+
return rsp.get_typed_data()
|
|
568
|
+
|
|
569
|
+
|
|
540
570
|
def list_node_configuration(ctx: Optional[dict], req: models.ListNodeConfigurationReq) -> models.ListNodeConfigurationData:
|
|
541
571
|
"""获取节点配置选项
|
|
542
572
|
获取节点配置筛选选项(CPU/GPU/内存/本地盘等可选项)
|
|
@@ -155,6 +155,12 @@ class EventItem:
|
|
|
155
155
|
ReportingComponent: Optional[str] = "" # json:"ReportingComponent,omitempty"
|
|
156
156
|
ReportingInstance: Optional[str] = "" # json:"ReportingInstance,omitempty"
|
|
157
157
|
|
|
158
|
+
@dataclass
|
|
159
|
+
class GpuTypeDisplayData:
|
|
160
|
+
Name: Optional[str] = "" # 协议值 json:"Name,omitempty"
|
|
161
|
+
NameEn: Optional[str] = "" # 英文显示名 json:"NameEn,omitempty"
|
|
162
|
+
NameZh: Optional[str] = "" # 中文显示名(非敏感卡型为空串) json:"NameZh,omitempty"
|
|
163
|
+
|
|
158
164
|
@dataclass
|
|
159
165
|
class ListAuditLogsData:
|
|
160
166
|
Items: Optional[List[AuditLogData]] = None # 审计日志列表 json:"Items,omitempty"
|
|
@@ -169,6 +175,11 @@ class ListEventsData:
|
|
|
169
175
|
Offset: Optional[int] = 0 # 分页偏移量 json:"Offset,omitempty"
|
|
170
176
|
Total: Optional[int] = 0 # 总条数 json:"Total,omitempty"
|
|
171
177
|
|
|
178
|
+
@dataclass
|
|
179
|
+
class ListGpuTypesData:
|
|
180
|
+
Items: Optional[List[GpuTypeDisplayData]] = None # json:"Items,omitempty"
|
|
181
|
+
Total: Optional[int] = 0 # json:"Total,omitempty"
|
|
182
|
+
|
|
172
183
|
@dataclass
|
|
173
184
|
class ListNodeInstancesData:
|
|
174
185
|
Items: Optional[List[NodeInstance]] = None # 实例列表 json:"Items,omitempty"
|
|
@@ -307,7 +318,7 @@ class NodeInstance:
|
|
|
307
318
|
InstanceName: Optional[str] = "" # Instance 名称 json:"InstanceName,omitempty"
|
|
308
319
|
InstanceParent: Optional[str] = "" # 上层资源ID json:"InstanceParent,omitempty"
|
|
309
320
|
InstanceStatus: Optional[str] = "" # 状态 json:"InstanceStatus,omitempty"
|
|
310
|
-
InstanceType: Optional[str] = "" # 资源类型(worker, workspace, job, ray, other) json:"InstanceType,omitempty"
|
|
321
|
+
InstanceType: Optional[str] = "" # 资源类型(worker, workspace, job, ray, modelset, inferset, other) json:"InstanceType,omitempty"
|
|
311
322
|
LocalStorage: Optional[int] = 0 # 本地 存储 (Gi) json:"LocalStorage,omitempty"
|
|
312
323
|
Memory: Optional[int] = 0 # 内存 (Gi) json:"Memory,omitempty"
|
|
313
324
|
Project: Optional[str] = "" # 项目 json:"Project,omitempty"
|
|
@@ -635,6 +646,7 @@ class SkuResourceUsage:
|
|
|
635
646
|
class SubResourceData:
|
|
636
647
|
ChargedQuota: Optional[Quota] = None # 已使用配额 json:"ChargedQuota,omitempty"
|
|
637
648
|
CreationTime: Optional[str] = "" # 创建时间(RFC3339 UTC) json:"CreationTime,omitempty"
|
|
649
|
+
IP: Optional[str] = "" # 实例(Pod)IP 地址,未分配时为空串 json:"IP,omitempty"
|
|
638
650
|
Labels: Optional[Dict[str, str]] = None # 标签 json:"Labels,omitempty"
|
|
639
651
|
Name: Optional[str] = "" # 子资源名称 json:"Name,omitempty"
|
|
640
652
|
Namespace: Optional[str] = "" # 命名空间 json:"Namespace,omitempty"
|
|
@@ -750,13 +762,17 @@ class ListEventsReq:
|
|
|
750
762
|
Order: Optional[str] = None # 排序方向: asc, desc,默认 desc query:"Order,omitempty"
|
|
751
763
|
SortBy: Optional[str] = None # 排序 query:"SortBy,omitempty"
|
|
752
764
|
|
|
765
|
+
@dataclass
|
|
766
|
+
class ListGpuTypesReq:
|
|
767
|
+
Tenant: str # query:"Tenant"
|
|
768
|
+
|
|
753
769
|
@dataclass
|
|
754
770
|
class ListNodeConfigurationReq:
|
|
755
771
|
Project: Optional[str] = None # 项目名(可选) query:"Project,omitempty"
|
|
756
772
|
|
|
757
773
|
@dataclass
|
|
758
774
|
class ListNodeInstancesReq:
|
|
759
|
-
InstanceType: List[str] # 资源类型筛选(worker, workspace, job, ray, other) query:"InstanceType"
|
|
775
|
+
InstanceType: List[str] # 资源类型筛选(worker, workspace, job, ray, modelset, inferset, other) query:"InstanceType"
|
|
760
776
|
NodeName: str # 节点名 query:"NodeName"
|
|
761
777
|
InstanceStatus: Optional[List[str]] = None # Instance 状态筛选 query:"InstanceStatus,omitempty"
|
|
762
778
|
Keyword: Optional[str] = None # 关键字搜索 query:"Keyword,omitempty"
|
|
@@ -75,6 +75,8 @@ class ModelBaseInfo:
|
|
|
75
75
|
Project: Optional[str] = "" # json:"Project,omitempty"
|
|
76
76
|
QuotaGroup: Optional[str] = "" # json:"QuotaGroup,omitempty"
|
|
77
77
|
RegionId: Optional[str] = "" # json:"RegionId,omitempty"
|
|
78
|
+
Type: Optional[str] = "" # Type 模型类型,由前端拼好的一级-二级中划线字符串,如 "自然语言处理-文本分类";历史数据(Type 上线前创建)出参统一为“其他” json:"Type,omitempty"
|
|
79
|
+
UpdateAt: Optional[str] = "" # UpdateAt 更新时间,仅在用户显式操作(编辑模型、增删改版本)后刷新;历史数据(LastUpdateTime 为空)回退为创建时间 json:"UpdateAt,omitempty"
|
|
78
80
|
VersionCount: Optional[int] = 0 # json:"VersionCount,omitempty"
|
|
79
81
|
Visibility: Optional[str] = "" # json:"Visibility,omitempty"
|
|
80
82
|
ZoneId: Optional[str] = "" # json:"ZoneId,omitempty"
|
|
@@ -95,6 +97,7 @@ class CreateModelData:
|
|
|
95
97
|
Project: Optional[str] = "" # json:"Project,omitempty"
|
|
96
98
|
QuotaGroup: Optional[str] = "" # json:"QuotaGroup,omitempty"
|
|
97
99
|
RegionId: Optional[str] = "" # json:"RegionId,omitempty"
|
|
100
|
+
Type: Optional[str] = "" # Type 模型类型,由前端拼好的一级-二级中划线字符串,如 "自然语言处理-文本分类";历史数据(Type 上线前创建)出参统一为“其他” json:"Type,omitempty"
|
|
98
101
|
UpdateAt: Optional[str] = "" # json:"UpdateAt,omitempty"
|
|
99
102
|
VersionCount: Optional[int] = 0 # json:"VersionCount,omitempty"
|
|
100
103
|
Visibility: Optional[str] = "" # json:"Visibility,omitempty"
|
|
@@ -103,8 +106,9 @@ class CreateModelData:
|
|
|
103
106
|
@dataclass
|
|
104
107
|
class CreateModelReqModelInfo:
|
|
105
108
|
Name: str # json:"Name"
|
|
109
|
+
Type: str # Type 模型类型(必填),由前端拼好的一级-二级中划线字符串,如 "自然语言处理-文本分类" json:"Type"
|
|
106
110
|
Visibility: str # Visibility 可见性: creator(仅创建者), project(项目内共享), tenant(租户内可见) json:"Visibility"
|
|
107
|
-
ZoneId: str # json:"ZoneId"
|
|
111
|
+
ZoneId: str # ZoneId 可用区ID(必填) json:"ZoneId"
|
|
108
112
|
Description: Optional[str] = None # json:"Description,omitempty"
|
|
109
113
|
QuotaGroup: Optional[str] = None # json:"QuotaGroup,omitempty"
|
|
110
114
|
|
|
@@ -115,6 +119,7 @@ class UpdateModelReq:
|
|
|
115
119
|
Project: str # json:"Project"
|
|
116
120
|
Description: Optional[str] = None # json:"Description,omitempty"
|
|
117
121
|
ModelType: Optional[str] = None # json:"ModelType,omitempty"
|
|
122
|
+
Type: Optional[str] = None # Type 模型类型,由前端拼好的一级-二级中划线字符串,如 "自然语言处理-文本分类" json:"Type,omitempty"
|
|
118
123
|
|
|
119
124
|
@dataclass
|
|
120
125
|
class UpdateModelVersionReq:
|
|
@@ -167,6 +172,7 @@ class ListBaseModelReq:
|
|
|
167
172
|
@dataclass
|
|
168
173
|
class ListModelReq:
|
|
169
174
|
ZoneId: str # 可用区ID(必填) query:"ZoneId"
|
|
175
|
+
Creator: Optional[str] = None # 创建者筛选(可选), 精确匹配创建者用户名 query:"Creator,omitempty"
|
|
170
176
|
Keyword: Optional[str] = None # 搜索关键词 query:"Keyword,omitempty"
|
|
171
177
|
Limit: Optional[int] = None # 分页大小 query:"Limit,omitempty"
|
|
172
178
|
ModelType: Optional[str] = None # 模型类型(可选), 平台模型: platform query:"ModelType,omitempty"
|
|
@@ -174,6 +180,7 @@ class ListModelReq:
|
|
|
174
180
|
Order: Optional[str] = None # 排序方向: asc:正序,desc:倒叙, 默认: desc query:"Order,omitempty"
|
|
175
181
|
Project: Optional[str] = None # 项目名称(可选, 不传则按 ZoneId 跨项目查询整个租户) query:"Project,omitempty"
|
|
176
182
|
SortBy: Optional[str] = None # 排序字段, 支持: Name, CreationTime, LatestVersion query:"SortBy,omitempty"
|
|
183
|
+
Type: Optional[str] = None # 模型分类筛选(可选), 模糊包含匹配, 传"其他"可命中未分类历史数据 query:"Type,omitempty"
|
|
177
184
|
View: Optional[str] = None # 列表视图筛选: all(全部, 默认), mine(我创建的) query:"View,omitempty"
|
|
178
185
|
Visibility: Optional[str] = None # 可见性筛选: creator, project, tenant query:"Visibility,omitempty"
|
|
179
186
|
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# Code generated by generate_openapi.py. DO NOT EDIT.
|
|
2
|
+
|
|
3
|
+
from yicloud.services.monitor.client import MonitorClient as Client, client, use_client
|
|
4
|
+
from . import actions, models
|
|
5
|
+
|
|
6
|
+
# Re-export action functions
|
|
7
|
+
from .actions import (
|
|
8
|
+
get_monitor_data,
|
|
9
|
+
get_tenant_monitor_data,
|
|
10
|
+
get_monitor_data_async,
|
|
11
|
+
get_tenant_monitor_data_async,
|
|
12
|
+
)
|
|
13
|
+
|
|
14
|
+
# Re-export models
|
|
15
|
+
from .models import (
|
|
16
|
+
GetMonitorDataData,
|
|
17
|
+
GetTenantMonitorDataData,
|
|
18
|
+
MonitorResultItem,
|
|
19
|
+
MonitorValue,
|
|
20
|
+
TenantMonitorPoint,
|
|
21
|
+
GetMonitorDataReq,
|
|
22
|
+
GetTenantMonitorDataReq,
|
|
23
|
+
)
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
# Code generated by generate_openapi.py. DO NOT EDIT.
|
|
2
|
+
|
|
3
|
+
from typing import Optional
|
|
4
|
+
from yicloud.base import msgs
|
|
5
|
+
from yicloud.services.monitor import models
|
|
6
|
+
from yicloud.services.monitor.client import client
|
|
7
|
+
|
|
8
|
+
_PRODUCT_CODE = "monitor"
|
|
9
|
+
_LAST_VERSION = "v1alpha2"
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
def get_monitor_data(ctx: Optional[dict], req: models.GetMonitorDataReq) -> models.GetMonitorDataData:
|
|
13
|
+
"""获取监控数据
|
|
14
|
+
按 ResourceType、MetricName、InstanceId 查询监控数据。ProjectName、StartTime、EndTime、MountPoint、Extras 可选。GET 参数使用 PascalCase。StartTime 与 EndTime 都省略时按当前时间做瞬时查询。
|
|
15
|
+
GET /monitor/v1alpha2/GetMonitorData
|
|
16
|
+
Action: GetMonitorData
|
|
17
|
+
|
|
18
|
+
Returns GetMonitorDataData on success.
|
|
19
|
+
Raises YiCloudException on error.
|
|
20
|
+
"""
|
|
21
|
+
path = f"/{_PRODUCT_CODE}/{_LAST_VERSION}/GetMonitorData"
|
|
22
|
+
rsp = msgs.Rsp[models.GetMonitorDataData]()
|
|
23
|
+
client.base.get(ctx, path, req, rsp)
|
|
24
|
+
return rsp.get_typed_data()
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
async def get_monitor_data_async(ctx: Optional[dict], req: models.GetMonitorDataReq) -> models.GetMonitorDataData:
|
|
28
|
+
"""获取监控数据(异步)
|
|
29
|
+
按 ResourceType、MetricName、InstanceId 查询监控数据。ProjectName、StartTime、EndTime、MountPoint、Extras 可选。GET 参数使用 PascalCase。StartTime 与 EndTime 都省略时按当前时间做瞬时查询。
|
|
30
|
+
GET /monitor/v1alpha2/GetMonitorData
|
|
31
|
+
Action: GetMonitorData
|
|
32
|
+
|
|
33
|
+
Returns GetMonitorDataData on success.
|
|
34
|
+
Raises YiCloudException on error.
|
|
35
|
+
"""
|
|
36
|
+
path = f"/{_PRODUCT_CODE}/{_LAST_VERSION}/GetMonitorData"
|
|
37
|
+
rsp = msgs.Rsp[models.GetMonitorDataData]()
|
|
38
|
+
await client.base.get_async(ctx, path, req, rsp)
|
|
39
|
+
return rsp.get_typed_data()
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
def get_tenant_monitor_data(ctx: Optional[dict], req: models.GetTenantMonitorDataReq) -> models.GetTenantMonitorDataData:
|
|
43
|
+
"""获取租户维度监控数据
|
|
44
|
+
按鉴权租户瞬时查询 GPU 指标。未传 ProjectName 时 PromQL 来自 OPMS category=common、MetricCode=tenant_{MetricName};传入 ProjectName 时 MetricCode=tenant_project_{MetricName}。结果 Redis 缓存 15s,空结果缓存 5s。MetricName 支持 gpu_util、gpu_util_avg、gpu_mem_util、gpu_mem_util_avg、gpu_mem_used、gpu_mem_used_avg、gpu_power、gpu_power_avg、gpu_core_temp、gpu_core_temp_avg。
|
|
45
|
+
GET /monitor/v1alpha2/GetTenantMonitorData
|
|
46
|
+
Action: GetTenantMonitorData
|
|
47
|
+
|
|
48
|
+
Returns GetTenantMonitorDataData on success.
|
|
49
|
+
Raises YiCloudException on error.
|
|
50
|
+
"""
|
|
51
|
+
path = f"/{_PRODUCT_CODE}/{_LAST_VERSION}/GetTenantMonitorData"
|
|
52
|
+
rsp = msgs.Rsp[models.GetTenantMonitorDataData]()
|
|
53
|
+
client.base.get(ctx, path, req, rsp)
|
|
54
|
+
return rsp.get_typed_data()
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
async def get_tenant_monitor_data_async(ctx: Optional[dict], req: models.GetTenantMonitorDataReq) -> models.GetTenantMonitorDataData:
|
|
58
|
+
"""获取租户维度监控数据(异步)
|
|
59
|
+
按鉴权租户瞬时查询 GPU 指标。未传 ProjectName 时 PromQL 来自 OPMS category=common、MetricCode=tenant_{MetricName};传入 ProjectName 时 MetricCode=tenant_project_{MetricName}。结果 Redis 缓存 15s,空结果缓存 5s。MetricName 支持 gpu_util、gpu_util_avg、gpu_mem_util、gpu_mem_util_avg、gpu_mem_used、gpu_mem_used_avg、gpu_power、gpu_power_avg、gpu_core_temp、gpu_core_temp_avg。
|
|
60
|
+
GET /monitor/v1alpha2/GetTenantMonitorData
|
|
61
|
+
Action: GetTenantMonitorData
|
|
62
|
+
|
|
63
|
+
Returns GetTenantMonitorDataData on success.
|
|
64
|
+
Raises YiCloudException on error.
|
|
65
|
+
"""
|
|
66
|
+
path = f"/{_PRODUCT_CODE}/{_LAST_VERSION}/GetTenantMonitorData"
|
|
67
|
+
rsp = msgs.Rsp[models.GetTenantMonitorDataData]()
|
|
68
|
+
await client.base.get_async(ctx, path, req, rsp)
|
|
69
|
+
return rsp.get_typed_data()
|
|
70
|
+
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# Code generated by generate_openapi.py. DO NOT EDIT.
|
|
2
|
+
|
|
3
|
+
from yicloud.base import Client
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
class MonitorClient:
|
|
7
|
+
"""Monitor service client."""
|
|
8
|
+
|
|
9
|
+
def __init__(self, base_client: Client = None):
|
|
10
|
+
self.base = base_client
|
|
11
|
+
self.product_code = "monitor"
|
|
12
|
+
self.last_version = "v1alpha2"
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
# Singleton
|
|
16
|
+
client: MonitorClient = MonitorClient()
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
def use_client(cli: Client) -> None:
|
|
20
|
+
"""Set the base client for Monitor service."""
|
|
21
|
+
client.base = cli
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# Code generated by generate_openapi.py. DO NOT EDIT.
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
from dataclasses import dataclass, field
|
|
5
|
+
from typing import Optional, List, Dict
|
|
6
|
+
|
|
7
|
+
# Models
|
|
8
|
+
@dataclass
|
|
9
|
+
class GetMonitorDataData:
|
|
10
|
+
Items: Optional[List[MonitorResultItem]] = None # Monitor result list. json:"Items,omitempty"
|
|
11
|
+
Total: Optional[int] = 0 # Result count. json:"Total,omitempty"
|
|
12
|
+
|
|
13
|
+
@dataclass
|
|
14
|
+
class GetTenantMonitorDataData:
|
|
15
|
+
Items: Optional[List[TenantMonitorPoint]] = None # 瞬时结果列表,按 InstanceId、Uuid 排序 json:"Items,omitempty"
|
|
16
|
+
Total: Optional[int] = 0 # 结果条数 json:"Total,omitempty"
|
|
17
|
+
|
|
18
|
+
@dataclass
|
|
19
|
+
class MonitorResultItem:
|
|
20
|
+
Metric: Optional[Dict[str, str]] = None # Filtered Prometheus labels. json:"Metric,omitempty"
|
|
21
|
+
MetricName: Optional[str] = "" # Metric name. json:"MetricName,omitempty"
|
|
22
|
+
ResourceId: Optional[str] = "" # Main target id, such as Pod, StatefulSetName, or Machine. json:"ResourceId,omitempty"
|
|
23
|
+
Values: Optional[List[MonitorValue]] = None # Time series values. json:"Values,omitempty"
|
|
24
|
+
|
|
25
|
+
@dataclass
|
|
26
|
+
class MonitorValue:
|
|
27
|
+
Timestamp: Optional[int] = 0 # Unix seconds. json:"Timestamp,omitempty"
|
|
28
|
+
Value: Optional[float] = 0.0 # Metric value. json:"Value,omitempty"
|
|
29
|
+
|
|
30
|
+
@dataclass
|
|
31
|
+
class TenantMonitorPoint:
|
|
32
|
+
InstanceId: Optional[str] = "" # Pod 名 json:"InstanceId,omitempty"
|
|
33
|
+
Timestamp: Optional[int] = 0 # Unix 秒级时间戳 json:"Timestamp,omitempty"
|
|
34
|
+
Uuid: Optional[str] = "" # GPU 标识,SHA-256 前 16 位十六进制 json:"Uuid,omitempty"
|
|
35
|
+
Value: Optional[float] = 0.0 # 指标值 json:"Value,omitempty"
|
|
36
|
+
|
|
37
|
+
@dataclass
|
|
38
|
+
class GetMonitorDataReq:
|
|
39
|
+
InstanceId: str # 实例 ID query:"InstanceId"
|
|
40
|
+
MetricName: str # 指标名称 query:"MetricName"
|
|
41
|
+
ResourceType: str # 资源类型:workspace、rlaunch、worker、job、rayjob、model、sandbox、service query:"ResourceType"
|
|
42
|
+
EndTime: Optional[int] = None # 结束时间,Unix 秒级时间戳 query:"EndTime,omitempty"
|
|
43
|
+
Extras: Optional[str] = None # 扩展参数 query:"Extras,omitempty"
|
|
44
|
+
MountPoint: Optional[str] = None # 挂载点 query:"MountPoint,omitempty"
|
|
45
|
+
ProjectName: Optional[str] = None # 项目名 query:"ProjectName,omitempty"
|
|
46
|
+
StartTime: Optional[int] = None # 开始时间,Unix 秒级时间戳 query:"StartTime,omitempty"
|
|
47
|
+
|
|
48
|
+
@dataclass
|
|
49
|
+
class GetTenantMonitorDataReq:
|
|
50
|
+
MetricName: str # 指标名称:gpu_util、gpu_util_avg、gpu_mem_util、gpu_mem_util_avg、gpu_mem_used、gpu_mem_used_avg、gpu_power、gpu_power_avg、gpu_core_temp、gpu_core_temp_avg query:"MetricName"
|
|
51
|
+
ProjectName: Optional[str] = None # 项目名。传入后使用 tenant_project_{MetricName} 模板 query:"ProjectName,omitempty"
|
|
52
|
+
|
|
@@ -56,6 +56,7 @@ class BucketResponse:
|
|
|
56
56
|
Created: Optional[str] = "" # 创建时间 json:"Created,omitempty"
|
|
57
57
|
DeletedTime: Optional[str] = "" # 删除时间(回收站中显示) json:"DeletedTime,omitempty"
|
|
58
58
|
Owner: Optional[str] = "" # 所有者 json:"Owner,omitempty"
|
|
59
|
+
OwnerTransfer: Optional[List[OwnerTransfer]] = None # 所有权转移记录 json:"OwnerTransfer,omitempty"
|
|
59
60
|
Permission: Optional[str] = None # SDK常量: PermissionDENY, PermissionREADONLY, PermissionREADWRITE, PermissionPUBLICREAD, PermissionADMIN json:"Permission,omitempty"
|
|
60
61
|
Project: Optional[str] = "" # 所属项目 json:"Project,omitempty"
|
|
61
62
|
PublicRead: Optional[bool] = False # 是否公共读 json:"PublicRead,omitempty"
|
|
@@ -82,6 +83,7 @@ class GetBucketData:
|
|
|
82
83
|
Bucket: Optional[str] = "" # 存储桶名 json:"Bucket,omitempty"
|
|
83
84
|
Created: Optional[str] = "" # 创建时间 json:"Created,omitempty"
|
|
84
85
|
Owner: Optional[str] = "" # 所有者 json:"Owner,omitempty"
|
|
86
|
+
OwnerTransfer: Optional[List[OwnerTransfer]] = None # 所有权转移记录 json:"OwnerTransfer,omitempty"
|
|
85
87
|
Permission: Optional[str] = None # SDK常量: PermissionDENY, PermissionREADONLY, PermissionREADWRITE, PermissionPUBLICREAD, PermissionADMIN json:"Permission,omitempty"
|
|
86
88
|
Project: Optional[str] = "" # 所属项目 json:"Project,omitempty"
|
|
87
89
|
PublicRead: Optional[bool] = False # 是否公共读 json:"PublicRead,omitempty"
|
|
@@ -99,6 +101,13 @@ class ListBucketsData:
|
|
|
99
101
|
class CreateBucketData:
|
|
100
102
|
Message: Optional[str] = "" # json:"Message,omitempty"
|
|
101
103
|
|
|
104
|
+
@dataclass
|
|
105
|
+
class OwnerTransfer:
|
|
106
|
+
OperateTime: Optional[str] = "" # 操作时间(Unix 时间戳,秒) json:"OperateTime,omitempty"
|
|
107
|
+
Operator: Optional[str] = "" # 操作人 json:"Operator,omitempty"
|
|
108
|
+
Source: Optional[str] = "" # 原所有者 json:"Source,omitempty"
|
|
109
|
+
Target: Optional[str] = "" # 目标所有者 json:"Target,omitempty"
|
|
110
|
+
|
|
102
111
|
@dataclass
|
|
103
112
|
class UpdateBucketReq:
|
|
104
113
|
Bucket: str # 存储桶名 json:"Bucket"
|
|
@@ -430,6 +430,7 @@ class ListWorkspacesReq:
|
|
|
430
430
|
CreationTimestampMax: Optional[int] = None # 创建时间戳上限(秒) query:"CreationTimestampMax,omitempty"
|
|
431
431
|
CreationTimestampMin: Optional[int] = None # 创建时间戳下限(秒) query:"CreationTimestampMin,omitempty"
|
|
432
432
|
Creator: Optional[str] = None # 创建者用户名(内部转换为用户 ID) query:"Creator,omitempty"
|
|
433
|
+
Keyword: Optional[str] = None # 按名称或开发机 ID 模糊匹配,与 Name 同时提供时取交集 query:"Keyword,omitempty"
|
|
433
434
|
Limit: Optional[int] = None # 每页数量 query:"Limit,omitempty"
|
|
434
435
|
MemoryMax: Optional[int] = None # 内存上限(GiB) query:"MemoryMax,omitempty"
|
|
435
436
|
MemoryMin: Optional[int] = None # 内存下限(GiB) query:"MemoryMin,omitempty"
|
{yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud_sdk_python.egg-info/SOURCES.txt
RENAMED
|
@@ -55,6 +55,10 @@ yicloud/services/monitor/__init__.py
|
|
|
55
55
|
yicloud/services/monitor/actions.py
|
|
56
56
|
yicloud/services/monitor/client.py
|
|
57
57
|
yicloud/services/monitor/models.py
|
|
58
|
+
yicloud/services/monitor/v1alpha1/__init__.py
|
|
59
|
+
yicloud/services/monitor/v1alpha1/actions.py
|
|
60
|
+
yicloud/services/monitor/v1alpha1/client.py
|
|
61
|
+
yicloud/services/monitor/v1alpha1/models.py
|
|
58
62
|
yicloud/services/oss/__init__.py
|
|
59
63
|
yicloud/services/oss/actions.py
|
|
60
64
|
yicloud/services/oss/client.py
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/services/modelrepo/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/services/workspace/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud_sdk_python.egg-info/not-zip-safe
RENAMED
|
File without changes
|
{yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud_sdk_python.egg-info/requires.txt
RENAMED
|
File without changes
|
{yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud_sdk_python.egg-info/top_level.txt
RENAMED
|
File without changes
|