OpenStack 应用目录 API v1¶
动作和静态动作¶
Murano 动作是一种 MuranoPL 方法。与常规 MuranoPL 方法的区别在于
动作在已部署的对象上执行。
动作执行由 API 请求发起:您无需手动调用该方法。
因此,Murano 动作允许对对象执行任何操作,例如
获取 VM 的信息,例如在部署期间生成的配置
VM 重启
伸缩
可用动作列表在环境部署期间形成。部署完成后,您可以异步调用该动作。Murano 引擎为每个动作生成一个任务,从而可以跟踪动作状态。
在已部署的环境上执行动作。
请求参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
environment_id |
路径 |
字符串 |
环境的 UUID。 |
action_id |
路径 |
字符串 |
要在已部署的环境上执行的动作的 UUID。 |
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
401 - 未授权 |
用户必须在发出请求之前进行身份验证。 |
403 - 禁止 |
策略不允许当前用户执行此操作。 |
404 - Not Found |
找不到请求的资源。 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
X-Openstack-Request-Id |
标头 |
UUID |
用于跟踪服务请求的唯一 ID。默认情况下,与请求关联的请求 ID 出现在服务日志中。 |
task_id |
body |
字符串 |
与在已部署的环境上执行的动作关联的任务的 UUID。 |
响应示例¶
{
"task_id": "9e60318629ef47378b583825e7d282b7"
}
检索在已部署的环境上执行的动作的结果。
请求参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
environment_id |
路径 |
字符串 |
环境的 UUID。 |
task_id |
路径 |
字符串 |
与在已部署的环境上执行的动作关联的任务的 UUID。 |
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
401 - 未授权 |
用户必须在发出请求之前进行身份验证。 |
403 - 禁止 |
策略不允许当前用户执行此操作。 |
404 - Not Found |
找不到请求的资源。 |
执行静态动作。
如果 MuranoPL 对象通过指定 Scope: Public 公开静态方法,则可以调用这些方法,并且将返回其执行结果。
请求示例¶
{
"className": "ns.Bar",
"methodName": "staticAction",
"parameters": {"myName": "John"}
}
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
401 - 未授权 |
用户必须在发出请求之前进行身份验证。 |
403 - 禁止 |
策略不允许当前用户执行此操作。 |
404 - Not Found |
找不到请求的资源。 |
响应示例¶
"Hello, John"
类别¶
在 Murano 中,应用程序可以属于一个或多个类别。管理员用户可以创建和删除类别,以及列出可用的类别并查看特定类别的详细信息。
检索应用程序目录中所有可用类别的列表。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
401 - 未授权 |
用户必须在发出请求之前进行身份验证。 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
X-Openstack-Request-Id |
标头 |
UUID |
用于跟踪服务请求的唯一 ID。默认情况下,与请求关联的请求 ID 出现在服务日志中。 |
categories |
body |
数组 |
应用程序目录中所有可用的类别。 |
id |
body |
字符串 |
类别的 UUID。 |
name |
body |
字符串 |
类别的名称。 |
updated |
body |
字符串 |
对象更新的日期和时间。日期和时间戳格式为 ISO 8601 CCYY-MM-DDThh:mm:ss±hh:mm
例如, 如果包含 |
创建时间 |
body |
字符串 |
资源被创建的日期和时间。日期和时间戳格式为 ISO 8601。 CCYY-MM-DDThh:mm:ss±hh:mm
例如, 如果包含 |
package_count |
body |
整数 |
与类别关联的软件包数量。 |
响应示例¶
{
"categories": [
{
"id": "0420045dce7445fabae7e5e61fff9e2f",
"updated": "2014-12-26T13:57:04",
"name": "Web",
"created": "2014-12-26T13:57:04",
"package_count": 1
},
{
"id": "3dd486b1e26f40ac8f35416b63f52042",
"updated": "2014-12-26T13:57:04",
"name": "Databases",
"created": "2014-12-26T13:57:04",
"package_count": 0
}
]
}
显示类别的详细信息。
请求参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
category_id |
路径 |
字符串 |
类别的 UUID。 |
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
401 - 未授权 |
用户必须在发出请求之前进行身份验证。 |
404 - Not Found |
找不到请求的资源。 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
X-Openstack-Request-Id |
标头 |
UUID |
用于跟踪服务请求的唯一 ID。默认情况下,与请求关联的请求 ID 出现在服务日志中。 |
id |
body |
字符串 |
类别的 UUID。 |
name |
body |
字符串 |
类别的名称。 |
updated |
body |
字符串 |
对象更新的日期和时间。日期和时间戳格式为 ISO 8601 CCYY-MM-DDThh:mm:ss±hh:mm
例如, 如果包含 |
创建时间 |
body |
字符串 |
资源被创建的日期和时间。日期和时间戳格式为 ISO 8601。 CCYY-MM-DDThh:mm:ss±hh:mm
例如, 如果包含 |
packages |
body |
数组 |
与软件包关联的软件包列表。每个返回的软件包包括其 |
package_count |
body |
整数 |
与类别关联的软件包数量。 |
响应示例¶
{
"id": "b308f7fa8a2f4a5eb419970c827f4466",
"updated": "2015-01-28T17:00:19",
"packages": [
{
"fully_qualified_name": "io.murano.apps.ZabbixServer",
"id": "4dfb566e69e6445fbd4aea5099fe95e9",
"name": "Zabbix Server"
}
],
"name": "Web",
"created": "2015-01-28T17:00:19",
"package_count": 1
}
将新类别添加到应用程序目录。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
401 - 未授权 |
用户必须在发出请求之前进行身份验证。 |
409 - Conflict |
此操作与此资源的另一个操作冲突。 |
请求参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
name |
body |
字符串 |
类别的名称。 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
X-Openstack-Request-Id |
标头 |
UUID |
用于跟踪服务请求的唯一 ID。默认情况下,与请求关联的请求 ID 出现在服务日志中。 |
id |
body |
字符串 |
类别的 UUID。 |
name |
body |
字符串 |
类别的名称。 |
updated |
body |
字符串 |
对象更新的日期和时间。日期和时间戳格式为 ISO 8601 CCYY-MM-DDThh:mm:ss±hh:mm
例如, 如果包含 |
创建时间 |
body |
字符串 |
资源被创建的日期和时间。日期和时间戳格式为 ISO 8601。 CCYY-MM-DDThh:mm:ss±hh:mm
例如, 如果包含 |
package_count |
body |
整数 |
与类别关联的软件包数量。 |
响应示例¶
{
"id": "ce373a477f211e187a55404a662f968",
"name": "category_name",
"created": "2013-11-30T03:23:42Z",
"updated": "2013-11-30T03:23:44Z",
"package_count": 0
}
从应用程序目录中删除现有类别。
请求参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
category_id |
路径 |
字符串 |
类别的 UUID。 |
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
401 - 未授权 |
用户必须在发出请求之前进行身份验证。 |
403 - 禁止 |
策略不允许当前用户执行此操作。 |
404 - Not Found |
找不到请求的资源。 |
部署¶
部署跟踪已部署的环境,无论成功与否。每个部署包含以下信息
一个“Class: Environment”对象 (io.murano.Environment) 带有名称。每个“Class: Environment”对象根据部署过程定义一个环境,并将所有应用程序及其相关基础设施组合在一起。
一个或多个引用现有网络的对象。
一个应用程序列表(例如 io.murano.apps.linux.Telnet)。每个应用程序包含,或以其他方式引用,其所需的一切。Telnet 示例具有一个名为
instance的属性,其契约规定它必须是io.murano.resources.Instance类型。反过来,Instance 具有其所需的属性(例如name、flavor或密钥对名称keyname)。
列出当前租户(项目)的所有环境的部署。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
401 - 未授权 |
用户必须在发出请求之前进行身份验证。 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
X-Openstack-Request-Id |
标头 |
UUID |
用于跟踪服务请求的唯一 ID。默认情况下,与请求关联的请求 ID 出现在服务日志中。 |
deployments |
body |
数组 |
当前环境或当前租户(项目)所有环境的部署列表。 以下 API 控制是返回按环境还是按项目进行的部署
|
响应示例¶
{
"deployments": [
{
"updated": "2014-05-15T07:24:21",
"environment_id": "744e44812da84e858946f5d817de4f72",
"description": {
"services": [
{
"instance": {
"flavor": "m1.medium",
"image": "cloud-fedora-v3",
"?": {
"type": "io.murano.resources.Instance",
"id": "ef729199-c71e-4a4c-a314-0340e279add8"
},
"name": "xkaduhv7qeg4m7"
},
"name": "teslnet1",
"?": {
"_26411a1861294160833743e45d0eaad9": {
"name": "Telnet"
},
"type": "io.murano.apps.linux.Telnet",
"id": "6e437be2-b5bc-4263-8814-6fd57d6ddbd5"
}
}
],
"defaultNetworks": {
"environment": {
"name": "test2-network",
"?": {
"type": "io.murano.lib.networks.neutron.NewNetwork",
"id": "b6a1d515434047d5b4678a803646d556"
}
},
"flat": null
},
"name": "test2",
"?": {
"type": "io.murano.Environment",
"id": "744e44812da84e858946f5d817de4f72"
}
},
"created": "2014-05-15T07:24:21",
"started": "2014-05-15T07:24:21",
"finished": null,
"state": "running",
"id": "327c81e0e34a4c93ad9b9052ef42b752"
}
]
}
环境¶
环境是一组逻辑连接的应用程序,它们组合在一起以便于管理。默认情况下,每个环境为其所有应用程序都有一个网络,并且环境的部署在一个 heat 堆栈中定义。不同环境中的应用程序始终相互独立。
环境是一个单一的部署单元。这意味着您不能仅部署包含单个应用程序的环境,还可以部署包含多个应用程序的环境。
获取现有环境的列表
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
401 - 未授权 |
用户必须在发出请求之前进行身份验证。 |
403 - 禁止 |
策略不允许当前用户执行此操作。 |
请求参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
all_tenants (可选) |
查询 |
布尔值 |
指示是否列出所有项目的环境。 |
tenant (可选) |
查询 |
字符串 |
指示列出指定租户的环境。需要管理员用户。 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
X-Openstack-Request-Id |
标头 |
UUID |
用于跟踪服务请求的唯一 ID。默认情况下,与请求关联的请求 ID 出现在服务日志中。 |
environments |
body |
数组 |
一个 |
status |
body |
字符串 |
环境的当前状态。可用的状态是
|
创建时间 |
body |
字符串 |
资源被创建的日期和时间。日期和时间戳格式为 ISO 8601。 CCYY-MM-DDThh:mm:ss±hh:mm
例如, 如果包含 |
updated |
body |
字符串 |
对象更新的日期和时间。日期和时间戳格式为 ISO 8601 CCYY-MM-DDThh:mm:ss±hh:mm
例如, 如果包含 |
name |
body |
字符串 |
环境的名称。名称必须至少包含一个非空格字符,且长度小于 256 个字符。 |
description_text |
body |
字符串 |
环境的描述。 |
tenant_id |
body |
字符串 |
租户的 UUID。租户也称为项目。 |
版本 |
body |
int |
当前版本。 |
id |
body |
字符串 |
环境的 UUID。 |
响应示例¶
{
"environments": [
{
"status": "ready",
"updated": "2014-05-14T13:02:54",
"networking": {},
"name": "test1",
"created": "2014-05-14T13:02:46",
"tenant_id": "726ed856965f43cc8e565bc991fa76c3",
"version": 0,
"id": "2fa5ab704749444bbeafe7991b412c33"
},
{
"status": "ready",
"updated": "2014-05-14T13:02:55",
"networking": {},
"name": "test2",
"created": "2014-05-14T13:02:51",
"tenant_id": "726ed856965f43cc8e565bc991fa76c3",
"version": 0,
"id": "744e44812da84e858946f5d817de4f72"
}
]
}
创建一个环境。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
401 - 未授权 |
用户必须在发出请求之前进行身份验证。 |
403 - 禁止 |
策略不允许当前用户执行此操作。 |
409 - Conflict |
此操作与此资源的另一个操作冲突。 |
请求参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
name |
body |
字符串 |
环境的名称。名称必须至少包含一个非空格字符。 |
请求示例¶
{"name": "env_name"}
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
X-Openstack-Request-Id |
标头 |
UUID |
用于跟踪服务请求的唯一 ID。默认情况下,与请求关联的请求 ID 出现在服务日志中。 |
id |
body |
字符串 |
环境的 UUID。 |
name |
body |
字符串 |
环境的名称。名称必须至少包含一个非空格字符,且长度小于 256 个字符。 |
description_text |
body |
字符串 |
环境的描述。 |
创建时间 |
body |
字符串 |
资源被创建的日期和时间。日期和时间戳格式为 ISO 8601。 CCYY-MM-DDThh:mm:ss±hh:mm
例如, 如果包含 |
updated |
body |
字符串 |
对象更新的日期和时间。日期和时间戳格式为 ISO 8601 CCYY-MM-DDThh:mm:ss±hh:mm
例如, 如果包含 |
tenant_id |
body |
字符串 |
租户的 UUID。租户也称为项目。 |
版本 |
body |
int |
当前版本。 |
services |
body |
数组 |
一个 |
acquired_by |
body |
字符串 |
当前 部署 环境的会话。返回处于 |
响应示例¶
{
"status": "ready",
"updated": "2017-04-27T15:36:02",
"created": "2017-04-27T15:36:02",
"tenant_id": "cca37eef752244d99945a4123f30ff79",
"acquired_by": null,
"services": [],
"version": 0,
"description_text": "",
"id": "a2977db57398401aba5804ef2211a2a3",
"name": "env_name"
}
重命名一个环境。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
401 - 未授权 |
用户必须在发出请求之前进行身份验证。 |
403 - 禁止 |
策略不允许当前用户执行此操作。 |
404 - Not Found |
找不到请求的资源。 |
409 - Conflict |
此操作与此资源的另一个操作冲突。 |
请求参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
env_id |
路径 |
字符串 |
环境的 UUID。 |
name |
路径 |
字符串 |
环境的名称。名称必须至少包含一个非空格字符。 |
请求示例¶
{"name": "env_name_changed"}
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
X-Openstack-Request-Id |
标头 |
UUID |
用于跟踪服务请求的唯一 ID。默认情况下,与请求关联的请求 ID 出现在服务日志中。 |
id |
body |
字符串 |
环境的 UUID。 |
name |
body |
字符串 |
环境的名称。名称必须至少包含一个非空格字符,且长度小于 256 个字符。 |
description_text |
body |
字符串 |
环境的描述。 |
创建时间 |
body |
字符串 |
资源被创建的日期和时间。日期和时间戳格式为 ISO 8601。 CCYY-MM-DDThh:mm:ss±hh:mm
例如, 如果包含 |
updated |
body |
字符串 |
对象更新的日期和时间。日期和时间戳格式为 ISO 8601 CCYY-MM-DDThh:mm:ss±hh:mm
例如, 如果包含 |
tenant_id |
body |
字符串 |
租户的 UUID。租户也称为项目。 |
版本 |
body |
int |
当前版本。 |
services |
body |
数组 |
一个 |
acquired_by |
body |
字符串 |
当前 部署 环境的会话。返回处于 |
响应示例¶
{
"status": "ready",
"updated": "2017-04-27T16:01:29",
"created": "2017-04-27T15:33:55",
"tenant_id": "cca37eef752244d99945a4123f30ff79",
"acquired_by": null,
"services": [],
"version": 0,
"description_text": "",
"id": "f199275420ff4e938e0307b0cf68374d",
"name": "env_name_changed"
}
显示环境的详细信息。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
401 - 未授权 |
用户必须在发出请求之前进行身份验证。 |
403 - 禁止 |
策略不允许当前用户执行此操作。 |
404 - Not Found |
找不到请求的资源。 |
请求参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
env_id |
路径 |
字符串 |
环境的 UUID。 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
X-Openstack-Request-Id |
标头 |
UUID |
用于跟踪服务请求的唯一 ID。默认情况下,与请求关联的请求 ID 出现在服务日志中。 |
id |
body |
字符串 |
环境的 UUID。 |
name |
body |
字符串 |
环境的名称。名称必须至少包含一个非空格字符,且长度小于 256 个字符。 |
description_text |
body |
字符串 |
环境的描述。 |
创建时间 |
body |
字符串 |
资源被创建的日期和时间。日期和时间戳格式为 ISO 8601。 CCYY-MM-DDThh:mm:ss±hh:mm
例如, 如果包含 |
updated |
body |
字符串 |
对象更新的日期和时间。日期和时间戳格式为 ISO 8601 CCYY-MM-DDThh:mm:ss±hh:mm
例如, 如果包含 |
tenant_id |
body |
字符串 |
租户的 UUID。租户也称为项目。 |
版本 |
body |
int |
当前版本。 |
services |
body |
数组 |
一个 |
acquired_by |
body |
字符串 |
当前 部署 环境的会话。返回处于 |
响应示例¶
{
"status": "ready",
"updated": "2017-04-27T15:36:02",
"created": "2017-04-27T15:36:02",
"tenant_id": "cca37eef752244d99945a4123f30ff79",
"acquired_by": null,
"services": [
{
"instance": {
"flavor": "m1.medium",
"image": "cloud-fedora-v3",
"name": "exgchhv6nbika2",
"ipAddresses": [
"10.0.0.200"
],
"?": {
"type": "io.murano.resources.Instance",
"id": "14cce9d9-aaa1-4f09-84a9-c4bb859edaff"
}
},
"name": "rewt4w56",
"?": {
"status": "ready",
"_26411a1861294160833743e45d0eaad9": {
"name": "Telnet"
},
"type": "io.murano.apps.linux.Telnet",
"id": "446373ef-03b5-4925-b095-6c56568fa518"
}
}
],
"version": 0,
"description_text": "",
"id": "a2977db57398401aba5804ef2211a2a3",
"name": "env_name"
}
删除指定的环境。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
401 - 未授权 |
用户必须在发出请求之前进行身份验证。 |
403 - 禁止 |
策略不允许当前用户执行此操作。 |
404 - Not Found |
找不到请求的资源。 |
请求参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
env_id |
路径 |
字符串 |
环境的 UUID。 |
abandon (可选) |
路径 |
布尔值 |
指示如何删除环境。 |
响应参数¶
此请求不在响应主体中返回任何内容。
获取一个环境模型。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
401 - 未授权 |
用户必须在发出请求之前进行身份验证。 |
403 - 禁止 |
策略不允许当前用户执行此操作。 |
404 - Not Found |
找不到请求的资源。 |
请求参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
env_id |
路径 |
字符串 |
环境的 UUID。 |
path (可选) |
路径 |
字符串 |
允许获取模型的特定部分,例如 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
X-Openstack-Request-Id |
标头 |
UUID |
用于跟踪服务请求的唯一 ID。默认情况下,与请求关联的请求 ID 出现在服务日志中。 |
defaultNetworks |
body |
对象 |
环境的默认网络信息。信息包括网络的 一个示例 "defaultNetworks": {
"environment": {
"internalNetworkName": "net_two",
"?": {
"type": "io.murano.resources.ExistingNeutronNetwork",
"id": "594e94fcfe4c48ef8f9b55edb3b9f177"
}
},
"flat": null
}
|
region |
body |
字符串 |
环境的当前区域。 |
regions |
body |
对象 |
云环境的详细区域信息。 |
name |
body |
字符串 |
环境的名称。名称必须至少包含一个非空格字符,且长度小于 256 个字符。 |
services |
body |
数组 |
一个 |
? |
body |
对象 |
环境的 |
响应示例¶
{
"defaultNetworks": {
"environment": {
"internalNetworkName": "net_two",
"?": {
"type": "io.murano.resources.ExistingNeutronNetwork",
"id": "594e94fcfe4c48ef8f9b55edb3b9f177"
}
},
"flat": null
},
"region": "RegionTwo",
"name": "new_env",
"regions": {
"": {
"defaultNetworks": {
"environment": {
"autoUplink": true,
"name": "new_env-network",
"externalRouterId": null,
"dnsNameservers": [],
"autogenerateSubnet": true,
"subnetCidr": null,
"openstackId": null,
"?": {
"dependencies": {
"onDestruction": [{
"subscriber": "c80e33dd67a44f489b2f04818b72f404",
"handler": null
}]
},
"type": "io.murano.resources.NeutronNetwork/0.0.0@io.murano",
"id": "e145b50623c04a68956e3e656a0568d3",
"name": null
},
"regionName": "RegionOne"
},
"flat": null
},
"name": "RegionOne",
"?": {
"type": "io.murano.CloudRegion/0.0.0@io.murano",
"id": "c80e33dd67a44f489b2f04818b72f404",
"name": null
}
},
"RegionOne": "c80e33dd67a44f489b2f04818b72f404",
"RegionTwo": {
"defaultNetworks": {
"environment": {
"autoUplink": true,
"name": "new_env-network",
"externalRouterId": "e449bdd5-228c-4747-a925-18cda80fbd6b",
"dnsNameservers": ["8.8.8.8"],
"autogenerateSubnet": true,
"subnetCidr": "10.0.198.0/24",
"openstackId": "00a695c1-60ff-42ec-acb9-b916165413da",
"?": {
"dependencies": {
"onDestruction": [{
"subscriber": "f8cb28d147914850978edb35eca156e1",
"handler": null
}]
},
"type": "io.murano.resources.NeutronNetwork/0.0.0@io.murano",
"id": "72d2c13c600247c98e09e2e3c1cd9d70",
"name": null
},
"regionName": "RegionTwo"
},
"flat": null
},
"name": "RegionTwo",
"?": {
"type": "io.murano.CloudRegion/0.0.0@io.murano",
"id": "f8cb28d147914850978edb35eca156e1",
"name": null
}
}
},
"services": [],
"?": {
"type": "io.murano.Environment/0.0.0@io.murano",
"_actions": {
"f7f22c174070455c9cafc59391402bdc_deploy": {
"enabled": true,
"name": "deploy",
"title": "deploy"
}
},
"id": "f7f22c174070455c9cafc59391402bdc",
"name": null
}
}
更新一个环境模型。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已被接受处理,但处理尚未完成。响应中包含一个“location”头部,其中包含一个链接以检查请求的进度。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
401 - 未授权 |
用户必须在发出请求之前进行身份验证。 |
403 - 禁止 |
策略不允许当前用户执行此操作。 |
404 - Not Found |
找不到请求的资源。 |
409 - Conflict |
此操作与此资源的另一个操作冲突。 |
请求参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
env_id |
路径 |
字符串 |
环境的 UUID。 |
请求示例¶
[{
"op": "replace",
"path": "/defaultNetworks/flat",
"value": true
}]
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
X-Openstack-Request-Id |
标头 |
UUID |
用于跟踪服务请求的唯一 ID。默认情况下,与请求关联的请求 ID 出现在服务日志中。 |
defaultNetworks |
body |
对象 |
环境的默认网络信息。信息包括网络的 一个示例 "defaultNetworks": {
"environment": {
"internalNetworkName": "net_two",
"?": {
"type": "io.murano.resources.ExistingNeutronNetwork",
"id": "594e94fcfe4c48ef8f9b55edb3b9f177"
}
},
"flat": null
}
|
region |
body |
字符串 |
环境的当前区域。 |
regions |
body |
对象 |
云环境的详细区域信息。 |
name |
body |
字符串 |
环境的名称。名称必须至少包含一个非空格字符,且长度小于 256 个字符。 |
services |
body |
数组 |
一个 |
? |
body |
对象 |
环境的 |
响应示例¶
{
"defaultNetworks": {
"environment": {
"internalNetworkName": "net_two",
"?": {
"type": "io.murano.resources.ExistingNeutronNetwork",
"id": "594e94fcfe4c48ef8f9b55edb3b9f177"
}
},
"flat": null
},
"region": "RegionTwo",
"name": "new_env",
"regions": {
"": {
"defaultNetworks": {
"environment": {
"autoUplink": true,
"name": "new_env-network",
"externalRouterId": null,
"dnsNameservers": [],
"autogenerateSubnet": true,
"subnetCidr": null,
"openstackId": null,
"?": {
"dependencies": {
"onDestruction": [{
"subscriber": "c80e33dd67a44f489b2f04818b72f404",
"handler": null
}]
},
"type": "io.murano.resources.NeutronNetwork/0.0.0@io.murano",
"id": "e145b50623c04a68956e3e656a0568d3",
"name": null
},
"regionName": "RegionOne"
},
"flat": null
},
"name": "RegionOne",
"?": {
"type": "io.murano.CloudRegion/0.0.0@io.murano",
"id": "c80e33dd67a44f489b2f04818b72f404",
"name": null
}
},
"RegionOne": "c80e33dd67a44f489b2f04818b72f404",
"RegionTwo": {
"defaultNetworks": {
"environment": {
"autoUplink": true,
"name": "new_env-network",
"externalRouterId": "e449bdd5-228c-4747-a925-18cda80fbd6b",
"dnsNameservers": ["8.8.8.8"],
"autogenerateSubnet": true,
"subnetCidr": "10.0.198.0/24",
"openstackId": "00a695c1-60ff-42ec-acb9-b916165413da",
"?": {
"dependencies": {
"onDestruction": [{
"subscriber": "f8cb28d147914850978edb35eca156e1",
"handler": null
}]
},
"type": "io.murano.resources.NeutronNetwork/0.0.0@io.murano",
"id": "72d2c13c600247c98e09e2e3c1cd9d70",
"name": null
},
"regionName": "RegionTwo"
},
"flat": null
},
"name": "RegionTwo",
"?": {
"type": "io.murano.CloudRegion/0.0.0@io.murano",
"id": "f8cb28d147914850978edb35eca156e1",
"name": null
}
}
},
"services": [],
"?": {
"type": "io.murano.Environment/0.0.0@io.murano",
"_actions": {
"f7f22c174070455c9cafc59391402bdc_deploy": {
"enabled": true,
"name": "deploy",
"title": "deploy"
}
},
"id": "f7f22c174070455c9cafc59391402bdc",
"name": null
}
}
获取环境中每个服务的最新状态。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
401 - 未授权 |
用户必须在发出请求之前进行身份验证。 |
403 - 禁止 |
策略不允许当前用户执行此操作。 |
404 - Not Found |
找不到请求的资源。 |
请求参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
env_id |
路径 |
字符串 |
环境的 UUID。 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
X-Openstack-Request-Id |
标头 |
UUID |
用于跟踪服务请求的唯一 ID。默认情况下,与请求关联的请求 ID 出现在服务日志中。 |
lastStatuses |
body |
对象 |
显示环境中每个服务的最新状态。响应对象包括按 |
响应示例¶
{
"lastStatuses": {
"66563e45-4d0a-451e-8138-7bc773b0607d": {
"updated": "2017-03-09T07:31:51",
"task_id": "1267d8dfcf2144f9a31f0f033defa0fd",
"level": "info",
"text": "Unable to install ApacheHttpServer on node-1 due to The murano-agent did not respond within 3600 seconds",
"created": "2017-03-09T07:31:51",
"entity_id": "66563e45-4d0a-451e-8138-7bc773b0607d",
"entity": null,
"details": null,
"id": "4f93ae1f73294bf1a58cbc59fffe6238"
}
}
}
软件包¶
在 Murano 中,每个应用程序以及应用程序数据输入的 UI 表单都由软件包定义。
软件包结构¶
Murano 应用程序软件包的结构是预定义的。应用程序软件包根文件夹应包含以下内容
manifest.yaml文件是应用程序的入口点。注意
文件名是固定的,因此不要使用任何自定义名称。
Classes文件夹包含 MuranoPL 类定义。Resources文件夹包含执行计划模板以及位于其中的所有应用程序部署所需的文件scripts文件夹。UI文件夹包含动态 UI YAML 定义。logo.png文件(可选)是与您的应用程序关联的图像文件。徽标出现在 Murano Dasboard 的应用程序目录中。注意
对于图像文件名没有特殊限制。但是,如果它与默认的
logo.png不同,请在应用程序清单文件中指定它。images.lst文件(可选)包含应用程序所需的图像列表。
注意
捆绑包是软件包的集合。在社区应用程序目录中,您可以找到诸如 container-based-apps、app-servers 等捆绑包。应用程序目录中的软件包按使用情况排序。
获取软件包列表
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
401 - 未授权 |
用户必须在发出请求之前进行身份验证。 |
403 - 禁止 |
策略不允许当前用户执行此操作。 |
请求参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
catalog (可选) |
查询 |
布尔值 |
如果 |
marker (可选) |
查询 |
字符串 |
可以指定软件包标识符标记。如果存在,将仅列出发生在此 ID 之后的软件包。 |
limit (可选) |
查询 |
字符串 |
如果存在,返回结果的最大数量将不超过指定值。限制和标记的典型模式是发出初始限制请求,然后在后续限制请求中使用响应中最后一个软件包的 ID 作为标记参数。 |
order_by (可选) |
查询 |
字符串 |
允许按 |
type (可选) |
查询 |
字符串 |
允许按类型过滤软件包,例如 |
category (可选) |
查询 |
字符串 |
允许按类别过滤。 |
fqn (可选) |
查询 |
字符串 |
允许按完全限定名过滤。 |
owned (可选) |
查询 |
布尔值 |
仅搜索当前项目拥有的软件包。 |
id (可选) |
查询 |
字符串 |
允许按软件包 ID 过滤。 |
include_disabled (可选) |
查询 |
布尔值 |
在结果中包含禁用的软件包。 |
search (可选) |
查询 |
字符串 |
有机会通过所有软件包参数搜索指定的数据并对软件包进行排序。 |
class_name (可选) |
查询 |
字符串 |
仅搜索使用指定类的软件包。 |
name (可选) |
查询 |
字符串 |
允许按软件包名称过滤。 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
X-Openstack-Request-Id |
标头 |
UUID |
用于跟踪服务请求的唯一 ID。默认情况下,与请求关联的请求 ID 出现在服务日志中。 |
packages |
body |
数组 |
一个 |
updated |
body |
字符串 |
对象更新的日期和时间。日期和时间戳格式为 ISO 8601 CCYY-MM-DDThh:mm:ss±hh:mm
例如, 如果包含 |
class_definitions |
body |
数组 |
软件包的 class_definitions。 |
id |
body |
字符串 |
软件包的 UUID。 |
fully_qualified_name |
body |
字符串 |
软件包的 fqn。 |
is_public |
body |
布尔值 |
软件包是否与其他项目共享。 |
name |
body |
字符串 |
软件包的名称。 |
type |
body |
字符串 |
软件包的类型。 |
supplier |
body |
对象 |
软件包的供应商信息。 |
description |
body |
字符串 |
软件包的描述。 |
author |
body |
字符串 |
软件包的作者。 |
创建时间 |
body |
字符串 |
资源被创建的日期和时间。日期和时间戳格式为 ISO 8601。 CCYY-MM-DDThh:mm:ss±hh:mm
例如, 如果包含 |
enabled |
body |
布尔值 |
软件包是否在应用程序目录中浏览。 |
tags |
body |
数组 |
软件包的标签。 |
categories |
body |
数组 |
与软件包关联的类别。 |
owner_id |
body |
字符串 |
软件包的拥有者 ID。 |
响应示例¶
{
"packages": [
{
"updated": "2017-03-30T08:35:03",
"description": "Library of base class to develop scalable Applications with MuranoPL\n",
"tags": [],
"class_definitions": [
"io.murano.applications.tests.TestPoolReplicaProvider",
"io.murano.applications.SingleServerApplication",
"io.murano.applications.tests.TestSoftwareComponent",
"io.murano.applications.SoftwareComponent",
"io.murano.applications.tests.TestEvents",
"io.murano.applications.CloneReplicaProvider",
"io.murano.applications.PoolReplicaProvider",
"io.murano.applications.Event",
"io.murano.applications.SingleServerGroup",
"io.murano.applications.TemplateServerProvider",
"io.murano.applications.MultiServerApplication",
"io.murano.applications.ReplicationGroup",
"io.murano.applications.OpenStackSecurityConfigurable",
"io.murano.applications.Configurable",
"io.murano.applications.tests.TestMockedServerFactory",
"io.murano.applications.tests.TestCompositeReplicaProvider",
"io.murano.applications.tests.TestRoundrobinReplicaProvider",
"io.murano.applications.ServerReplicationGroup",
"io.murano.applications.CompositeReplicaProvider",
"io.murano.applications.tests.TestReplication",
"io.murano.applications.CompositeServerGroup",
"io.murano.applications.RoundrobinReplicaProvider",
"io.murano.applications.ServerGroup",
"io.murano.applications.ServerList",
"io.murano.applications.Installable",
"io.murano.applications.ReplicaProvider",
"io.murano.applications.MultiServerApplicationWithScaling"
],
"is_public": true,
"categories": [],
"name": "Application Development Library",
"created": "2017-03-30T08:35:03",
"author": "Mirantis, Inc.",
"enabled": true,
"id": "b0298c205235410fba047f4af8df0eb0",
"supplier": {},
"fully_qualified_name": "io.murano.applications",
"type": "Library",
"owner_id": "c0f6e4cf1bfc48aba587e709b58c9f28"
},
{
"updated": "2017-03-30T08:35:07",
"description": "Core MuranoPL library\n",
"tags": [
"MuranoPL"
],
"class_definitions": [
"io.murano.Exception",
"io.murano.system.MetadefBrowser",
"io.murano.metadata.forms.Hidden",
"io.murano.system.NeutronSecurityGroupManager",
"io.murano.system.AgentListener",
"io.murano.Environment",
"io.murano.system.SecurityGroupManager",
"io.murano.resources.ConfLangInstance",
"io.murano.resources.HeatSWConfigLinuxInstance",
"io.murano.test.TestFixture",
"io.murano.resources.MetadataAware",
"io.murano.SharedIp",
"io.murano.File",
"io.murano.resources.LinuxUDInstance",
"io.murano.configuration.Linux",
"io.murano.resources.ExistingNeutronNetwork",
"io.murano.resources.LinuxMuranoInstance",
"io.murano.Object",
"io.murano.system.Logger",
"io.murano.metadata.engine.Synchronize",
"io.murano.test.DummyNetwork",
"io.murano.resources.CinderVolume",
"io.murano.metadata.Title",
"io.murano.Project",
"io.murano.system.Resources",
"io.murano.metadata.forms.Section",
"io.murano.resources.Network",
"io.murano.system.MistralClient",
"io.murano.resources.CinderVolumeBackup",
"io.murano.system.NetworkExplorer",
"io.murano.system.DummySecurityGroupManager",
"io.murano.resources.WindowsInstance",
"io.murano.CloudResource",
"io.murano.CloudRegion",
"io.murano.system.Agent",
"io.murano.resources.Instance",
"io.murano.resources.Volume",
"io.murano.system.InstanceNotifier",
"io.murano.metadata.ModelBuilder",
"io.murano.system.HeatStack",
"io.murano.resources.LinuxInstance",
"io.murano.metadata.Description",
"io.murano.metadata.engine.Serialize",
"io.murano.resources.ExistingCinderVolume",
"io.murano.resources.HeatSWConfigInstance",
"io.murano.system.StatusReporter",
"io.murano.Application",
"io.murano.test.TestFixtureWithEnvironment",
"io.murano.system.AwsSecurityGroupManager",
"io.murano.StackTrace",
"io.murano.resources.NovaNetwork",
"io.murano.metadata.forms.Position",
"io.murano.metadata.HelpText",
"io.murano.resources.NeutronNetworkBase",
"io.murano.User",
"io.murano.resources.InstanceAffinityGroup",
"io.murano.resources.NeutronNetwork",
"io.murano.resources.CinderVolumeSnapshot"
],
"is_public": true,
"categories": [],
"name": "Core library",
"created": "2017-03-30T08:35:07",
"author": "murano.io",
"enabled": true,
"id": "5b6c8d7cd0694a7ebb7525ae62357740",
"supplier": {},
"fully_qualified_name": "io.murano",
"type": "Library",
"owner_id": "c0f6e4cf1bfc48aba587e709b58c9f28"
}
]
}
将软件包上传到应用程序目录。
注意
虽然指定类别是可选的,但建议您至少指定一个。它有助于在目录中过滤应用程序。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
401 - 未授权 |
用户必须在发出请求之前进行身份验证。 |
403 - 禁止 |
策略不允许当前用户执行此操作。 |
409 - Conflict |
此操作与此资源的另一个操作冲突。 |
请求参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
categories |
body |
数组 |
与软件包关联的类别。 |
is_public |
body |
布尔值 |
软件包是否与其他项目共享。 |
file |
body |
对象 |
要上传的软件包文件。 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
X-Openstack-Request-Id |
标头 |
UUID |
用于跟踪服务请求的唯一 ID。默认情况下,与请求关联的请求 ID 出现在服务日志中。 |
updated |
body |
字符串 |
对象更新的日期和时间。日期和时间戳格式为 ISO 8601 CCYY-MM-DDThh:mm:ss±hh:mm
例如, 如果包含 |
class_definitions |
body |
数组 |
软件包的 class_definitions。 |
id |
body |
字符串 |
软件包的 UUID。 |
fully_qualified_name |
body |
字符串 |
软件包的 fqn。 |
is_public |
body |
布尔值 |
软件包是否与其他项目共享。 |
name |
body |
字符串 |
软件包的名称。 |
type |
body |
字符串 |
软件包的类型。 |
supplier |
body |
对象 |
软件包的供应商信息。 |
description |
body |
字符串 |
软件包的描述。 |
author |
body |
字符串 |
软件包的作者。 |
创建时间 |
body |
字符串 |
资源被创建的日期和时间。日期和时间戳格式为 ISO 8601。 CCYY-MM-DDThh:mm:ss±hh:mm
例如, 如果包含 |
enabled |
body |
布尔值 |
软件包是否在应用程序目录中浏览。 |
tags |
body |
数组 |
软件包的标签。 |
categories |
body |
数组 |
与软件包关联的类别。 |
owner_id |
body |
字符串 |
软件包的拥有者 ID。 |
响应示例¶
{
"class_definitions": [
"com.example.apache.ApacheHttpServer"
],
"description": "The Apache HTTP Server Project is an effort to develop and maintain an\nopen-source HTTP server for modern operating systems including UNIX and\nWindows NT. The goal of this project is to provide a secure, efficient and\nextensible server that provides HTTP services in sync with the current HTTP\nstandards.\nApache httpd has been the most popular web server on the Internet since\nApril 1996, and celebrated its 17th birthday as a project this February.\n",
"tags": [
"HTTP",
"Server",
"WebServer",
"HTML",
"Apache"
],
"updated": "2017-04-06T07:54:40",
"is_public": false,
"id": "10f3e349bca9432abd673319195eed2b",
"categories": [],
"name": "Apache HTTP Server",
"created": "2017-04-06T07:54:40",
"author": "Mirantis, Inc",
"enabled": true,
"supplier": {},
"fully_qualified_name": "com.example.apache.ApacheHttpServer",
"type": "Application",
"owner_id": "c0f6e4cf1bfc48aba587e709b58c9f28"
}
下载一个软件包。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
401 - 未授权 |
用户必须在发出请求之前进行身份验证。 |
403 - 禁止 |
策略不允许当前用户执行此操作。 |
请求参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
package_id |
路径 |
字符串 |
软件包的 UUID。 |
响应参数¶
- 此请求不在响应主体中返回任何内容。
- language:
javascript
显示软件包的详细信息。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
401 - 未授权 |
用户必须在发出请求之前进行身份验证。 |
403 - 禁止 |
策略不允许当前用户执行此操作。 |
404 - Not Found |
找不到请求的资源。 |
请求参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
package_id |
路径 |
字符串 |
软件包的 UUID。 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
X-Openstack-Request-Id |
标头 |
UUID |
用于跟踪服务请求的唯一 ID。默认情况下,与请求关联的请求 ID 出现在服务日志中。 |
updated |
body |
字符串 |
对象更新的日期和时间。日期和时间戳格式为 ISO 8601 CCYY-MM-DDThh:mm:ss±hh:mm
例如, 如果包含 |
class_definitions |
body |
数组 |
软件包的 class_definitions。 |
id |
body |
字符串 |
软件包的 UUID。 |
fully_qualified_name |
body |
字符串 |
软件包的 fqn。 |
is_public |
body |
布尔值 |
软件包是否与其他项目共享。 |
name |
body |
字符串 |
软件包的名称。 |
type |
body |
字符串 |
软件包的类型。 |
supplier |
body |
对象 |
软件包的供应商信息。 |
description |
body |
字符串 |
软件包的描述。 |
author |
body |
字符串 |
软件包的作者。 |
创建时间 |
body |
字符串 |
资源被创建的日期和时间。日期和时间戳格式为 ISO 8601。 CCYY-MM-DDThh:mm:ss±hh:mm
例如, 如果包含 |
enabled |
body |
布尔值 |
软件包是否在应用程序目录中浏览。 |
tags |
body |
数组 |
软件包的标签。 |
categories |
body |
数组 |
与软件包关联的类别。 |
owner_id |
body |
字符串 |
软件包的拥有者 ID。 |
响应示例¶
{
"updated": "2017-04-06T08:22:11",
"description": "The Apache HTTP Server Project is an effort to develop and maintain an\nopen-source HTTP server for modern operating systems including UNIX and\nWindows NT. The goal of this project is to provide a secure, efficient and\nextensible server that provides HTTP services in sync with the current HTTP\nstandards.\nApache httpd has been the most popular web server on the Internet since\nApril 1996, and celebrated its 17th birthday as a project this February.\n",
"tags": [
"HTTP",
"Server",
"WebServer",
"HTML",
"Apache"
],
"class_definitions": [
"com.example.apache.ApacheHttpServer"
],
"is_public": false,
"categories": [],
"name": "Apache HTTP Server",
"created": "2017-04-06T08:22:11",
"author": "Mirantis, Inc",
"enabled": true,
"id": "979637f39a7245cebeabc99e6aa01666",
"supplier": {},
"fully_qualified_name": "com.example.apache.ApacheHttpServer",
"type": "Application",
"owner_id": "c0f6e4cf1bfc48aba587e709b58c9f28"
}
更新一个软件包。
允许更改的列表
{ "op": "add", "path": "/tags", "value": [ "foo", "bar" ] }
{ "op": "add", "path": "/categories", "value": [ "foo", "bar" ] }
{ "op": "remove", "path": "/tags" }
{ "op": "remove", "path": "/categories" }
{ "op": "replace", "path": "/tags", "value": ["foo", "bar"] }
{ "op": "replace", "path": "/is_public", "value": true }
{ "op": "replace", "path": "/description",
"value":"New description" }
{ "op": "replace", "path": "/name", "value": "New name" }
响应代码¶
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已被接受处理,但处理尚未完成。响应中包含一个“location”头部,其中包含一个链接以检查请求的进度。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
403 - 禁止 |
策略不允许当前用户执行此操作。 |
404 - Not Found |
找不到请求的资源。 |
409 - Conflict |
此操作与此资源的另一个操作冲突。 |
请求参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
package_id |
路径 |
字符串 |
软件包的 UUID。 |
请求示例¶
[
{
"path": "/is_public",
"value": true,
"op": "replace"
}
]
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
X-Openstack-Request-Id |
标头 |
UUID |
用于跟踪服务请求的唯一 ID。默认情况下,与请求关联的请求 ID 出现在服务日志中。 |
updated |
body |
字符串 |
对象更新的日期和时间。日期和时间戳格式为 ISO 8601 CCYY-MM-DDThh:mm:ss±hh:mm
例如, 如果包含 |
class_definitions |
body |
数组 |
软件包的 class_definitions。 |
id |
body |
字符串 |
软件包的 UUID。 |
fully_qualified_name |
body |
字符串 |
软件包的 fqn。 |
is_public |
body |
布尔值 |
软件包是否与其他项目共享。 |
name |
body |
字符串 |
软件包的名称。 |
type |
body |
字符串 |
软件包的类型。 |
supplier |
body |
对象 |
软件包的供应商信息。 |
description |
body |
字符串 |
软件包的描述。 |
author |
body |
字符串 |
软件包的作者。 |
创建时间 |
body |
字符串 |
资源被创建的日期和时间。日期和时间戳格式为 ISO 8601。 CCYY-MM-DDThh:mm:ss±hh:mm
例如, 如果包含 |
enabled |
body |
布尔值 |
软件包是否在应用程序目录中浏览。 |
tags |
body |
数组 |
软件包的标签。 |
categories |
body |
数组 |
与软件包关联的类别。 |
owner_id |
body |
字符串 |
软件包的拥有者 ID。 |
响应示例¶
{
"updated": "2017-04-06T08:28:22",
"description": "The Apache HTTP Server Project is an effort to develop and maintain an\nopen-source HTTP server for modern operating systems including UNIX and\nWindows NT. The goal of this project is to provide a secure, efficient and\nextensible server that provides HTTP services in sync with the current HTTP\nstandards.\nApache httpd has been the most popular web server on the Internet since\nApril 1996, and celebrated its 17th birthday as a project this February.\n",
"tags": [
"HTTP",
"Server",
"WebServer",
"HTML",
"Apache"
],
"class_definitions": [
"com.example.apache.ApacheHttpServer"
],
"is_public": true,
"categories": [],
"name": "Apache HTTP Server",
"created": "2017-04-06T08:22:11",
"author": "Mirantis, Inc",
"enabled": true,
"id": "979637f39a7245cebeabc99e6aa01666",
"supplier": {},
"fully_qualified_name": "com.example.apache.ApacheHttpServer",
"type": "Application",
"owner_id": "c0f6e4cf1bfc48aba587e709b58c9f28"
}
删除指定的环境。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
401 - 未授权 |
用户必须在发出请求之前进行身份验证。 |
403 - 禁止 |
策略不允许当前用户执行此操作。 |
404 - Not Found |
找不到请求的资源。 |
请求参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
package_id |
路径 |
字符串 |
软件包的 UUID。 |
响应参数¶
- 此请求不在响应主体中返回任何内容。
- language:
javascript
在应用程序目录中搜索软件包。非管理员默认可以查看属于他们项目的软件包以及公共软件包:属于其他项目但被管理员标记为公共的软件包。管理员可以搜索所有项目的软件包。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
401 - 未授权 |
用户必须在发出请求之前进行身份验证。 |
403 - 禁止 |
策略不允许当前用户执行此操作。 |
请求参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
filters (可选) |
查询 |
字符串 |
您想要用于在应用程序目录中搜索软件包的过滤器。如果未指定 filters 查询参数,则应用程序目录 API 将返回策略设置允许的所有软件包。通过使用 filters 参数,API 将仅返回满足过滤器的请求软件包集。过滤器列表包括
|
响应参数¶
返回与搜索条件匹配的软件包列表。
检索应用程序的 UI 定义。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
401 - 未授权 |
用户必须在发出请求之前进行身份验证。 |
403 - 禁止 |
策略不允许当前用户执行此操作。 |
404 - Not Found |
找不到请求的资源。 |
请求参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
package_id |
路径 |
字符串 |
软件包的 UUID。 |
响应参数¶
如果软件包具有 UI 定义,则返回软件包的整个 UI 定义。
下面是一个非常基本的 UI 定义示例
Version: 2.2
Forms:
- appConfiguration:
fields:
- name: license
type: string
description: Apache License, Version 2.0
hidden: false
required: false
检索应用程序徽标。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
401 - 未授权 |
用户必须在发出请求之前进行身份验证。 |
403 - 禁止 |
策略不允许当前用户执行此操作。 |
404 - Not Found |
找不到请求的资源。 |
请求参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
package_id |
路径 |
字符串 |
软件包的 UUID。 |
响应参数¶
如果软件包具有徽标,则返回软件包的二进制徽标数据。
环境配置 API¶
由于 Murano 环境可供不同用户从不同位置进行本地修改,因此有必要将本地修改存储在某个地方。因此,创建会话以满足此要求。在用户将应用程序添加到环境后,可以创建一个新的会话。会话只能部署一次。
注意
可以同时为同一个环境打开多个会话,但一次只能部署一个会话。只有第一个部署的会话将被部署,而其他会话将失效,无法再进行部署。一旦环境处于 deploying 或 deleting 状态,就无法为该环境打开新的会话。
为环境 env_id 创建一个新的配置会话。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
401 - 未授权 |
用户必须在发出请求之前进行身份验证。 |
403 - 禁止 |
策略不允许当前用户执行此操作。 |
请求参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
env_id |
路径 |
字符串 |
环境的 UUID。 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
X-Openstack-Request-Id |
标头 |
UUID |
用于跟踪服务请求的唯一 ID。默认情况下,与请求关联的请求 ID 出现在服务日志中。 |
创建时间 |
body |
字符串 |
资源被创建的日期和时间。日期和时间戳格式为 ISO 8601。 CCYY-MM-DDThh:mm:ss±hh:mm
例如, 如果包含 |
updated |
body |
字符串 |
对象更新的日期和时间。日期和时间戳格式为 ISO 8601 CCYY-MM-DDThh:mm:ss±hh:mm
例如, 如果包含 |
environment_id |
body |
字符串 |
环境的 UUID。 |
state |
body |
字符串 |
当前环境的状态。当首次为环境打开会话时,状态为 |
版本 |
body |
整数 |
会话的版本。它与环境的版本相关联,因此只有版本与环境匹配的会话才能被部署。 |
id |
body |
字符串 |
会话的 UUID。 |
响应示例¶
{
"created": "2017-04-06T07:54:40",
"updated": "2017-04-06T07:54:40",
"environment_id": "744e44812da84e858946f5d817de4f72",
"state": "opened",
"version": 0,
"id": "257bef44a9d848daa5b2563779714820"
}
启动 Murano 环境会话的部署。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
401 - 未授权 |
用户必须在发出请求之前进行身份验证。 |
403 - 禁止 |
策略不允许当前用户执行此操作。 |
请求参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
env_id |
路径 |
字符串 |
环境的 UUID。 |
session_id |
路径 |
字符串 |
会话的 UUID。 |
启动 Murano 环境会话的部署。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
401 - 未授权 |
用户必须在发出请求之前进行身份验证。 |
403 - 禁止 |
策略不允许当前用户执行此操作。 |
请求参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
env_id |
路径 |
字符串 |
环境的 UUID。 |
session_id |
路径 |
字符串 |
会话的 UUID。 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
X-Openstack-Request-Id |
标头 |
UUID |
用于跟踪服务请求的唯一 ID。默认情况下,与请求关联的请求 ID 出现在服务日志中。 |
id |
body |
字符串 |
会话的 UUID。 |
environment_id |
body |
字符串 |
环境的 UUID。 |
创建时间 |
body |
字符串 |
资源被创建的日期和时间。日期和时间戳格式为 ISO 8601。 CCYY-MM-DDThh:mm:ss±hh:mm
例如, 如果包含 |
updated |
body |
字符串 |
对象更新的日期和时间。日期和时间戳格式为 ISO 8601 CCYY-MM-DDThh:mm:ss±hh:mm
例如, 如果包含 |
user_id |
body |
字符串 |
会话所有者的 UUID。 |
版本 |
body |
整数 |
会话的版本。它与环境的版本相关联,因此只有版本与环境匹配的会话才能被部署。 |
state |
body |
字符串 |
当前环境的状态。当首次为环境打开会话时,状态为 |
响应示例¶
{
"id": "4aecdc2178b9430cbbb8db44fb7ac384",
"environment_id": "4dc8a2e8986fa8fa5bf24dc8a2e8986fa8",
"created": "2013-11-30T03:23:42Z",
"updated": "2013-11-30T03:23:54Z",
"user_id": "d7b501094caf4daab08469663a9e1a2b",
"version": 0,
"state": "deploying"
}
删除会话 session_id。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
401 - 未授权 |
用户必须在发出请求之前进行身份验证。 |
403 - 禁止 |
策略不允许当前用户执行此操作。 |
请求参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
env_id |
路径 |
字符串 |
环境的 UUID。 |
session_id |
路径 |
字符串 |
会话的 UUID。 |
环境模板¶
环境模板指定了一组虚拟资源和应用程序信息,这些信息可以被翻译成一个准备就绪的环境,从而部署在 OpenStack 上。用户可以自定义、创建、删除和修改环境模板。环境模板可以被用户实例化多次。例如,用户可以从同一个环境模板创建不同的部署:一个用于测试,另一个用于生产。
环境模板的创建和实例化的流程如下
创建环境模板(包括应用程序信息)
将环境模板转换为环境(创建环境和会话,并将应用程序添加到环境中)
在 Openstack 上部署环境
每个环境模板都由服务组成,这些服务指定了应用程序信息。每个服务都包含有关将要安装的应用程序(例如 Tomcat)的信息,包括应用程序属性(如 Tomcat 端口)。如果适用,可以指定有关虚拟服务器的其他信息,例如 keyname、flavor、image 等。
以下是环境模板的一个示例
{
"name": "env_template_name",
"services": [
{
"instance": {
"assignFloatingIp": "true",
"keyname": "mykeyname",
"image": "cloud-fedora-v3",
"flavor": "m1.medium",
"?": {
"type": "io.murano.resources.LinuxMuranoInstance",
"id": "ef984a74-29a4-45c0-b1dc-2ab9f075732e"
}
},
"name": "tomcat",
"port": "8080",
"?": {
"type": "io.murano.apps.apache.Tomcat",
"id": "54cea43d-5970-4c73-b9ac-fea656f3c722"
}
}
]
}
获取环境模板列表。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
401 - 未授权 |
用户必须在发出请求之前进行身份验证。 |
请求参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
is_public (可选) |
路径 |
布尔值 |
指示是否列出公共环境模板。可能的选项如下
|
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
X-Openstack-Request-Id |
标头 |
UUID |
用于跟踪服务请求的唯一 ID。默认情况下,与请求关联的请求 ID 出现在服务日志中。 |
templates |
body |
数组 |
模板列表。 |
创建时间 |
body |
字符串 |
资源被创建的日期和时间。日期和时间戳格式为 ISO 8601。 CCYY-MM-DDThh:mm:ss±hh:mm
例如, 如果包含 |
updated |
body |
字符串 |
对象更新的日期和时间。日期和时间戳格式为 ISO 8601 CCYY-MM-DDThh:mm:ss±hh:mm
例如, 如果包含 |
name |
body |
字符串 |
环境模板的名称。仅允许字母数字字符。 |
tenant_id |
body |
字符串 |
租户的 UUID。租户也称为项目。 |
版本 |
body |
整数 |
环境模板的当前版本。 |
description_text |
body |
字符串 |
环境模板的描述。 |
is_public |
body |
布尔值 |
指示环境模板是否为公共模板。
|
id |
body |
字符串 |
环境模板的 UUID。 |
响应示例¶
{
"templates": [
{
"updated": "2014-05-14T13:02:54",
"networking": {},
"name": "test1",
"created": "2014-05-14T13:02:46",
"tenant_id": "726ed856965f43cc8e565bc991fa76c3",
"version": 0,
"is_public": false,
"description_text": "",
"id": "2fa5ab704749444bbeafe7991b412c33"
},
{
"updated": "2014-05-14T13:02:55",
"networking": {},
"name": "test2",
"created": "2014-05-14T13:02:51",
"tenant_id": "123452452345346345634563456345346",
"version": 0,
"is_public": true,
"description_text": "",
"id": "744e44812da84e858946f5d817de4f72"
}
]
}
创建一个环境模板。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
401 - 未授权 |
用户必须在发出请求之前进行身份验证。 |
409 - Conflict |
此操作与此资源的另一个操作冲突。 |
请求参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
name |
body |
字符串 |
环境模板的名称。仅允许字母数字字符。 |
is_public |
body |
布尔值 |
指示环境模板是否为公共模板。
|
请求示例¶
{
"name": "env_template_name"
}
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
X-Openstack-Request-Id |
标头 |
UUID |
用于跟踪服务请求的唯一 ID。默认情况下,与请求关联的请求 ID 出现在服务日志中。 |
创建时间 |
body |
字符串 |
资源被创建的日期和时间。日期和时间戳格式为 ISO 8601。 CCYY-MM-DDThh:mm:ss±hh:mm
例如, 如果包含 |
updated |
body |
字符串 |
对象更新的日期和时间。日期和时间戳格式为 ISO 8601 CCYY-MM-DDThh:mm:ss±hh:mm
例如, 如果包含 |
name |
body |
字符串 |
环境模板的名称。仅允许字母数字字符。 |
tenant_id |
body |
字符串 |
租户的 UUID。租户也称为项目。 |
版本 |
body |
整数 |
环境模板的当前版本。 |
description_text |
body |
字符串 |
环境模板的描述。 |
is_public |
body |
布尔值 |
指示环境模板是否为公共模板。
|
id |
body |
字符串 |
环境模板的 UUID。 |
响应示例¶
{
"updated": "2014-05-14T13:02:55",
"networking": {},
"name": "test2",
"created": "2014-05-14T13:02:51",
"tenant_id": "123452452345346345634563456345346",
"version": 0,
"is_public": true,
"description_text": "",
"id": "744e44812da84e858946f5d817de4f72"
}
获取环境模板 env_temp_id 的详情。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
401 - 未授权 |
用户必须在发出请求之前进行身份验证。 |
404 - Not Found |
找不到请求的资源。 |
请求参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
env_temp_id |
路径 |
字符串 |
环境模板的 UUID。 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
X-Openstack-Request-Id |
标头 |
UUID |
用于跟踪服务请求的唯一 ID。默认情况下,与请求关联的请求 ID 出现在服务日志中。 |
创建时间 |
body |
字符串 |
资源被创建的日期和时间。日期和时间戳格式为 ISO 8601。 CCYY-MM-DDThh:mm:ss±hh:mm
例如, 如果包含 |
updated |
body |
字符串 |
对象更新的日期和时间。日期和时间戳格式为 ISO 8601 CCYY-MM-DDThh:mm:ss±hh:mm
例如, 如果包含 |
name |
body |
字符串 |
环境模板的名称。仅允许字母数字字符。 |
services |
body |
数组 |
环境模板 |
tenant_id |
body |
字符串 |
租户的 UUID。租户也称为项目。 |
版本 |
body |
整数 |
环境模板的当前版本。 |
description_text |
body |
字符串 |
环境模板的描述。 |
is_public |
body |
布尔值 |
指示环境模板是否为公共模板。
|
id |
body |
字符串 |
环境模板的 UUID。 |
响应示例¶
{
"updated": "2014-05-14T13:02:55",
"networking": {},
"name": "test2",
"created": "2014-05-14T13:02:51",
"tenant_id": "123452452345346345634563456345346",
"services": [
{
"instance": {
"assignFloatingIp": "true",
"keyname": "mykeyname",
"image": "cloud-fedora-v3",
"flavor": "m1.medium",
"?": {
"type": "io.murano.resources.LinuxMuranoInstance",
"id": "ef984a74-29a4-45c0-b1dc-2ab9f075732e"
}
},
"name": "orion",
"?": {
"type": "io.murano.apps.apache.Tomcat",
"id": "54cea43d-5970-4c73-b9ac-fea656f3c722"
},
"port": "8080"
}
],
"version": 0,
"is_public": true,
"description_text": "",
"id": "744e44812da84e858946f5d817de4f72"
}
删除环境模板 env_temp_id。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
401 - 未授权 |
用户必须在发出请求之前进行身份验证。 |
404 - Not Found |
找不到请求的资源。 |
请求参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
env_temp_id |
路径 |
字符串 |
环境模板的 UUID。 |
为环境模板 env_temp_id 创建一个新的应用程序。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
401 - 未授权 |
用户必须在发出请求之前进行身份验证。 |
404 - Not Found |
找不到请求的资源。 |
请求参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
env_temp_id |
路径 |
字符串 |
环境模板的 UUID。 |
服务 |
body |
对象 |
有关要添加到环境模板的
一个 {
"assignFloatingIp": "true",
"keyname": "mykeyname",
"image": "cloud-fedora-v3",
"flavor": "m1.medium",
"?": {
"type": "io.murano.resources.LinuxMuranoInstance",
"id": "ef984a74-29a4-45c0-b1dc-2ab9f075732e"
}
}
此外,
整个 {
"instance": {
"assignFloatingIp": "true",
"keyname": "mykeyname",
"image": "cloud-fedora-v3",
"flavor": "m1.medium",
"?": {
"type": "io.murano.resources.LinuxMuranoInstance",
"id": "ef984a74-29a4-45c0-b1dc-2ab9f075732e"
}
},
"name": "orion",
"?": {
"type": "io.murano.apps.apache.Tomcat",
"id": "54cea43d-5970-4c73-b9ac-fea656f3c722"
},
"port": "8080"
}
|
请求示例¶
{
"instance": {
"assignFloatingIp": "true",
"keyname": "mykeyname",
"image": "cloud-fedora-v3",
"flavor": "m1.medium",
"?": {
"type": "io.murano.resources.LinuxMuranoInstance",
"id": "ef984a74-29a4-45c0-b1dc-2ab9f075732e"
}
},
"name": "orion",
"?": {
"type": "io.murano.apps.apache.Tomcat",
"id": "54cea43d-5970-4c73-b9ac-fea656f3c722"
},
"port": "8080"
}
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
X-Openstack-Request-Id |
标头 |
UUID |
用于跟踪服务请求的唯一 ID。默认情况下,与请求关联的请求 ID 出现在服务日志中。 |
updated |
body |
字符串 |
对象更新的日期和时间。日期和时间戳格式为 ISO 8601 CCYY-MM-DDThh:mm:ss±hh:mm
例如, 如果包含 |
创建时间 |
body |
字符串 |
资源被创建的日期和时间。日期和时间戳格式为 ISO 8601。 CCYY-MM-DDThh:mm:ss±hh:mm
例如, 如果包含 |
tenant_id |
body |
字符串 |
租户的 UUID。租户也称为项目。 |
services |
body |
数组 |
环境模板 |
版本 |
body |
整数 |
环境模板的当前版本。 |
description_text |
body |
字符串 |
环境模板的描述。 |
is_public |
body |
布尔值 |
指示环境模板是否为公共模板。
|
id |
body |
字符串 |
环境模板的 UUID。 |
name |
body |
字符串 |
环境模板的名称。仅允许字母数字字符。 |
响应示例¶
{
"updated": "2017-04-26T19:41:58",
"created": "2017-04-26T19:33:10",
"tenant_id": "cca37eef752244d99945a4123f30ff79",
"services": [
{
"instance": {
"assignFloatingIp": "true",
"keyname": "mykeyname",
"image": "cloud-fedora-v3",
"flavor": "m1.medium",
"?": {
"type": "io.murano.resources.LinuxMuranoInstance",
"id": "ef984a74-29a4-45c0-b1dc-2ab9f075732e"
}
},
"name": "orion",
"?": {
"type": "io.murano.apps.apache.Tomcat",
"id": "54cea43d-5970-4c73-b9ac-fea656f3c722"
},
"port": "8080"
}
],
"version": 0,
"description_text": "",
"is_public": false,
"id": "64670f5ada0848408734b2985f5cbb92",
"name": "test_application"
}
从环境模板中删除一个应用程序。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
401 - 未授权 |
用户必须在发出请求之前进行身份验证。 |
404 - Not Found |
找不到请求的资源。 |
请求参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
env_temp_id |
路径 |
字符串 |
环境模板的 UUID。 |
service_id |
路径 |
字符串 |
属于环境模板的服务的 UUID。 |
列出指定环境模板 env_temp_id 的所有应用程序。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
401 - 未授权 |
用户必须在发出请求之前进行身份验证。 |
404 - Not Found |
找不到请求的资源。 |
请求参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
env_temp_id |
路径 |
字符串 |
环境模板的 UUID。 |
响应参数¶
X-Openstack-Request-Id: request_id
updated: updated
created: created
tenant_id: tenant_id
services: template_services
version: template_version
description_text: template_description
is_public: template_is_public
id: template_id
name: template_name
响应示例¶
[
{
"instance":
{
"assignFloatingIp": "true",
"keyname": "mykeyname",
"image": "cloud-fedora-v3",
"flavor": "m1.medium",
"?":
{
"type": "io.murano.resources.LinuxMuranoInstance",
"id": "ef984a74-29a4-45c0-b1dc-2ab9f075732e"
}
},
"name": "tomcat",
"?":
{
"type": "io.murano.apps.apache.Tomcat",
"id": "54cea43d-5970-4c73-b9ac-fea656f3c722"
},
"port": "8080"
},
{
"instance": "ef984a74-29a4-45c0-b1dc-2ab9f075732e",
"password": "XXX",
"name": "mysql",
"?":
{
"type": "io.murano.apps.database.MySQL",
"id": "54cea43d-5970-4c73-b9ac-fea656f3c722"
}
}
]
从环境模板中删除一个应用程序。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
401 - 未授权 |
用户必须在发出请求之前进行身份验证。 |
404 - Not Found |
找不到请求的资源。 |
请求参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
env_temp_id |
路径 |
字符串 |
环境模板的 UUID。 |
service_id |
路径 |
字符串 |
属于环境模板的服务的 UUID。 |
服务 |
body |
对象 |
有关要添加到环境模板的
一个 {
"assignFloatingIp": "true",
"keyname": "mykeyname",
"image": "cloud-fedora-v3",
"flavor": "m1.medium",
"?": {
"type": "io.murano.resources.LinuxMuranoInstance",
"id": "ef984a74-29a4-45c0-b1dc-2ab9f075732e"
}
}
此外,
整个 {
"instance": {
"assignFloatingIp": "true",
"keyname": "mykeyname",
"image": "cloud-fedora-v3",
"flavor": "m1.medium",
"?": {
"type": "io.murano.resources.LinuxMuranoInstance",
"id": "ef984a74-29a4-45c0-b1dc-2ab9f075732e"
}
},
"name": "orion",
"?": {
"type": "io.murano.apps.apache.Tomcat",
"id": "54cea43d-5970-4c73-b9ac-fea656f3c722"
},
"port": "8080"
}
|
请求示例¶
{
"instance": {
"assignFloatingIp": "true",
"keyname": "mykeyname",
"image": "cloud-fedora-v3",
"flavor": "m1.medium",
"?": {
"type": "io.murano.resources.LinuxMuranoInstance",
"id": "ef984a74-29a4-45c0-b1dc-2ab9f075732e"
}
},
"name": "orion",
"port": "8080",
"?": {
"type": "io.murano.apps.apache.Tomcat",
"id": "54cea43d-5970-4c73-b9ac-fea656f3c722"
}
}
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
X-Openstack-Request-Id |
标头 |
UUID |
用于跟踪服务请求的唯一 ID。默认情况下,与请求关联的请求 ID 出现在服务日志中。 |
服务 |
body |
对象 |
有关要添加到环境模板的
一个 {
"assignFloatingIp": "true",
"keyname": "mykeyname",
"image": "cloud-fedora-v3",
"flavor": "m1.medium",
"?": {
"type": "io.murano.resources.LinuxMuranoInstance",
"id": "ef984a74-29a4-45c0-b1dc-2ab9f075732e"
}
}
此外,
整个 {
"instance": {
"assignFloatingIp": "true",
"keyname": "mykeyname",
"image": "cloud-fedora-v3",
"flavor": "m1.medium",
"?": {
"type": "io.murano.resources.LinuxMuranoInstance",
"id": "ef984a74-29a4-45c0-b1dc-2ab9f075732e"
}
},
"name": "orion",
"?": {
"type": "io.murano.apps.apache.Tomcat",
"id": "54cea43d-5970-4c73-b9ac-fea656f3c722"
},
"port": "8080"
}
|
响应示例¶
{
"instance":
{
"assignFloatingIp": "true",
"keyname": "mykeyname",
"image": "cloud-fedora-v3",
"flavor": "m1.medium",
"?":
{
"type": "io.murano.resources.LinuxMuranoInstance",
"id": "ef984a74-29a4-45c0-b1dc-2ab9f075732e"
}
},
"name": "orion",
"?":
{
"type": "io.murano.apps.apache.Tomcat",
"id": "54cea43d-5970-4c73-b9ac-fea656f3c722"
},
"port": "8080"
}
从环境模板 env_temp_id 创建一个环境。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
401 - 未授权 |
用户必须在发出请求之前进行身份验证。 |
404 - Not Found |
找不到请求的资源。 |
409 - Conflict |
此操作与此资源的另一个操作冲突。 |
请求参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
env_temp_id |
路径 |
字符串 |
环境模板的 UUID。 |
name |
body |
字符串 |
环境的名称。名称必须至少包含一个非空格字符,且长度小于 256 个字符。 |
请求示例¶
{
"name": "environment_name"
}
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
X-Openstack-Request-Id |
标头 |
UUID |
用于跟踪服务请求的唯一 ID。默认情况下,与请求关联的请求 ID 出现在服务日志中。 |
environment_id |
body |
字符串 |
环境的 UUID。 |
name |
body |
字符串 |
环境的名称。名称必须至少包含一个非空格字符,且长度小于 256 个字符。 |
创建时间 |
body |
字符串 |
资源被创建的日期和时间。日期和时间戳格式为 ISO 8601。 CCYY-MM-DDThh:mm:ss±hh:mm
例如, 如果包含 |
tenant_id |
body |
字符串 |
租户的 UUID。租户也称为项目。 |
版本 |
body |
int |
当前版本。 |
session_id |
body |
字符串 |
会话的 UUID。 |
响应示例¶
{
"environment_id": "aa90fadfafca10e38e1c8c4bbf7",
"name": "environment_name",
"created": "2015-01-26T09:12:51",
"tenant_id": "00000000000000000000000000000001",
"version": 0,
"session_id": "adf4dadfaa9033ca7ce245fca10e38e1c8c4bbf7",
}
将环境模板从一个租户克隆到另一个租户。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
401 - 未授权 |
用户必须在发出请求之前进行身份验证。 |
404 - Not Found |
找不到请求的资源。 |
409 - Conflict |
此操作与此资源的另一个操作冲突。 |
请求参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
env_temp_id |
路径 |
字符串 |
环境模板的 UUID。 |
name |
body |
字符串 |
环境模板的名称。仅允许字母数字字符。 |
请求示例¶
{
"name": "cloned_env_template_name"
}
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
X-Openstack-Request-Id |
标头 |
UUID |
用于跟踪服务请求的唯一 ID。默认情况下,与请求关联的请求 ID 出现在服务日志中。 |
environment_id |
body |
字符串 |
环境的 UUID。 |
name |
body |
字符串 |
环境的名称。名称必须至少包含一个非空格字符,且长度小于 256 个字符。 |
创建时间 |
body |
字符串 |
资源被创建的日期和时间。日期和时间戳格式为 ISO 8601。 CCYY-MM-DDThh:mm:ss±hh:mm
例如, 如果包含 |
tenant_id |
body |
字符串 |
租户的 UUID。租户也称为项目。 |
版本 |
body |
int |
当前版本。 |
session_id |
body |
字符串 |
会话的 UUID。 |
响应示例¶
{
"updated": "2015-01-26T09:12:51",
"name": "cloned_env_template_name",
"created": "2015-01-26T09:12:51",
"tenant_id": "00000000000000000000000000000001",
"version": 0,
"is_public": false,
"id": "aa9033ca7ce245fca10e38e1c8c4bbf7",
}