云社区 博客 博客详情
云社区 博客 博客详情

【华为云Stack ManageOne运营面北向对接】如何使用订单接口管理云磁盘【PART 1】

混合云北向砖家 发表于 2020-03-28 16:27:48 03-28 16:27
混合云北向砖家 发表于 2020-03-28 16:27:48 2020/03/28
0
0

【摘要】 第三方系统对接华为云Stack时,可通过对接订单接口实现对云资源的生命周期管理

1 订单接口说明

ManageOne中,用户通过申请订单的方式对云资源进行申请、变更、释放操作,实现对云资源生命周期的管理,订单接口具有以下特点:

  1. 订单支持关联审批流程(最大支持五级审批,详情参考ManageOne用户指南),用户完成资源配置并提交后,如果审批通过,Manageone会自动完成订单实施;

  2. 订单接口对云服务接口(经加固后对外开放的OpenStack接口)进行了一定程度的封装,通过调用订单接口,可以同步完成云资源的多个操作,如,申请虚拟机的同时,为虚拟机挂载数据盘,绑定弹性IP;

  3. 通过订单接口申请、释放云资源时,会同步扣除、恢复租户配额,当租户配额不够时,会导致订单实施失败;

  4. 订单接口只提供资源的申请,延期,变更,释放功能,不提供云服务的查询,操作(如虚拟机的开关机,列表查询等)功能,不能独立使用,需要配合云服务接口使用,也就是说,您需要通过ManageOne订单接口申请,延期,变更,释放云资源,使用云服务接口查询,操作云资源

说明:

    云服务接口也支持申请云资源,与使用ManageOne订单接口的区别是:

  • 通过云服务接口创建的资源,在ManageOne页面上,可以查询,操作这些资源,但不能执行变更(如扩容,减容),释放云资源的操作

  • ManageOne中为该租户设置的配额也将不再生效(即使用云服务接口申请、释放资源,ManageOne中对应租户的配额不会变化),这也意味着,如果您不加约束,租户可以超配额申请资源



2 订单接口使用场景

如第1部分所述,ManageOne订单接口是在云服务接口的基础上封装得到的,包含了ManageOne自身的运营特性,例如产品、服务、区域、配额等,使用上有一定的约束,如果您希望通过调用接口实现对华为云Stack中云资源的生命周期管理,请参考以下几个场景进行评估,符合以下任何一种场景的,建议您选择使用ManageOne订单接口进行对接:

  1. 如果您公司购买了并部署了华为云Stack产品,您希望通过自动化工具实现云服务资源的自动化发放,从而提高资源申请效率;

  2. 如果您购买了并部署了华为云Stack产品,公司围绕IT资产的运营运维有一整套流程,您希望已有的流程平台(如ITSM、BOSS等)能够与华为云Stack进行对接,实现现有流程与云服务的整合,在简化服务的申请周期,提高应用上线效率的同时,还能够实现云资源的全流程监控;

  3. 如果您是云服务提供商,将华为云Stack提供的云服务,按照租户的形式租售给了客户,客户希望实现云服务的自动化发放,需要您提供对接接口;

  4. 如果您是云服务提供商,希望现有运营平台能够与华为云Stack对接,实现租户的自动化创建,并为每个租户预置指定类型的云资源,租户的日常运维由运维部门通过ManageOne进行运维。

如果您购买了多家厂商的云平台,希望通过一套云管理软件进行纳管,建议您直接对接云服务接口进行对接,这样可以屏蔽ManageOne的运营特性,只关注云服务特性,对接起来更加灵活。

3 对接准备

  1. 订单接口参数较为复杂,建议您使用可视化工具对接口进行测试,如postman(使用前请关闭SSL证书校验),restclient等。

  2. 请参考帖子:【华为云Stack ManageOne 运营侧北向对接】北向接口对接准备工作,获取接口文档,接口对接需要的IP,域名等信息

4 订单接口对接步骤

我们知道ManageOne订单接口不能独立使用,需要配合云服务接口使用,这里给出主要的对接步骤,如下:

  1. 通过用户名和密码调用鉴权接口获取Token和user_id。

  2. (可选)通过user_id查询用户关联的project,用户是以project维度操作资源,资源也必须属于某一个project

  3. 根据选择的project的id查询project详细信息,获取region_id、支持的云服务列表、每个云服务的资源池id和包含的az(可用分区)列表。

  4. 选择需要申请的云服务类型,比如云硬盘的service_type为evs。

  5. 订购接口还需要product_id,因此通过查询可用产品列表接口获取。

  6. 根据不同的云服务定义的数据结构获取对应的参数,这部分由每个云服务具体的订购章节详细描述,参考《ManageOne 6.5.x 云服务Params参数说明》。

  7. 组合订购接口所需的所有参数,调用接口完成订购

下面给出通过订单接口创建、释放云磁盘的详细步骤

5 申请云磁盘

这里先给出涉及到的接口清单,如下:


序号

接口功能

URL

涉及到的接口文档

调用接口使用的域名(样例)

1

鉴权

【POST】/v3/auth/tokens

《ManageOne 6.5.X OTenantSecurity服务API参考.doc》

sc.demo.com

2

查询用户关联的project列表

【GET】/rest/vdc/v3.0/users/{user_id}/projects

《ManageOne 6.5.X 运营面API参考.doc》

sc.demo.com
3

查询project详情,获取该project关联的资源池信息

【GET】/rest/vdc/v3.1/projects/{project_id}

《ManageOne 6.5.X 运营面API参考.doc》

sc.demo.com

4

查询可申请的产品列表

【GET】/rest/product/v3.0/apply/products

《ManageOne 6.5.X 运营面API参考.doc》

sc.demo.com

5

查询云资源池可用分区

【GET】/rest/serviceaccess/v3.0/available-zones

《ManageOne 6.5.X 运营面API参考.doc》

sc.demo.com

6

创建订购

【GET】/rest/subscription/v3.0/subscriptions

《ManageOne 6.5.X 运营面API参考.doc》

《ManageOne 6.5.x 云服务Params参数说明》

sc.demo.com

7

查询订单详情

【GET】/rest/order/v3.0/orders/{order_id}

《ManageOne 6.5.X 运营面API参考.doc》

sc.demo.com
8

获取镜像列表

【GET】/v2/cloudimages

《华为云Stack 6.5.X API接口参考.chm》>计算>IMS

ims.sa-fb-1.demo.com

9

获取磁盘类型

【GET】/v2/{tenant_id}/types

《华为云Stack 6.5.X API接口参考.chm》>存储>EVS

evs.sa-fb-1.demo.com

具体接口调用步骤如下:

步骤 1 获取token

调用示例:

URL:https://{ManageOne运营侧API对外域名}/v3/auth/tokens
请求方法:POST
请求头:
Content-Type: application/json;charset=UTF-8
Accept: application/json;charset=UTF-8
Connection: keep-alive
请求体:
{
	"auth": {
		"identity": {
			"methods": [
				"password"
			],
			"password": {
				"user": {
					"domain": {
						"name": "租户名"
					},
					"name": "tenantName",
					"password": "password"
				}
			}
		},
		"scope": {
			"project": {
				"domain": {
					"name": "租户名"
				},
				"id": "项目Id"
			}
		}
	}
}

响应消息如下:

响应头:

X-Subject-Token→MIIEeAYJKoASASn04rMqff-Q8fk7kqiCDMLfVxqj7wIdgkM1yD4=

响应体:
{
	"token": {
		"expires_at": "2019-09-09T07:38:55.643000Z",
		"methods": [
			"password"
		],
		"catalog": [],
		"roles": [
			{
				"name": "vdc_adm",
				"id": "880ed0477e684b1db7634572ecf19c5c"
			},
			{
				"name": "te_admin",
				"id": "7849dd0fc806417c908bb21ea93b5def"
			},
			{
				"name": "tag_adm",
				"id": "7ef11d3399a44a56b722b3c017478e34"
			},
			{
				"name": "approv_adm",
				"id": "5528afb8b7c946b5bda00a10ca041748"
			},
			{
				"name": "vdc_owner",
				"id": "2034341ae2b44fee94c244a8069cde0b"
			}
		],
		"project": {
			"domain": {
				"name": "xssvdc",
				"id": "15488ac7aec547a68d9451c91173c68c"
			},
			"name": "xssvdc",
			"id": "27a008f1b83e4dfdbf1143dd336006df"
		},
		"issued_at": "2019-09-08T07:38:55.643000Z",
		"user": {
			"domain": {
				"name": "xssvdc",
				"id": "15488ac7aec547a68d9451c91173c68c"
			},
			"name": "xssvdc",
			"id": "b54310fb838b4f8ebf1e9d23bf9691d5"   //用户Id
		}
	}
}

从响应头中我们可以获得X-Subject-Token的值,即为我们所需要的token的值;

从响应体中还可以获得用户的Id,以便后续查询用户关联的所有的project

步骤2 查询用户关联的project(可选)

创建资源时,需要指定该资源所属的project,若一个租户下有多个project,第三方平台需要指明需要使用的project,此时需要查询该用户关联的project,若仅涉及单个project,则不涉及此操作。

需要说明的是,当选择某个project创建资源时,需要用该project参考步骤1去获取token。

调用示例如下:

URL: https://{ManageOne运营侧API对外域名}/rest/vdc/v3.1/users/{user_id}/projects
请求方法:GET
请求头:
Content-Type: application/json; charset=UTF-8
Accept: application/json; charset=UTF-8
Connection: keep-alive
X-Auth-Token: MIIEeAYJKoASASn04rMqff-Q8fk7kqiCDMLfVxqj7wIdgkM1yD4=

请求体:无
响应体:

{
	"total": 1,
	"projects": [
		{
			"domain_id": "15488ac7aec547a68d9451c91173c68c",
			"tenant_id": "39d881e6-e6a6-4516-8d8e-83446abc263b",
			"role_name": null,
			"tenant_name": "tt002",
			"regions": [
				{
					"region_status": "normal",
					"region_id": "dg-tky-1",
					"region_name": {
						"en_us": "东莞",
						"zh_cn": "东莞"
					}
				}
			],
			"level": "2",
			"role_id": null,
			"name": "pj002",
			"iam_project_name": "pj002",
			"description": null,
			"id": "4313bc0e240e4086995e606f6601b730",
			"enabled": true
		},
		{
			"domain_id": "15488ac7aec547a68d9451c91173c68c",
			"tenant_id": "1cfbb21d-3e45-4a0a-887f-c9e6ab215cec",
			"role_name": null,
			"tenant_name": "test001",
			"regions": [
				{
					"region_status": "normal",
					"region_id": "dg-tky-1",
					"region_name": {
						"en_us": "东莞",
						"zh_cn": "东莞"
					}
				}
			],
			"level": "2",
			"role_id": null,
			"name": "test001",
			"iam_project_name": "test001",
			"description": null,
			"id": "147c59f42277405e854e7a3123dea3a9",
			"enabled": true
		}
	]
}

步骤 3 查询资源池信息

创建、变更、删除资源时,需要指定资源所在的region、资源池、可用分区,我们可以通过查询project详情获取该project关联的region、资源池、可用分区信息,接口调用示例如下:

URL: https://{ManageOne运营侧API对外域名}/rest/vdc/v3.1/projects/{project_id}
请求方法:GET
请求头:
Content-Type: application/json; charset=UTF-8
Accept: application/json; charset=UTF-8
Connection: keep-alive
X-Auth-Token: MIIEeAYJKoASASn04rMqff-Q8fk7kqiCDMLfVxqj7wIdgkM1yD4=
请求体:无
响应体:
{
	"project": {
		"domain_id": "15488ac7aec547a68d9451c91173c68c",
		"tenant_id": "d58cc7b4-59a8-49ff-8f0c-0c7dff90b5e9",
		"tenant_name": "xssvdc",
		"regions": [
			{
				"region_status": "normal",
				"cloud_infras": [
					{
						"cloud_infra_status": null,
						"cloud_infra_name": null,
						"cloud_infra_type": null,
						"azs": [],
						"cloud_infra_id": null
					},
					{
						"cloud_infra_status": "normal",
						"cloud_infra_name": "OpenStack_dg-tky-1",
						"cloud_infra_type": "FUSION_CLOUD",
						"azs": [
							{
								"az_status": "normal",
								"az_name": "华为",
								"az_id": "az0.dc0"
							}
						],
						"cloud_infra_id": "FUSION_CLOUD_dg-tky-1"
					},
					{
						"cloud_infra_status": "normal",
						"cloud_infra_name": "VMware_dg-tky-1",
						"cloud_infra_type": "VMWARE",
						"azs": [],
						"cloud_infra_id": "VMWARE_dg-tky-1"
					}
				],
				"region_id": "dg-tky-1",
				"region_name": {
					"en_us": "东莞",
					"zh_cn": "东莞"
				}
			}
		],
		"is_shared": false,
		"name": "xssvdc",
		"tenant_type": "vdc",
		"region_name": null,
		"id": "27a008f1b83e4dfdbf1143dd336006df",
		"enabled": true
	}
}

此处我们可以获得region_id、cloud_infra_id、az_id,需要注意的是,创建资源时指定的AZ必须与cloud_infra_id、region_id匹配,不能交叉混用!!!

步骤4 查询产品列表

不同的云服务在ManageOne中体现为对外提供不同的产品,查询时需要指定产品类型(service_type),常用类型有:

service_type

云服务名称

ecs

弹性云服务器

evs

云硬盘

ims

镜像服务

vpc

虚拟私有云

vfw

虚拟防火墙

elb

弹性负载均衡

as

弹性伸缩

bms

裸金属服务

调用示例如下:

URL: https://{ManageOne运营侧API对外域名}/rest/product/v3.0/apply/products?service_type={ecs,evs,ims,vpc,vfw,elb,as,bms}&region_id={region_id}&start=1&limit=4
请求方法:GET
请求头:
Content-Type: application/json; charset=UTF-8
Accept: application/json; charset=UTF-8
Connection: keep-alive
X-Auth-Token: MIIEeAYJKoASASn04rMqff-Q8fk7kqiCDMLfVxqj7wIdgkM1yD4=
请求体:无

响应体(本示例为查询ecs,请结合实际情况,选择需要查询的产品类别):
{
	"total": 2,
	"products": [
		{
			"product_id": "825d46284622441884854db2013c66a0",
			"service_type": "ecs",
			"create_vdc_id": "all",
			"create_user_id": "406f2fd692ac4feab83ff56eace1af2a",
			"icon_id": "defaulticonecs",
			"catalog_id": "1",
			"region_id": "dg-tky-1",
			"params": "{\"region_id\":\"dg-tky-1\",\"isHana\":false,\"availableZone\":{\"availableZoneId\":\"az0.dc0\",\"isLocked\":true,\"azName\":\"华为\",\"azType\":\"KVM\"},\"is_support_disaster\":{\"isDisaster\":\"userDefine\",\"isLocked\":true},\"hostSpecType\":{\"hostSpecServiceType\":\"normal\",\"isLocked\":true},\"flavor\":{\"flavorRef\":\"c89d4da4-fdad-4de7-81ba-42ef89ec4ca8\",\"isLocked\":true},\"root_volume\":{\"volumetype\":\"IPSAN\",\"isLocked\":true,\"volumeName\":\"SATA\"},\"image\":{\"imageRef\":\"833c9fe8-d27d-4238-a7e3-e43a683159a8\",\"imageType\":\"gold\",\"isLocked\":true},\"cloudArea\":{\"isLocked\":true}}",
			"name": "{\"en_US\":\"ecs_2b93\",\"zh_CN\":\"ecs_2b93\"}",
			"description": "{\"zh_CN\":\"\"}",
			"create_time": 1567400783000,
			"publish_status": "publish",
			"deletable_status": "normal",
			"is_default": false,
			"resource_pool_id": "",
			"project_id": "",
			"az_id": "az0.dc0",
			"secret_params": null,
			"product_type": null
		},
		{
			"product_id": "71347fb04fed43b5bb1eea9527f845ae",
			"service_type": "ecs",
			"create_vdc_id": "all",
			"create_user_id": "138539a4c8604121be05c1f932e947fe",
			"icon_id": "defaulticonecs",
			"catalog_id": "1",
			"region_id": "dg-tky-1",
			"params": "{}",
			"name": "{\"en_US\":\"ECS\",\"zh_CN\":\"弹性云服务器\"}",
			"description": "{\"zh_CN\": \"由CPU、内存、磁盘等组成的随时可获取、弹性可扩展、按需使用的虚拟的计算服务器。\",\"en_US\": \"Provides scalable virtual compute servers consisting of CPUs, memory, and disks resources.\"}",
			"create_time": 1560197802000,
			"publish_status": "publish",
			"deletable_status": "normal",
			"is_default": true,
			"resource_pool_id": "",
			"project_id": "",
			"az_id": "",
			"secret_params": null,
			"product_type": null
		}
	]
}

响应体中,is_default字段值为true的产品表示,该产品为系统预置产品,没有关联人和审批流程,申请该产品后,不需要经过任何审批流程,直接对订单进行实施

步骤 5 查询可用镜像(可选)

查询可用的镜像列,请求示例如下:

URL: https://{ims对外访问域名}/v2/cloudimages
请求方法:GET
请求头:
Content-Type: application/json;charset=UTF-8
Accept: application/json;charset=UTF-8
Connection: keep-alive
X-Auth-Token: MIIEeAYJKoASASn04rMqff-Q8fk7kqiCDMLfVxqj7wIdgkM1yD4=
请求体:无
响应体:
{
	"images": [
		{
			"schema": "/v2/schemas/image",
			"__support_live_resize": "False",
			"__system_encrypted": "",
			"min_disk": 300,
			"created_at": "2019-09-05T06:24:52Z",
			"__image_source_type": "glance",
			"container_format": "bare",
			"__system_support_market": false,
			"file": "/v2/images/fd01fd4c-a2a4-4a81-bda5-81351b3db99c/file",
			"updated_at": "2019-09-05T06:25:44Z",
			"protected": true,
			"checksum": "7a455643c33d8433b51325045a3d9994",
			"id": "fd01fd4c-a2a4-4a81-bda5-81351b3db99c",
			"__support_static_ip": "False",
			"__isregistered": "true",
			"min_ram": 8192,
			"file_format": "qcow2",
			"owner": "a21752d4272b4ffa82725c1f0c61173f",
			"hw_firmware_type": "bios",
			"__os_type": "Linux",
			"__imagetype": "gold",
			"visibility": "public",
			"file_name": "**.qcow2",
			"cloudinit": "False",
			"__quick_start": "False",
			"virtual_env_type": "FusionCompute",
			"__support_kvm": "true",
			"hw_disk_bus": "virtio",
			"tags": [],
			"__platform": "EulerOS",
			"is_auto_config": "false",
			"size": 587923456,
			"__os_bit": "64",
			"__os_version": "EulerOS 2.2 64bit",
			"name": "EulerOS2.2.4.1",
			"self": "/v2/images/fd01fd4c-a2a4-4a81-bda5-81351b3db99c",
			"disk_format": "qcow2",
			"__admin_encrypted": "",
			"describe": "",
			"virtual_size": null,
			"status": "active"
		},
		{
			"schema": "/v2/schemas/image",
			"__support_live_resize": "False",
			"__system_encrypted": "",
			"min_disk": 20,
			"created_at": "2019-06-11T01:48:33Z",
			"__image_source_type": "glance",
			"container_format": "bare",
			"__system_support_market": false,
			"file": "/v2/images/833c9fe8-d27d-4238-a7e3-e43a683159a8/file",
			"updated_at": "2019-06-11T01:49:55Z",
			"protected": true,
			"checksum": "eff39ae88e39b2e654d60b9f4c7faf47",
			"id": "833c9fe8-d27d-4238-a7e3-e43a683159a8",
			"__support_static_ip": "False",
			"__isregistered": "true",
			"min_ram": 1024,
			"file_format": "qcow2",
			"owner": "a21752d4272b4ffa82725c1f0c61173f",
			"hw_firmware_type": "bios",
			"__os_type": "Linux",
			"__imagetype": "gold",
			"visibility": "public",
			"file_name": "**.qcow2",
			"cloudinit": "False",
			"__quick_start": "False",
			"virtual_env_type": "FusionCompute",
			"__support_kvm": "true",
			"hw_disk_bus": "virtio",
			"tags": [],
			"__platform": "EulerOS",
			"is_auto_config": "false",
			"size": 928961536,
			"__os_bit": "64",
			"__os_version": "EulerOS 2.5 64bit",
			"name": "EulerOS",
			"self": "/v2/images/833c9fe8-d27d-4238-a7e3-e43a683159a8",
			"disk_format": "qcow2",
			"__admin_encrypted": "",
			"describe": "",
			"virtual_size": null,
			"status": "active"
		}
	]
}

这一步主要获得镜像Id,以及使用该镜像创建虚拟机时,所要求的最小磁盘(min_disk),和最小内存(min_ram),后续创建虚拟机时所选择的规格需要大于等于镜像的最低要求,否则会创建失败

步骤6 查询磁盘类型

URL: https://{evs对外访问域名}/v2/{project_id}/types(project_id需要与获取token时指定的project的Id一致)
请求方法:GET
请求头:
Content-Type: application/json; charset=UTF-8
Accept: application/json; charset=UTF-8
Connection: keep-alive
X-Auth-Token: MIIEeAYJKoASASn04rMqff-Q8fk7kqiCDMLfVxqj7wIdgkM1yD4=
请求体:无
响应体:
{
	"volume_types": [
		{
			"name": "omVolumeType1",
			"qos_specs_id": null,
			"extra_specs": {
				"volume_backend_name": "murano",
				"HW:availability_zone": "manage-az"
			},
			"is_public": true,
			"id": "e7c4de8a-7af8-42ae-ad8d-6fe72c426563",
			"description": null
		},
		{
			"name": "omVolumeType0",
			"qos_specs_id": null,
			"extra_specs": {
				"volume_backend_name": "murano",
				"HW:availability_zone": "manage-az"
			},
			"is_public": true,
			"id": "da8f6774-a7c7-4dfb-80cb-ab3620bea495",
			"description": null
		},
		{
			"name": "IPSAN",
			"qos_specs_id": null,
			"extra_specs": {
				"volume_backend_name": "Business_Pool",
				"drivers:LUNType": "Thick",
				"hw:localdev": "2102350FDF10GC000024",
				"HW:availability_zone": "az0.dc0"
			},
			"is_public": true,
			"id": "854aaa0e-8927-4991-ad56-cbe26c90ce4a",
			"description": "IPSAN"
		},
		{
			"name": "manager.fsa.csg",
			"qos_specs_id": null,
			"extra_specs": {
				"volume_backend_name": "murano",
				"HW:availability_zone": "manage-az"
			},
			"is_public": true,
			"id": "d2072abc-b64a-4f38-8ee7-a03a1a76aad7",
			"description": "manager.fsa.csg"
		}
	]
}

此处我们查询出很多个磁盘类型,需要过滤处理,在步骤3中我们查询到了可用的可用分区(AZ),这里我们需要根据选择的AZ过滤得到指定AZ的可用磁盘类型,如,我们选用az0.dc0创建VM,则此处az0.dc0可用的磁盘分区为IPSAN(即HW:availability_zone的值为az0.dc0的这一磁盘类型)

我们现在获得了创建EVS所需的所有参数,订购接口所需主要参数如下:

序号

参数名称

参考值

备注

1

operate_type

apply

申请,固定值apply,必选

2

service_type

evs

云硬盘,此处固定填写evs,必选

3

action

create_volume

创建,固定值create_volume,必选

4

region_id

sa-fb-11

区域id,步骤3获取,必选

5

availability_zone

az1.dc1

可用分区id,步骤3获取,必选

6

volumes:volume_type

SATA

云硬盘类型,接口为:【GET】/v2/{tenant_id}/types,参考《为云Stack 6.5.X API接口参考.chm》,必选

7

volumes:snapshot_id

117220c2-715a-41ff-a8c9-67e62c3fa802

(可选)从快照创建云硬盘时此参数值填写快照Id,磁盘快照查询接口为:【GET】/v2/{tenant_id}/snapshots,参考《为云Stack 6.5.X API接口参考.chm

8

volumes:source_volid

213220c2-715a-41ff-a8c9-67e62234802

(可选)从已有云硬盘创建新的云硬盘时,此处填写已有云硬盘的Id,云硬盘列表查询接口为:【GET】/v2/{tenant_id}/volumes/detail,参考《为云Stack 6.5.X API接口参考.chm

9

volumes:imageRef

645320c2-715a-41ff-a8c9-67e6aaafa802

(可选)从镜像创建EVS时,此处填写镜像Id,【GET】/v2/cloudimages,参考《为云Stack 6.5.X API接口参考.chm

10

volumes:size

20

磁盘大小,必选

11

display


用于ManageOne页面显示,根据订购接口的其他参数填写对应的值即可,键必须保留,值可以为空

步骤7 创建订单,申请云磁盘

订单接口中的params参数说明,请参考《ManageOne 6.5.x 云服务Params参数说明

URL:  https://{ManageOne运营侧API对外域名}/rest/subscription/v3.0/subscriptions
请求方法:POST
请求头:
Content-Type: application/json; charset=UTF-8
Accept: application/json; charset=UTF-8
Connection: keep-alive
X-Auth-Token: MIIEeAYJKoASASn04rMqff-Q8fk7kqiCDMLfVxqj7wIdgkM1yD4=
请求体:
{
	"subscriptions": [
		{
			"project_id": "27a008f1b83e4dfdbf1143dd336006df",
			"region_id": "dg-tky-1",
			"product_id": "4230c653329847db9a3aacbe23491cf3",
			"tenancy": "0",
			"comments": "",
			"operate_type": "apply",
			"service_type": "evs",
			"time_zone": "GMT+08:00",
			"params": "{\"action\":\"create_volume\",\"count\":1,\"volumes\":[{\"backup_id\":null,\"source_volid\":null,\"snapshot_id\":null,\"count\":1,\"availability_zone\":\"az0.dc0\",\"description\":\"\",\"size\":30,\"name\":\"volume-ecf9\",\"imageRef\":null,\"volume_type\":\"IPSAN\",\"metadata\":{\"hw:passthrough\":false},\"multiattach\":0,\"OS-SCH-HNT:scheduler_hints\":{}}],\"region_id\":\"dg-tky-1\",\"display\":{\"zh_CN\":[{\"label\":\"区域\",\"type\":\"string\",\"value\":\"东莞\"},{\"label\":\"可用分区\",\"type\":\"string\",\"value\":\"华为\"},{\"label\":\"数据来源\",\"type\":\"string\",\"value\":\"无\"},{\"label\":\"磁盘\",\"type\":\"string\",\"value\":\"数据盘\"},{\"label\":\"镜像\",\"type\":\"string\",\"value\":\"--\"},{\"label\":\"容量(GB)\",\"type\":\"string\",\"value\":30},{\"label\":\"该磁盘的IOPS上限\",\"type\":\"string\",\"value\":\"--\"},{\"label\":\"该磁盘的带宽上限(MB/s)\",\"type\":\"string\",\"value\":\"--\"},{\"label\":\"磁盘类型\",\"type\":\"string\",\"value\":\"SATA\"},{\"label\":\"磁盘模式\",\"type\":\"string\",\"value\":\"VBD\"},{\"label\":\"共享方式\",\"type\":\"string\",\"value\":\"否\"},{\"label\":\"磁盘名称\",\"type\":\"string\",\"value\":\"volume-ecf9\"}],\"en_US\":[{\"label\":\"Region\",\"type\":\"string\",\"value\":\"东莞\"},{\"label\":\"AZ\",\"type\":\"string\",\"value\":\"华为\"},{\"label\":\"Data Source\",\"type\":\"string\",\"value\":\"None\"},{\"label\":\"Disk\",\"type\":\"string\",\"value\":\"Data disk\"},{\"label\":\"Image\",\"type\":\"string\",\"value\":\"--\"},{\"label\":\"Capacity(GB)\",\"type\":\"string\",\"value\":30},{\"label\":\"IOPS Upper Limit of the Disk\",\"type\":\"string\",\"value\":\"--\"},{\"label\":\"Bandwidth Upper Limit of the Disk (MB/s)\",\"type\":\"string\",\"value\":\"--\"},{\"label\":\"Disk Type\",\"type\":\"string\",\"value\":\"SATA\"},{\"label\":\"Device Type\",\"type\":\"string\",\"value\":\"VBD\"},{\"label\":\"Disk Sharing\",\"type\":\"string\",\"value\":\"No\"},{\"label\":\"Disk Name\",\"type\":\"string\",\"value\":\"volume-ecf9\"}]}}"
		}
	]
}
响应体:
{
	"purchases": [
		{
			"subscription_id": "20190914113546169610061"
		}
	],
	"expected_total": 0,
	"error_details": null
}

subscription_id即为订单ID

步骤8 查询订单详情,确认订单实施状态

订单提交成功后,需要定时轮询订单状态,直到订单状态(status字段)为成功

URL: https://{ManageOne运营侧API对外域名}/rest/order/v3.0/orders/{order_id}(order_id由上一步响应体获得)
请求方法:POST
请求头:
Content-Type: application/json; charset=UTF-8
Accept: application/json; charset=UTF-8
Connection: keep-alive
X-Auth-Token: MIIEeAYJKoASASn04rMqff-Q8fk7kqiCDMLfVxqj7wIdgkM1yD4=
请求体:无
响应体:
{
	"order_id": "20190914113546169610061",
	"parents_id": null,
	"type": "apply",
	"service_type": "vpc",
	"params": "{\"regionId\":\"dg-tky-1\",\"tenant_id\":\"27a008f1b83e4dfdbf1143dd336006df\",\"vpc\":{\"name\":\"vpc-5e10\",\"ntp\":[],\"ntp_v6\":[]},\"subnet\":{\"regionId\":\"dg-tky-1\",\"tenantId\":\"27a008f1b83e4dfdbf1143dd336006df\",\"availableZoneId\":\"\",\"name\":\"subnet-5e10\",\"dhcpEnable\":true,\"cidr\":\"192.168.10.0/24\",\"physicalNetwork\":\"physnet1\",\"segmentationId\":\"177\",\"routed\":false,\"dnsList\":[\"160.102.8.53\",\"160.102.8.54\"]},\"display\":{\"en_US\":[{\"label\":\"Region\",\"value\":\"东莞\",\"type\":\"string\"},{\"label\":\"VPC Name\",\"value\":\"vpc-5e10\",\"type\":\"string\"},{\"label\":\"External Network\",\"value\":\"\",\"type\":\"string\"}],\"zh_CN\":[{\"label\":\"区域\",\"value\":\"东莞\",\"type\":\"string\"},{\"label\":\"VPC名称\",\"value\":\"vpc-5e10\",\"type\":\"string\"},{\"label\":\"外部网络\",\"value\":\"\",\"type\":\"string\"}]}}",
	"create_user_id": "b54310fb838b4f8ebf1e9d23bf9691d5",
	"create_user_name": "xssvdc",
	"vdc_id": "d58cc7b4-59a8-49ff-8f0c-0c7dff90b5e9",
	"vdc_name": "xssvdc",
	"status": "successed",
	"create_time": "2019-06-11 01:53:42",
	"implement_time": "2019-06-11 01:53:43",
	"complete_time": "2019-06-11 01:53:48",
	"project_id": "27a008f1b83e4dfdbf1143dd336006df",
	"cloud_infra_id": null,
	"product_id": "04e12eba75e243368f5cb6a0f52db4af",
	"region_id": "dg-tky-1",
	"product_defination_params": "{\"en_US\":\"VPC\",\"zh_CN\":\"虚拟私有云\"}",
	"tenancy": "0",
	"original_tenancy": "0",
	"time_zone": null,
	"comments": null,
	"contract_number": null,
	"rate_params": null,
	"domain_id": null
}


登录后可下载附件,请登录或者注册

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区),文章链接,文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:huaweicloud.bbs@huawei.com进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。
评论文章 //点赞 收藏 0
点赞
分享文章到微博
分享文章到朋友圈

评论 (0)


0/1000
评论

登录后可评论,请 登录注册

评论

您还没有写博客的权限!

温馨提示

您确认删除评论吗?

确定
取消
温馨提示

您确认删除评论吗?

删除操作无法恢复,请谨慎操作。

确定
取消
温馨提示

您确认删除博客吗?

确定
取消

确认删除

您确认删除博客吗?

确认删除

您确认删除评论吗?

温馨提示

登录超时或用户已下线,请重新登录!!!

确定
取消