Skip to content

Commit 06237de

Browse files
authored
auto codegen for UK8S
1 parent 30be524 commit 06237de

File tree

3 files changed

+277
-35
lines changed

3 files changed

+277
-35
lines changed

ucloud/services/uk8s/client.py

Lines changed: 136 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,51 @@ def add_uk8s_existing_uhost(
5353
resp = self.invoke("AddUK8SExistingUHost", d, **kwargs)
5454
return apis.AddUK8SExistingUHostResponseSchema().loads(resp)
5555

56+
def add_uk8s_node_group(
57+
self, req: typing.Optional[dict] = None, **kwargs
58+
) -> dict:
59+
"""AddUK8SNodeGroup - 添加UK8S节点池
60+
61+
**Request**
62+
63+
- **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 <https://docs.ucloud.cn/api/summary/get_project_list>`_
64+
- **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 <https://docs.ucloud.cn/api/summary/regionlist>`_
65+
- **ClusterId** (str) - (Required) 集群ID
66+
- **NodeGroupName** (str) - (Required) 节点池名字
67+
- **BootDiskType** (str) - 磁盘类型
68+
- **CPU** (int) - GPU卡核心数。仅GPU机型支持此字段(可选范围与MachineType+GpuType相关)
69+
- **ChargeType** (str) - 计费模式
70+
- **DataDiskSize** (int) - 数据磁盘大小
71+
- **DataDiskType** (str) - 磁盘类型
72+
- **GPU** (int) - GPU卡核心数
73+
- **GpuType** (str) - GPU类型
74+
- **ImageId** (str) - 镜像ID
75+
- **MachineType** (str) - 云主机机型。枚举值["N", "C", "G", "O", "OS"]。参考 `云主机机型说明 <https://docs.ucloud.cn/api/uhost-api/uhost_type>`_ 。
76+
- **Mem** (int) - 内存大小。单位:MB
77+
- **MinimalCpuPlatform** (str) - 最低cpu平台,枚举值["Intel/Auto", "Intel/IvyBridge", "Intel/Haswell", "Intel/Broadwell", "Intel/Skylake", "Intel/Cascadelake";"Intel/CascadelakeR"; “Amd/Epyc2”,"Amd/Auto"],默认值是"Intel/Auto"
78+
- **Tag** (str) - 业务组
79+
- **Zone** (str) - 可用区。参见 `可用区列表 <https://docs.ucloud.cn/api/summary/regionlist>`_
80+
81+
**Response**
82+
83+
- **Message** (str) - 返回错误消息,当 RetCode 非 0 时提供详细的描述信息。
84+
- **NodeGroupId** (str) - 节点池ID
85+
86+
"""
87+
# build request
88+
d = {
89+
"ProjectId": self.config.project_id,
90+
"Region": self.config.region,
91+
}
92+
req and d.update(req)
93+
d = apis.AddUK8SNodeGroupRequestSchema().dumps(d)
94+
95+
# build options
96+
kwargs["max_retries"] = 0 # ignore retry when api is not idempotent
97+
98+
resp = self.invoke("AddUK8SNodeGroup", d, **kwargs)
99+
return apis.AddUK8SNodeGroupResponseSchema().loads(resp)
100+
56101
def add_uk8s_phost_node(
57102
self, req: typing.Optional[dict] = None, **kwargs
58103
) -> dict:
@@ -320,6 +365,21 @@ def describe_uk8s_cluster(
320365
321366
**Response Model**
322367
368+
**UhostInfo**
369+
- **CPU** (int) - Cpu数量
370+
- **CreateTime** (int) - 创建时间
371+
- **DiskSet** (list) - 见 **DiskSet** 模型定义
372+
- **ExpireTime** (int) - 到期时间
373+
- **IPSet** (list) - 见 **IPSet** 模型定义
374+
- **Memory** (int) - 内存
375+
- **Name** (str) - 主机名称
376+
- **NodeId** (str) - 主机ID
377+
- **NodeType** (str) - 节点类型:uhost表示云主机;uphost表示物理云主机
378+
- **OsName** (str) - 镜像信息
379+
- **State** (str) - 主机状态
380+
- **Zone** (str) - 所在机房
381+
382+
323383
**DiskSet**
324384
- **BackupType** (str) - 备份方案,枚举类型:BASIC_SNAPSHOT,普通快照;DATAARK,方舟。无快照则不返回该字段。
325385
- **DiskId** (str) - 磁盘长ID
@@ -341,21 +401,6 @@ def describe_uk8s_cluster(
341401
- **Type** (str) - 国际: Internation,BGP: Bgp,内网: Private
342402
343403
344-
**UhostInfo**
345-
- **CPU** (int) - Cpu数量
346-
- **CreateTime** (int) - 创建时间
347-
- **DiskSet** (list) - 见 **DiskSet** 模型定义
348-
- **ExpireTime** (int) - 到期时间
349-
- **IPSet** (list) - 见 **IPSet** 模型定义
350-
- **Memory** (int) - 内存
351-
- **Name** (str) - 主机名称
352-
- **NodeId** (str) - 主机ID
353-
- **NodeType** (str) - 节点类型:uhost表示云主机;uphost表示物理云主机
354-
- **OsName** (str) - 镜像信息
355-
- **State** (str) - 主机状态
356-
- **Zone** (str) - 所在机房
357-
358-
359404
"""
360405
# build request
361406
d = {
@@ -590,3 +635,79 @@ def list_uk8s_cluster_v2(
590635

591636
resp = self.invoke("ListUK8SClusterV2", d, **kwargs)
592637
return apis.ListUK8SClusterV2ResponseSchema().loads(resp)
638+
639+
def list_uk8s_node_group(
640+
self, req: typing.Optional[dict] = None, **kwargs
641+
) -> dict:
642+
"""ListUK8SNodeGroup - 列出UK8S节点池
643+
644+
**Request**
645+
646+
- **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 <https://docs.ucloud.cn/api/summary/get_project_list>`_
647+
- **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 <https://docs.ucloud.cn/api/summary/regionlist>`_
648+
- **ClusterId** (str) - (Required) 集群ID
649+
- **Zone** (str) - 可用区。参见 `可用区列表 <https://docs.ucloud.cn/api/summary/regionlist>`_
650+
651+
**Response**
652+
653+
- **NodeGroupList** (list) - 见 **NodeGroupSet** 模型定义
654+
655+
**Response Model**
656+
657+
**NodeGroupSet**
658+
- **BootDiskType** (str) - 系统盘类型
659+
- **CPU** (int) - 虚拟CPU核数
660+
- **ChargeType** (str) - 付费方式
661+
- **DataDiskSize** (int) - 数据盘大小
662+
- **DataDiskType** (str) - 数据盘类型
663+
- **GPU** (int) - GPU卡核心数
664+
- **GpuType** (str) - GPU类型
665+
- **ImageId** (str) - 镜像ID
666+
- **MachineType** (str) - 机型
667+
- **Mem** (int) - 内存大小
668+
- **MinimalCpuPlatform** (str) - cpu平台
669+
- **NodeGroupId** (str) - 节点池ID
670+
- **NodeGroupName** (str) - 节点池名字
671+
- **NodeList** (list) - 节点id列表
672+
- **Tag** (str) - 业务组
673+
674+
675+
"""
676+
# build request
677+
d = {
678+
"ProjectId": self.config.project_id,
679+
"Region": self.config.region,
680+
}
681+
req and d.update(req)
682+
d = apis.ListUK8SNodeGroupRequestSchema().dumps(d)
683+
684+
resp = self.invoke("ListUK8SNodeGroup", d, **kwargs)
685+
return apis.ListUK8SNodeGroupResponseSchema().loads(resp)
686+
687+
def remove_uk8s_node_group(
688+
self, req: typing.Optional[dict] = None, **kwargs
689+
) -> dict:
690+
"""RemoveUK8SNodeGroup - 删除UK8S节点池
691+
692+
**Request**
693+
694+
- **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 <https://docs.ucloud.cn/api/summary/get_project_list>`_
695+
- **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 <https://docs.ucloud.cn/api/summary/regionlist>`_
696+
- **ClusterId** (str) - (Required) 集群id
697+
- **NodeGroupId** (str) - (Required) 节点池Id
698+
- **Zone** (str) - 可用区。参见 `可用区列表 <https://docs.ucloud.cn/api/summary/regionlist>`_
699+
700+
**Response**
701+
702+
703+
"""
704+
# build request
705+
d = {
706+
"ProjectId": self.config.project_id,
707+
"Region": self.config.region,
708+
}
709+
req and d.update(req)
710+
d = apis.RemoveUK8SNodeGroupRequestSchema().dumps(d)
711+
712+
resp = self.invoke("RemoveUK8SNodeGroup", d, **kwargs)
713+
return apis.RemoveUK8SNodeGroupResponseSchema().loads(resp)

ucloud/services/uk8s/schemas/apis.py

Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,48 @@ class AddUK8SExistingUHostResponseSchema(schema.ResponseSchema):
4545
}
4646

4747

48+
"""
49+
API: AddUK8SNodeGroup
50+
51+
添加UK8S节点池
52+
"""
53+
54+
55+
class AddUK8SNodeGroupRequestSchema(schema.RequestSchema):
56+
"""AddUK8SNodeGroup - 添加UK8S节点池"""
57+
58+
fields = {
59+
"BootDiskType": fields.Str(required=False, dump_to="BootDiskType"),
60+
"CPU": fields.Int(required=False, dump_to="CPU"),
61+
"ChargeType": fields.Str(required=False, dump_to="ChargeType"),
62+
"ClusterId": fields.Str(required=True, dump_to="ClusterId"),
63+
"DataDiskSize": fields.Int(required=False, dump_to="DataDiskSize"),
64+
"DataDiskType": fields.Str(required=False, dump_to="DataDiskType"),
65+
"GPU": fields.Int(required=False, dump_to="GPU"),
66+
"GpuType": fields.Str(required=False, dump_to="GpuType"),
67+
"ImageId": fields.Str(required=False, dump_to="ImageId"),
68+
"MachineType": fields.Str(required=False, dump_to="MachineType"),
69+
"Mem": fields.Int(required=False, dump_to="Mem"),
70+
"MinimalCpuPlatform": fields.Str(
71+
required=False, dump_to="MinimalCpuPlatform"
72+
),
73+
"NodeGroupName": fields.Str(required=True, dump_to="NodeGroupName"),
74+
"ProjectId": fields.Str(required=False, dump_to="ProjectId"),
75+
"Region": fields.Str(required=True, dump_to="Region"),
76+
"Tag": fields.Str(required=False, dump_to="Tag"),
77+
"Zone": fields.Str(required=False, dump_to="Zone"),
78+
}
79+
80+
81+
class AddUK8SNodeGroupResponseSchema(schema.ResponseSchema):
82+
"""AddUK8SNodeGroup - 添加UK8S节点池"""
83+
84+
fields = {
85+
"Message": fields.Str(required=True, load_from="Message"),
86+
"NodeGroupId": fields.Str(required=True, load_from="NodeGroupId"),
87+
}
88+
89+
4890
"""
4991
API: AddUK8SPHostNode
5092
@@ -514,3 +556,58 @@ class ListUK8SClusterV2ResponseSchema(schema.ResponseSchema):
514556
models.ClusterSetSchema(), required=False, load_from="ClusterSet"
515557
),
516558
}
559+
560+
561+
"""
562+
API: ListUK8SNodeGroup
563+
564+
列出UK8S节点池
565+
"""
566+
567+
568+
class ListUK8SNodeGroupRequestSchema(schema.RequestSchema):
569+
"""ListUK8SNodeGroup - 列出UK8S节点池"""
570+
571+
fields = {
572+
"ClusterId": fields.Str(required=True, dump_to="ClusterId"),
573+
"ProjectId": fields.Str(required=False, dump_to="ProjectId"),
574+
"Region": fields.Str(required=True, dump_to="Region"),
575+
"Zone": fields.Str(required=False, dump_to="Zone"),
576+
}
577+
578+
579+
class ListUK8SNodeGroupResponseSchema(schema.ResponseSchema):
580+
"""ListUK8SNodeGroup - 列出UK8S节点池"""
581+
582+
fields = {
583+
"NodeGroupList": fields.List(
584+
models.NodeGroupSetSchema(),
585+
required=False,
586+
load_from="NodeGroupList",
587+
),
588+
}
589+
590+
591+
"""
592+
API: RemoveUK8SNodeGroup
593+
594+
删除UK8S节点池
595+
"""
596+
597+
598+
class RemoveUK8SNodeGroupRequestSchema(schema.RequestSchema):
599+
"""RemoveUK8SNodeGroup - 删除UK8S节点池"""
600+
601+
fields = {
602+
"ClusterId": fields.Str(required=True, dump_to="ClusterId"),
603+
"NodeGroupId": fields.Str(required=True, dump_to="NodeGroupId"),
604+
"ProjectId": fields.Str(required=False, dump_to="ProjectId"),
605+
"Region": fields.Str(required=True, dump_to="Region"),
606+
"Zone": fields.Str(required=False, dump_to="Zone"),
607+
}
608+
609+
610+
class RemoveUK8SNodeGroupResponseSchema(schema.ResponseSchema):
611+
"""RemoveUK8SNodeGroup - 删除UK8S节点池"""
612+
613+
fields = {}

ucloud/services/uk8s/schemas/models.py

Lines changed: 44 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -3,18 +3,6 @@
33
from ucloud.core.typesystem import schema, fields
44

55

6-
class IPSetSchema(schema.ResponseSchema):
7-
"""IPSet - 节点的IP信息"""
8-
9-
fields = {
10-
"Bandwidth": fields.Int(required=False, load_from="Bandwidth"),
11-
"Default": fields.Str(required=False, load_from="Default"),
12-
"IP": fields.Str(required=False, load_from="IP"),
13-
"IPId": fields.Str(required=False, load_from="IPId"),
14-
"Type": fields.Str(required=False, load_from="Type"),
15-
}
16-
17-
186
class DiskSetSchema(schema.ResponseSchema):
197
"""DiskSet - 节点磁盘信息"""
208

@@ -32,6 +20,18 @@ class DiskSetSchema(schema.ResponseSchema):
3220
}
3321

3422

23+
class IPSetSchema(schema.ResponseSchema):
24+
"""IPSet - 节点的IP信息"""
25+
26+
fields = {
27+
"Bandwidth": fields.Int(required=False, load_from="Bandwidth"),
28+
"Default": fields.Str(required=False, load_from="Default"),
29+
"IP": fields.Str(required=False, load_from="IP"),
30+
"IPId": fields.Str(required=False, load_from="IPId"),
31+
"Type": fields.Str(required=False, load_from="Type"),
32+
}
33+
34+
3535
class UhostInfoSchema(schema.ResponseSchema):
3636
"""UhostInfo - 机器信息"""
3737

@@ -77,14 +77,6 @@ class K8SNodeConditionSchema(schema.ResponseSchema):
7777
}
7878

7979

80-
class KubeProxySchema(schema.ResponseSchema):
81-
"""KubeProxy - KubeProxy信息"""
82-
83-
fields = {
84-
"Mode": fields.Str(required=False, load_from="Mode"),
85-
}
86-
87-
8880
class UHostIPSetSchema(schema.ResponseSchema):
8981
"""UHostIPSet - 云主机IP信息"""
9082

@@ -102,6 +94,14 @@ class UHostIPSetSchema(schema.ResponseSchema):
10294
}
10395

10496

97+
class KubeProxySchema(schema.ResponseSchema):
98+
"""KubeProxy - KubeProxy信息"""
99+
100+
fields = {
101+
"Mode": fields.Str(required=False, load_from="Mode"),
102+
}
103+
104+
105105
class NodeInfoV2Schema(schema.ResponseSchema):
106106
"""NodeInfoV2 - UK8S 节点信息"""
107107

@@ -152,3 +152,27 @@ class ClusterSetSchema(schema.ResponseSchema):
152152
"SubnetId": fields.Str(required=True, load_from="SubnetId"),
153153
"VPCId": fields.Str(required=True, load_from="VPCId"),
154154
}
155+
156+
157+
class NodeGroupSetSchema(schema.ResponseSchema):
158+
"""NodeGroupSet - 节点池配置"""
159+
160+
fields = {
161+
"BootDiskType": fields.Str(required=False, load_from="BootDiskType"),
162+
"CPU": fields.Int(required=False, load_from="CPU"),
163+
"ChargeType": fields.Str(required=False, load_from="ChargeType"),
164+
"DataDiskSize": fields.Int(required=False, load_from="DataDiskSize"),
165+
"DataDiskType": fields.Str(required=False, load_from="DataDiskType"),
166+
"GPU": fields.Int(required=False, load_from="GPU"),
167+
"GpuType": fields.Str(required=False, load_from="GpuType"),
168+
"ImageId": fields.Str(required=False, load_from="ImageId"),
169+
"MachineType": fields.Str(required=False, load_from="MachineType"),
170+
"Mem": fields.Int(required=False, load_from="Mem"),
171+
"MinimalCpuPlatform": fields.Str(
172+
required=False, load_from="MinimalCpuPlatform"
173+
),
174+
"NodeGroupId": fields.Str(required=False, load_from="NodeGroupId"),
175+
"NodeGroupName": fields.Str(required=False, load_from="NodeGroupName"),
176+
"NodeList": fields.List(fields.Str()),
177+
"Tag": fields.Str(required=False, load_from="Tag"),
178+
}

0 commit comments

Comments
 (0)