-
在华为云Stack场景下,纳管IaaS OpenStack资源池时,如果某个新增的云服务没有自动化接入并导入云服务适配包时,可以通过本功能导入云服务的适配包。Ø适用版本 ManageOne 8.1.1及以上版本Ø前提条件 已登录ManageOne运维面 已获取云服务适配包videovideovideo
ManageOne定制培训
发表于2022-11-14 19:59:32
2022-11-14 19:59:32
最后回复
ManageOne定制培训
2022-11-14 19:59:32
207 0 -
video【华为云Stack ManageOne 集成对接】【视频】API对接-云管对接-租户管理
ManageOne定制培训
发表于2022-11-14 10:50:59
2022-11-14 10:50:59
最后回复
ManageOne定制培训
2022-11-14 10:50:59
228 0 -
video【华为云Stack ManageOne 集成对接】【视频】API对接-云管对接-话单对接
ManageOne定制培训
发表于2022-11-14 10:48:21
2022-11-14 10:48:21
最后回复
ManageOne定制培训
2022-11-14 10:48:21
132 0 -
videovideo【华为云Stack ManageOne 集成对接】【视频】运营使能-主题定制-DLV可视化
ManageOne定制培训
发表于2022-11-07 11:09:27
2022-11-07 11:09:27
最后回复
ManageOne定制培训
2022-11-07 11:09:27
54 0 -
video【华为云Stack ManageOne 集成对接】【视频】服务使能-服务构建器-资源编排
ManageOne定制培训
发表于2022-11-07 09:43:07
2022-11-07 09:43:07
最后回复
ManageOne定制培训
2022-11-07 09:43:07
226 0 -
videovideo【华为云Stack ManageOne 集成对接】【视频】服务使能-服务构建器-API编排
ManageOne定制培训
发表于2022-11-07 09:33:00
2022-11-07 09:33:00
最后回复
ManageOne定制培训
2022-11-07 09:33:00
151 0 -
videovideo【华为云Stack ManageOne 集成对接】【视频】运营使能-主题定制-数据加工
ManageOne定制培训
发表于2022-10-31 21:35:39
2022-10-31 21:35:39
最后回复
ManageOne定制培训
2022-10-31 21:35:39
68 0 -
服务构建器提供的默认软件仓库存储空间大概在10G左右,正常生产使用时肯定不够用。不过为了扩展性,ManageOne OC提供了纳管外部MinIO集群的功能,可以通过该方式扩展软件仓库存储空间。有些人对自己搭建MinIO集群不是很了解,这里给出一个样例,从搭建到纳管MinIO集群,可参考附件。
-
video【华为云Stack ManageOne 集成对接】【视频】运营使能-主题定制-数据接入
ManageOne定制培训
发表于2022-10-27 16:06:06
2022-10-27 16:06:06
最后回复
ManageOne定制培训
2022-10-27 16:06:06
101 0 -
video【华为云Stack ManageOne 集成对接】【视频】运营使能-主题定制-整体介绍
-
1 云资源管理说明HCS对外开放ManageOne运营面接口和云服务接口,支持通过API对云资源进行管理,具体有如下两种方式:①使用订单的方式对云资源进行申请、变更、释放操作,实现对云资源生命周期的管理,订单接口具有以下特点:订单支持关联审批流程(可以关联外部审批系统,详情可参考:链接),用户完成资源配置并提交后,如果审批通过,Manageone会自动完成订单实施;通过订单接口申请、释放云资源时,会同步扣除、恢复租户配额,当租户配额不够时,会导致订单实施失败;(8.1.1版本后,云服务接口亦支持此特性)订单接口只提供部分IaaS资源的申请,延期,变更,释放功能,不提供云服务的查询和操作(如虚拟机查询、开关机等),相关操作需要调用云服务接口。订单接口具体支持的资源操作如下,不在此列表中的云服务,也需要通过云服务接口创建,如高阶服务(CCE等):云服务操作弹性云服务器(ECS)申请、克隆、离线变更、在线变更、重装/切换操作系统、删除、软删除、还原、延期裸金属服务器(BMS)申请、延期、软删除、删除镜像服务(IMS)申请、延期、软删除、删除、还原弹性云硬盘(EVS)申请、延期、软删除、删除、还原、扩容、变更云硬盘快照申请、删除虚拟私有云(VPC)申请、删除、延期弹性IP(EIP)申请、延期、软删除、删除、还原弹性负载均衡(ELB)申请、删除、延期虚拟防火墙/网络ACL(VFW)申请、删除、延期VPN申请、删除、延期弹性文件服务(SFS)申请、变更、软删除②使用云服务接口申请云资源,但有以下注意事项:1)HCS 8.0版本以前,通过云服务接口创建的资源,在ManageOne页面上,可以查询,操作这些资源,但不能执行变更(如扩容,减容),释放云资源的操作2)HCS 8.1.1版本以前,通过云服务接口发放资源时,不会对配额进行校验,用户可以发放超出配额限制的资源。3)通过云服务接口发放的资源,不会留下订单信息。4)通过云服务接口发放的资源,不会受到审批流程约束。5)有极少数特性只支持通过订单接口使用,如共享VPC、回收站(软删除)等。2 订单接口使用场景如第1部分所述,ManageOne订单接口是在云服务接口的基础上封装得到的,包含了ManageOne自身的运营特性,例如产品、服务、区域、配额等,使用上有一定的约束,如果您希望通过调用接口实现对华为云Stack中云资源的生命周期管理,请参考以下几个场景进行评估,符合以下任何一种场景的,建议您选择使用ManageOne订单接口进行对接:如果您公司购买了并部署了华为云Stack产品,您希望通过自动化工具实现云服务资源的自动化发放,从而提高资源申请效率;如果您购买了并部署了华为云Stack产品,公司围绕IT资产的运营运维有一整套流程,您希望已有的流程平台(如ITSM、BOSS等)能够与华为云Stack进行对接,实现现有流程与云服务的整合,在简化服务的申请周期,提高应用上线效率的同时,还能够实现云资源的全流程监控;如果您是云服务提供商,将华为云Stack提供的云服务,按照租户的形式租售给了客户,客户希望实现云服务的自动化发放,需要您提供对接接口;如果您是云服务提供商,希望现有运营平台能够与华为云Stack对接,实现租户的自动化创建,并为每个租户预置指定类型的云资源,租户的日常运维由运维部门通过ManageOne进行运维。如果您购买了多家厂商的云平台,希望通过一套云管理软件进行纳管,建议您直接对接云服务接口进行对接,这样可以屏蔽ManageOne的运营特性,只关注云服务特性,对接起来更加灵活。如果您只获取资源信息,不操作资源(即云资源监控场景),此时建议对接ManageOne运维面,可获取资源、性能、告警信息,详细请参考此链接第7章节。3 对接准备本帖提供的方法,适配华为云Stack 6.5.X,8.X版本。3.1 获取接口文档通过API发放、管理资源,涉及到如下文档和接口:(下载链接:cid:link_2)①ManageOne接口文档:《ManageOne 运营面API参考.docx》订单管理章节、《ManageOne 云服务Params参数说明.docx》②云服务接口文档:《华为云Stack 8.0.x API接口参考.chm》或《华为云Stack 8.1.x 云服务API参考》(此文档内包含各云服务接口文档的下载链接,需单独下载)3.2 获取对接账号通过API管理资源需要使用拥有Project权限的租户账号,VDC管理员或VDC业务员均可,但不能使用运营管理员。API账号的权限与页面保持一致,可使用对账号在页面操作资源,确保账号拥有足够的权限。3.3 配置域名HCS通过API网关对外暴露接口,开发者在调接口时,只需要与API网关的浮动IP(AGW-LB-FLOAT-IP)对接即可,但网关需要通过域名将流量转发到对应服务,因此调接口时不可直接使用网关IP,需要先在本地hosts文件配置域名与网关IP的映射关系,再通过服务域名调用各服务的接口。ManageOne和各服务的域名配置方法可参考此链接:cid:link_74 对接指导编号类别链接内容简介1订单接口管理弹性云服务器(ECS)申请ECS:cid:link_8删除ECS:cid:link_9ECS规格配置选型:cid:link_10变更ECS规格:cid:link_3申请带有EIP的ECS:cid:link_11说明如何通过ManageOne订单接口创建、删除弹性云服务器2订单接口管理云磁盘(EVS)申请、删除云硬盘:cid:link_12扩容云硬盘:cid:link_4说明如何通过ManageOne订单接口创建、删除云磁盘3订单接口管理虚拟私有云(VPC)cid:link_13说明如何通过ManageOne订单接口创建、删除VPC4订单接口管理弹性IP(EIP)cid:link_14说明如何通过ManageOne订单接口创建、删除弹性IP5订单接口管理私有镜像(IMS)cid:link_15说明如何通过ManageOne订单接口创建、删除私有镜像6订单接口管理虚拟防火墙(vFW、网络ACL)cid:link_16说明如何通过ManageOne订单接口创建、删除虚拟防火墙(网络ACL)7订单接口管理弹性负载均衡(ELB)cid:link_17说明如何通过ManageOne订单接口创建、删除弹性负载均衡8订单接口常见问题处理cid:link_18说明针对订单的不同状态如何进行处理5 其他参考资料编号类别链接内容简介1获取云服务权限的tokencid:link_0如何获取具有云服务操作权限的token2虚IP管理cid:link_5说明如何创建,使用虚IP
-
1 VDC配额介绍ManageOne通过VDC配额控制各部门可以使用的资源数量,确保各部门对资源的使用不超出预算范围。配额限制了VDC可使用云资源的最大限额,支持限制和不限两种方式,当配额不限时可使用云平台或所属VDC的所有资源。当前云平台支持按照区域、资源池、可用区、SLA四个维度管控配额。具体支持的配额指标,请参考本文的附录章节。2 约束条件本文适用于ManageOne 8.1.1及以上版本。8.0.2及之前版本的VDC配额请参考:cid:link_03 VDC配额管理步骤0:获取管理员token请求URL:https://{IAM对外访问域名}/v3/auth/tokens请求方法:POST请求头:Accept:application/json Content-Type:application/json;charset=UTF-8请求体:(注:运营管理员的domain name固定为mo_bss_admin,VDC管理员的domain name为租户名。使用运营管理员账号可管理全部租户的VDC配额,使用VDC管理员账号可管理本级VDC和子级VDC的配额。){ "auth": { "identity": { "methods": [ "password" ], "password": { "user": { "domain": { "name": "mo_bss_admin" }, "name": "XXXX", "password": "XXXXXX" } } }, "scope": { "domain": { "name": "mo_bss_admin" } } } }返回的token在响应头中,示例如下:HTTP/1.1 201 Created Content-Type: application/json; charset=utf-8 Connection: keep-alive X-Subject-Token: MIIECwYxxxxxxxxxxxxxxxxxxSQ3G2RAj89N+t9GECHGnnGUgkKj7vMesUZ2jEW6EiVYA==X-Subject-Token的值即为我们所需要的token步骤1:查询VDC列表URLGET https://{SC北向接口域名}/rest/vdc/v3.0/vdcs?start=0&limit=1000其中,start为分页查询的起始位置,取值在0-2147483647之间,默认从0开始, 默认值为0。分页查询时,start需要为limit的整数倍;limit限制每页显示的条目数量,取值在1-1000之间,默认值为20。可包含如下查询条件:(下表包含部分查询条件,全部查询条件请参考《ManageOne 运营面API参考.docx》中”查询VDC列表“接口。)参数类型描述namestringVDC名称,长度在0-128之间。upper_vdc_idstring上级VDC id。domain_idstring所属租户id。levelint32VDC级别,取值在1-5之间。sort_keystring排序字段,支持按create_at、name字段排序。默认值:name。sort_dirstring排序方向,取值范围asc,desc。默认值:asc。is_domainstring是否为租户,1代表是,0代表不是。query_namestring过滤字段。取值范围domainName,upperVdcName,extraquery_valuestring过滤字段值。请求头Content-Type:application/json X-Auth-Token:x-xxxxxxxxxxx请求体:无响应体示例{ "total": 4, "vdcs": [ { "id": "d86c3636-c637-4ee6-93ca-16c34b38b5c0", "name": "hzp_vdc", "tag": "vdc", "description": null, "upper_vdc_id": "0", "upper_vdc_name": null, "top_vdc_id": "d86c3636-c637-4ee6-93ca-16c34b38b5c0", "extra": "{\"manager\":\"\",\"phone\":\"\",\"email\":\"\"}", "project_count": 2, "enabled": true, "domain_id": "16ea1a6e341d44e385fb3cb077c3b63f", "level": 1, "create_user_id": "9d30a3d12bac4d879e9e9fb4274b76ed", "create_user_name": "bss_admin", "create_at": 1650350228000, "utc_create_at": "2022-04-19 06:37:08.0", "domain_name": "hzp_vdc", "ldap_id": null, "third_id": null, "idp_name": null, "third_type": "0", "region_id": null, "enterprise_id": null, "az_id": null, "enterprise_project_id": null }, { "id": "bf588c5a-8d05-49bd-a93d-e937286893e5", "name": "hzp_vdc2", "tag": "vdc", "description": "", "upper_vdc_id": "d86c3636-c637-4ee6-93ca-16c34b38b5c0", "upper_vdc_name": "hzp_vdc", "top_vdc_id": "d86c3636-c637-4ee6-93ca-16c34b38b5c0", "extra": "{\"manager\":\"\",\"phone\":\"\",\"email\":\"\"}", "project_count": 1, "enabled": true, "domain_id": "16ea1a6e341d44e385fb3cb077c3b63f", "level": 2, "create_user_id": "d0cc23141778469f82854c5269d3d9ee", "create_user_name": "hzp_admin", "create_at": 1651040610000, "utc_create_at": "2022-04-27 06:23:30.0", "domain_name": "hzp_vdc", "ldap_id": null, "third_id": null, "idp_name": null, "third_type": "0", "region_id": null, "enterprise_id": null, "az_id": null, "enterprise_project_id": null } ] }部分响应体字段说明如下: id:VDC idname:vdc名称level:vdc级别,取值在1-5之间。description:描述domain_id:租户iddomain_name:租户名create_at/utc_create_at:创建时间upper_vdc_id:上级VDC idupper_vdc_name:上级VDC 名称project_count:project数量top_vdc_id:所在的一级VDC id。步骤2:查询VDC配额注:8.1.1及以上版本可使用此接口。URLGET https://{SC北向接口域名}/rest/vdc/v3.2/vdcs/{vdc_id}/quotas?start=0&limit=3其中,start为分页查询的起始位置,默认为0。limit为每页显示的条目数量,最小值:1,最大值:3。分页查询时,start为limit的整数倍,例如:limit取值为3,分页查询时,start取值为0,3,6,9......等。其他查询参数:service_id:服务id,如ecs、evs、vpc等region_id:区域idcloud_infra_id:资源池idaz_id:可用分区id请求头Content-Type:application/jsonX-Auth-Token:x-xxxxxxxxxxx请求体:无响应体示例{ "total": 23, "services": [ { "service_id": "ecs", "service_name": "{\"en_us\":\"Elastic Cloud Server\",\"zh_cn\":\"弹性云服务器\"}", "quotas": [ { "region_id": "solution-advance-1", "region_name": "{\"zh_cn\":\"东莞\",\"en_us\":\"东莞\"}", "cloud_infra_id": "FUSION_CLOUD_solution-advance-1", "cloud_infra_name": "OpenStack_solution-advance-1", "az_id": "az0.dc0", "az_name": "华为技术有限公司", "parent_id": "instances", "resource_id": "instances", "resource_name": "{\"en_us\":\"Instances\",\"zh_cn\":\"实例\"}", "unit": "{\"en_us\":\"\",\"zh_cn\":\"台\"}", "quota_limit": 10000, "quota_allocated": 0, "quota_used": 7.0, "quota_left": 9993 }, { "region_id": "solution-advance-1", "region_name": "{\"zh_cn\":\"东莞\",\"en_us\":\"东莞\"}", "cloud_infra_id": "FUSION_CLOUD_solution-advance-1", "cloud_infra_name": "OpenStack_solution-advance-1", "az_id": "az0.dc0", "az_name": "华为技术有限公司", "parent_id": "cores", "resource_id": "cores", "resource_name": "{\"en_us\":\"vCPU\",\"zh_cn\":\"vCPU\"}", "unit": "{\"en_us\":\"cores\",\"zh_cn\":\"核\"}", "quota_limit": -1, "quota_allocated": 0, "quota_used": 9.0, "quota_left": -1 }, { "region_id": "solution-advance-1", "region_name": "{\"zh_cn\":\"东莞\",\"en_us\":\"东莞\"}", "cloud_infra_id": "FUSION_CLOUD_solution-advance-1", "cloud_infra_name": "OpenStack_solution-advance-1", "az_id": "az0.dc0", "az_name": "华为技术有限公司", "parent_id": "ram", "resource_id": "ram", "resource_name": "{\"en_us\":\"Memory\",\"zh_cn\":\"内存\"}", "unit": "{\"en_us\":\"GB\",\"zh_cn\":\"GB\"}", "quota_limit": -1, "quota_allocated": 0, "quota_used": 18.0, "quota_left": -1 }, { "region_id": "solution-advance-1", "region_name": "{\"zh_cn\":\"东莞\",\"en_us\":\"东莞\"}", "cloud_infra_id": "FUSION_CLOUD_solution-advance-1", "cloud_infra_name": "OpenStack_solution-advance-1", "az_id": "az0.dc0", "az_name": "华为技术有限公司", "parent_id": "instance_snapshot", "resource_id": "instance_snapshot", "resource_name": "{\"en_us\":\"Instance Snapshot\",\"zh_cn\":\"整机快照\"}", "unit": "{\"en_us\":\"\",\"zh_cn\":\"个\"}", "quota_limit": -1, "quota_allocated": 0, "quota_used": 0.0, "quota_left": -1 } ] }, { "service_id": "evs", "service_name": "{\"en_us\":\"Elastic Volume Service\",\"zh_cn\":\"弹性云硬盘\"}", "quotas": [ { "region_id": "solution-advance-1", "region_name": "{\"zh_cn\":\"东莞\",\"en_us\":\"东莞\"}", "cloud_infra_id": "FUSION_CLOUD_solution-advance-1", "cloud_infra_name": "OpenStack_solution-advance-1", "az_id": "az0.dc0", "az_name": "华为技术有限公司", "parent_id": "gigabytes", "resource_id": "SSD", "resource_name": "{\"zh_cn\":\"业务卷1\",\"en_us\":\"业务卷1\"}", "unit": "{\"zh_cn\":\"GB\",\"en_us\":\"GB\"}", "quota_limit": -1, "quota_allocated": 0, "quota_used": 1140.0, "quota_left": -1 }, { "region_id": "solution-advance-1", "region_name": "{\"zh_cn\":\"东莞\",\"en_us\":\"东莞\"}", "cloud_infra_id": "FUSION_CLOUD_solution-advance-1", "cloud_infra_name": "OpenStack_solution-advance-1", "az_id": "az0.dc0", "az_name": "华为技术有限公司", "parent_id": "gigabytes", "resource_id": "gigabytes", "resource_name": "{\"zh_cn\":\"磁盘容量\",\"en_us\":\"Disk Capacity\"}", "unit": "{\"zh_cn\":\"GB\",\"en_us\":\"GB\"}", "quota_limit": -1, "quota_allocated": 0, "quota_used": 1451.0, "quota_left": -1 }, { "region_id": "solution-advance-1", "region_name": "{\"zh_cn\":\"东莞\",\"en_us\":\"东莞\"}", "cloud_infra_id": "FUSION_CLOUD_solution-advance-1", "cloud_infra_name": "OpenStack_solution-advance-1", "az_id": "az0.dc0", "az_name": "华为技术有限公司", "parent_id": "volumes", "resource_id": "volumes", "resource_name": "{\"zh_cn\":\"磁盘数\",\"en_us\":\"Disk\"}", "unit": "{\"zh_cn\":\"个\",\"en_us\":\"\"}", "quota_limit": -1, "quota_allocated": 0, "quota_used": 28.0, "quota_left": -1 } ] } ]}响应体字段说明如下:total:总量。services:配额详情。对象数组。services包含以下字段:service_id:服务ID。service_name:服务名称。quotas:配额详情。对象数组。quotas包含以下字段:region_id:地域ID。region_name:地域名称。cloud_infra_id:资源池标识。cloud_infra_name:资源池名称。az_id:可用区 ID,长度在1-128之间。如果此字段为null,表示该配额挂在资源池下。az_name:可用区名称。parent_id:父配额项ID。当parent_id不等于resource_id时,指标项为SLA配额。resource_id:配额项ID。resource_name:配额项名称。unit:资源单位。quota_limit:配额阈值。取值为-1时,表示不限配额。quota_allocated:配额分配量。quota_used:配额已使用量。quota_left:剩余可用配额。取值为-1时,表示不限配额。步骤3:修改VDC配额注:8.1.1及以上版本可使用此接口。URLPUT https://{SC北向接口域名}/rest/vdc/v3.2/vdcs/{vdc_id}/quotas请求头Content-Type:application/jsonX-Auth-Token:x-xxxxxxxxxxx请求体示例:{ "services": [ { "service_id": "ecs", "quotas": [ { "region_id": "solution-advance-1", "cloud_infra_id": "FUSION_CLOUD_solution-advance-1", "az_id": "az0.dc0", "resource_id": "cores", "quota_limit": 1000, "parent_id": "cores" } ] } ]}其中,service_id为服务id;region_id为区域id;cloudInfraId为资源池id;az_id为可用分区id;resource_id为资源id;parent_id父配额资源 ID,以上参数均从“查询VDC配额”接口获取。quota_limit为配额限量,值为-1时表示不限制。注:当指标为SLA配额时(resource_id不等于parent_id时),所有SLA配额限制之和不能大于父配额限制;若父配额为“不限”,则SLA配额也必须设置为“不限”。例如:“磁盘容量”配额下可能有SAS、SSD等SLA配额,若“磁盘容量”配额限制为100G,则SAS配额+SSD配额不得超过100G。若“磁盘容量”配额为“不限”,则SAS配额和SSD配额也必须设置为“不限”。附录 配额指标清单截止至HCS 8.2.0版本,FUSION_CLOUD资源池下的云资源支持如下配额指标:服务名display单位配额控制范围弹性云服务器实例台可用分区弹性云服务器vCPU核可用分区弹性云服务器内存GB可用分区弹性云服务器NPU个可用分区弹性云服务器GPU个可用分区弹性云服务器vGPU个可用分区弹性云服务器整机快照个可用分区弹性云硬盘磁盘容量GB可用分区弹性云硬盘磁盘数个可用分区裸金属服务器实例台可用分区裸金属服务器CPU核可用分区裸金属服务器内存GB可用分区镜像服务镜像个资源池虚拟私有云VPC个资源池虚拟私有云弹性IP个资源池虚拟私有云弹性负载均衡个资源池虚拟私有云网络ACL个资源池虚拟私有云云专线个资源池虚拟私有云共享带宽个资源池虚拟私有云终端节点个资源池虚拟私有云终端节点服务个资源池弹性文件服务文件系统个资源池弹性文件服务总容量GB资源池应用魔方 AppCube应用魔方套资源池应用魔方 AppCube大屏可视化服务套资源池应用服务网格ASM网格个资源池区块链服务 BCS实例数个资源池云堡垒机实例台资源池云容器引擎CCE集群个资源池数据治理中心数据服务 - 专享版APP(按工作空间区分)个资源池数据治理中心数据服务 - 专享版API个资源池数据治理中心数据开发 - 作业数个资源池数据治理中心数据资产 - 对象数量个资源池数据治理中心数据服务 - 专享版集群个资源池数据治理中心数据服务 - 专享版流控(按工作空间区分)个资源池数据库审计服务代理个资源池分布式缓存服务 DCS实例个资源池分布式缓存服务 DCS内存GB资源池分布式数据库中间件 DDM实例数个资源池分布式数据库中间件 DDM虚拟机数个资源池分布式数据库中间件 DDMRAM容量(GB)GB资源池分布式数据库中间件 DDM核心数个资源池分布式数据库中间件 DDM磁盘数个资源池分布式数据库中间件 DDM磁盘容量(GB)GB资源池文档数据库服务 DDS实例数个资源池文档数据库服务 DDS虚拟机数个资源池文档数据库服务 DDSRAM容量(GB)GB资源池文档数据库服务 DDS核心数个资源池文档数据库服务 DDS磁盘数个资源池文档数据库服务 DDS磁盘容量(GB)GB资源池数据复制服务 DRS虚拟机数个资源池数据复制服务 DRS磁盘容量(GB)GB资源池数据复制服务 DRS弹性ip数量个资源池数据仓库服务节点个数个资源池数据仓库服务vCPU核资源池数据仓库服务集群手动快照个资源池数据仓库服务内存GB资源池数据仓库服务磁盘大小GB资源池云数据库 GaussDB SQL实例数个资源池云数据库 GaussDB SQL虚拟机数个资源池云数据库 GaussDB SQLRAM容量(GB)GB资源池云数据库 GaussDB SQL核心数个资源池云数据库 GaussDB SQL磁盘数个资源池云数据库 GaussDB SQL磁盘容量(GB)GB资源池图引擎服务图个资源池图引擎服务元数据个资源池图引擎服务边万边资源池ModelArts推理cpu核数个资源池ModelArts推理gpu个数个资源池ModelArts推理npu个数个资源池ModelArts训练cpu核数个资源池ModelArts训练gpu个数个资源池ModelArts训练npu个数个资源池MapReduce 服务vCPU核资源池MapReduce 服务内存GB资源池MapReduce 服务纳管集群个资源池云数据库 RDS实例数个资源池云数据库 RDS虚拟机数个资源池云数据库 RDSRAM容量(GB)GB资源池云数据库 RDS核心数个资源池云数据库 RDS磁盘数个资源池云数据库 RDS磁盘容量(GB)GB资源池应用与数据集成平台 ROMA Connect实例数个资源池应用管理与运维平台 ServiceStage微服务引擎个资源池Web应用防火墙独享引擎个资源池
-
1 VDC模型介绍请参考此链接:cid:link_02 约束条件本文适用于ManageOne 6.5.0及以上版本。3 场景说明本文档用于指导开发者获取租户和用户信息,便于第三方系统同步ManageOne的组织架构以及用户信息(如用户名、电话、email等)。主要场景:①ManageOne运营面作为单点登录服务端时,第三方服务需要获取登录用户的用户信息。了解更多②ManageOne运营面作为单点登录客户端时,客户有自己的统一认证中心,需要将统一认证中心的用户信息和组织架构同步至ManageOne。了解更多③客户有自己的监控平台,需要同步ManageOne的用户信息。4 租户信息同步目录:4.1 准备工作 4.2 获取管理员token 4.3 租户/VDC 1. 查询VDC列表 2. 查询VDC详情 4.4 用户 1. 查询用户列表 2. 查询用户详情 4.5 Project(资源集/项目) 1. 查询VDC关联的Project 2. 查询用户关联的Project4.1 准备工作正式对接前,请参考如下步骤,获取对应的IP、用户:参考运营侧准备工作帖,获取对接所需要接口文档(主要参考,ManageOne运营面API参考)、运营侧北向接口对外域名:https://bbs.huaweicloud.com/forum/thread-41849-1-1.html联系项目中,华为交付工程师,获取运营管理员账号、密码,或使用已创建的VDC管理员账号。运营管理员可管理所有租户,VDC管理员可管理本级和子级VDC。4.2 获取管理员token请求URL:https://{IAM对外访问域名}/v3/auth/tokens请求方法:POST请求头:Accept:application/json Content-Type:application/json;charset=UTF-8请求体:(注:运营管理员的domain name固定为mo_bss_admin,VDC管理员的domain name为租户名。){ "auth": { "identity": { "methods": [ "password" ], "password": { "user": { "domain": { "name": "mo_bss_admin" }, "name": "XXXX", "password": "XXXXXX" } } }, "scope": { "domain": { "name": "mo_bss_admin" } } } }返回的token在响应头中,示例如下:HTTP/1.1 201 Created Content-Type: application/json; charset=utf-8 Connection: keep-alive X-Subject-Token: MIIECwYxxxxxxxxxxxxxxxxxxSQ3G2RAj89N+t9GECHGnnGUgkKj7vMesUZ2jEW6EiVYA==X-Subject-Token的值即为我们所需要的token4.3 租户/VDC1. 查询VDC列表URLGET https://{SC北向接口域名}/rest/vdc/v3.0/vdcs?start=0&limit=1000其中,start为分页查询的起始位置,取值在0-2147483647之间,默认从0开始, 默认值为0。分页查询时,start需要为limit的整数倍;limit限制每页显示的条目数量,取值在1-1000之间,默认值为20。可包含如下查询条件:(下表包含部分查询条件,全部查询条件请参考《ManageOne 运营面API参考.docx》中”查询VDC列表“接口。)参数类型描述namestringVDC名称,长度在0-128之间。upper_vdc_idstring上级VDC id。domain_idstring所属租户id。levelint32VDC级别,取值在1-5之间。sort_keystring排序字段,支持按create_at、name字段排序。默认值:name。sort_dirstring排序方向,取值范围asc,desc。默认值:asc。is_domainstring是否为租户,1代表是,0代表不是。query_namestring过滤字段。取值范围domainName,upperVdcName,extraquery_valuestring过滤字段值。请求头Content-Type:application/json X-Auth-Token:x-xxxxxxxxxxx请求体:无响应体示例{ "total": 4, "vdcs": [ { "id": "d86c3636-c637-4ee6-93ca-16c34b38b5c0", "name": "hzp_vdc", "tag": "vdc", "description": null, "upper_vdc_id": "0", "upper_vdc_name": null, "top_vdc_id": "d86c3636-c637-4ee6-93ca-16c34b38b5c0", "extra": "{\"manager\":\"\",\"phone\":\"\",\"email\":\"\"}", "project_count": 2, "enabled": true, "domain_id": "16ea1a6e341d44e385fb3cb077c3b63f", "level": 1, "create_user_id": "9d30a3d12bac4d879e9e9fb4274b76ed", "create_user_name": "bss_admin", "create_at": 1650350228000, "utc_create_at": "2022-04-19 06:37:08.0", "domain_name": "hzp_vdc", "ldap_id": null, "third_id": null, "idp_name": null, "third_type": "0", "region_id": null, "enterprise_id": null, "az_id": null, "enterprise_project_id": null }, { "id": "bf588c5a-8d05-49bd-a93d-e937286893e5", "name": "hzp_vdc2", "tag": "vdc", "description": "", "upper_vdc_id": "d86c3636-c637-4ee6-93ca-16c34b38b5c0", "upper_vdc_name": "hzp_vdc", "top_vdc_id": "d86c3636-c637-4ee6-93ca-16c34b38b5c0", "extra": "{\"manager\":\"\",\"phone\":\"\",\"email\":\"\"}", "project_count": 1, "enabled": true, "domain_id": "16ea1a6e341d44e385fb3cb077c3b63f", "level": 2, "create_user_id": "d0cc23141778469f82854c5269d3d9ee", "create_user_name": "hzp_admin", "create_at": 1651040610000, "utc_create_at": "2022-04-27 06:23:30.0", "domain_name": "hzp_vdc", "ldap_id": null, "third_id": null, "idp_name": null, "third_type": "0", "region_id": null, "enterprise_id": null, "az_id": null, "enterprise_project_id": null } ]}响应体字段说明如下:id:VDC idname:vdc名称level:vdc级别,取值在1-5之间。description:描述domain_id:租户iddomain_name:租户名create_at/utc_create_at:创建时间upper_vdc_id:上级VDC idupper_vdc_name:上级VDC 名称project_count:project数量top_vdc_id:所在的一级VDC id。2. 查询VDC详情URLGET https://{SC北向接口域名}/rest/vdc/v3.0/vdcs/{vdc_id}请求头Content-Type:application/json X-Auth-Token:x-xxxxxxxxxxx请求体:无响应体示例{ "vdc": { "id": "d86c3636-c637-4ee6-93ca-16c34b38b5c0", "name": "hzp_vdc", "tag": "vdc", "description": null, "upper_vdc_id": "0", "upper_vdc_name": null, "top_vdc_id": "d86c3636-c637-4ee6-93ca-16c34b38b5c0", "extra": "{\"manager\":\"\",\"phone\":\"\",\"email\":\"\"}", "ecs_used": 0.0, "evs_used": 0.0, "project_count": 0, "enabled": true, "domain_id": "16ea1a6e341d44e385fb3cb077c3b63f", "level": 1, "create_user_id": "9d30a3d12bac4d879e9e9fb4274b76ed", "create_user_name": "bss_admin", "create_at": 1650321428000, "utc_create_at": null, "domain_name": "hzp_vdc", "ldap_id": null, "process_id": null, "regions": [ { "region_id": "solution-advance-1", "region_name": "{\"zh_cn\":\"东莞\",\"en_us\":\"东莞\"}", "region_type": "private_cloud", "cloud_infras": [ { "cloud_infra_id": "FUSION_CLOUD_solution-advance-1", "cloud_infra_name": "OpenStack_solution-advance-1", "cloud_infra_status": "normal", "cloud_infra_type": "FUSION_CLOUD", "azs": [ { "available_zone": "az0.dc0", "az_name": "华为技术有限公司", "az_status": "normal", "extend_param": "{\"cloud_location\":\"localcloud\"}" } ] } ] } ], "third_type": null, "enterprise_id": null, "mfa_status": "0", "enterprise_project_id": null, "cloud_federation_rate": {}, "cloud_federation_status": false }}响应体字段说明如下:id:VDC idname:vdc名称level:vdc级别,取值在1-5之间。description:描述domain_id:租户iddomain_name:租户名create_at/utc_create_at:创建时间upper_vdc_id:上级VDC idupper_vdc_name:上级VDC 名称project_count:project数量top_vdc_id:所在的一级VDC id。region:区域详情。类型:对象数组。region包含以下字段:region_id:区域idregion_name:区域名称region_type:区域类型cloud_infras:资源池详情。对象类型。cloud_infras包含以下字段:cloud_infra_id:资源池idcloud_infra_name:资源池名称cloud_infra_status:资源池状态cloud_infra_type:资源池类型azs:可用分区详情。类型:对象数组。azs包含以下字段:available_zone:可用分区idaz_name:可用分区名称az_status:可用分区状态。extend_param:拓展参数。4.4 用户1. 查询用户列表接口约束:运营管理员token可查询全量用户。VDC管理员仅可查询本VDC以及子级VDC的用户。URLGET https://{SC北向接口域名}/rest/vdc/v3.0/users?limit=100&start=0URL常用参数:(完整参数请参考《ManageOne 运营面API参考》)start:分页查询的起始位置,最小值:0 ,最大值:2147483647 ,默认值:0。可选。limit:限制每页显示的条目数量,最小值:1,最大值:100 ,默认值:10。可选。tenant_id:用户归属的VDC ID。可选。name:按照名称或显示名字段模糊搜索。长度:1到128个字符。可选。exact:是否精确匹配,枚举值:true和false,默认值:false。可选。请求头Content-Type:application/json X-Auth-Token:x-xxxxxxxxxxx响应体示例{ "total": 1, "users": [ { "enabled": "true", "description": "", "email": "", "areacode": "", "phone": "", "vdc_name": "hzp_vdc", "resource_tenant_id": null, "level": null, "roles": [ { "id": "00000000-0000-0000-0000-000000000001", "name": "vdcServiceManager", "display_name": "VDC Admin", "user_role_type": "0" } ], "display_name": "", "vdc_id": "8c3e288e-49a5-4eab-90a0-47916dac8589", "domain_id": "9b01faf18f454c59a6fd157f0c82e556", "domain_name": "hzp_vdc", "user_type": "0", "name": "hzp_admin", "login_at": "2022-04-18 01:24:27.0", "id": "b7f8bc098f4f4891b93eeff5dcdfc6b5", "create_at": "2022-02-23 06:55:53.0" } ]}其中,id为用户Id,name为用户名称,domain_id为租户Id,vdc_id为所属的VDC Id。2. 查询用户详情接口约束:运营管理员token可查询全量用户。VDC管理员仅可查询本VDC以及子级VDC的用户。URLGET https://{SC北向接口域名}/rest/vdc/v3.0/users/{user_id}其中,user_id为用户id。请求头Content-Type:application/json X-Auth-Token:x-xxxxxxxxxxx响应体示例{ "limit_access": "false", "lock_period": null, "login_config": null, "whiteList": null, "user": { "enabled": "true", "description": "", "email": "", "areacode": null, "phone": "", "projects": [], "ldap_id": null, "level": "1", "resource_tenant_id": null, "roles": [ { "id": "00000000-0000-0000-0000-000000000001", "name": "vdcServiceManager", "display_name": "VDC Admin", "user_role_type": null, "description": "role_role_view_para_desc_content_vdcServiceManager_value" } ], "groups": [ { "id": "8afb852688194e408f4edf4bf8c8a690", "name": "SC_289yUXfSpzD", "description": "", "domain_id": "7111b7a59bff48fa983a6309fae3d7f7", "role_name": null, "vdc_name": "SC_289OHFUVQdL", "role_id": null, "vdc_id": "bc0366f0-3b60-486f-a88e-2a38266dd444" }, { "id": "cdafab1cfe2e4c129d4878b13e171333", "name": "admin_bc0366f0-3b60-486f-a88e-2a38266dd444", "description": "Default VDC administrator group, having the permission to manage services in the VDC that the user group belongs to and its lower-level VDCs.", "domain_id": "7111b7a59bff48fa983a6309fae3d7f7", "role_name": "vdcServiceManager", "vdc_name": "SC_289OHFUVQdL", "role_id": "00000000-0000-0000-0000-000000000001", "vdc_id": "bc0366f0-3b60-486f-a88e-2a38266dd444" } ], "display_name": null, "second_verify": "false", "vdc_id": "bc0366f0-3b60-486f-a88e-2a38266dd444", "domain_id": "7111b7a59bff48fa983a6309fae3d7f7", "domain_name": "SC_289OHFUVQdL", "user_type": "0", "name": "SC_289yUXfSpzD", "login_at": null, "id": "b76fc5607bff4ec094891c930cf3b0de", "tag": "vdc", "top_vdc_id": "bc0366f0-3b60-486f-a88e-2a38266dd444", "ldap_name": null }, "federation_regions": []}其中,id为用户Id,name为用户名称,domain_id为租户Id,vdc_id为所属的VDC Id。groups为用户绑定的用户组。4.5 Project(资源集/项目)1. 查询VDC关联的ProjectURLGET https://{SC北向接口域名}/rest/vdc/v3.1/vdcs/{vdc_id}/projects?start=0&limit=100其中,start为分页查询的起始位置,取值在0-2147483647之间,默认从0开始, 默认值为0。分页查询时,start需要为limit的整数倍;limit限制每页显示的条目数量,取值在1-100之间,默认值为10。可包含如下查询条件:(下表包含部分查询条件,全部查询条件请参考《ManageOne 运营面API参考.docx》中”查询指定VDC中资源集集合“接口。)参数类型描述inheritboolean是否查询VDC下所有可见VDC关联的资源集。默认值:falsenamestring模糊搜索所使用的名称字段,长度在1-64之间。sort_dirstring排序方向,取值范围asc,desc。默认值:asc请求头Content-Type:application/json X-Auth-Token:x-xxxxxxxxxxx响应体示例{ "total": 1, "projects": [ { "id": "6aa4d449d6fe4ea68c7cacb1a9803959", "name": "cn-global-205_hzp_project", "description": "", "domain_id": "e1fcb3ba48a64cb2acb5894bcd6d892d", "enabled": true, "tenant_id": "d8e2a487-843b-4309-9d14-e845f593411f", "is_shared": false, "tenant_name": "hzp_vdc", "create_user_id": "b9fd4029af7a4b71a085048b9bbe9072", "create_user_name": "bss_admin", "regions": [ { "region_id": "cn-global-205", "region_name": { "zh_cn": "西安", "en_us": "西安" }, "region_type": null, "region_status": "normal" } ] } ]}其中,id为project Id,name为project名称,domain_id为project所在的租户Id,tenant_id为project所属的VDC Id;tenant_name为project所属的VDC名称;description为project描述;regions为project关联的region信息。2. 查询用户关联的ProjectURLGET https://{SC北向接口域名}/rest/vdc/v3.1/users/{user_id}/projects?start=0&limit=100其中,start为分页查询的起始位置,取值在0-2147483647之间,默认从0开始, 默认值为0。分页查询时,start需要为limit的整数倍;limit限制每页显示的条目数量,取值在1-100之间,默认值为10。可包含如下查询条件:(下表包含部分查询条件,全部查询条件请参考《ManageOne 运营面API参考.docx》中”查询指定VDC中资源集集合“接口。)参数类型描述inheritboolean是否查询VDC下所有可见VDC关联的资源集。默认值:falsenamestring模糊搜索所使用的名称字段,长度在1-64之间。sort_dirstring排序方向,取值范围asc,desc。默认值:asc请求头Content-Type:application/json X-Auth-Token:x-xxxxxxxxxxx响应体示例{ "total": 1, "projects": [ { "regions": [ { "region_id": "cn-global-205", "region_status": "normal", "region_name": { "zh_cn": "西安", "en_us": "西安" } } ], "id": "6aa4d449d6fe4ea68c7cacb1a9803959", "name": "cn-global-205_hzp_project", "iam_project_name": "cn-global-205_hzp_project", "display_name": "cn-global-205_hzp_project", "description": "", "enabled": true, "domain_id": "e1fcb3ba48a64cb2acb5894bcd6d892d", "tenant_id": "d8e2a487-843b-4309-9d14-e845f593411f", "tenant_name": "hzp_vdc", "level": "1", "role_id": null, "role_name": null, "is_shared": "false" } ]}其中,id为project Id,name为project名称,domain_id为project所在的租户Id,tenant_id为project所属的VDC Id;tenant_name为project所属的VDC名称;description为project描述;regions为project关联的region信息。
-
1 VDC模型介绍请参考此链接:cid:link_02 约束条件本文适用于ManageOne 8.1.0及以上版本。3 场景说明自8.0.3版本起,ManageOne加入用户组特性,并支持关联权限。管理员可通过细粒度授权来控制用户能使用的云服务范围,例如限制用户只能使用CCE服务,或给用户只读权限,将用户权限最小化。8.1.0版本后,ManageOne支持通过API管理用户组。4 创建细粒度授权用户目录:4.1 准备工作4.2 创建用户组步骤0:获取管理员token 步骤1:查询VDC列表 步骤2:创建用户组 步骤3:查询VDC下的用户组列表(可选) 4.3 创建VDC用户步骤1:创建不带权限的VDC用户步骤2:将用户加入指定用户组4.4 为指定用户组授权指定资源集步骤1:查询租户下的权限列表步骤2:为指定用户组授权资源集权限4.5 其他接口1. 将用户从指定用户组移除 2. 删除用户组 3. 查询用户绑定的用户组 4. 删除用户4.1 准备工作1. 正式对接前,请参考如下步骤,获取对应的IP、用户:参考运营侧准备工作帖,获取对接所需要接口文档(主要参考,ManageOne运营面API参考)、运营侧北向接口对外域名:https://bbs.huaweicloud.com/forum/thread-41849-1-1.html联系项目中,华为交付工程师,获取运营管理员账号、密码,或使用已创建的VDC管理员账号。运营管理员可管理所有租户,VDC管理员可管理本级和子级VDC。2. 请确保在创建用户前已经完成VDC和Project(资源集)的创建。4.2 创建用户组步骤0:获取管理员token请求URL:https://{IAM对外访问域名}/v3/auth/tokens请求方法:POST请求头:Accept:application/json Content-Type:application/json;charset=UTF-8请求体:(注:运营管理员的domain name固定为mo_bss_admin,VDC管理员的domain name为租户名。){ "auth": { "identity": { "methods": [ "password" ], "password": { "user": { "domain": { "name": "mo_bss_admin" }, "name": "XXXX", "password": "XXXXXX" } } }, "scope": { "domain": { "name": "mo_bss_admin" } } } }返回的token在响应头中,示例如下:HTTP/1.1 201 Created Content-Type: application/json; charset=utf-8 Connection: keep-alive X-Subject-Token: MIIECwYxxxxxxxxxxxxxxxxxxSQ3G2RAj89N+t9GECHGnnGUgkKj7vMesUZ2jEW6EiVYA==X-Subject-Token的值即为我们所需要的token步骤1:查询VDC列表URLGET https://{SC北向接口域名}/rest/vdc/v3.0/vdcs?start=0&limit=1000其中,start为分页查询的起始位置,取值在0-2147483647之间,默认从0开始, 默认值为0。分页查询时,start需要为limit的整数倍;limit限制每页显示的条目数量,取值在1-1000之间,默认值为20。可包含如下查询条件:(下表包含部分查询条件,全部查询条件请参考《ManageOne 运营面API参考.docx》中”查询VDC列表“接口。)参数类型描述namestringVDC名称,长度在0-128之间。upper_vdc_idstring上级VDC id。domain_idstring所属租户id。levelint32VDC级别,取值在1-5之间。sort_keystring排序字段,支持按create_at、name字段排序。默认值:name。sort_dirstring排序方向,取值范围asc,desc。默认值:asc。is_domainstring是否为租户,1代表是,0代表不是。query_namestring过滤字段。取值范围domainName,upperVdcName,extraquery_valuestring过滤字段值。请求头Content-Type:application/json X-Auth-Token:x-xxxxxxxxxxx请求体:无响应体示例{ "total": 4, "vdcs": [ { "id": "d86c3636-c637-4ee6-93ca-16c34b38b5c0", "name": "hzp_vdc", "tag": "vdc", "description": null, "upper_vdc_id": "0", "upper_vdc_name": null, "top_vdc_id": "d86c3636-c637-4ee6-93ca-16c34b38b5c0", "extra": "{\"manager\":\"\",\"phone\":\"\",\"email\":\"\"}", "project_count": 2, "enabled": true, "domain_id": "16ea1a6e341d44e385fb3cb077c3b63f", "level": 1, "create_user_id": "9d30a3d12bac4d879e9e9fb4274b76ed", "create_user_name": "bss_admin", "create_at": 1650350228000, "utc_create_at": "2022-04-19 06:37:08.0", "domain_name": "hzp_vdc", "ldap_id": null, "third_id": null, "idp_name": null, "third_type": "0", "region_id": null, "enterprise_id": null, "az_id": null, "enterprise_project_id": null }, { "id": "bf588c5a-8d05-49bd-a93d-e937286893e5", "name": "hzp_vdc2", "tag": "vdc", "description": "", "upper_vdc_id": "d86c3636-c637-4ee6-93ca-16c34b38b5c0", "upper_vdc_name": "hzp_vdc", "top_vdc_id": "d86c3636-c637-4ee6-93ca-16c34b38b5c0", "extra": "{\"manager\":\"\",\"phone\":\"\",\"email\":\"\"}", "project_count": 1, "enabled": true, "domain_id": "16ea1a6e341d44e385fb3cb077c3b63f", "level": 2, "create_user_id": "d0cc23141778469f82854c5269d3d9ee", "create_user_name": "hzp_admin", "create_at": 1651040610000, "utc_create_at": "2022-04-27 06:23:30.0", "domain_name": "hzp_vdc", "ldap_id": null, "third_id": null, "idp_name": null, "third_type": "0", "region_id": null, "enterprise_id": null, "az_id": null, "enterprise_project_id": null } ] }复制部分响应体字段说明如下: id:VDC idname:vdc名称level:vdc级别,取值在1-5之间。description:描述domain_id:租户iddomain_name:租户名create_at/utc_create_at:创建时间upper_vdc_id:上级VDC idupper_vdc_name:上级VDC 名称project_count:project数量top_vdc_id:所在的一级VDC id。步骤2:创建用户组URLPOST https://{SC北向接口域名}/rest/vdc/v3.2/vdcs/{vdc_id}/groups请求头Content-Type:application/json X-Auth-Token:x-xxxxxxxxxxx请求体示例{ "group": { "description": "123", "name": "vdcuser776" } }参数说明:name:用户组名称,不能以数字开头。只能由英文字母,中文,数字,中划线,下划线组成,且不能命名为admin、power_user、或guest。长度范围是1到64位。必选。description:描述,不能包含<或者>字符。长度:0到255个字符。可选。响应体示例{ "group": { "domain_id": null, "domain_name": null, "vdc_id": null, "vdc_name": null, "id": "a1b428ffe3ff470296813a73276a3bc0", "name": "vdcuser776", "description": "123", "create_at": 0, "type": null, "display_name": "vdcuser776", "vdc_level": 0 }}其中,id为用户组Id;name为用户组名称;display_name为用户组显示名称。相关接口:删除用户组:DELETE https://{SC北向接口域名}/rest/vdc/v3.2/groups/{group_id},无请求体和响应体,成功状态码204。步骤3:查询VDC下的用户组列表(可选)URLGET https://{SC北向接口域名}/rest/vdc/v3.2/vdcs/{vdc_id}/groups?start=0&limit=100其中,start为分页查询的起始位置,取值在0-2147483647之间,默认从0开始, 默认值为0。分页查询时,start需要为limit的整数倍;limit限制每页显示的条目数量,取值在1-100之间,默认值为10。可包含如下查询条件:参数类型描述namestring按照名称或显示名字段模糊搜索。长度:1到64个字符。sort_keystring排序字段。枚举值:name。默认值为name。sort_dirstring排序方向。枚举值:desc 和asc,默认值:asc。请求头Content-Type:application/json X-Auth-Token:x-xxxxxxxxxxx响应体示例{ "total": 2, "groups": [ { "domain_id": "16ea1a6e341d44e385fb3cb077c3b63f", "domain_name": "hzp_vdc", "vdc_id": "d86c3636-c637-4ee6-93ca-16c34b38b5c0", "vdc_name": "hzp_vdc", "id": "8e2deaa2fb7e4226b3f8b43a2b6bd11b", "name": "admin_d86c3636-c637-4ee6-93ca-16c34b38b5c0", "description": "Default VDC administrator group, having the permission to manage services in the VDC that the user group belongs to and its lower-level VDCs.", "create_at": 1650350228000, "type": "default" }, { "domain_id": "16ea1a6e341d44e385fb3cb077c3b63f", "domain_name": "hzp_vdc", "vdc_id": "d86c3636-c637-4ee6-93ca-16c34b38b5c0", "vdc_name": "hzp_vdc", "id": "943abaee2ce34fd4ac3c4c4eb9368e05", "name": "test1234", "description": "", "create_at": 1650977723000, "type": "custom" } ]}响应体字段说明: total:总量 groups:用户组详情。对象数组。groups包含如下字段:domain_id:租户ID。domain_name:租户名称。vdc_id:VDC ID。vdc_name:VDC名称。id:用户组ID。name:用户组名称。description:用户组描述信息。create_at:用户组创建时间。type:用户组类型。default:系统预置的用户组;custom:自定义用户组。4.3 创建VDC用户步骤1:创建不带权限的VDC用户注:运营管理员角色用户必须使用运营管理员token才能创建;VDC管理员token仅可在本VDC或子级VDC下创建用户。运营管理员token支持在任意VDC下创建用户。URLPOST https://{SC北向接口域名}/rest/vdc/v3.2/vdcs/{vdc_id}/users其中,vdc_id为用户所属VDC的Id请求头Content-Type:application/json X-Auth-Token:x-xxxxxxxxxxx请求体示例{ "user": { "name": "testuser123", "password": "tT123456#" }}user对象中可包含以下参数: name:用户名,只能由英文字母(区分大小写)、数字和特殊字符@._-组成,不能以“op_svc”、“paas_op”或\开头,且不能以\结尾,且不能命名为admin,power_user或guest。长度范围是4到32位。必选。 display_name:用户别名,由除">"和"<"之外的字符组成,0-128个字符。可选。 password:密码,包含以下四种字符的三种: 大写字母、小写字母、数字、特殊字符(除<和>字符),且必须包含特殊字符,不能包含名字正序或逆序。长度:8到32个字符 。可选。 description:描述,不能包含<或者>字符。长度:0到255个字符。可选。 email:邮箱,符合邮箱格式,长度:0到64个字符。可选。 areacode:国际区号,只能为数字,长度:0到10个字符。可选。 phone:手机号,只能为数字,长度:0到32个字符。可选。 enabled:用户状态,枚举值:true和false,默认为true。为false时,表示用户处于停用状态。可选。 auth_type:用户类型。枚举值:'0','1','2',默认值为'0'。为'0'表示本地认证,为'1'表示SAML认证,为'2'表示LDAP认证。可选。 ldap_id:ldap ID。auth_type不为0时需要填写此参数。可选。响应体示例{ "user": { "id": "a674600f05ad4cb086d5a60c6847e920", "domain_id": "e1fcb3ba48a64cb2acb5894bcd6d892d", "domain_name": "hzp_vdc", "name": "testuser123", "display_name": null, "enabled": true, "description": null, "vdc_id": "d8e2a487-843b-4309-9d14-e845f593411f", "vdc_name": "hzp_vdc", "ldap_id": null, "create_at": 1657358889000, "login_at": 0, "auth_type": "0", "group_count": null, "user_type": null }}其中,id为用户Id。步骤2:将用户加入指定用户组URLPUT https://{SC北向接口域名}/rest/vdc/v3.2/groups/{group_id}/users/{user_id}其中,user_id需要通过“查询用户”接口获取,group_id需要通过“查询VDC下的用户组列表”接口获取。请求头Content-Type:application/json X-Auth-Token:x-xxxxxxxxxxx请求体:无状态码:204(成功)响应体:无4.4 为指定用户组授权指定资源集步骤1:查询租户下的权限列表URLGET https://{SC北向接口域名}/rest/vdc/v3.0/OS-ROLE/roles/third-party/roles?domain_id={domain_id}其中,domain_id为租户id,可从4.2章节的步骤1获取。请求头Content-Type:application/json X-Auth-Token:x-xxxxxxxxxxx请求体:无响应体示例{ "system_roles": [ { "id": "985dc76053f94685a15eafc3cd9f5da2", "domain_id": null, "domain_name": null, "name": "te_admin", "display_name": "Tenant Administrator", "flag": null, "catalog": "BASE", "type": "AA", "description_cn": "全部云服务管理员(除IAM管理权限)", "description": "Tenant Administrator (Exclude IAM)", "cloud_platform": "private_cloud", "policy": {"Version":"1.0","Depends":[],"Statement":[{"Effect":"Allow","Action":["*"],"Resource":[]},{"Effect":"Deny","Action":["identity:*"],"Resource":[]}]} }, { "id": "086600a36bc44cb3a5cb9475ddc32da0", "domain_id": null, "domain_name": null, "name": "readonly", "display_name": "Tenant Guest", "flag": null, "catalog": "BASE", "type": "AA", "description_cn": "全部云服务只读权限(除IAM权限)", "description": "Tenant Guest (Exclude IAM)", "cloud_platform": "private_cloud", "policy": {"Version":"1.0","Depends":[],"Statement":[{"Effect":"Allow","Action":["::Get","::List"],"Resource":[]},{"Effect":"Deny","Action":["identity:*"],"Resource":[]}]} }, { "id": "4d0cd24102504767b33fd55d915c55e8", "domain_id": null, "domain_name": null, "name": "vdc_adm", "display_name": "VDC Admin", "flag": null, "catalog": "VDC", "type": "AA", "description_cn": "具有所属VDC及下级VDC的业务管理权限", "description": "Permission to manage services in the VDC that the user group belongs to and its lower-level VDCs", "cloud_platform": "private_cloud", "policy": {"Version":"1.0","Depends":[],"Statement":[{"Effect":"Allow","Action":["moscapp:service*:*","moscapp:resource*:*","moscapp:organization*:*","moscapp:operation*:*","moscapp:application*:*","moscapp:tenant-system*:*","moscapp:personal-center*:*"],"Resource":[]}]} }, { "id": "7c554e7930544a99868465c4954eb5cb", "domain_id": null, "domain_name": null, "name": "vdc_readonly", "display_name": "VDC Readonly", "flag": null, "catalog": "VDC", "type": "AA", "description_cn": "具有对租户中用户、资源集、自运维等的查询权限", "description": "Permission to query information about users and resource sets as well as self-service OM data in the tenant that the user group belongs to", "cloud_platform": "private_cloud", "policy": {"Version":"1.0","Depends":[],"Statement":[{"Effect":"Allow","Action":["moscapp:service*:console","moscapp:service*.list","moscapp:service*.get","moscapp:resource*:console","moscapp:resource*:list","moscapp:resource*:get","moscapp:organization*:console","moscapp:organization*:list","moscapp:organization*:get","moscapp:operation*:console","moscapp:operation*:list","moscapp:operation*:get","moscapp:application*:console","moscapp:application*:list","moscapp:application*:get","moscapp:tenant-system*:console","moscapp:tenant-system*:list","moscapp:tenant-system*:get","moscapp:personal-center*:console","moscapp:personal-center*:list","moscapp:personal-center*:get"],"Resource":[]}]} }, ], "custom_roles": []}其中,取id字段为权限id。例如,vdc只读权限的id为7c554e7930544a99868465c4954eb5cb。步骤2:为指定用户组授权资源集权限URLPUT https://{SC北向接口域名}/rest/vdc/v3.2/groups/{group_id}/roles其中,group_id为用户组id,从4.2章节的步骤2或步骤3获取。请求头Content-Type:application/json X-Auth-Token:x-xxxxxxxxxxx请求体示例:{ "group": { "action": "add", "roles": [ { "id": "086600a36bc44cb3a5cb9475ddc32da0", "inherit": false, "targets": [ { "id": "6934bce513274fd9b20955c3db9728f0" } ] } ] }}请求参数说明:group包含以下字段:action:操作,取值可为add、delete;roles:角色。对象数组。roles包含以下字段:id:权限id,从步骤1获取。inherit:权限是否继承。targets:授权的目标资源集。对象数组。对象内包含资源集的id字段。4.4 其他接口1. 将用户从指定用户组移除URLDELETE https://{SC北向接口域名}/rest/vdc/v3.2/groups/{group_id}/users/{user_id}其中,user_id需要通过“查询用户”接口获取,group_id需要通过“查询用户详情”接口获取。请求头Content-Type:application/json X-Auth-Token:x-xxxxxxxxxxx请求体:无状态码:204(成功)响应体:无2. 删除用户组注:删除用户组后会自动解除用户与用户组关联关系,用户权限需重新添加,请谨慎操作。URLDELETE https://{SC北向接口域名}/rest/vdc/v3.2/groups/{group_id}其中,group_id需要通过“查询VDC下的用户组列表”接口获取。请求头Content-Type:application/json X-Auth-Token:x-xxxxxxxxxxx请求体:无状态码:204(成功)响应体:无3. 查询用户绑定的用户组接口约束:运营管理员可查询全量用户。VDC管理员仅可查询本VDC以及子级VDC的用户。URLGET https://{SC北向接口域名}/rest/vdc/v3.0/users/{user_id}其中,user_id为用户id。请求头Content-Type:application/json X-Auth-Token:x-xxxxxxxxxxx响应体示例{ "limit_access": "false", "lock_period": null, "login_config": null, "whiteList": null, "user": { "enabled": "true", "description": "", "email": "", "areacode": null, "phone": "", "projects": [], "ldap_id": null, "level": "1", "resource_tenant_id": null, "roles": [ { "id": "00000000-0000-0000-0000-000000000001", "name": "vdcServiceManager", "display_name": "VDC Admin", "user_role_type": null, "description": "role_role_view_para_desc_content_vdcServiceManager_value" } ], "groups": [ { "id": "8afb852688194e408f4edf4bf8c8a690", "name": "SC_289yUXfSpzD", "description": "", "domain_id": "7111b7a59bff48fa983a6309fae3d7f7", "role_name": null, "vdc_name": "SC_289OHFUVQdL", "role_id": null, "vdc_id": "bc0366f0-3b60-486f-a88e-2a38266dd444" }, { "id": "cdafab1cfe2e4c129d4878b13e171333", "name": "admin_bc0366f0-3b60-486f-a88e-2a38266dd444", "description": "Default VDC administrator group, having the permission to manage services in the VDC that the user group belongs to and its lower-level VDCs.", "domain_id": "7111b7a59bff48fa983a6309fae3d7f7", "role_name": "vdcServiceManager", "vdc_name": "SC_289OHFUVQdL", "role_id": "00000000-0000-0000-0000-000000000001", "vdc_id": "bc0366f0-3b60-486f-a88e-2a38266dd444" } ], "display_name": null, "second_verify": "false", "vdc_id": "bc0366f0-3b60-486f-a88e-2a38266dd444", "domain_id": "7111b7a59bff48fa983a6309fae3d7f7", "domain_name": "SC_289OHFUVQdL", "user_type": "0", "name": "SC_289yUXfSpzD", "login_at": null, "id": "b76fc5607bff4ec094891c930cf3b0de", "tag": "vdc", "top_vdc_id": "bc0366f0-3b60-486f-a88e-2a38266dd444", "ldap_name": null }, "federation_regions": []}其中,id为用户Id,name为用户名称,domain_id为租户Id,vdc_id为所属的VDC Id。groups为用户绑定的用户组。4. 删除用户接口约束:1.删除用户时,需确保该用户没有未完成的审批流程、审批任务、订单。2.运营管理员token可删除任意用户,VDC管理员token仅可删除本VDC或子级VDC下的用户。URLDELETE https://{SC北向接口域名}/rest/vdc/v3.0/users/{user_id}请求头Content-Type:application/json X-Auth-Token:x-xxxxxxxxxxx响应体:无成功状态码:200
-
1 VDC模型介绍请参考此链接:cid:link_02 约束条件本文适用于8.0.3及以上版本,6.5.0-8.0.2版本请参考:cid:link_23 场景说明大型企业采购华为云Stack全站云平台之后,需要匹配内部的组织结构进行分级运营,达到资源隔离,按需分配的目的,此时需要结合ManageOne的VDC模型进行设计,将子公司(或省公司)设置为一级VDC,然后子公司(或省公司)再根据实际划分子级VDC。还有一种常见场景是,运营商采购华为云Stack全站云平台,面向政企客户提供云计算服务,这种情况下,每个政企客户也需要独占一个一级VDC。上述两种场景只涉及初期的组织模型规划,通常,大型企业或者运营商在实际运营过程中,还需要实现现有运营平台(如BSS,CRM等)与华为云Stack的对接,基本的是实现自动开户、快速获取账单的功能,达到自助申请,一键开通,可追溯审计的效果,从而使云计算的运营能够纳入到企业、运营商的日常经营中。本文主要给出如何实现企业、运营商的运营系统与华为云Stack进行对接,实现自动开通租户(即一级VDC)的功能。4 管理租户/VDC目录:4.1 流程介绍4.2 准备工作4.3 创建一级VDC步骤0:获取运营管理员token步骤1:创建租户/VDC步骤2:查询Region列表,授权租户可用的Region、资源池、可用分区步骤3:查询资源池下的可用分区列表步骤4:为租户/一级VDC授权Region、资源池、可用分区步骤5:查询云资源池下外部网络列表(非一级VDC可跳过)步骤6:为租户分配外部网络(非一级VDC可跳过)步骤7:查询VDC列表(可选)4.4 创建Project步骤1:查询VDC支持的区域步骤2:创建Project步骤3:查询VDC关联的Project(可选)4.5 创建用户4.6 其他接口 1. 查询用户列表 2. 修改用户密码 3. 重置用户密码 4. 修改用户基本信息 5. 删除用户 6. 修改Project基本信息 7. 删除Project8. 删除租户/VDC4.1 流程介绍本文以开通租户为例,介绍如何通过API创建租户,并完成必要的配置操作,使得用户可以在新创建的租户内申请云资源,流程图如下:流程说明:1. 创建租户/一级VDC2. 为租户/一级VDC分配Region、资源池、可用分区3. 为租户/一级VDC分配外部网络。(不执行此步骤则无法创建VPC、EIP)4. 创建Project(资源集)5. 创建用户,并为用户授权Project。此步骤根据是否需要细粒度授权选择不同接口。除此之外,还有以下可选操作:1. 设置VDC配额(新租户创建完成后默认没有配额限制,如果需要限制配额,可在此步骤限制配额。)2. 创建企业项目、设置企业项目配额(企业项目为8.0.3版本新特性,相关介绍:链接。新租户创建完成后默认自带一个企业项目。如果不需要使用相关特性,直接无视即可,不需要做任何配置。)完成以上操作后,新创建用户可以登录ManageOne并申请资源。4.2 准备工作正式对接前,请参考如下步骤,获取对应的IP、用户:参考运营侧准备工作帖,获取对接所需要接口文档(主要参考,ManageOne运营面API参考)、运营侧北向接口对外域名:https://bbs.huaweicloud.com/forum/thread-41849-1-1.html联系项目中,华为交付工程师,获取运营管理员账号、密码.4.3 创建一级VDC步骤0:获取运营管理员token请求URL:https://{IAM对外访问域名}/v3/auth/tokens请求方法:POST请求头:Accept:application/json Content-Type:application/json;charset=UTF-8请求体:(注:运营管理员的domain name固定为mo_bss_admin,以下请求体只需要替换用户名和密码即可。){ "auth": { "identity": { "methods": [ "password" ], "password": { "user": { "domain": { "name": "mo_bss_admin" }, "name": "XXXX", "password": "XXXXXX" } } }, "scope": { "domain": { "name": "mo_bss_admin" } } } }返回的token在响应头中,示例如下:HTTP/1.1 201 Created Content-Type: application/json; charset=utf-8 Connection: keep-alive X-Subject-Token: MIIECwYxxxxxxxxxxxxxxxxxxSQ3G2RAj89N+t9GECHGnnGUgkKj7vMesUZ2jEW6EiVYA==X-Subject-Token的值即为我们所需要的token步骤1:创建租户/VDCURLPOST https://{SC北向接口域名}/rest/vdc/v3.1/vdcs请求体Content-Type:application/json X-Auth-Token:x-xxxxxxxxxxx请求体示例{ "vdc": { "upper_vdc_id": "0", "name": "testvdc", "description": "", "mfa_status": false }}参数说明:name:VDC名称,长度为1-64位,只能由中文、英文字母(不区分大小写)、数字、下划线组成,且不能以数字、"op_"、"shadow_"开头。upper_vdc_id:上级VDC的Id,若创建一级VDC(租户),则填写0。description:描述,长度在0-255之间,不能包含"<"和">"。mfa_status:该租户下用户是否开启双因子认证,false默认不开启。响应体示例{ "vdc": { "default_project": null, "default_project_name": null, "regions": [], "upper_vdc_id": "0", "name": "testvdc", "description": "", "mfa_status": false, "ldap_id": null, "all_quotas": "1", "processes": null, "third_type": "0", "cloud_federation_rate": null, "enterprise_id": null, "status": false, "tag": "vdc", "enterprise_detail": null, "extra": null, "create_user_name": null, "domain_description": null, "enabled": 1, "domain_id": "6383f8307d2d45efbc3d547c0afe07cc", "domain_name": null, "id": "8c8cca18-2418-4c4e-91ee-b1f848e0de25", "create_user_id": "a56bf873148944dfa0dacadd2e19be50", "is_domain": false, "level": 1, "create_at": 0 }}其中,id为VDC Id,name为VDC名称,domain_id为租户Id,upper_vdc_id为上级VDC Id。步骤2:查询Region列表,授权租户可用的Region、资源池、可用分区URLGET https://{SC北向接口域名}/rest/serviceaccess/v3.0/regions请求头Content-Type:application/jsonX-Auth-Token:x-xxxxxxxxxxx请求体:无响应体示例{ "total": 2, "records": [ { "id": "dg-tky-12", "public_region_id": null, "type": "private_cloud", "name": "东莞", "status": "normal", "isLocal": true, "locales": "{\"zh_cn\":\"东莞\",\"en_us\":\"东莞\"}", "cloud_infras": [ { "id": "FUSION_CLOUD_dg-tky-12", "name": "OpenStack_dg-tky-12", "region_id": "dg-tky-12", "type": "FUSION_CLOUD", "version": "8.1", "status": "normal", "access_status": "connected", "description": null, "public_cloud_infra_id": null } ] }, { "id": "dg-tky-13", "public_region_id": null, "type": "private_cloud", "name": "华南Region2", "status": "normal", "isLocal": true, "locales": "{\"zh_cn\":\"华南Region2\",\"en_us\":\"华南Region2\"}", "cloud_infras": [ { "id": "FUSION_CLOUD_dg-tky-13", "name": "OpenStack_dg-tky-13", "region_id": "dg-tky-13", "type": "FUSION_CLOUD", "version": "8.1", "status": "normal", "access_status": "connected", "description": null, "public_cloud_infra_id": null } ] } ]}其中,从响应体中取records.id为region_id(如dg-tky-12),取records.cloud_infras.id为资源池id(如FUSION_CLOUD_dg-tky-12)步骤3:查询资源池下的可用分区列表URLGET https://{SC北向接口域名}/rest/serviceaccess/v3.0/available-zones?cloud_infra_id={cloud_infra_id}其中,cloud_infra_id从步骤2查询结果获取。请求头Content-Type:application/jsonX-Auth-Token:x-xxxxxxxxxxx请求体:无响应体示例{ "total": 3, "records": [ { "az_id": "az0.dc1", "region_id": "dg-tky-12", "cloud_infra_id": "FUSION_CLOUD_dg-tky-12", "name": "华为", "type": "KVM", "status": "normal", "extend_param": "{\"cloud_location\":\"localcloud\"}" }, { "az_id": "az0.dc2", "region_id": "dg-tky-12", "cloud_infra_id": "FUSION_CLOUD_dg-tky-12", "name": "华为_x86", "type": "KVM", "status": "normal", "extend_param": "{\"cloud_location\":\"localcloud\"}" }, { "az_id": "az0.bms", "region_id": "dg-tky-12", "cloud_infra_id": "FUSION_CLOUD_dg-tky-12", "name": "华为_BMS", "type": "Ironic", "status": "normal", "extend_param": "{\"cloud_location\":\"localcloud\"}" } ]}其中,取az_id为可用分区id,例如az0.dc1。步骤4:为租户/一级VDC授权Region、资源池、可用分区URLPUT https://{SC北向接口域名}/rest/vdc/v3.1/vdcs/{vdc_id}/regions其中,vdc_id从步骤1中的响应体获取。请求头Content-Type:application/jsonX-Auth-Token:x-xxxxxxxxxxx请求体示例:{ "regions": [ { "region_id": "dg-tky-12", "action": "bind", "cloud_infras": [ { "cloud_infra_id": "FUSION_CLOUD_dg-tky-12", "action": "bind", "available_zones": [ { "az_id": "az0.bms", "action": "bind" }, { "az_id": "az0.dc1", "action": "bind" }, { "az_id": "az0.dc2", "action": "bind" } ] } ] }, { "region_id": "dg-tky-13", "action": "bind", "cloud_infras": [ { "cloud_infra_id": "FUSION_CLOUD_dg-tky-13", "action": "bind", "available_zones": [ { "az_id": "az1.dc1", "action": "bind" } ] } ] } ]}如果需要解绑Region、资源池或可用分区,将上述请求体中的action字段的bind值改为unbind即可。状态码:204(成功)响应体:无步骤5:查询云资源池下外部网络列表(非一级VDC可跳过)URLGET https://{SC北向接口域名}/rest/serviceaccess/v3.0/external-networks?cloud_infra_id={cloud_infra_id}其中,cloud_infra_id需要为步骤4已授权的cloud_infra_id。请求头Content-Type:application/jsonX-Auth-Token:x-xxxxxxxxxxx请求体:无响应体示例{ "external_networks": [ { "id": "a340cd45-fa9f-41cb-96a8-672507e08f71", "name": "EIP_external_net", "location": null, "group": "group1", "service_availability_zones": [], "service_types": [ "Internet" ], "description": "" }, { "id": "8049223b-ed6a-40fd-b1e7-2d8390b31719", "name": "dummy_external_network", "location": null, "group": "group1", "service_availability_zones": [ "az0.dc2" ], "service_types": [ "Location" ], "description": "" } ], "total": 2}其中,取external_networks.id为外部网络的id,例如a340cd45-fa9f-41cb-96a8-672507e08f71。步骤6:为租户分配外部网络(非一级VDC可跳过)注:新创建的租户不执行此步骤则无法创建VPC、EIPURLPUT https://{SC北向接口域名}/rest/vdc/v3.0/vdcs/external-networks/{network_id}其中,network_id为步骤5的外部网络的id。请求头Content-Type:application/jsonX-Auth-Token:x-xxxxxxxxxxx请求体示例:{ "resource_id": "e030b8e0-621d-4bfd-b66b-212a86341f51", "cloudInfraId": "FUSION_CLOUD_dg-tky-12", "networkName": "external network", "associateAction": true}其中,resource_id为一级VDC的id,从步骤1获取;cloudInfraId为资源池id,为步骤5的url中填写的参数;networkName为网络名称,该值可自定义;associateAction为分配动作,true表示分配,false表示取消分配。步骤7:查询VDC列表(可选)URLGET https://{SC北向接口域名}/rest/vdc/v3.0/vdcs?start=0&limit=1000其中,start为分页查询的起始位置,取值在0-2147483647之间,默认从0开始, 默认值为0。分页查询时,start需要为limit的整数倍;limit限制每页显示的条目数量,取值在1-1000之间,默认值为20。可包含如下查询条件:(下表包含部分查询条件,全部查询条件请参考《ManageOne 运营面API参考.docx》中”查询VDC列表“接口。)参数类型描述namestringVDC名称,长度在0-128之间。upper_vdc_idstring上级VDC id。domain_idstring所属租户id。levelint32VDC级别,取值在1-5之间。sort_keystring排序字段,支持按create_at、name字段排序。默认值:name。sort_dirstring排序方向,取值范围asc,desc。默认值:asc。is_domainstring是否为租户,1代表是,0代表不是。query_namestring过滤字段。取值范围domainName,upperVdcName,extraquery_valuestring过滤字段值。请求头Content-Type:application/json X-Auth-Token:x-xxxxxxxxxxx请求体:无响应体示例{ "total": 4, "vdcs": [ { "id": "d86c3636-c637-4ee6-93ca-16c34b38b5c0", "name": "hzp_vdc", "tag": "vdc", "description": null, "upper_vdc_id": "0", "upper_vdc_name": null, "top_vdc_id": "d86c3636-c637-4ee6-93ca-16c34b38b5c0", "extra": "{\"manager\":\"\",\"phone\":\"\",\"email\":\"\"}", "project_count": 2, "enabled": true, "domain_id": "16ea1a6e341d44e385fb3cb077c3b63f", "level": 1, "create_user_id": "9d30a3d12bac4d879e9e9fb4274b76ed", "create_user_name": "bss_admin", "create_at": 1650350228000, "utc_create_at": "2022-04-19 06:37:08.0", "domain_name": "hzp_vdc", "ldap_id": null, "third_id": null, "idp_name": null, "third_type": "0", "region_id": null, "enterprise_id": null, "az_id": null, "enterprise_project_id": null }, { "id": "bf588c5a-8d05-49bd-a93d-e937286893e5", "name": "hzp_vdc2", "tag": "vdc", "description": "", "upper_vdc_id": "d86c3636-c637-4ee6-93ca-16c34b38b5c0", "upper_vdc_name": "hzp_vdc", "top_vdc_id": "d86c3636-c637-4ee6-93ca-16c34b38b5c0", "extra": "{\"manager\":\"\",\"phone\":\"\",\"email\":\"\"}", "project_count": 1, "enabled": true, "domain_id": "16ea1a6e341d44e385fb3cb077c3b63f", "level": 2, "create_user_id": "d0cc23141778469f82854c5269d3d9ee", "create_user_name": "hzp_admin", "create_at": 1651040610000, "utc_create_at": "2022-04-27 06:23:30.0", "domain_name": "hzp_vdc", "ldap_id": null, "third_id": null, "idp_name": null, "third_type": "0", "region_id": null, "enterprise_id": null, "az_id": null, "enterprise_project_id": null } ]}部分响应体字段说明如下: id:VDC idname:vdc名称level:vdc级别,取值在1-5之间。description:描述domain_id:租户iddomain_name:租户名create_at/utc_create_at:创建时间upper_vdc_id:上级VDC idupper_vdc_name:上级VDC 名称project_count:project数量top_vdc_id:所在的一级VDC id。4.4 创建Project步骤1:查询VDC支持的区域URLGET https://{SC北向接口域名}/rest/vdc/v3.1/vdcs/{vdc_id}/regions请求头Content-Type:application/json X-Auth-Token:x-xxxxxxxxxxx请求体:无响应体示例{ "region_num": 1, "vdc_id": "e030b8e0-621d-4bfd-b66b-212a86341f51", "regions": [ { "region_id": "dg-tky-12", "action": null, "name": "{\"zh_cn\":\"东莞\",\"en_us\":\"东莞\"}", "type": "private_cloud", "status": "normal", "cloud_infras": [ { "cloud_infra_id": "FUSION_CLOUD_dg-tky-12", "name": "OpenStack_dg-tky-12", "type": "FUSION_CLOUD", "status": "normal", "available_zones": [ { "az_id": "az0.bms", "name": "华为_BMS", "status": "normal", "type": "Ironic", "extend_param": "{\"cloud_location\":\"localcloud\"}", "cloud_infra_id": "FUSION_CLOUD_dg-tky-12", "quotas": [] }, { "az_id": "az0.dc1", "name": "华为", "status": "normal", "type": "KVM", "extend_param": "{\"cloud_location\":\"localcloud\"}", "cloud_infra_id": "FUSION_CLOUD_dg-tky-12", "quotas": [] }, { "az_id": "az0.dc2", "name": "华为_x86", "status": "normal", "type": "KVM", "extend_param": "{\"cloud_location\":\"localcloud\"}", "cloud_infra_id": "FUSION_CLOUD_dg-tky-12", "quotas": [] } ], "quotas": [] } ] } ]}其中,取region_id为区域的id,例如dg-tky-12。步骤2:创建ProjectURLPOST https://{SC北向接口域名}/rest/vdc/v3.1/projects请求头Content-Type:application/json X-Auth-Token:x-xxxxxxxxxxx请求体示例:{ "project": { "tenant_id": "e030b8e0-621d-4bfd-b66b-212a86341f51", "name": "dg-tky-12_test_project", "display_name": "", "is_shared": "false", "description": "", "regions": [ { "region_id": "dg-tky-12" } ], "is_bind_external_network": true, "is_support_hws_service": true }}参数说明: tenant_id:填写project所属的vdc_id。与步骤1的url入参相同。必填。 regions:绑定的区域id列表。必填。存在如下约束:如果绑定的region超过一个,那么仅支持HUAWEI CLOUD Stack 基础服务(计算、网络、存储),建议只绑定一个区域。 name:project(项目/资源集)名称,必填。如果绑定的regions只有1个,名称需要加上“{region_id}_”前缀。 is_shared:是否支持共享,true表示支持,false表示不支持。共享VPC的管理员创建VPC和子网并给下级VDC授予访问VPC中网络的权限,当“是否支持共享VPC”选择“是”时,拥有资源集授权的用户可以使用管理员在该资源集创建的VPC和子网,达到跨VDC的用户使用同一VPC的能力,使网络资源合理共享,实现更加灵活方便的管理和监控。选填。 is_bind_external_network:是否绑定租户下分配的外部网络,true表示绑定,false表示不绑定。默认为true。选填。 is_support_hws_service:资源集是否支持高阶云服务,true表示支持,false表示不支持。默认为false。如果绑定的region超过一个,此处只能填写false。选填。 description:资源集描述,长度为0到255位,不能包含“<”和“>”。状态码:成功(201)响应体示例{ "project": { "id": "05713a92a38d45a8b4fa911fa3b9552e" }}注:非本级或上级VDC管理员需要授权才能获得project的操作权限,具体操作可参考“将用户加入指定用户组”、和“为指定用户组授权指定资源集”。步骤3:查询VDC关联的Project(可选)URLGET https://{SC北向接口域名}/rest/vdc/v3.1/vdcs/{vdc_id}/projects?start=0&limit=100其中,start为分页查询的起始位置,取值在0-2147483647之间,默认从0开始, 默认值为0。分页查询时,start需要为limit的整数倍;limit限制每页显示的条目数量,取值在1-100之间,默认值为10。可包含如下查询条件:(下表包含部分查询条件,全部查询条件请参考《ManageOne 运营面API参考.docx》中”查询指定VDC中资源集集合“接口。)参数类型描述inheritboolean是否查询VDC下所有可见VDC关联的资源集。默认值:falsenamestring模糊搜索所使用的名称字段,长度在1-64之间。sort_dirstring排序方向,取值范围asc,desc。默认值:asc请求头Content-Type:application/json X-Auth-Token:x-xxxxxxxxxxx响应体示例{ "total": 1, "projects": [ { "id": "6aa4d449d6fe4ea68c7cacb1a9803959", "name": "cn-global-205_hzp_project", "description": "", "domain_id": "e1fcb3ba48a64cb2acb5894bcd6d892d", "enabled": true, "tenant_id": "d8e2a487-843b-4309-9d14-e845f593411f", "is_shared": false, "tenant_name": "hzp_vdc", "create_user_id": "b9fd4029af7a4b71a085048b9bbe9072", "create_user_name": "bss_admin", "regions": [ { "region_id": "cn-global-205", "region_name": { "zh_cn": "西安", "en_us": "西安" }, "region_type": null, "region_status": "normal" } ] } ]}其中,id为project Id,name为project名称,domain_id为project所在的租户Id,tenant_id为project所属的VDC Id;tenant_name为project所属的VDC名称;description为project描述;regions为project关联的region信息。4.5 创建默认角色用户说明:此接口可创建系统默认角色用户(VDC管理员、VDC业务员、VDC只读管理员),支持租户用户绑定project。ManegeOne 8.0.3及以上版本,使用此接口创建租户用户,会自动创建同名用户组,并将用户与用户组绑定,然后绑定指定project。ManegeOne 8.0.3及以上版本使用此接口只能绑定系统默认角色,不支持细粒度授权特性,如果有此需求,请参考“如何通过API创建细粒度授权用户”。接口约束:运营管理员角色用户必须使用运营管理员token才能创建;VDC管理员token仅可在本VDC或子级VDC下创建用户。运营管理员token支持在任意VDC下创建用户。URLPOST https://{SC北向接口域名}/rest/vdc/v3.0/users请求头Content-Type:application/json X-Auth-Token:x-xxxxxxxxxxx请求体示例{ "tenant_id": "1d165aa8-7309-4ec7-9854-8d24334bc6ed", "user": { "name": "testuser", "password": "tT123456#", "roles":["00000000-0000-0000-0000-000000000001"], "description":"" }}参数说明:tenant_id:用户所属VDC的Id(非domain_id),参考4.3的步骤7获取。若创建运营管理员为运营管理员的domain_id。user对象中包含以下参数:name:用户名,只能由英文字母(区分大小写)、数字和特殊字符@._-组成,不能以“op_svc”、“paas_op”或\开头,且不能以\结尾,且不能命名为admin、power_user、或guest。长度范围是4到32位。必选。password:密码,包含以下四种字符的三种: 大写字母、小写字母、数字、特殊字符(除<和>字符),且必须包含特殊字符,不能包含名字正序或逆序。长度:8到32个字符 。必选。roles:角色。数据类型:List。常用角色:运营管理员:“00000000-0000-0000-0000-000000000000”;VDC管理员:“00000000-0000-0000-0000-000000000001”;VDC业务员:“00000000-0000-0000-0000-000000000002”;VDC只读管理员:“00000000-0000-0000-0000-000000000005”。必选。projects:授权用户的资源集/项目列表。VDC管理员角色默认拥有所在VDC和子级VDC的资源集权限,可不填写。其他租户角色需要关联project才拥有对应资源集权限。运营管理员角色不需要填写此参数。数据类型:List。project id和获取方法可参考4.4章节的步骤2或步骤3。description:描述,不能包含<或者>字符。长度:0到255个字符。可选。email:邮箱,符合邮箱格式,长度:0到64个字符。可选。areacode:国际区号,只能为数字,长度:0到10个字符。可选。phone:手机号,只能为数字,长度:0到32个字符。可选。响应体示例{ "user": { "id": "811498d36a674e698b25d7d73c817f3f" }}其中,id为用户Id。4.6 其他接口1. 查询用户列表接口约束:运营管理员token可查询全量用户。VDC管理员仅可查询本VDC以及子级VDC的用户。URLGET https://{SC北向接口域名}/rest/vdc/v3.0/users?limit=100&start=0URL常用参数:(完整参数请参考《ManageOne 运营面API参考》)start:分页查询的起始位置,最小值:0 ,最大值:2147483647 ,默认值:0。可选。limit:限制每页显示的条目数量,最小值:1,最大值:100 ,默认值:10。可选。tenant_id:用户归属的VDC ID。可选。name:按照名称或显示名字段模糊搜索。长度:1到128个字符。可选。exact:是否精确匹配,枚举值:true和false,默认值:false。可选。请求头Content-Type:application/jsonX-Auth-Token:x-xxxxxxxxxxx响应体示例{ "total": 1, "users": [ { "enabled": "true", "description": "", "email": "", "areacode": "", "phone": "", "vdc_name": "hzp_vdc", "resource_tenant_id": null, "level": null, "roles": [ { "id": "00000000-0000-0000-0000-000000000001", "name": "vdcServiceManager", "display_name": "VDC Admin", "user_role_type": "0" } ], "display_name": "", "vdc_id": "8c3e288e-49a5-4eab-90a0-47916dac8589", "domain_id": "9b01faf18f454c59a6fd157f0c82e556", "domain_name": "hzp_vdc", "user_type": "0", "name": "hzp_admin", "login_at": "2022-04-18 01:24:27.0", "id": "b7f8bc098f4f4891b93eeff5dcdfc6b5", "create_at": "2022-02-23 06:55:53.0" } ]}其中,id为用户Id,name为用户名称,domain_id为租户Id,vdc_id为所属的VDC Id。2. 修改用户密码接口约束:运营管理员可修改任意用户的密码;VDC管理员仅可修改本VDC或子级VDC下的用户密码;VDC业务员仅可修改自己的密码。URLPUT https://{SC北向接口域名}/rest/vdc/v3.0/users/{user_id}/password其中,user_id需要通过“查询用户列表”接口获取。请求头Content-Type:application/json X-Auth-Token:x-xxxxxxxxxxx请求体示例{ "user": { "original_password": "******", "password": "******" } }参数说明: original_password:原始密码。 password:密码,必须包含以下四种字符的三种: 大写字母、小写字母、数字、特殊字符(除<和>字符),且必须包含特殊字符,不能包含名字正序或逆序。长度:8到32个字符。状态码:200(重置密码成功)响应体:无3. 重置用户密码接口约束:运营管理员可重置任意用户的密码;VDC管理员仅可重置本VDC或子级VDC下的用户密码;VDC业务员仅可重置自己的密码。重置密码后,用户在第一次登录ManageOne页面时,会被要求修改密码,如果希望解除此限制,可以先调“重置用户密码”接口,再调“修改用户密码”接口。URLPUT https://{SC北向接口域名}/rest/vdc/v3.0/users/{user_id}/reset-password其中,user_id需要通过“查询用户”接口获取。请求头Content-Type:application/json X-Auth-Token:x-xxxxxxxxxxx请求体示例{ "user": { "password": "*****" } }参数说明: password:密码,必须包含以下四种字符的三种: 大写字母、小写字母、数字、特殊字符(除<和>字符),且必须包含特殊字符,不能包含名字正序或逆序。长度:8到32个字符状态码:200(重置密码成功)响应体:无4. 修改用户基本信息URLPUT https://{SC北向接口域名}/rest/vdc/v3.2/users/{user_id}请求头Content-Type:application/json X-Auth-Token:x-xxxxxxxxxxx请求体示例(完整参数请参考《ManageOne 运营面API参考》){ "user": { "description": "test" }}user中可包含如下字段:display_name:用户别名,由除">"和"<"之外的字符组成,0-128个字符。可选。enabled:用户状态,枚举值:true或false,默认为true。为false时,表示用户处于停用状态。可选。description:说明,不能包含<或>字符,长度:0到255个字符。可选。email:邮箱,符合邮箱格式,长度:0到64个字符。可选。areacode:国际区号,长度:0到10个字符。可选。phone:手机号,长度:0到32个字符。可选。状态码:204(成功)响应体:无5. 删除用户接口约束:1.删除用户时,需确保该用户没有未完成的审批流程、审批任务、订单。2.运营管理员token可删除任意用户,VDC管理员token仅可删除本VDC或子级VDC下的用户。URLDELETE https://{SC北向接口域名}/rest/vdc/v3.0/users/{user_id}请求头Content-Type:application/json X-Auth-Token:x-xxxxxxxxxxx响应体:无成功状态码:2006. 修改Project基本信息URLPUT https://{SC北向接口域名}/rest/vdc/v3.0/projects/{project_id}请求头Content-Type:application/json X-Auth-Token:x-xxxxxxxxxxx请求体示例(完整参数请参考《ManageOne 运营面API参考》){ "project": { "name": "name", "description": "desc" } }常用字段说明:name:资源集名称,以{region_id}_开头,只能由英文字母、中文、数字、中划线、下划线或者英文括号组成。长度范围1到64位。可选。display_name:资源集别名,不能包含“<”和“>”,长度为0到64位。可选。description:资源集描述,长度为0到255位,不能包含“<”和“>”。可选。状态码:204(成功)响应体:无7. 删除Project接口约束: 删除资源集时,需确保该资源集内的所有资源均已清除。若不满足,接口会报错“movdc-02284:Resource set xxxx has resources in use.”URLDELETE https://{SC北向接口域名}/rest/vdc/v3.0/projects/{project_id}请求头Content-Type:application/json X-Auth-Token:x-xxxxxxxxxxx请求体:无状态码:成功(204)响应体:无8. 删除租户/VDC接口约束:删除VDC时,需确保:1. 不存在子级VDC;2. VDC内不存在用户;3. VDC内不存在资源集。若不满足,接口会报错“movdc-01136:The VDC has x lower-level VDCs, x users, x resource sets that include resources.”URLDELETE https://{SC北向接口域名}/rest/vdc/v3.0/vdcs/{vdc_id}请求头Content-Type:application/json X-Auth-Token:x-xxxxxxxxxxx响应体:无成功状态码:204
上滑加载中
推荐直播
-
华为云码道 × 仓颉编程:工程化AI编码探索2026/05/27 周三 19:00-21:00
刘俊杰-华为云仓颉语言专家/李炎-华为云码道技术专家/王智鹏-OpenCangjie开源社区发起人
本场直播围绕华为云仓颉语言与华为云码道的深度结合,展示华为云智能编程从零基础到高效落地的完整生态能力。以华为云码道为引擎,仓颉语言为载体,带给大家日常提效、趣味创新到极速量产的开发体验。
回顾中
热门标签