• [低码编排] 【服务构建器系列课程】如何通过服务构建器将零散的IT能力标准化-基础能力
    【服务构建器系列课程】如何通过服务构建器将零散的IT能力标准化-基础能力    ~~~视频课程敬请期待~~~
  • [低码编排] 【服务构建器系列课程】手把手教你重编一个弹性云服务器
    【服务构建器系列课程】手把手教你重编一个弹性云服务器   ~~~视频课程敬请期待~~~  
  • [低码编排] 【服务构建器系列课程】服务构建器基础入门
    【服务构建器系列课程】服务构建器基础入门   ~~~视频课程敬请期待~~~
  • [集成开发] 【ManageOne运营侧】代维管理
    1 场景说明本贴所写指导适用于华为云Stack ManageOne 6.5.x、8.x版本。从ManageOne的租户模型中,我们了解到一级VDC管理员只能管理其所在的VDC,不能跨VDC管理,如果现网项目中有多个一级VDC,就需要第三方系统保存多个一级VDC管理员账号,存在安全风险且维护困难;此时,可以通过代维管理员,将多个一级VDC加入到指定的代维管理员的代维租户列表,这样第三方系统就可以使用一个账号管理多个一级VDC了;代维管理员实际上是通过置换token的方式,获得对一级VDC的管理权限,一旦代维管理员获得了对一级VDC管理权限,就如同一级VDC管理员一样,可以对一级VDC内的子级VDC、project、用户进行管理,也可以在指定的project中申请资源;若使用代维管理员账号在指定VDC中申请云资源,会占用指定VDC的资源配额;若使用代维管理员账号在指定VDC中删除云资源,会释放指定VDC中占用的资源配额。本帖主要给出如何使用代维管理员账号获得指定VDC、project的管理权限(即指定VDC、project的token),对VDC、project、用户和云资源的管理2 准备工作2.1获取调用接口的IP和域名参考帖子:cid:link_0,获取APIGateway的浮动IP,IAM对外访问域名和运营面对外访问域名。2.2 获取运营管理员账号请联系项目中的华为服务工程师,获取ManageOne运营管理员账号密码。2.3 创建代维管理员(已创建可跳过)6.5.1版本参考如下步骤创建代维管理员:步骤1 使用运营管理员登录ManageOne运营面,依次点击“租户”-->“租户代维”,打开代维租户管理界面,点击“创建代维管理员”,如下图所示:步骤2 在创建代维管理员界面,填写用户名,密码,然后选择需要代维的租户列表,并点击“创建”,如下图所示:8.0版本,请参考如下步骤创建代维管理员步骤1 使用运营管理员登录ManageOne运营面,依次点击“系统”-->“权限管理”-->"用户",打开用户管理界面,点击“创建用户”,如下图所示:步骤2 在创建用户界面中,选择“代维”,填写用户名,密码,然后选择需要代维的租户列表,并点击“创建”,如下图所示:3 接口调用步骤代维管理员置换指定租户、project下的token流程如下:步骤1 获取代维管理员的租户名使用代维管理员用户登录ManageOne运营面,进入“选择代维租户和资源集”页面后,按“F12”(以Chrome浏览器为例),选择“网络”页签,然后刷新页面,在控制台获取到的链接列表中,找到“me”,然后在右侧“预览”页签中,找到“domainName”即代为管理员的租户名。(注:此租户名通常为“audn_”开头,与代维用户代管的租户名不相同)。步骤2 获取代维管理员token接口URI:https://{IAM对外访问域名}/v3/auth/tokens请求方法:POST请求头:Content-Type:application/json;charset=UTF-8Accept:application/json; charset=UTF-8请求体:{ "auth": { "identity": { "methods": ["password"], "password": { "user": { "domain": { "name": "audn_1f7af046-6567-4ec6-93a3-470" }, "name": "XXXXXX", "password": "XXXXXX" } } }, "scope": { "domain": { "name": "audn_1f7af046-6567-4ec6-93a3-470" } } }}这里domain name的值为代维管理员所属的domain的名称,由步骤1获得name和password分别为代维管理员的用户名和密码响应头(Header)示例:Transfer-Encoding →chunked Connection →keep-alive X-Subject-Token →MIIEJSDVVDFASKoZIhvXXXXXXXXXXXXXXXXXXXXXXXXXXXXXcNAQcCZzTOuAZ8这里我们从响应头中获得了代维管理员的token(X-Subject-Token)。响应体(Body)示例:{    "token": {        "expires_at": "2022-06-24T02:49:18.402000Z",        "methods": [            "password"        ],        "catalog": [],        "domain": {            "name": "audn_1f7af046-6567-4ec6-93a3-470",            "id": "095543b046514bdbab988d4ad3089a28"        },        "roles": [            {                "name": "te_admin",                "id": "985dc76053f94685a15eafc3cd9f5da2"            },            {                "name": "mo_agency",                "id": "8299bcd6d9464c55a6bf963f0d8e678c"            },            {                "name": "te_agency",                "id": "fc85d26a9db847f293265c8c46e19a2c"            },            {                "name": "secu_admin",                "id": "d9920b033be744f1996d1e84281c94e8"            },            {                "name": "vdc_adm",                "id": "4d0cd24102504767b33fd55d915c55e8"            }        ],        "issued_at": "2022-06-23T02:49:18.402000Z",        "user": {            "domain": {                "name": "audn_1f7af046-6567-4ec6-93a3-470",                "id": "095543b046514bdbab988d4ad3089a28"            },            "name": "hzp_dw",            "id": "ef5dbdcce2a047bb8b10fb69507a5bd1"        }    }}取响应体中的token.user.id为代为管理员的用户id,此环境为ef5dbdcce2a047bb8b10fb69507a5bd1。步骤3 查询代维管理员代维的租户列表这里我们查询代维管理员详情,获得该代维管理员代维的租户列表,为后续置换token做准备。接口URI:https://{运营侧北向接口对外域名}/rest/vdc/v3.0/agencies/users/{agency_user_id}(此处agency_user_id为步骤2中获得的代维管理员的用户ID)请求方法:GET请求头(这里的token为步骤1中获取的运营管理员token):Content-Type:application/json;charset=UTF-8Accept:application/json; charset=UTF-8X-Auth-Token:MIIEMQYJKoZIhvXXXXXXXXXXXXXXXXXXXXXXXXXXXXXcNAQcCZzTOuXR9请求体:NULL响应体(示例):{    "limit_access": "false",    "lock_period": null,    "login_config": null,    "whiteList": [],    "user": {        "resource_tenant_id": "",        "level": null,        "roles": [            {                "id": "00000000-0000-0000-0000-000000000004",                "name": "agencyManager",                "display_name": "Agency Admin",                "user_role_type": null,                "description": "role_role_view_para_desc_content_agencyMananger_value"            }        ],        "trust_vdc_list": [            {                "name": "hzp_vdc",                "id": "16ea1a6e341d44e385fb3cb077c3b63f",                "description": "",                "domain_id": "16ea1a6e341d44e385fb3cb077c3b63f",                "domain_name": "hzp_vdc",                "agency_name": "aN_101e3806-761e-4264-ad60-cfca0",                "agency_id": "3d65090751424616b93ded9068394e8c"            },            {                "name": "hzp_vdc_2",                "id": "3dd28cba7a28416cbab8b62bfe0f9e02",                "description": "",                "domain_id": "3dd28cba7a28416cbab8b62bfe0f9e02",                "domain_name": "hzp_vdc_2",                "agency_name": "aN_5a1067a9-f94d-4bcf-a8be-f9693",                "agency_id": "c31134a891bd45feb97861c5d732d1e7"            }        ],        "description": "",        "areacode": null,        "createAt": null,        "enabled": "true",        "vdc_id": null,        "domain_id": "095543b046514bdbab988d4ad3089a28",        "domain_name": "audn_1f7af046-6567-4ec6-93a3-470",        "user_type": "0",        "display_name": null,        "phone": "",        "name": "hzp_dw",        "id": "ef5dbdcce2a047bb8b10fb69507a5bd1",        "email": ""    }}trust_vdc_list中所列出的清单即为该代维管理员所代维的租户列表,这里我们需要获取被代维的租户的名称(trust_vdc_list中name的值),租户的ID(trust_vdc_list中domain_id的值)和代维名称(trust_vdc_list中agency_name的值),为后续置换token做准备。 步骤4 查询指定租户中的project列表(可选)若您不需要拥有指定的project中资源的管理权限,这一步可以跳过。接口URI:https://{运营侧北向接口对外域名}/rest/vdc/v3.1/agencies/projects?domain_id={domain_id}(domain_id为被代维的租户的domain ID,由步骤3获取trust_vdc_list中domain_id的值)这里需要使用代维管理员的token,由步骤4获取请求方法:GET请求头:Content-Type:application/json;charset=UTF-8Accept:application/json; charset=UTF-8X-Auth-Token:MIIEJSDVVDFASKoZIhvXXXXXXXXXXXXXXXXXXXXXXXXXXXXXcNAQcCZzTOuAZ8请求体:NULL响应体(示例):{    "total": 3,    "projects": [        {            "id": "6934bce513274fd9b20955c3db9728f0",            "name": "solution-advance-1_hzp_project",            "description": "",            "domain_id": "16ea1a6e341d44e385fb3cb077c3b63f",            "enabled": true,            "tenant_id": "d86c3636-c637-4ee6-93ca-16c34b38b5c0",            "is_shared": false,            "tenant_name": "hzp_vdc",            "create_user_name": "bss_admin",            "create_user_id": "9d30a3d12bac4d879e9e9fb4274b76ed",            "regions": [                {                    "region_id": "solution-advance-1",                    "region_name": {                        "zh_cn": "东莞",                        "en_us": "东莞"                    },                    "region_status": "normal"                }            ]        },        {            "id": "630b7dd529344d56bf38c0a6ecab4fc6",            "name": "solution-advance-1_hzp_project2",            "description": "",            "domain_id": "16ea1a6e341d44e385fb3cb077c3b63f",            "enabled": true,            "tenant_id": "bf588c5a-8d05-49bd-a93d-e937286893e5",            "is_shared": false,            "tenant_name": "hzp_vdc2",            "create_user_name": "hzp_admin",            "create_user_id": "d0cc23141778469f82854c5269d3d9ee",            "regions": [                {                    "region_id": "solution-advance-1",                    "region_name": {                        "zh_cn": "东莞",                        "en_us": "东莞"                    },                    "region_status": "normal"                }            ]        },        {            "id": "51792d0ec2624c98b316fde97956531e",            "name": "solution-advance-2_hzp_project",            "description": "",            "domain_id": "16ea1a6e341d44e385fb3cb077c3b63f",            "enabled": true,            "tenant_id": "d86c3636-c637-4ee6-93ca-16c34b38b5c0",            "is_shared": false,            "tenant_name": "hzp_vdc",            "create_user_name": "bss_admin",            "create_user_id": "9d30a3d12bac4d879e9e9fb4274b76ed",            "regions": [                {                    "region_id": "solution-advance-2",                    "region_name": {                        "zh_cn": "华南",                        "en_us": "华南"                    },                    "region_status": "normal"                }            ]        }    ]} 此处我们获得了指定租户下的project列表,我们需要取到project的ID步骤5 获取代维管理员在指定租户、指定project中的token获取代维管理员在指定租户中的token,我们需要用到步骤4中获得的代为管理员的token,步骤3中获得的被代维租户的租户名和代维名称。请求URL: https://{IAM对外访问域名}/v3/auth/tokens请求方法:POST请求头(请求头中token为步骤4中获得的代维管理员token):Accept:application/json Content-Type:application/json;charset=UTF-8 X-Auth-Token:MIIEJSDVVDFASKoZIhvXXXXXXXXXXXXXXXXXXXXXXXXXXXXXcNAQcCZzTOuAZ8请求体样例1(指定租户、指定projet):{    "auth": {        "identity": {            "methods": ["assume_role"],            "assume_role": {                "domain_name": "hzp_vdc",               "xrole_name": "aN_101e3806-761e-4264-ad60-cfca0"            }        },        "scope": {            "project": {                "domain": {                    "name": "hzp_vdc"                    },               "name": "solution-advance-1_hzp_project"            }        }    }}使用此请求体置换得到的token,可以对指定的租户中的VDC、用户和project进行管理,还可以管理指定的project中的资源(scope中指定的project)。请求体样例2(指定租户,不指定project):{ "auth": { "identity": { "methods": ["assume_role"], "assume_role": { "domain_name": "hzp_vdc", "xrole_name": "aN_101e3806-761e-4264-ad60-cfca0", "restrict": { "roles": ["secu_admin", "te_admin", "vdc_owner", "vdc_adm", "tag_adm"] } } }, "scope": {   "domain": { "name": "hzp_vdc" } } }}使用此请求体置换得到的token,可以对指定的租户中的VDC、用户和project进行管理,不能管理资源。请求体中参数说明如下:methods:获取token的方法,此处我们采用置换token方式,故而取值为:assume_roledomain_name:被代维的租户的租户名,从步骤3获取的trust_vdc_list中name的值xrole_name:代为管理员在指定租户中的代维名称,从步骤3获取的trust_vdc_list中agency_name的值restrict:置换所得的token所拥有的权限,参考样例填写即可scope中的project.domain.name:与domain_name取值相同scope中的project.id:需要代维的project的ID,由步骤4的响应体中获取响应头示例:Content-Type →application/json; charset=utf-8 Transfer-Encoding →chunked Connection →keep-alive X-Subject-Token →MIIFCAYJKoZIhvcNAQcCoIIE+TCCBPUXXXXXgSe63UKRXxi5AxhHv-0U=从响应头中,我们获得了置换的token。如果需要在不同的project中管理资源,需要再次置换token,获得目标project的权限 
  • [集成开发] 【ManageOne运营侧】查询资源集
    1 VDC模型介绍请参考此链接:cid:link_02 约束条件本文适用于ManageOne 6.5.0及以上版本。3 场景说明本文档用于指导开发者获取租户和用户信息,便于第三方系统同步ManageOne的组织架构以及用户信息(如用户名、电话、email等)。4 租户信息同步目录:4.1 准备工作 4.2 获取管理员token 4.3 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/jsonContent-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 CreatedContent-Type: application/json; charset=utf-8Connection: keep-aliveX-Subject-Token: MIIECwYxxxxxxxxxxxxxxxxxxSQ3G2RAj89N+t9GECHGnnGUgkKj7vMesUZ2jEW6EiVYA==X-Subject-Token的值即为我们所需要的token 4.3 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信息。
  • [集成开发] 【ManageOne运营侧】用户查询
    1 VDC模型介绍请参考此链接:cid:link_02 约束条件本文适用于ManageOne 6.5.0及以上版本。3 场景说明本文档用于指导开发者获取租户和用户信息,便于第三方系统同步ManageOne的组织架构以及用户信息(如用户名、电话、email等)。4 租户信息同步目录:4.1 准备工作 4.2 获取管理员token 4.3 用户 1. 查询用户列表 2. 查询用户详情  4.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/jsonContent-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 CreatedContent-Type: application/json; charset=utf-8Connection: keep-aliveX-Subject-Token: MIIECwYxxxxxxxxxxxxxxxxxxSQ3G2RAj89N+t9GECHGnnGUgkKj7vMesUZ2jEW6EiVYA==X-Subject-Token的值即为我们所需要的token 4.3 用户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为用户绑定的用户组。 
  • [集成开发] 【ManageOne运营侧】租户查询
    1 VDC模型介绍请参考此链接:cid:link_02 约束条件本文适用于ManageOne 6.5.0及以上版本。3 场景说明本文档用于指导开发者获取租户和用户信息,便于第三方系统同步ManageOne的组织架构以及用户信息(如用户名、电话、email等)。4 租户信息同步目录:4.1 准备工作 4.2 获取管理员token 4.3 租户/VDC 1. 查询VDC列表 2. 查询VDC详情  4.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/jsonContent-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 CreatedContent-Type: application/json; charset=utf-8Connection: keep-aliveX-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:拓展参数。 
  • [集成开发] 【ManageOne运维侧】用户管理
    1 接口说明从ManageOne 8.2.1版本起,IAM会对OC(运维面)用户进行纳管,第三方可通过SC接口对OC用户进行管理。可用于以下场景:1.客户有自己的统一密码管理系统,需要对OC用户的密码进行管理2.MO已对接第三方统一认证中心,并且有从第三方平台单点登录至OC的需求,此时需要在OC创建相应的用户。2 接口约束1. 支持ManageOne 8.2.1及以上版本2. 当前仅运营管理员(mo_bss_admin)租户下的用户添加OC权限,VDC管理员、代维管理员等其他角色不支持添加OC权限。3 使用指导3.1 准备工作正式对接前,请参考如下步骤,获取对应的IP、用户:参考运营侧准备工作帖,获取对接所需要接口文档(主要参考,ManageOne运营面API参考)、运营侧北向接口对外域名:https://bbs.huaweicloud.com/forum/thread-41849-1-1.html联系项目中,华为交付工程师,获取运营管理员账号、密码.3.2 调用步骤步骤0:获取运营管理员token请求URL:https://{IAM对外访问域名}/v3/auth/tokens请求方法:POST请求头:Accept:application/jsonContent-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 CreatedContent-Type: application/json; charset=utf-8Connection: keep-aliveX-Subject-Token: MIIECwYxxxxxxxxxxxxxxxxxxSQ3G2RAj89N+t9GECHGnnGUgkKj7vMesUZ2jEW6EiVYA==X-Subject-Token的值即为我们所需要的token步骤1:查询运营管理员所属的VDCURLGET https://{SC北向接口域名}/rest/vdc/v3.0/vdcs?name=mo_bss_admin请求头Content-Type:application/json X-Auth-Token:x-xxxxxxxxxxx请求体:无响应体示例{ "total": 1, "vdcs": [ { "id": "8ff07323-defd-4188-b5f7-7c09feb76ced", "name": "mo_bss_admin", "tag": "system", "description": "mo_bss_admin", "upper_vdc_id": "0", "upper_vdc_name": null, "top_vdc_id": "8ff07323-defd-4188-b5f7-7c09feb76ced", "extra": null, "ecs_used": 0.0, "evs_used": 0.0, "project_count": 0, "enabled": true, "domain_id": "09d95085ad7048dbb157d07fa22e9cd1", "level": 1, "create_user_id": "83cef006b4104f7084fc6ec2095004d7", "create_user_name": "bss_admin", "create_at": 1678128580000, "utc_create_at": "2023-03-06 18:49:40.0", "domain_name": "mo_bss_admin", "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字段为mo_bss_admin的VDC id。 步骤2:创建不带权限的运营管理员用户URLPOST https://{SC北向接口域名}/rest/vdc/v3.2/vdcs/{vdc_id}/users其中,vdc_id通过步骤1获取。请求头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','4',默认值为'0'。为'0'表示本地认证,为'1'表示SAML认证,为'2'表示LDAP认证,为'4'表示OC的API用户。可选。ldap_id:ldap ID。auth_type为1或2时需要填写此参数。可选。响应体示例{    "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。步骤3:查询OC的用户组列表(创建API用户可跳过)URLGET https://{SC北向接口域名}/rest/vdc/v3.2/vdcs/{vdc_id}/groups?start=0&limit=100其中,vdc_id从步骤1获取,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": 6, "groups": [ { "domain_id": "09d95085ad7048dbb157d07fa22e9cd1", "domain_name": "mo_bss_admin", "vdc_id": "8ff07323-defd-4188-b5f7-7c09feb76ced", "vdc_name": "mo_bss_admin", "id": "279b2ca362cb4a3d99077eef7a386877", "name": "Administrators", "description": "Administrators", "create_at": 1678185136000, "type": "default", "tag": "all" }, { "domain_id": "09d95085ad7048dbb157d07fa22e9cd1", "domain_name": "mo_bss_admin", "vdc_id": "8ff07323-defd-4188-b5f7-7c09feb76ced", "vdc_name": "mo_bss_admin", "id": "e9dc8c8a27d34029aafd8f5fd432b795", "name": "AuditManagers", "description": "AuditManagers", "create_at": 1678185135000, "type": "default", "tag": "all" }, { "domain_id": "09d95085ad7048dbb157d07fa22e9cd1", "domain_name": "mo_bss_admin", "vdc_id": "8ff07323-defd-4188-b5f7-7c09feb76ced", "vdc_name": "mo_bss_admin", "id": "c11519130ea14e9dbb17e1f8ea42fd9d", "name": "NorthUserGroup", "description": "NorthUserGroup", "create_at": 1678185136000, "type": "default", "tag": "sys_adm" }, { "domain_id": "09d95085ad7048dbb157d07fa22e9cd1", "domain_name": "mo_bss_admin", "vdc_id": "8ff07323-defd-4188-b5f7-7c09feb76ced", "vdc_name": "mo_bss_admin", "id": "d30066372a8f40148d9406a7e94d76d7", "name": "ReadOnlyUserGroup", "description": "ReadOnlyUserGroup", "create_at": 1678185136000, "type": "default", "tag": "sys_adm" }, { "domain_id": "09d95085ad7048dbb157d07fa22e9cd1", "domain_name": "mo_bss_admin", "vdc_id": "8ff07323-defd-4188-b5f7-7c09feb76ced", "vdc_name": "mo_bss_admin", "id": "ec23408b124a4f0eb7fe1af69c8261f3", "name": "SecurityAdministrators", "description": "SecurityAdministrators", "create_at": 1678185135000, "type": "default", "tag": "all" }, { "domain_id": "09d95085ad7048dbb157d07fa22e9cd1", "domain_name": "mo_bss_admin", "vdc_id": "8ff07323-defd-4188-b5f7-7c09feb76ced", "vdc_name": "mo_bss_admin", "id": "417f9669e6e246ad9904283b45b508c3", "name": "admin_09d95085ad7048dbb157d07fa22e9cd1", "description": "admin_09d95085ad7048dbb157d07fa22e9cd1 description", "create_at": 1678128577000, "type": "default", "tag": "all" } ]}此处,我们根据“name”字段,过滤得到我们需要的用户组的ID。例如,根据“管理员”用户组的name“Administrators”,可查找到其对应的id为“279b2ca362cb4a3d99077eef7a386877”。ManageOne预置的OC角色请参考下表:角色接口名称(name)说明管理员Administrators拥有除“用户管理”、“查询安全日志”、“查看在线用户”和“查询个人安全日志”之外的所有权限。安全管理员组SecurityAdministrators拥有“用户管理”、“License管理”、“密码管理”、“查看在线用户”、“查询安全日志”和“更新ACL策略”的权限。安全审计员AuditManagers拥有所有日志的查询和管理权限,包括“系统管理 > 日志管理”的权限以及统一日志的“查询权限”和“管理权限”。只读用户组ReadOnlyUserGroup拥有界面查看权限,不具有操作权限。步骤4:将用户加入指定用户组(创建API用户可跳过)URLPUT https://{SC北向接口域名}/rest/vdc/v3.2/groups/{group_id}/users/{user_id}其中,user_id从步骤2获取,group_id通过步骤3获取。请求头Content-Type:application/json X-Auth-Token:x-xxxxxxxxxxx请求体:无状态码:204(成功)响应体:无至此,拥有OC操作权限的用户就创建完成了。
  • [集成开发] 【ManageOne运营侧】授权管理
    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/jsonContent-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 CreatedContent-Type: application/json; charset=utf-8Connection: keep-aliveX-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
  • [集成开发] 【ManageOne运营侧】创建租户
    步骤0:获取运营管理员token参考:cid:link_0步骤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
  • [技术干货] Ascend>Ascend Extension for PyTorch>PyTorch训练模型迁移调优
    请查阅参考昇腾社区文档:https://www.hiascend.com/document/detail/zh/Pytorch/710/ptmoddevg/trainingmigrguide/PT_LMTMOG_0002.html
  • [技术干货] Ascend>Ascend Extension for PyTorch>安装说明
    请查阅参考昇腾社区文档:https://www.hiascend.com/document/detail/zh/Pytorch/710/configandinstg/instg/insg_0001.html 
  • [技术干货] Ascend>pytorch
    请查阅参考昇腾社区文档:https://gitee.com/ascend/pytorch
  • [技术干货] Ascend>Tensorpipe
    请查阅参考昇腾社区文档:https://gitee.com/ascend/Tensorpipe
  • GaussDB xlog追平速度
    一、核心的原理:xlog 追平速度的关键是 “日志生成量”xlog(WAL)追平的本质是 “操作产生的 WAL 日志落盘、备库同步追平主库日志” 的过程,速度完全取决于操作生成的 WAL 日志量,而非表的物理大小(200G):1. Truncate 操作的 xlog 逻辑(更快)操作本质:DDL 操作,直接清空表的所有数据块,标记对应存储空间为 “可复用 / 释放”,不触发行级数据处理;WAL 日志量:仅记录 “截断表” 的元数据(如表 OID、数据块范围),与表大小无关,生成的 WAL 量仅 KB 级别(通常 < 1MB);追平速度:日志刷盘、备库同步几乎瞬间完成(毫秒级),200G 表和 2G 表的 Truncate xlog 追平速度无差别。2. Drop 操作的 xlog 逻辑(稍慢)操作本质:DDL 操作,标记表的元数据(系统表中)为失效,同时删除关联的索引、约束、分区等元数据;物理数据不会立即删除(openGauss 默认延迟清理,由后台 autovacuum 异步处理);WAL 日志量:记录 “表元数据删除 + 关联对象清理” 的日志,比 Truncate 略多(几十 KB 到几 MB),但依然与表大小无关;追平速度:同样是毫秒级完成,仅比 Truncate 慢一点点(比如从 0.1 秒变成 0.5 秒),几乎感知不到。3. 关键误区澄清很多人误以为 “表越大,Drop/Truncate 的 xlog 越多”—— 这是错误的!因为这两个操作是元数据操作,WAL 只记录 “操作本身”,不记录 “数据内容”;而Delete from 表是 DML 操作,每删一行都要记 WAL,200G 表 Delete 会生成数百 GB 的 WAL,追平耗时数小时(和 Drop/Truncate 完全不是一个量级)。二、特殊场景下的差异(影响极小)只有当表满足以下条件时,Drop 的 xlog 追平速度会比 Truncate 稍慢一点(但仍属毫秒级):表有大量关联对象(如 10 + 索引、多个约束、数百个分区):Drop 需要额外记录 “删除索引 / 约束 / 分区元数据” 的 WAL,日志量略增;openGauss 开启 “表回收站”(默认开启):Drop 会把表放入回收站,这一步会多一点 WAL 记录,而 Truncate 不会触发回收站;备库同步策略为 “实时同步”:Drop 的少量额外 WAL 会让备库追平多花几十毫秒,但无实际影响。三、实操对比(200G 大表举例)操作WAL 生成量xlog 追平耗时备注Truncate~500KB<1 秒仅记录元数据,最快Drop~2MB<2 秒需清理关联元数据,稍慢Delete~200-400GB数小时行级记录,极慢(对比用)总结一下下核心结论:Drop 和 Truncate 的 xlog 追平速度差异极小(均为毫秒级),Truncate 略快于 Drop;关键认知:两者的 xlog 生成量都与 200G 表大小无关,仅取决于元数据复杂度,无需担心 “表大导致追平慢”;选型建议:若需保留表结构,选 Truncate;若无需表结构,选 Drop—— 两者的 xlog 追平速度都足够快,无需纠结。
总条数:1845 到第
上滑加载中