虚拟化网络功能生命周期管理接口 (VNF LCM)¶
虚拟化网络功能生命周期管理接口 (VNF LCM)¶
此接口管理 VNF 实例的 VNF 生命周期管理操作。
此接口允许 NFVO 向 VNFM 发起 VNF 实例的 VNF 生命周期管理操作。
POST 方法创建新的 VNF 实例资源。
成功执行此方法后,应已创建新的单个 VNF 实例资源,并且该资源表示中的 instantiationState 属性值应为 NOT_INSTANTIATED。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
201 - 已创建 |
资源已创建并准备好使用。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
401 - 未授权 |
用户必须在发出请求之前进行身份验证。 |
403 - 禁止 |
策略不允许当前用户执行此操作。 |
请求参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
vnfdId |
body |
字符串 |
标识定义要创建的 VNF 实例的 VNFD 的标识符。 |
vnfInstanceName (可选) |
body |
字符串 |
要创建的 VNF 实例的人性化名称。 |
vnfInstanceDescription (可选) |
body |
字符串 |
要创建的 VNF 实例的人性化描述。 |
metadata (可选) |
body |
数组 |
此属性为“VnfInstance”中的“metadata”属性提供值。 |
请求示例¶
{
"vnfdId": "b1bb0ce7-ebca-4fa7-95ed-4840d70a1177",
"vnfInstanceName": "Instance name",
"vnfInstanceDescription": "Instance description"
}
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
id |
body |
字符串 |
VNF 实例的标识符。 |
vnfInstanceName (可选) |
body |
字符串 |
VNF 实例的名称。 |
vnfInstanceDescription (可选) |
body |
字符串 |
VNF 实例的人性化描述。 |
vnfdId |
body |
字符串 |
VNF 实例所基于的 VNFD 的标识符。 |
vnfProvider |
body |
字符串 |
VNF 和 VNFD 的提供者。该值从 VNFD 复制而来。 |
vnfProductName |
body |
字符串 |
用于标识 VNF 产品名称。该值从 VNFD 复制而来。 |
vnfSoftwareVersion |
body |
字符串 |
VNF 的软件版本。该值从 VNFD 复制而来。 |
vnfdVersion |
body |
字符串 |
标识 VNFD 的版本。该值从 VNFD 复制而来。 |
vnfPkgId |
body |
字符串 |
NFVO 关于 VNF 基于的特定 VNF 包所持有的信息的标识符。此标识符由 NFVO 分配,并且可以使用 PATCH 方法进行修改。 |
instantiationState |
body |
字符串 |
VNF 实例的实例化状态。 NOT_INSTANTIATED:VNF 实例已终止或未实例化。 INSTANTIATED:VNF 实例已实例化。 |
_links |
body |
对象 |
指向与此资源相关的资源的链接。 |
响应示例¶
{
"id": "cda383ea-8341-4731-93c7-19db4b5ce1b5",
"instantiationState": "NOT_INSTANTIATED",
"vnfInstanceDescription": "Instance description",
"vnfInstanceName": "Instance name",
"vnfPkgId": "5ac73423-f102-4574-911e-578dad9fa8fe",
"vnfProductName": "Sample VNF",
"vnfProvider": "Company",
"vnfSoftwareVersion": "1.0",
"vnfdId": "b1bb0ce7-ebca-4fa7-95ed-4840d70a1177",
"vnfdVersion": "1.0",
"_links": {
"instantiate": {
"href": "https://:9890/vnflcm/v1/vnf_instances/cda383ea-8341-4731-93c7-19db4b5ce1b5/instantiate"
},
"self": {
"href": "https://:9890/vnflcm/v1/vnf_instances/cda383ea-8341-4731-93c7-19db4b5ce1b5"
}
}
}
POST 方法实例化 VNF 实例。
一旦 VNFM 成功完成底层的 VNF LCM 操作发生,它应将 Individual VNF 实例资源表示中的 instantiationState 属性设置为 INSTANTIATED 值,并将 vnfState 属性设置为 STARTED 值。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已被接受处理,但处理尚未完成。响应中包含一个“location”头部,其中包含一个链接以检查请求的进度。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
401 - 未授权 |
用户必须在发出请求之前进行身份验证。 |
403 - 禁止 |
策略不允许当前用户执行此操作。 |
404 - Not Found |
找不到请求的资源。 |
409 - Conflict |
此操作与此资源的另一个操作冲突。 |
请求参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
vnfInstanceId |
路径 |
字符串 |
VNF 实例的标识符。 |
flavourId |
body |
字符串 |
要实例化的 VNF 部署风味的标识符。 |
instantiationLevelId (可选) |
body |
字符串 |
要实例化的部署风味的实例化级别标识符。如果未提供,则实例化 VNFD 中声明的默认实例化级别。 |
extVirtualLinks (可选) |
body |
数组 |
有关外部 VL 以连接到 VNF 的信息。 |
id |
body |
字符串 |
外部 VL 实例的标识符。标识符由管理此 VL 实例的 NFV-MANO 实体分配。 |
resourceId |
body |
字符串 |
VIM 或资源提供商范围内的资源的标识符。 |
extCps |
body |
数组 |
要连接到此外部 VL 的 VNF 的外部 CP。 |
cpdId |
body |
字符串 |
VNFD 中 CPD 的标识符。 |
cpConfig (可选) |
body |
数组 |
需要配置在从各自 CPD 创建的 CP 实例上的实例数据列表。 |
cpInstanceId (可选) |
body |
字符串 |
要应用此配置参数集的外部连接点实例的标识符。 如果该实例已创建,则应存在。 |
linkPortId (可选) |
body |
字符串 |
与外部 CP 将关联的预配置链路端口的标识符。请参阅注释。 |
cpProtocolData (可选) |
body |
数组 |
用于配置连接 CP 到 VL 的链路端口上的网络协议的参数。 |
layerProtocol |
body |
字符串 |
层和协议的标识符。 允许的值:IP_OVER_ETHERNET |
ipOverEthernet (可选) |
body |
对象 |
要分配给 extCP 实例的网络地址数据。如果 layerProtocol 等于“IP_OVER_ETHERNET”,则应存在,否则应不存在。 |
macAddress (可选) |
body |
字符串 |
MAC 地址。如果未提供此属性,则应由 VIM 选择。至少应存在“macAddress”或“ipAddresses”中的一个。 |
ipAddresses (可选) |
body |
数组 |
要分配给 CP 实例的 IP 地址列表。每个条目代表针对每个子网的固定或动态 IP 地址分配的 IP 地址数据。 如果未提供此属性,则不应分配任何 IP 地址。 |
type |
body |
字符串 |
IP 地址的类型。允许的值:IPV4、IPV6。 |
fixedAddresses (可选) |
body |
数组 |
要分配的固定地址(如果提供了“subnetId”,则来自子网)。“fixedAddresses”或“numDynamicAddresses”中的一个必须存在。 |
numDynamicAddresses (可选) |
body |
int |
设置动态地址的数量。“fixedAddresses”或“numDynamicAddresses”中的一个必须存在。 |
subnetId (可选) |
body |
字符串 |
VIM 中子网资源标识符定义的子网。如果存在此属性,将分配来自该子网的 IP 地址;否则,将分配未绑定到子网的 IP 地址。 |
extLinkPorts (可选) |
body |
数组 |
外部提供的链路端口,用于将外部连接点连接到此外部 VL。如果未提供此属性,则 VNFM 应在外部 VL 上创建链路端口。 |
id |
body |
字符串 |
提供此链路端口的实体提供的此链路端口的标识符。 |
resourceHandle |
body |
对象 |
实现此链路端口的虚拟化资源的引用。 |
resourceId |
body |
字符串 |
VIM 或资源提供商范围内的资源的标识符。 |
vimLevelResourceType (可选) |
body |
字符串 |
VIM 或资源提供商范围内的资源的类型。provider。 |
extManagedVirtualLinks (可选) |
body |
数组 |
有关由 NFVO 管理的内部 VL 的信息列表。 |
id |
body |
字符串 |
外部管理的内部 VL 实例的标识符。标识符由管理此 VL 实例的 NFV-MANO 实体分配。 |
vnfVirtualLinkDescId |
body |
字符串 |
VNFD 中此 VL 的 VLD 的标识符。 |
resourceId |
body |
字符串 |
VIM 或资源提供商范围内的资源的标识符。 |
vimConnectionInfo (可选) |
body |
数组 |
有关 VIM 连接的信息,用于管理 VNF 实例的资源,或引用外部/外部管理的虚拟链路。 仅当直接模式下的 VNF 相关资源管理适用时,才应支持此属性,并且可能存在。 |
id |
body |
字符串 |
VIM 连接的标识符。此标识符由 NFVO 管理。 |
vimId (可选) |
body |
字符串 |
VIM 实例的标识符。此标识符由 NFVO 管理。 如果已通过本文档范围之外的方式配置到 VNFM,则应存在,否则应不存在。 |
vimType (可选) |
body |
字符串 |
VIM 信息的不同类型的区分器。 此属性的值根据 VIM 的类型确定“interfaceInfo”和“accessInfo”属性的结构。 随着新的 VIM 类型或版本的可用,允许的值集预计会随时间变化。 |
accessInfo (可选) |
body |
字符串 |
访问 VIM 的身份验证凭据,以及其他访问相关信息,例如租户或基础设施资源组(请参阅注释)。适用的键取决于 vimType 的内容。 如果 VimConnectionInfo 结构是 HTTP 响应有效负载主体的一部分,则不应包含敏感属性(例如密码)。 如果 VimConnectionInfo 结构是 HTTP 请求有效负载主体的一部分,则如果尚未通过其他方式配置,则应存在敏感属性(例如密码)。 |
additionalParams |
body |
字符串 |
作为 VNFD 的“ChangeVnfFlavourOpConfig”的一部分声明的,作为对正在修改的 VNF 特定的风味更改过程的附加输入参数。 |
请求示例¶
{
"flavourId": "simple",
"extVirtualLinks": [
{
"id": "ext-vl-uuid-VL1"
"resourceId": "991a1e07-e8a2-4e1b-b77d-3937177a5b7f",
"extCps": [
{
"cpdId": "CP2",
"cpConfig": [
{
"linkPortId": "1d868d02-ecd4-4402-8e6b-54e77ebdcc28",
"cpProtocolData": [
{
"layerProtocol": "IP_OVER_ETHERNET",
"ipOverEthernet": {
"ipAddresses":[
{
"type": "IPV4",
"numDynamicAddresses": 1
}
]
}
}
]
}
]
}
],
"extLinkPorts": [
{
"id": "1d868d02-ecd4-4402-8e6b-54e77ebdcc28",
"resourceHandle": {
"resourceId": "109f5049-b51e-409a-9a99-d740ba5f3acb",
"vimLevelResourceType": "LINKPORT"
}
}
]
},
{
"id": "ext-vl-uuid-VL1",
"resourceId": "991a1e07-e8a2-4e1b-b77d-3937177a5b7f",
"extCps": [
{
"cpdId": "CP1",
"cpConfig": [
{
"cpProtocolData": [
{
"layerProtocol": "IP_OVER_ETHERNET",
"ipOverEthernet": {
"macAddress": "fa:16:3e:22:17:05"
}
}
]
}
]
}
]
}
],
"extManagedVirtualLinks": [
{
"id": "extMngVLnk-uuid_VL3",
"vnfVirtualLinkDescId": "VL4",
"resourceId": "991a1e07-e8a2-4e1b-b77d-3937177a5b7f"
}
],
"vimConnectionInfo": [
{
"id": "8a3adb69-0784-43c7-833e-aab0b6ab4470",
"vimId": "c576eb55-5bec-4881-a573-5b0f3a05c370",
"vimType": "openstack"
}
]
}
此任务资源表示“终止 VNF”操作。客户端可以使用此资源来终止 VNF 实例。
POST 方法终止 VNF 实例。
一旦 VNFM 成功完成底层的 VNF LCM 操作发生,它应将 Individual VNF 实例资源表示中的 instantiationState 属性设置为 NOT_INSTANTIATED 值。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已被接受处理,但处理尚未完成。响应中包含一个“location”头部,其中包含一个链接以检查请求的进度。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
401 - 未授权 |
用户必须在发出请求之前进行身份验证。 |
403 - 禁止 |
策略不允许当前用户执行此操作。 |
404 - Not Found |
找不到请求的资源。 |
409 - Conflict |
此操作与此资源的另一个操作冲突。 |
请求参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
vnfInstanceId |
路径 |
字符串 |
VNF 实例的标识符。 |
terminationType |
body |
字符串 |
指示是否请求强制或优雅终止。允许的值 FORCEFUL:VNFM 在接受请求后会立即关闭 VNF 并释放资源。 GRACEFUL:VNFM 首先在接受请求后安排将 VNF 退出服务。一旦完成退出服务的操作(无论成功与否),或者“gracefulTerminationTimeout”属性中指定的时间值到期,VNFM 将关闭 VNF 并释放资源。 |
gracefulTerminationTimeout (可选) |
body |
字符串 |
仅当优雅终止时,此属性才适用。它定义了在关闭 VNF 并释放资源之前等待 VNF 退出服务的时间。 单位为秒。 如果未提供并且“terminationType”属性设置为“GRACEFUL”,则预计 VNFM 会等待 VNF 成功退出服务,无论需要多长时间,然后关闭 VNF 并释放资源。 |
请求示例¶
{
"terminationType": "GRACEFUL",
"gracefulTerminationTimeout": 10
}
此任务资源表示“修复 VNF”操作。客户端可以使用此资源请求修复 VNF 实例。
POST 方法请求修复 VNF 实例。
响应码¶
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已被接受处理,但处理尚未完成。响应中包含一个“location”头部,其中包含一个链接以检查请求的进度。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
401 - 未授权 |
用户必须在发出请求之前进行身份验证。 |
403 - 禁止 |
策略不允许当前用户执行此操作。 |
404 - Not Found |
找不到请求的资源。 |
409 - Conflict |
此操作与此资源的另一个操作冲突。 |
请求参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
vnfInstanceId |
路径 |
字符串 |
VNF 实例的标识符。 |
cause (可选) |
body |
字符串 |
指示需要修复过程的原因。 |
vnfcInstanceId (可选) |
body |
数组 |
需要治疗操作的 VNFC 实例列表。 |
additionalParams (可选) |
body |
键值对 |
作为 VNFD 的“HealVnfOpConfig”的一部分声明的,作为对正在修复的 VNF 特定的附加参数,由 NFVO 作为输入传递给修复过程。 |
tacker_extension_heal_include_block_storage (可选) |
body |
布尔值 |
**管理员可配置的参数名称。** 控制在修复指定的 VNFC 实例时是否重新创建相关的 Cinder 块存储。 键名称由 建议: 由于键名称和默认行为都取决于您的部署设置,建议您与环境管理员确认它们。 |
请求示例¶
{
"cause": "healing",
"vnfcInstanceId": ["c51c98dc-b918-4681-a9eb-4f32a57c4e08"],
"additionalParams": {
"tacker_extension_heal_include_block_storage": false
}
}
此方法删除“单个 VNF 实例”资源。
成功执行此方法后,“单个 VNF 实例”资源将不再存在。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
204 - No Content |
服务器已通过删除资源来满足请求。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
401 - 未授权 |
用户必须在发出请求之前进行身份验证。 |
403 - 禁止 |
策略不允许当前用户执行此操作。 |
404 - Not Found |
找不到请求的资源。 |
409 - Conflict |
此操作与此资源的另一个操作冲突。 |
请求参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
vnfInstanceId |
路径 |
字符串 |
VNF 实例的标识符。 |
显示给定单个 VNF 实例的信息。
GET 方法通过读取“单个 VNF 实例”资源来检索 VNF 实例的信息。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
401 - 未授权 |
用户必须在发出请求之前进行身份验证。 |
403 - 禁止 |
策略不允许当前用户执行此操作。 |
请求参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
vnfInstanceId |
路径 |
字符串 |
VNF 实例的标识符。 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
id |
路径 |
字符串 |
VNF 实例的标识符。 |
vnfInstanceName (可选) |
body |
字符串 |
VNF 实例的名称。 |
vnfInstanceDescription (可选) |
body |
字符串 |
VNF 实例的人性化描述。 |
vnfdId |
body |
字符串 |
VNF 实例所基于的 VNFD 的标识符。 |
vnfProvider |
body |
字符串 |
VNF 和 VNFD 的提供者。该值从 VNFD 复制而来。 |
vnfProductName |
body |
字符串 |
用于标识 VNF 产品名称。该值从 VNFD 复制而来。 |
vnfSoftwareVersion |
body |
字符串 |
VNF 的软件版本。该值从 VNFD 复制而来。 |
vnfdVersion |
body |
字符串 |
标识 VNFD 的版本。该值从 VNFD 复制而来。 |
vnfPkgId |
body |
字符串 |
NFVO 关于 VNF 基于的特定 VNF 包所持有的信息的标识符。此标识符由 NFVO 分配,并且可以使用 PATCH 方法进行修改。 |
vimConnectionInfo (可选) |
body |
数组 |
有关 VIM 连接的信息,用于管理 VNF 实例的资源,或引用外部/外部管理的虚拟链路。 仅当直接模式下的 VNF 相关资源管理适用时,才应支持此属性,并且可能存在。 |
id |
body |
字符串 |
VIM 连接的标识符。此标识符由 NFVO 管理。 |
vimId (可选) |
body |
字符串 |
VIM 实例的标识符。此标识符由 NFVO 管理。 如果已通过本文档范围之外的方式配置到 VNFM,则应存在,否则应不存在。 |
vimType (可选) |
body |
字符串 |
VIM 信息的不同类型的区分器。 此属性的值根据 VIM 的类型确定“interfaceInfo”和“accessInfo”属性的结构。 随着新的 VIM 类型或版本的可用,允许的值集预计会随时间变化。 |
interfaceInfo (可选) |
body |
字符串 |
如果适用,有关与 VIM 的接口的信息,例如与 VIM 通信的接口端点的 URI。适用的键取决于 vimType 的内容。 或者,这些信息可能已配置到 VNFM 并绑定到 vimId。 |
endpoint |
body |
字符串 |
表示接口端点的 url。 |
accessInfo (可选) |
body |
字符串 |
访问 VIM 的身份验证凭据,以及其他访问相关信息,例如租户或基础设施资源组(请参阅注释)。适用的键取决于 vimType 的内容。 如果 VimConnectionInfo 结构是 HTTP 响应有效负载主体的一部分,则不应包含敏感属性(例如密码)。 如果 VimConnectionInfo 结构是 HTTP 请求有效负载主体的一部分,则如果尚未通过其他方式配置,则应存在敏感属性(例如密码)。 |
instantiationState |
body |
字符串 |
VNF 实例的实例化状态。 NOT_INSTANTIATED:VNF 实例已终止或未实例化。 INSTANTIATED:VNF 实例已实例化。 |
instantiatedVnfInfo (可选) |
body |
对象 |
特定于已实例化的 VNF 实例的信息。如果 instantiationState 属性值为 INSTANTIATED,则应存在此属性。 |
flavourId |
body |
字符串 |
应用于此 VNF 实例的 VNF 部署风味的标识符。 |
vnfState (可选) |
body |
字符串 |
VNF 实例的状态。 |
scaleStatus (可选) |
body |
数组 |
VNF 的缩放状态,每个方面一个条目。表示 VNF 相对于该方面缩放到多大程度。 |
aspectId |
body |
字符串 |
缩放方面的标识符。 |
scaleLevel |
body |
字符串 |
指示缩放级别。最小值应为 0,最大值应小于或等于 VNFD 中描述的 maxScaleLevel。 |
extCpInfo |
body |
数组 |
VNF 实例暴露的外部 CP 的信息。 |
id |
body |
字符串 |
外部 CP 实例及其相关信息实例的标识符。 |
cpdId |
body |
字符串 |
外部 CPD 的标识符,在 VNFD 中为 VnfExtCpd。一个标识符,对于 VNF 实例内的相应类型是唯一的,但不一定全局唯一。表示形式:变长字符串。 |
cpProtocolInfo |
body |
数组 |
此 CP 的网络协议信息。 |
layerProtocol |
body |
字符串 |
与网络地址信息关联的层和协议的标识符。 允许的值:IP_OVER_ETHERNET |
ipOverEthernet (可选) |
body |
对象 |
要分配给 extCP 实例的以太网上的 IP 地址。如果 layerProtocol 等于“IP_OVER_ETHERNET”,则必须存在,否则必须不存在。 |
macAddress (可选) |
body |
字符串 |
如果已分配,则为 MAC 地址。 |
ipAddresses (可选) |
body |
数组 |
分配给 CP 实例的地址。每个条目代表每个子网通过固定或动态 IP 地址分配的 IP 地址。 |
type |
body |
字符串 |
IP 地址的类型。允许的值:IPV4、IPV6。 |
addresses (可选) |
body |
数组 |
要分配的固定地址(如果提供了“subnetId”,则来自子网)。“fixedAddresses”或“numDynamicAddresses”中的一个必须存在。 |
isDynamic (可选) |
body |
布尔值 |
指示这组地址是动态分配的(true)还是基于从 API 消费者提供的输入地址信息(false)。如果存在“addresses”,则必须存在,否则必须不存在。 |
subnetId (可选) |
body |
字符串 |
VIM 中子网资源标识符定义的子网。如果存在此属性,将分配来自该子网的 IP 地址;否则,将分配未绑定到子网的 IP 地址。 |
extLinkPortId (可选) |
body |
字符串 |
“extVirtualLinkInfo”结构体内的“extLinkPortInfo”结构的标识符。如果 CP 关联到链路端口,则必须存在。 |
metadata (可选) |
body |
字符串 |
关于此外部 CP 的元数据。 |
associatedVnfcCpId (可选) |
body |
字符串 |
“VnfcResourceInfo”结构体中“vnfcCpInfo”结构的标识符,该结构体表示由此外部 CP 实例暴露的 VNFC CP。如果此 CP 实例映射到 VNFC CP,则必须存在。 |
extVirtualLinkInfo (可选) |
body |
数组 |
VNF 实例连接到的外部 VL 的信息。 |
id |
body |
字符串 |
外部 VL 的标识符以及相关的外部 VL 信息实例。标识符由管理此 VL 实例的 NFV-MANO 实体分配。 |
resourceHandle |
body |
对象 |
实现此 VL 的资源的引用。 |
vimConnectionId (可选) |
body |
字符串 |
用于管理资源的 VIM 连接的标识符。仅当直接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。 |
resourceId |
body |
字符串 |
VIM 或资源提供商范围内的资源的标识符。 |
vimLevelResourceType (可选) |
body |
字符串 |
VIM 或资源提供商范围内的资源的类型。provider。 |
extLinkPorts (可选) |
body |
数组 |
此 VL 的链路端口。 |
id |
body |
字符串 |
提供此链路端口的实体提供的此链路端口的标识符。 |
resourceHandle |
body |
对象 |
实现此 VL 的资源的引用。 |
vimConnectionId (可选) |
body |
字符串 |
用于管理资源的 VIM 连接的标识符。仅当直接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。 |
resourceId |
body |
字符串 |
VIM 或资源提供商范围内的资源的标识符。 |
vimLevelResourceType (可选) |
body |
字符串 |
VIM 或资源提供商范围内的资源的类型。provider。 |
cpInstanceId (可选) |
body |
字符串 |
连接到此链路端口的 VNF 的外部 CP 的标识符。任何外部连接点实例最多只能关联一个链路端口。该值引用 VnfInstance 中的“extCpInfo”条目。 |
extManagedVirtualLinkInfo (可选) |
body |
数组 |
VNF 实例的外部管理的内部 VL 的信息。 |
id |
body |
字符串 |
外部管理的内部 VL 的标识符以及相关的外部管理的 VL 信息实例。标识符由管理此 VL 实例的 NFV-MANO 实体分配。 |
vnfVirtualLinkDescId |
body |
字符串 |
VNFD 中的 VNF 虚拟链路描述符 (VLD) 的标识符。 |
networkResource |
body |
对象 |
对 VirtualNetwork 资源的引用。 |
vimConnectionId (可选) |
body |
字符串 |
用于管理资源的 VIM 连接的标识符。仅当直接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。 |
resourceId |
body |
字符串 |
VIM 或资源提供商范围内的资源的标识符。 |
vimLevelResourceType (可选) |
body |
字符串 |
VIM 或资源提供商范围内的资源的类型。provider。 |
vnfLinkPorts (可选) |
body |
数组 |
此 VL 的链路端口。 |
id |
body |
字符串 |
提供此链路端口的实体提供的此链路端口的标识符。 |
resourceHandle |
body |
对象 |
实现此链路端口的虚拟化网络资源的引用。 |
vimConnectionId (可选) |
body |
字符串 |
用于管理资源的 VIM 连接的标识符。仅当直接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。 |
resourceId |
body |
字符串 |
VIM 或资源提供商范围内的资源的标识符。 |
vimLevelResourceType (可选) |
body |
字符串 |
VIM 或资源提供商范围内的资源的类型。provider。 |
cpInstanceId (可选) |
body |
字符串 |
当链路端口由 VNF 用于外部连接时,此属性表示与此链路端口关联的标识符。 当链路端口由 VNF 用于内部连接时,此属性表示要连接到此链路端口的 VNFC CP。 当链路端口由 VNF 用于外部连接时,必须存在。 如果用于引用 VNFC CP 实例,则可能存在。任何外部连接点实例或内部连接点(即 VNFC CP)实例最多只能关联一个链路端口。 该值引用 VnfInstance 中的“extCpInfo”条目或 VnfInstance 中“vnfcResourceInfo”条目的“vnfcCpInfo”条目。 |
vnfcResourceInfo (可选) |
body |
数组 |
VNF 实例的 VNFC 使用的虚拟化计算和存储资源的信息。 |
id |
body |
字符串 |
此 VnfcResourceInfo 实例的标识符。 |
vduId |
body |
字符串 |
对 VNFD 中适用 VDU 的引用。 |
computeResource |
body |
对象 |
对 VirtualCompute 资源的引用。 |
vimConnectionId (可选) |
body |
字符串 |
用于管理资源的 VIM 连接的标识符。仅当直接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。 |
resourceId |
body |
字符串 |
VIM 或资源提供商范围内的资源的标识符。 |
vimLevelResourceType (可选) |
body |
字符串 |
VIM 或资源提供商范围内的资源的类型。provider。 |
storageResourceIds (可选) |
body |
数组 |
对 VirtualStorage 资源的引用。该值引用 VnfInstance 中的 VirtualStorageResourceInfo 条目。 |
vnfcCpInfo (可选) |
body |
数组 |
VNFC 实例的 CP。当 VNFC 实例的特定 CP 与 VNF 的外部 CP 关联时,必须存在。否则,可能存在。 |
id |
body |
字符串 |
此 VNFC CP 实例的标识符以及关联的数组条目。 |
cpdId |
body |
字符串 |
VNFD 中 VDU CPD 的标识符,cpdId。 |
vnfExtCpId (可选) |
body |
字符串 |
当 VNFC CP 作为 VNF 的外部 CP 暴露时,此外部 VNF CP 的标识符。 |
cpProtocolInfo (可选) |
body |
数组 |
此 CP 的网络协议信息。 |
layerProtocol |
body |
字符串 |
与网络地址信息关联的层和协议的标识符。 允许的值:IP_OVER_ETHERNET |
ipOverEthernet (可选) |
body |
对象 |
要分配给 extCP 实例的以太网上的 IP 地址。如果 layerProtocol 等于“IP_OVER_ETHERNET”,则必须存在,否则必须不存在。 |
macAddress (可选) |
body |
字符串 |
如果已分配,则为 MAC 地址。 |
ipAddresses (可选) |
body |
数组 |
分配给 CP 实例的地址。每个条目代表每个子网通过固定或动态 IP 地址分配的 IP 地址。 |
type |
body |
字符串 |
IP 地址的类型。允许的值:IPV4、IPV6。 |
addresses (可选) |
body |
数组 |
要分配的固定地址(如果提供了“subnetId”,则来自子网)。“fixedAddresses”或“numDynamicAddresses”中的一个必须存在。 |
isDynamic (可选) |
body |
布尔值 |
指示这组地址是动态分配的(true)还是基于从 API 消费者提供的输入地址信息(false)。如果存在“addresses”,则必须存在,否则必须不存在。 |
subnetId (可选) |
body |
字符串 |
VIM 中子网资源标识符定义的子网。如果存在此属性,将分配来自该子网的 IP 地址;否则,将分配未绑定到子网的 IP 地址。 |
vnfLinkPortId (可选) |
body |
字符串 |
“VnfVirtualLinkResourceInfo”结构体中的“vnfLinkPorts”结构的标识符。如果 CP 关联到链路端口,则必须存在。 |
vnfVirtualLinkResourceInfo (可选) |
body |
数组 |
VNF 实例的 VL 使用的虚拟化网络资源的信息。 |
id |
body |
字符串 |
此 VnfVirtualLinkResourceInfo 实例的标识符。 |
vnfVirtualLinkDescId |
body |
字符串 |
VNFD 中的 VNF 虚拟链路描述符 (VLD) 的标识符。 |
networkResource |
body |
对象 |
对 VirtualNetwork 资源的引用。 |
vimConnectionId (可选) |
body |
字符串 |
用于管理资源的 VIM 连接的标识符。仅当直接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。 |
resourceId |
body |
字符串 |
VIM 或资源提供商范围内的资源的标识符。 |
vimLevelResourceType (可选) |
body |
字符串 |
VIM 或资源提供商范围内的资源的类型。provider。 |
vnfLinkPorts (可选) |
body |
数组 |
此 VL 的链路端口。 |
id |
body |
字符串 |
提供此链路端口的实体提供的此链路端口的标识符。 |
resourceHandle |
body |
对象 |
实现此链路端口的虚拟化网络资源的引用。 |
vimConnectionId (可选) |
body |
字符串 |
用于管理资源的 VIM 连接的标识符。仅当直接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。 |
resourceId |
body |
字符串 |
VIM 或资源提供商范围内的资源的标识符。 |
vimLevelResourceType (可选) |
body |
字符串 |
VIM 或资源提供商范围内的资源的类型。provider。 |
cpInstanceId (可选) |
body |
字符串 |
当链路端口由 VNF 用于外部连接时,此属性表示与此链路端口关联的标识符。 当链路端口由 VNF 用于内部连接时,此属性表示要连接到此链路端口的 VNFC CP。 当链路端口由 VNF 用于外部连接时,必须存在。 如果用于引用 VNFC CP 实例,则可能存在。任何外部连接点实例或内部连接点(即 VNFC CP)实例最多只能关联一个链路端口。 该值引用 VnfInstance 中的“extCpInfo”条目或 VnfInstance 中“vnfcResourceInfo”条目的“vnfcCpInfo”条目。 |
virtualStorageResourceInfo (可选) |
body |
数组 |
用作 VNF 实例存储的虚拟化存储资源的信息。 |
id |
body |
字符串 |
此 VirtualStorageResourceInfo 实例的标识符。 |
virtualStorageDescId |
body |
字符串 |
VNFD 中 VirtualStorageDesc 的标识符。 |
storageResource |
body |
对象 |
对 VirtualStorage 资源的引用。 |
vimConnectionId (可选) |
body |
字符串 |
用于管理资源的 VIM 连接的标识符。仅当直接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。 |
resourceId |
body |
字符串 |
VIM 或资源提供商范围内的资源的标识符。 |
vimLevelResourceType (可选) |
body |
字符串 |
VIM 或资源提供商范围内的资源的类型。provider。 |
vnfcInfo |
body |
字符串 |
关于 VNFC 实例的信息。 |
id |
body |
字符串 |
VNFC 实例的标识符。 |
vduId |
body |
字符串 |
对 VNFD 中适用的 VDU 信息元素的引用。 |
vnfcState |
body |
字符串 |
VNFC 实例的状态。允许的值 STARTED:VNFC 实例已启动并正在运行。 STOPPED:VNFC 实例已关闭。 |
_links |
body |
对象 |
指向与此资源相关的资源的链接。 |
响应示例¶
{
"id": "27d7c019-39d1-4203-93b2-fe3776bbea74",
"instantiatedVnfInfo": {
"additionalParams": {
"lcm-operation-user-data": "./UserData/lcm_user_data.py",
"lcm-operation-user-data-class": "SampleUserData"
},
"extCpInfo": [
{
"associatedVnfcCpId": "4c59e5ce-85c1-4d58-9c29-d4c88826fd6f",
"cpProtocolInfo": [
{
"ipOverEthernet": {
"ipAddresses": [
{
"addresses": [],
"isDynamic": true,
"subnetId": "8d0bee9e-c2f0-470a-abd8-606e84d888a6",
"type": "IPV4"
}
],
"macAddress": null
},
"layerProtocol": "IP_OVER_ETHERNET"
}
],
"cpdId": "CP1",
"extLinkPortId": null,
"id": "491bc7a8-4eb8-43c3-be96-d69f5a3262ff"
}
],
"extVirtualLinkInfo": [
{
"id": "net0",
"resourceHandle": {
"resourceId": "9179e873-ace2-4c4b-b1f3-318576baba78",
"vimConnectionId": null,
"vimLevelResourceType": null
}
}
],
"flavourId": "simple",
"vnfState": "STARTED",
"vnfVirtualLinkResourceInfo": [
{
"id": "cb63f573-472e-425e-a4c8-c6e47169fd74",
"networkResource": {
"resourceId": "",
"vimConnectionId": null,
"vimLevelResourceType": null
},
"vnfLinkPorts": [
{
"cpInstanceId": "adcc13bd-c6ef-4c4f-83b6-b366d43e659d",
"id": "fa7dbb85-1f97-4794-9811-699126ab93f2",
"resourceHandle": {
"resourceId": "65cdb3c3-35bb-4f91-8ac5-b165e22381c8",
"vimConnectionId": "95ccd60b-d8e9-4e65-ac31-1c1c839d9896",
"vimLevelResourceType": "OS::Neutron::Port"
}
}
],
"vnfVirtualLinkDescId": "internalVL1"
},
{
"id": "01cf48a2-bd32-4a81-a0ed-768e4f8ff0fa",
"networkResource": {
"resourceId": "9179e873-ace2-4c4b-b1f3-318576baba78",
"vimConnectionId": null,
"vimLevelResourceType": "OS::Neutron::Net"
},
"vnfLinkPorts": [
{
"cpInstanceId": "adcc13bd-c6ef-4c4f-83b6-b366d43e659d",
"id": "7188b765-285c-43a8-a889-07a32afb3530",
"resourceHandle": {
"resourceId": "",
"vimConnectionId": null,
"vimLevelResourceType": null
}
}
],
"vnfVirtualLinkDescId": "net0"
}
],
"vnfcInfo": [
{
"id": "3771810f-f5b0-493f-9e3c-60719e227be6",
"vduId": "VDU1",
"vnfcState": "STARTED"
}
],
"vnfcResourceInfo": [
{
"computeResource": {
"resourceId": "ebd3eeac-b1c6-4375-a625-d743e9892b6e",
"vimConnectionId": "95ccd60b-d8e9-4e65-ac31-1c1c839d9896",
"vimLevelResourceType": "OS::Nova::Server"
},
"id": "4c59e5ce-85c1-4d58-9c29-d4c88826fd6f",
"storageResourceIds": [],
"vduId": "VDU1",
"vnfcCpInfo": [
{
"cpProtocolInfo": [
{
"ipOverEthernet": {
"ipAddresses": [
{
"addresses": [],
"isDynamic": true,
"subnetId": "8d0bee9e-c2f0-470a-abd8-606e84d888a6",
"type": "IPV4"
}
],
"macAddress": null
},
"layerProtocol": "IP_OVER_ETHERNET"
}
],
"cpdId": "CP1",
"id": "adcc13bd-c6ef-4c4f-83b6-b366d43e659d",
"vnfExtCpId": null,
"vnfLinkPortId": "7188b765-285c-43a8-a889-07a32afb3530"
}
]
}
]
},
"instantiationState": "INSTANTIATED",
"metadata": {
"tenant": "nfv"
},
"vimConnectionInfo": [
{
"accessInfo": {},
"extra": {},
"id": "e24f9796-a8e9-4cb0-85ce-5920dcddafa1",
"interfaceInfo": {},
"vimId": "95ccd60b-d8e9-4e65-ac31-1c1c839d9896",
"vimType": "ETSINFV.OPENSTACK_KEYSTONE.V_2"
},
{
"accessInfo": {},
"extra": {},
"id": "32596836-7ac3-4213-9ae3-3469d7e09294",
"interfaceInfo": {},
"vimId": "95ccd60b-d8e9-4e65-ac31-1c1c839d9896",
"vimType": "openstack"
}
],
"vnfInstanceName": "vnf-27d7c019-39d1-4203-93b2-fe3776bbea74",
"vnfPkgId": "5ac73423-f102-4574-911e-578dad9fa8fe",
"vnfProductName": "Sample VNF",
"vnfProvider": "Company",
"vnfSoftwareVersion": "1.0",
"vnfdId": "b1bb0ce7-ebca-4fa7-95ed-4840d70a1177",
"vnfdVersion": "1.0",
"_links": {
"changeExtConn": {
"href": "https://:9890/vnflcm/v1/vnf_instances/27d7c019-39d1-4203-93b2-fe3776bbea74/change_ext_conn"
},
"heal": {
"href": "https://:9890/vnflcm/v1/vnf_instances/27d7c019-39d1-4203-93b2-fe3776bbea74/heal"
},
"scale": {
"href": "https://:9890/vnflcm/v1/vnf_instances/27d7c019-39d1-4203-93b2-fe3776bbea74/scale"
},
"self": {
"href": "https://:9890/vnflcm/v1/vnf_instances/27d7c019-39d1-4203-93b2-fe3776bbea74"
},
"terminate": {
"href": "https://:9890/vnflcm/v1/vnf_instances/27d7c019-39d1-4203-93b2-fe3776bbea74/terminate"
}
}
}
GET 方法查询有关多个 VNF 实例的信息。在 Victoria 版本中,添加了基于属性的过滤表达式(用于 VnfInstance),该表达式遵循 ETSI GS NFV SOL13 的第 5.2 条。
如果响应包含 LINK HTTP 标头(参见 IETF RFC 8288 [1]),并且“rel”属性设置为“next”,则 API 消费者可以发送 GET 请求到 LINK 标头中通信的 URI,以获取下一页结果。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
401 - 未授权 |
用户必须在发出请求之前进行身份验证。 |
403 - 禁止 |
策略不允许当前用户执行此操作。 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
id |
路径 |
字符串 |
VNF 实例的标识符。 |
vnfInstanceName (可选) |
body |
字符串 |
VNF 实例的名称。 |
vnfInstanceDescription (可选) |
body |
字符串 |
VNF 实例的人性化描述。 |
vnfdId |
body |
字符串 |
VNF 实例所基于的 VNFD 的标识符。 |
vnfProvider |
body |
字符串 |
VNF 和 VNFD 的提供者。该值从 VNFD 复制而来。 |
vnfProductName |
body |
字符串 |
用于标识 VNF 产品名称。该值从 VNFD 复制而来。 |
vnfSoftwareVersion |
body |
字符串 |
VNF 的软件版本。该值从 VNFD 复制而来。 |
vnfdVersion |
body |
字符串 |
标识 VNFD 的版本。该值从 VNFD 复制而来。 |
vnfPkgId |
body |
字符串 |
NFVO 关于 VNF 基于的特定 VNF 包所持有的信息的标识符。此标识符由 NFVO 分配,并且可以使用 PATCH 方法进行修改。 |
vimConnectionInfo (可选) |
body |
数组 |
有关 VIM 连接的信息,用于管理 VNF 实例的资源,或引用外部/外部管理的虚拟链路。 仅当直接模式下的 VNF 相关资源管理适用时,才应支持此属性,并且可能存在。 |
id |
body |
字符串 |
VIM 连接的标识符。此标识符由 NFVO 管理。 |
vimId (可选) |
body |
字符串 |
VIM 实例的标识符。此标识符由 NFVO 管理。 如果已通过本文档范围之外的方式配置到 VNFM,则应存在,否则应不存在。 |
vimType (可选) |
body |
字符串 |
VIM 信息的不同类型的区分器。 此属性的值根据 VIM 的类型确定“interfaceInfo”和“accessInfo”属性的结构。 随着新的 VIM 类型或版本的可用,允许的值集预计会随时间变化。 |
interfaceInfo (可选) |
body |
字符串 |
如果适用,有关与 VIM 的接口的信息,例如与 VIM 通信的接口端点的 URI。适用的键取决于 vimType 的内容。 或者,这些信息可能已配置到 VNFM 并绑定到 vimId。 |
endpoint |
body |
字符串 |
表示接口端点的 url。 |
accessInfo (可选) |
body |
字符串 |
访问 VIM 的身份验证凭据,以及其他访问相关信息,例如租户或基础设施资源组(请参阅注释)。适用的键取决于 vimType 的内容。 如果 VimConnectionInfo 结构是 HTTP 响应有效负载主体的一部分,则不应包含敏感属性(例如密码)。 如果 VimConnectionInfo 结构是 HTTP 请求有效负载主体的一部分,则如果尚未通过其他方式配置,则应存在敏感属性(例如密码)。 |
instantiationState |
body |
字符串 |
VNF 实例的实例化状态。 NOT_INSTANTIATED:VNF 实例已终止或未实例化。 INSTANTIATED:VNF 实例已实例化。 |
instantiatedVnfInfo (可选) |
body |
对象 |
特定于已实例化的 VNF 实例的信息。如果 instantiationState 属性值为 INSTANTIATED,则应存在此属性。 |
flavourId |
body |
字符串 |
应用于此 VNF 实例的 VNF 部署风味的标识符。 |
vnfState (可选) |
body |
字符串 |
VNF 实例的状态。 |
scaleStatus (可选) |
body |
数组 |
VNF 的缩放状态,每个方面一个条目。表示 VNF 相对于该方面缩放到多大程度。 |
aspectId |
body |
字符串 |
缩放方面的标识符。 |
scaleLevel |
body |
字符串 |
指示缩放级别。最小值应为 0,最大值应小于或等于 VNFD 中描述的 maxScaleLevel。 |
extCpInfo |
body |
数组 |
VNF 实例暴露的外部 CP 的信息。 |
id |
body |
字符串 |
外部 CP 实例及其相关信息实例的标识符。 |
cpdId |
body |
字符串 |
外部 CPD 的标识符,在 VNFD 中为 VnfExtCpd。一个标识符,对于 VNF 实例内的相应类型是唯一的,但不一定全局唯一。表示形式:变长字符串。 |
cpProtocolInfo |
body |
数组 |
此 CP 的网络协议信息。 |
layerProtocol |
body |
字符串 |
与网络地址信息关联的层和协议的标识符。 允许的值:IP_OVER_ETHERNET |
ipOverEthernet (可选) |
body |
对象 |
要分配给 extCP 实例的以太网上的 IP 地址。如果 layerProtocol 等于“IP_OVER_ETHERNET”,则必须存在,否则必须不存在。 |
macAddress (可选) |
body |
字符串 |
如果已分配,则为 MAC 地址。 |
ipAddresses (可选) |
body |
数组 |
分配给 CP 实例的地址。每个条目代表每个子网通过固定或动态 IP 地址分配的 IP 地址。 |
type |
body |
字符串 |
IP 地址的类型。允许的值:IPV4、IPV6。 |
addresses (可选) |
body |
数组 |
要分配的固定地址(如果提供了“subnetId”,则来自子网)。“fixedAddresses”或“numDynamicAddresses”中的一个必须存在。 |
isDynamic (可选) |
body |
布尔值 |
指示这组地址是动态分配的(true)还是基于从 API 消费者提供的输入地址信息(false)。如果存在“addresses”,则必须存在,否则必须不存在。 |
subnetId (可选) |
body |
字符串 |
VIM 中子网资源标识符定义的子网。如果存在此属性,将分配来自该子网的 IP 地址;否则,将分配未绑定到子网的 IP 地址。 |
extLinkPortId (可选) |
body |
字符串 |
“extVirtualLinkInfo”结构体内的“extLinkPortInfo”结构的标识符。如果 CP 关联到链路端口,则必须存在。 |
metadata (可选) |
body |
字符串 |
关于此外部 CP 的元数据。 |
associatedVnfcCpId (可选) |
body |
字符串 |
“VnfcResourceInfo”结构体中“vnfcCpInfo”结构的标识符,该结构体表示由此外部 CP 实例暴露的 VNFC CP。如果此 CP 实例映射到 VNFC CP,则必须存在。 |
extVirtualLinkInfo (可选) |
body |
数组 |
VNF 实例连接到的外部 VL 的信息。 |
id |
body |
字符串 |
外部 VL 的标识符以及相关的外部 VL 信息实例。标识符由管理此 VL 实例的 NFV-MANO 实体分配。 |
resourceHandle |
body |
对象 |
实现此 VL 的资源的引用。 |
vimConnectionId (可选) |
body |
字符串 |
用于管理资源的 VIM 连接的标识符。仅当直接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。 |
resourceId |
body |
字符串 |
VIM 或资源提供商范围内的资源的标识符。 |
vimLevelResourceType (可选) |
body |
字符串 |
VIM 或资源提供商范围内的资源的类型。provider。 |
extLinkPorts (可选) |
body |
数组 |
此 VL 的链路端口。 |
id |
body |
字符串 |
提供此链路端口的实体提供的此链路端口的标识符。 |
resourceHandle |
body |
对象 |
实现此 VL 的资源的引用。 |
vimConnectionId (可选) |
body |
字符串 |
用于管理资源的 VIM 连接的标识符。仅当直接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。 |
resourceId |
body |
字符串 |
VIM 或资源提供商范围内的资源的标识符。 |
vimLevelResourceType (可选) |
body |
字符串 |
VIM 或资源提供商范围内的资源的类型。provider。 |
cpInstanceId (可选) |
body |
字符串 |
连接到此链路端口的 VNF 的外部 CP 的标识符。任何外部连接点实例最多只能关联一个链路端口。该值引用 VnfInstance 中的“extCpInfo”条目。 |
extManagedVirtualLinkInfo (可选) |
body |
数组 |
VNF 实例的外部管理的内部 VL 的信息。 |
id |
body |
字符串 |
外部管理的内部 VL 的标识符以及相关的外部管理的 VL 信息实例。标识符由管理此 VL 实例的 NFV-MANO 实体分配。 |
vnfVirtualLinkDescId |
body |
字符串 |
VNFD 中的 VNF 虚拟链路描述符 (VLD) 的标识符。 |
networkResource |
body |
对象 |
对 VirtualNetwork 资源的引用。 |
vimConnectionId (可选) |
body |
字符串 |
用于管理资源的 VIM 连接的标识符。仅当直接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。 |
resourceId |
body |
字符串 |
VIM 或资源提供商范围内的资源的标识符。 |
vimLevelResourceType (可选) |
body |
字符串 |
VIM 或资源提供商范围内的资源的类型。provider。 |
vnfLinkPorts (可选) |
body |
数组 |
此 VL 的链路端口。 |
id |
body |
字符串 |
提供此链路端口的实体提供的此链路端口的标识符。 |
resourceHandle |
body |
对象 |
实现此链路端口的虚拟化网络资源的引用。 |
vimConnectionId (可选) |
body |
字符串 |
用于管理资源的 VIM 连接的标识符。仅当直接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。 |
resourceId |
body |
字符串 |
VIM 或资源提供商范围内的资源的标识符。 |
vimLevelResourceType (可选) |
body |
字符串 |
VIM 或资源提供商范围内的资源的类型。provider。 |
cpInstanceId (可选) |
body |
字符串 |
当链路端口由 VNF 用于外部连接时,此属性表示与此链路端口关联的标识符。 当链路端口由 VNF 用于内部连接时,此属性表示要连接到此链路端口的 VNFC CP。 当链路端口由 VNF 用于外部连接时,必须存在。 如果用于引用 VNFC CP 实例,则可能存在。任何外部连接点实例或内部连接点(即 VNFC CP)实例最多只能关联一个链路端口。 该值引用 VnfInstance 中的“extCpInfo”条目或 VnfInstance 中“vnfcResourceInfo”条目的“vnfcCpInfo”条目。 |
vnfcResourceInfo (可选) |
body |
数组 |
VNF 实例的 VNFC 使用的虚拟化计算和存储资源的信息。 |
id |
body |
字符串 |
此 VnfcResourceInfo 实例的标识符。 |
vduId |
body |
字符串 |
对 VNFD 中适用 VDU 的引用。 |
computeResource |
body |
对象 |
对 VirtualCompute 资源的引用。 |
vimConnectionId (可选) |
body |
字符串 |
用于管理资源的 VIM 连接的标识符。仅当直接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。 |
resourceId |
body |
字符串 |
VIM 或资源提供商范围内的资源的标识符。 |
vimLevelResourceType (可选) |
body |
字符串 |
VIM 或资源提供商范围内的资源的类型。provider。 |
storageResourceIds (可选) |
body |
数组 |
对 VirtualStorage 资源的引用。该值引用 VnfInstance 中的 VirtualStorageResourceInfo 条目。 |
vnfcCpInfo (可选) |
body |
数组 |
VNFC 实例的 CP。当 VNFC 实例的特定 CP 与 VNF 的外部 CP 关联时,必须存在。否则,可能存在。 |
id |
body |
字符串 |
此 VNFC CP 实例的标识符以及关联的数组条目。 |
cpdId |
body |
字符串 |
VNFD 中 VDU CPD 的标识符,cpdId。 |
vnfExtCpId (可选) |
body |
字符串 |
当 VNFC CP 作为 VNF 的外部 CP 暴露时,此外部 VNF CP 的标识符。 |
cpProtocolInfo (可选) |
body |
数组 |
此 CP 的网络协议信息。 |
layerProtocol |
body |
字符串 |
与网络地址信息关联的层和协议的标识符。 允许的值:IP_OVER_ETHERNET |
ipOverEthernet (可选) |
body |
对象 |
要分配给 extCP 实例的以太网上的 IP 地址。如果 layerProtocol 等于“IP_OVER_ETHERNET”,则必须存在,否则必须不存在。 |
macAddress (可选) |
body |
字符串 |
如果已分配,则为 MAC 地址。 |
ipAddresses (可选) |
body |
数组 |
分配给 CP 实例的地址。每个条目代表每个子网通过固定或动态 IP 地址分配的 IP 地址。 |
type |
body |
字符串 |
IP 地址的类型。允许的值:IPV4、IPV6。 |
addresses (可选) |
body |
数组 |
要分配的固定地址(如果提供了“subnetId”,则来自子网)。“fixedAddresses”或“numDynamicAddresses”中的一个必须存在。 |
isDynamic (可选) |
body |
布尔值 |
指示这组地址是动态分配的(true)还是基于从 API 消费者提供的输入地址信息(false)。如果存在“addresses”,则必须存在,否则必须不存在。 |
subnetId (可选) |
body |
字符串 |
VIM 中子网资源标识符定义的子网。如果存在此属性,将分配来自该子网的 IP 地址;否则,将分配未绑定到子网的 IP 地址。 |
vnfLinkPortId (可选) |
body |
字符串 |
“VnfVirtualLinkResourceInfo”结构体中的“vnfLinkPorts”结构的标识符。如果 CP 关联到链路端口,则必须存在。 |
vnfVirtualLinkResourceInfo (可选) |
body |
数组 |
VNF 实例的 VL 使用的虚拟化网络资源的信息。 |
id |
body |
字符串 |
此 VnfVirtualLinkResourceInfo 实例的标识符。 |
vnfVirtualLinkDescId |
body |
字符串 |
VNFD 中的 VNF 虚拟链路描述符 (VLD) 的标识符。 |
networkResource |
body |
对象 |
对 VirtualNetwork 资源的引用。 |
vimConnectionId (可选) |
body |
字符串 |
用于管理资源的 VIM 连接的标识符。仅当直接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。 |
resourceId |
body |
字符串 |
VIM 或资源提供商范围内的资源的标识符。 |
vimLevelResourceType (可选) |
body |
字符串 |
VIM 或资源提供商范围内的资源的类型。provider。 |
vnfLinkPorts (可选) |
body |
数组 |
此 VL 的链路端口。 |
id |
body |
字符串 |
提供此链路端口的实体提供的此链路端口的标识符。 |
resourceHandle |
body |
对象 |
实现此链路端口的虚拟化网络资源的引用。 |
vimConnectionId (可选) |
body |
字符串 |
用于管理资源的 VIM 连接的标识符。仅当直接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。 |
resourceId |
body |
字符串 |
VIM 或资源提供商范围内的资源的标识符。 |
vimLevelResourceType (可选) |
body |
字符串 |
VIM 或资源提供商范围内的资源的类型。provider。 |
cpInstanceId (可选) |
body |
字符串 |
当链路端口由 VNF 用于外部连接时,此属性表示与此链路端口关联的标识符。 当链路端口由 VNF 用于内部连接时,此属性表示要连接到此链路端口的 VNFC CP。 当链路端口由 VNF 用于外部连接时,必须存在。 如果用于引用 VNFC CP 实例,则可能存在。任何外部连接点实例或内部连接点(即 VNFC CP)实例最多只能关联一个链路端口。 该值引用 VnfInstance 中的“extCpInfo”条目或 VnfInstance 中“vnfcResourceInfo”条目的“vnfcCpInfo”条目。 |
virtualStorageResourceInfo (可选) |
body |
数组 |
用作 VNF 实例存储的虚拟化存储资源的信息。 |
id |
body |
字符串 |
此 VirtualStorageResourceInfo 实例的标识符。 |
virtualStorageDescId |
body |
字符串 |
VNFD 中 VirtualStorageDesc 的标识符。 |
storageResource |
body |
对象 |
对 VirtualStorage 资源的引用。 |
vimConnectionId (可选) |
body |
字符串 |
用于管理资源的 VIM 连接的标识符。仅当直接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。 |
resourceId |
body |
字符串 |
VIM 或资源提供商范围内的资源的标识符。 |
vimLevelResourceType (可选) |
body |
字符串 |
VIM 或资源提供商范围内的资源的类型。provider。 |
vnfcInfo |
body |
字符串 |
关于 VNFC 实例的信息。 |
id |
body |
字符串 |
VNFC 实例的标识符。 |
vduId |
body |
字符串 |
对 VNFD 中适用的 VDU 信息元素的引用。 |
vnfcState |
body |
字符串 |
VNFC 实例的状态。允许的值 STARTED:VNFC 实例已启动并正在运行。 STOPPED:VNFC 实例已关闭。 |
_links |
body |
对象 |
指向与此资源相关的资源的链接。 |
响应示例¶
[
{
"id": "27d7c019-39d1-4203-93b2-fe3776bbea74",
"instantiatedVnfInfo": {
"additionalParams": {
"lcm-operation-user-data": "./UserData/lcm_user_data.py",
"lcm-operation-user-data-class": "SampleUserData"
},
"extCpInfo": [
{
"associatedVnfcCpId": "4c59e5ce-85c1-4d58-9c29-d4c88826fd6f",
"cpProtocolInfo": [
{
"ipOverEthernet": {
"ipAddresses": [
{
"addresses": [],
"isDynamic": true,
"subnetId": "8d0bee9e-c2f0-470a-abd8-606e84d888a6",
"type": "IPV4"
}
],
"macAddress": null
},
"layerProtocol": "IP_OVER_ETHERNET"
}
],
"cpdId": "CP1",
"extLinkPortId": null,
"id": "491bc7a8-4eb8-43c3-be96-d69f5a3262ff"
}
],
"extVirtualLinkInfo": [
{
"id": "net0",
"resourceHandle": {
"resourceId": "9179e873-ace2-4c4b-b1f3-318576baba78",
"vimConnectionId": null,
"vimLevelResourceType": null
}
}
],
"flavourId": "simple",
"vnfState": "STARTED",
"vnfVirtualLinkResourceInfo": [
{
"id": "cb63f573-472e-425e-a4c8-c6e47169fd74",
"networkResource": {
"resourceId": "",
"vimConnectionId": null,
"vimLevelResourceType": null
},
"vnfLinkPorts": [
{
"cpInstanceId": "adcc13bd-c6ef-4c4f-83b6-b366d43e659d",
"id": "fa7dbb85-1f97-4794-9811-699126ab93f2",
"resourceHandle": {
"resourceId": "65cdb3c3-35bb-4f91-8ac5-b165e22381c8",
"vimConnectionId": "95ccd60b-d8e9-4e65-ac31-1c1c839d9896",
"vimLevelResourceType": "OS::Neutron::Port"
}
}
],
"vnfVirtualLinkDescId": "internalVL1"
},
{
"id": "01cf48a2-bd32-4a81-a0ed-768e4f8ff0fa",
"networkResource": {
"resourceId": "9179e873-ace2-4c4b-b1f3-318576baba78",
"vimConnectionId": null,
"vimLevelResourceType": "OS::Neutron::Net"
},
"vnfLinkPorts": [
{
"cpInstanceId": "adcc13bd-c6ef-4c4f-83b6-b366d43e659d",
"id": "7188b765-285c-43a8-a889-07a32afb3530",
"resourceHandle": {
"resourceId": "",
"vimConnectionId": null,
"vimLevelResourceType": null
}
}
],
"vnfVirtualLinkDescId": "net0"
}
],
"vnfcInfo": [
{
"id": "3771810f-f5b0-493f-9e3c-60719e227be6",
"vduId": "VDU1",
"vnfcState": "STARTED"
}
],
"vnfcResourceInfo": [
{
"computeResource": {
"resourceId": "ebd3eeac-b1c6-4375-a625-d743e9892b6e",
"vimConnectionId": "95ccd60b-d8e9-4e65-ac31-1c1c839d9896",
"vimLevelResourceType": "OS::Nova::Server"
},
"id": "4c59e5ce-85c1-4d58-9c29-d4c88826fd6f",
"storageResourceIds": [],
"vduId": "VDU1",
"vnfcCpInfo": [
{
"cpProtocolInfo": [
{
"ipOverEthernet": {
"ipAddresses": [
{
"addresses": [],
"isDynamic": true,
"subnetId": "8d0bee9e-c2f0-470a-abd8-606e84d888a6",
"type": "IPV4"
}
],
"macAddress": null
},
"layerProtocol": "IP_OVER_ETHERNET"
}
],
"cpdId": "CP1",
"id": "adcc13bd-c6ef-4c4f-83b6-b366d43e659d",
"vnfExtCpId": null,
"vnfLinkPortId": "7188b765-285c-43a8-a889-07a32afb3530"
}
]
}
]
},
"instantiationState": "INSTANTIATED",
"metadata": {
"tenant": "nfv"
},
"vimConnectionInfo": [
{
"accessInfo": {},
"extra": {},
"id": "e24f9796-a8e9-4cb0-85ce-5920dcddafa1",
"interfaceInfo": {},
"vimId": "95ccd60b-d8e9-4e65-ac31-1c1c839d9896",
"vimType": "ETSINFV.OPENSTACK_KEYSTONE.V_2"
},
{
"accessInfo": {},
"extra": {},
"id": "32596836-7ac3-4213-9ae3-3469d7e09294",
"interfaceInfo": {},
"vimId": "95ccd60b-d8e9-4e65-ac31-1c1c839d9896",
"vimType": "openstack"
}
],
"vnfInstanceName": "vnf-27d7c019-39d1-4203-93b2-fe3776bbea74",
"vnfPkgId": "5ac73423-f102-4574-911e-578dad9fa8fe",
"vnfProductName": "Sample VNF",
"vnfProvider": "Company",
"vnfSoftwareVersion": "1.0",
"vnfdId": "b1bb0ce7-ebca-4fa7-95ed-4840d70a1177",
"vnfdVersion": "1.0",
"_links": {
"changeExtConn": {
"href": "https://:9890/vnflcm/v1/vnf_instances/27d7c019-39d1-4203-93b2-fe3776bbea74/change_ext_conn"
},
"heal": {
"href": "https://:9890/vnflcm/v1/vnf_instances/27d7c019-39d1-4203-93b2-fe3776bbea74/heal"
},
"scale": {
"href": "https://:9890/vnflcm/v1/vnf_instances/27d7c019-39d1-4203-93b2-fe3776bbea74/scale"
},
"self": {
"href": "https://:9890/vnflcm/v1/vnf_instances/27d7c019-39d1-4203-93b2-fe3776bbea74"
},
"terminate": {
"href": "https://:9890/vnflcm/v1/vnf_instances/27d7c019-39d1-4203-93b2-fe3776bbea74/terminate"
}
}
},
{
"id": "cda383ea-8341-4731-93c7-19db4b5ce1b5",
"instantiationState": "NOT_INSTANTIATED",
"vnfInstanceDescription": "Instance description",
"vnfInstanceName": "Instance name",
"vnfPkgId": "5ac73423-f102-4574-911e-578dad9fa8fe",
"vnfProductName": "Sample VNF",
"vnfProvider": "Company",
"vnfSoftwareVersion": "1.0",
"vnfdId": "b1bb0ce7-ebca-4fa7-95ed-4840d70a1177",
"vnfdVersion": "1.0",
"_links": {
"instantiate": {
"href": "https://:9890/vnflcm/v1/vnf_instances/cda383ea-8341-4731-93c7-19db4b5ce1b5/instantiate"
},
"self": {
"href": "https://:9890/vnflcm/v1/vnf_instances/cda383ea-8341-4731-93c7-19db4b5ce1b5"
}
}
}
]
此任务资源表示“缩放 VNF”操作。客户端可以使用此资源请求缩放 VNF 实例。
POST 方法请求缩放 VNF 实例。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已被接受处理,但处理尚未完成。响应中包含一个“location”头部,其中包含一个链接以检查请求的进度。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
401 - 未授权 |
用户必须在发出请求之前进行身份验证。 |
403 - 禁止 |
策略不允许当前用户执行此操作。 |
404 - Not Found |
找不到请求的资源。 |
409 - Conflict |
此操作与此资源的另一个操作冲突。 |
请求参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
vnfInstanceId |
路径 |
字符串 |
VNF 实例的标识符。 |
type |
body |
字符串 |
指示请求的缩放操作类型。允许的值 SCALE_OUT:向 VNF 添加额外的 VNFC 实例以增加容量。 SCALE_IN:从 VNF 中删除 VNFC 实例以释放未使用的容量。 |
aspectId |
body |
字符串 |
缩放方面的标识符。 |
numberOfSteps (可选) |
body |
int |
作为此缩放 VNF 操作的一部分要执行的缩放步骤数。它必须是一个正数,默认值为 1。 |
additionalParams (可选) |
body |
字符串 |
由 NFVO 作为输入传递给缩放过程的附加参数,特定于正在缩放的 VNF,如 VNFD 中“ScaleVnfOpConfig”的一部分中所声明。 |
请求示例¶
{
"type": "SCALE_OUT",
"aspectId": "scale_aspect",
"numberOfSteps": "1"
}
此方法修改“单个 VNF 实例”资源。
对 VNF 可配置属性的更改应用于 VNF 实例中的配置,并在该资源的表示形式中反映出来。其他更改应用于 VNFM 管理的 VNF 实例信息,并在该资源的表示形式中反映出来。
根据 ETSI NFV SOL 文档,尚无 Etag 的 API 请求/响应规范,并且使用 Etag 的事务未由标准化定义。因此,Victoria 版本不支持 错误代码:412 前置条件失败。一旦建立了标准规范,它将被安装在 tacker 上。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已被接受处理,但处理尚未完成。响应中包含一个“location”头部,其中包含一个链接以检查请求的进度。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
401 - 未授权 |
用户必须在发出请求之前进行身份验证。 |
403 - 禁止 |
策略不允许当前用户执行此操作。 |
404 - Not Found |
找不到请求的资源。 |
409 - Conflict |
此操作与此资源的另一个操作冲突。 |
请求参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
vnfInstanceId |
路径 |
字符串 |
VNF 实例的标识符。 |
vnfInstanceName (可选) |
body |
字符串 |
“VnfInstance”中的“vnfInstanceName”属性的新值,或“null”以删除该属性。 |
vnfInstanceDescription (可选) |
body |
字符串 |
“VnfInstance”中的“vnfInstanceDescription”属性的新值,或“null”以删除该属性。 |
vnfdId (可选) |
body |
字符串 |
“VnfInstance”中的“vnfdId”属性的新值。“null”值不允许。 |
vnfPkgId (可选) |
body |
字符串 |
“VnfInstance”中的“vnfPkgId”属性的新值。“null”值不允许。 |
metadata (可选) |
body |
字符串 |
对“VnfInstance”中的“metadata”属性的修改。如果存在,则应根据 JSON Merge PATCH 的规则应用这些修改 |
vimConnectionInfo (可选) |
body |
字符串 |
“VnfInstance”中“vimConnectionInfo”属性数组中的某些条目的新内容,如下表所述。 |
id |
body |
字符串 |
VIM 连接的标识符。此标识符由 NFVO 管理。 |
vimId (可选) |
body |
字符串 |
VIM 实例的标识符。此标识符由 NFVO 管理。 如果已通过本文档范围之外的方式配置到 VNFM,则应存在,否则应不存在。 |
vimType (可选) |
body |
字符串 |
VIM 信息的不同类型的区分器。 此属性的值根据 VIM 的类型确定“interfaceInfo”和“accessInfo”属性的结构。 随着新的 VIM 类型或版本的可用,允许的值集预计会随时间变化。 |
interfaceInfo (可选) |
body |
字符串 |
如果适用,有关与 VIM 的接口的信息,例如与 VIM 通信的接口端点的 URI。适用的键取决于 vimType 的内容。 或者,这些信息可能已配置到 VNFM 并绑定到 vimId。 |
endpoint |
body |
字符串 |
表示接口端点的 url。 |
accessInfo (可选) |
body |
字符串 |
访问 VIM 的身份验证凭据,以及其他访问相关信息,例如租户或基础设施资源组(请参阅注释)。适用的键取决于 vimType 的内容。 如果 VimConnectionInfo 结构是 HTTP 响应有效负载主体的一部分,则不应包含敏感属性(例如密码)。 如果 VimConnectionInfo 结构是 HTTP 请求有效负载主体的一部分,则如果尚未通过其他方式配置,则应存在敏感属性(例如密码)。 |
username |
body |
字符串 |
用于访问的用户名。 |
region |
body |
字符串 |
用于 VIM 连接的 OpenStack 区域。 |
password |
body |
字符串 |
用于访问的密码。 |
tenant |
body |
字符串 |
用于 VIM 连接的 OpenStack 租户。 |
请求示例¶
{
"vnfdId": "093c38b5-a731-4593-a578-d12e42596b3e"
}
POST 方法更改 VNF 实例的外部连接性。
此任务资源表示“更改外部 VNF 连接性”操作。客户端可以使用此资源更改 VNF 实例的外部连接性。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已被接受处理,但处理尚未完成。响应中包含一个“location”头部,其中包含一个链接以检查请求的进度。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
401 - 未授权 |
用户必须在发出请求之前进行身份验证。 |
403 - 禁止 |
策略不允许当前用户执行此操作。 |
404 - Not Found |
找不到请求的资源。 |
409 - Conflict |
此操作与此资源的另一个操作冲突。 |
请求参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
vnfInstanceId |
路径 |
字符串 |
VNF 实例的标识符。 |
extVirtualLinks (可选) |
body |
数组 |
有关外部 VL 以连接到 VNF 的信息。 |
id |
body |
字符串 |
外部 VL 实例的标识符。标识符由管理此 VL 实例的 NFV-MANO 实体分配。 |
vimConnectionId (可选) |
body |
字符串 |
用于管理资源的 VIM 连接的标识符。仅当直接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。 |
resourceId |
body |
字符串 |
VIM 或资源提供商范围内的资源的标识符。 |
extCps |
body |
数组 |
要连接到此外部 VL 的 VNF 的外部 CP。 |
cpdId |
body |
字符串 |
VNFD 中 CPD 的标识符。 |
cpConfig (可选) |
body |
数组 |
需要配置在从各自 CPD 创建的 CP 实例上的实例数据列表。 |
cpInstanceId (可选) |
body |
字符串 |
要应用此配置参数集的外部连接点实例的标识符。 如果该实例已创建,则应存在。 |
linkPortId (可选) |
body |
字符串 |
与外部 CP 将关联的预配置链路端口的标识符。请参阅注释。 |
cpProtocolData (可选) |
body |
数组 |
用于配置连接 CP 到 VL 的链路端口上的网络协议的参数。 |
layerProtocol |
body |
字符串 |
层和协议的标识符。 允许的值:IP_OVER_ETHERNET |
ipOverEthernet (可选) |
body |
对象 |
要分配给 extCP 实例的网络地址数据。如果 layerProtocol 等于“IP_OVER_ETHERNET”,则应存在,否则应不存在。 |
macAddress (可选) |
body |
字符串 |
MAC 地址。如果未提供此属性,则应由 VIM 选择。至少应存在“macAddress”或“ipAddresses”中的一个。 |
ipAddresses (可选) |
body |
数组 |
要分配给 CP 实例的 IP 地址列表。每个条目代表针对每个子网的固定或动态 IP 地址分配的 IP 地址数据。 如果未提供此属性,则不应分配任何 IP 地址。 |
type |
body |
字符串 |
IP 地址的类型。允许的值:IPV4、IPV6。 |
fixedAddresses (可选) |
body |
数组 |
要分配的固定地址(如果提供了“subnetId”,则来自子网)。“fixedAddresses”或“numDynamicAddresses”中的一个必须存在。 |
numDynamicAddresses (可选) |
body |
int |
设置动态地址的数量。“fixedAddresses”或“numDynamicAddresses”中的一个必须存在。 |
subnetId (可选) |
body |
字符串 |
VIM 中子网资源标识符定义的子网。如果存在此属性,将分配来自该子网的 IP 地址;否则,将分配未绑定到子网的 IP 地址。 |
extLinkPorts (可选) |
body |
数组 |
外部提供的链路端口,用于将外部连接点连接到此外部 VL。如果未提供此属性,则 VNFM 应在外部 VL 上创建链路端口。 |
id |
body |
字符串 |
提供此链路端口的实体提供的此链路端口的标识符。 |
resourceHandle |
body |
对象 |
实现此链路端口的虚拟化资源的引用。 |
vimConnectionId (可选) |
body |
字符串 |
用于管理资源的 VIM 连接的标识符。仅当直接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。 |
resourceId |
body |
字符串 |
VIM 或资源提供商范围内的资源的标识符。 |
vimLevelResourceType (可选) |
body |
字符串 |
VIM 或资源提供商范围内的资源的类型。provider。 |
vimConnectionInfo (可选) |
body |
数组 |
有关 VIM 连接的信息,用于管理 VNF 实例的资源,或引用外部/外部管理的虚拟链路。 仅当直接模式下的 VNF 相关资源管理适用时,才应支持此属性,并且可能存在。 |
id |
body |
字符串 |
VIM 连接的标识符。此标识符由 NFVO 管理。 |
vimId (可选) |
body |
字符串 |
VIM 实例的标识符。此标识符由 NFVO 管理。 如果已通过本文档范围之外的方式配置到 VNFM,则应存在,否则应不存在。 |
vimType (可选) |
body |
字符串 |
VIM 信息的不同类型的区分器。 此属性的值根据 VIM 的类型确定“interfaceInfo”和“accessInfo”属性的结构。 随着新的 VIM 类型或版本的可用,允许的值集预计会随时间变化。 |
interfaceInfo (可选) |
body |
字符串 |
如果适用,有关与 VIM 的接口的信息,例如与 VIM 通信的接口端点的 URI。适用的键取决于 vimType 的内容。 或者,这些信息可能已配置到 VNFM 并绑定到 vimId。 |
endpoint |
body |
字符串 |
表示接口端点的 url。 |
accessInfo (可选) |
body |
字符串 |
访问 VIM 的身份验证凭据,以及其他访问相关信息,例如租户或基础设施资源组(请参阅注释)。适用的键取决于 vimType 的内容。 如果 VimConnectionInfo 结构是 HTTP 响应有效负载主体的一部分,则不应包含敏感属性(例如密码)。 如果 VimConnectionInfo 结构是 HTTP 请求有效负载主体的一部分,则如果尚未通过其他方式配置,则应存在敏感属性(例如密码)。 |
username |
body |
字符串 |
用于访问的用户名。 |
password |
body |
字符串 |
用于访问的密码。 |
region |
body |
字符串 |
用于 VIM 连接的 OpenStack 区域。 |
tenant |
body |
字符串 |
用于 VIM 连接的 OpenStack 租户。 |
additionalParams |
body |
字符串 |
作为 VNFD 的“ChangeVnfFlavourOpConfig”的一部分声明的,作为对正在修改的 VNF 特定的风味更改过程的附加输入参数。 |
请求示例¶
{
"extVirtualLinks": [
{
"id": "ext-vl-uuid-VL1",
"resourceId": "neutron-network-uuid_VL1",
"extCps": [
{
"cpdId": "CP1",
"cpConfig": [
{
"cpProtocolData": [
{
"layerProtocol": "IP_OVER_ETHERNET",
"ipOverEthernet": {
"ipAddresses": [
{
"type": "IPV4",
"numDynamicAddresses": 1,
"subnetId": "subnet-uuid"
}
]
}
}
]
}
]
},
{
"cpdId": "CP2",
"cpConfig": [
{
"cpProtocolData": [
{
"layerProtocol": "IP_OVER_ETHERNET",
"ipOverEthernet": {
"ipAddresses": [
{
"type": "IPV4",
"fixedAddresses": [
"10.0.0.1"
],
"subnetId": "subnet-uuid"
}
]
}
}
]
}
]
}
]
}
],
"vimConnectionInfo": [
{
"id": "vim-uuid",
"vimType": "ETSINFV.OPENSTACK_KEYSTONE.V_2",
"vimConnectionId": "dummy-vimid",
"interfaceInfo": {
"key1": "value1",
"key2": "value2"
},
"accessInfo": {
"key1": "value1",
"key2": "value2"
}
}
]
}
客户端可以使用此方法通过读取“单个 VNF LCM 操作发生”资源来检索 VNF 生命周期管理操作发生的的状态信息。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
401 - 未授权 |
用户必须在发出请求之前进行身份验证。 |
403 - 禁止 |
策略不允许当前用户执行此操作。 |
404 - Not Found |
找不到请求的资源。 |
请求参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
vnfLcmOpOccId |
路径 |
字符串 |
VNF 生命周期管理操作发生的标识符。 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
id |
body |
字符串 |
此 VNF 生命周期管理操作发生的标识符。 |
operationState |
body |
字符串 |
LCM 操作的状态。 |
stateEnteredTime |
body |
字符串 |
当前状态进入的时间。 |
startTime |
body |
字符串 |
操作开始的时间。 |
vnfInstanceId |
body |
字符串 |
操作适用的 VNF 实例的标识符。 |
grantId (可选) |
body |
字符串 |
与此 VNF LCM 操作发生相关的授权的标识符。如果存在这样的授权,则应将其设置为表示相关“单个授权”的“id”属性的值。 |
operation |
body |
字符串 |
此 VNF LCM 操作发生所代表的实际 LCM 操作的类型。 |
isAutomaticInvocation |
body |
布尔值 |
如果此 VNF LCM 操作发生是由 VNFM 内部的自动化过程触发的(例如,由自动缩放触发的 ScaleVnf 或由自动修复触发的 HealVnf),则设置为 true。否则,设置为 false。 |
operationParams (可选) |
body |
字符串 |
LCM 操作的输入参数。此属性应根据相关 LCM 操作的请求数据类型进行格式化。以下是 operationType 与此属性的数据类型之间的映射 INSTANTIATE:InstantiateVnfRequest SCALE:ScaleVnfRequest HEAL:HealVnfRequest TERMINATE:TerminateVnfRequest MODIFY_INFO:VnfInfoModificationRequest 如果此数据类型在读取单个资源响应中返回,则应存在此属性,如果此数据类型在查询容器资源响应中返回,则可能存在,具体取决于所选的属性选择器参数。 |
isCancelPending |
body |
布尔值 |
如果 VNF LCM 操作发生处于“STARTING”、“PROCESSING”或“ROLLING_BACK”状态并且正在取消操作,则应将此属性设置为 true。否则,应将其设置为 false。 |
错误 (可选) |
body |
对象 |
如果“operationState”为“FAILED_TEMP”或“FAILED”或“operationState”为“PROCESSING”或“ROLLING_BACK”并且“operationState”的先前值为“FAILED_TEMP”,则应存在此属性并包含错误信息,除非已通过属性选择器请求排除它。 |
title (可选) |
body |
字符串 |
根据 IETF RFC 3986 的 URI 引用,用于标识问题类型。鼓励在取消引用 URI 时提供人类可读的文档(例如,使用 HTML)。当未提供此成员时,其值为“about:blank”。 |
status |
body |
字符串 |
此问题实例的 HTTP 状态码。 |
详情 |
body |
字符串 |
此问题实例的特定于人类的可读解释。 |
resourceChanges (可选) |
body |
对象 |
此属性包含 LCM 操作自其启动以来对虚拟化资源进行的累积更改的信息(如果适用)。 |
affectedVnfc (可选) |
body |
数组 |
在生命周期操作期间受到影响的 VNFC 实例的信息。 |
id |
body |
字符串 |
VNFC 实例的标识符,标识“VnfInstance”数据类型中的适用的“vnfcResourceInfo”条目。 |
vduId |
body |
字符串 |
VNFD 中相关 VDU 的标识符。 |
changeType |
body |
字符串 |
指示更改类型。允许的值 ADDED REMOVED MODIFIED TEMPORARY 对于临时资源,只要临时资源存在,就会存在 AffectedVnfc 结构。 |
computeResource |
body |
对象 |
对 VirtualCompute 资源的引用。 |
vimConnectionId (可选) |
body |
字符串 |
用于管理资源的 VIM 连接的标识符。仅当直接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。 |
resourceId |
body |
字符串 |
VIM 或资源提供商范围内的资源的标识符。 |
vimLevelResourceType (可选) |
body |
字符串 |
VIM 或资源提供商范围内的资源的类型。provider。 |
affectedVnfcCpIds (可选) |
body |
数组 |
受更改影响的 VNFC 实例的 CP 标识符。应存在于与 VNF 的外部 CP 关联的受影响的 CP 中。可以存在于进一步受影响的 VNFC CP 中。 |
addedStorageResourceIds (可选) |
body |
数组 |
已添加的 VirtualStorage 资源的引用。每个值引用 VnfInstance 中的添加到 VNFC 的 VirtualStorageResourceInfo 条目。如果至少有一个存储资源已添加到 VNFC,则应提供它。 |
removedStorageResourceIds (可选) |
body |
数组 |
已删除的 VirtualStorage 资源的引用。该值包含从 VNFC 中删除的 VirtualStorageResourceInfo 条目的标识符,并且可能不再存在于 VnfInstance 中。如果至少有一个存储资源已从 VNFC 中删除,则应提供它。 |
affectedVirtualLinks (可选) |
body |
数组 |
在生命周期操作期间受到影响的 VL 实例的信息。 |
id |
body |
字符串 |
虚拟链路实例的标识符,标识“VnfInstance”数据类型中的适用的“vnfVirtualLinkResourceInfo”条目。 |
vnfVirtualLinkDescId |
body |
字符串 |
VNFD 中的 VNF 虚拟链路描述符 (VLD) 的标识符。 |
changeType |
body |
字符串 |
指示更改类型。允许的值 ADDED REMOVED MODIFIED TEMPORARY LINK_PORT_ADDED LINK_PORT_REMOVED 对于临时资源,受影响的虚拟链路结构在临时资源存在期间一直存在。 |
networkResource |
body |
对象 |
对 VirtualNetwork 资源的引用。 |
vimConnectionId (可选) |
body |
字符串 |
用于管理资源的 VIM 连接的标识符。仅当直接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。 |
resourceId |
body |
字符串 |
VIM 或资源提供商范围内的资源的标识符。 |
vimLevelResourceType (可选) |
body |
字符串 |
VIM 或资源提供商范围内的资源的类型。provider。 |
受影响的虚拟存储 (可选) |
body |
数组 |
有关在生命周期操作期间受到影响的虚拟化存储实例的信息。 |
id |
body |
字符串 |
存储实例的标识符,用于标识“VnfInstance”数据类型中的适用“virtualStorageResourceInfo”条目。 |
virtualStorageDescId |
body |
字符串 |
VNFD 中相关虚拟存储描述符的标识符。 |
changeType |
body |
字符串 |
指示更改类型。允许的值 ADDED REMOVED MODIFIED TEMPORARY 对于临时资源,受影响的虚拟存储结构在临时资源存在期间一直存在。 |
storageResource |
body |
对象 |
对 VirtualStorage 资源的引用。 |
vimConnectionId (可选) |
body |
字符串 |
用于管理资源的 VIM 连接的标识符。仅当直接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。 |
resourceId |
body |
字符串 |
VIM 或资源提供商范围内的资源的标识符。 |
vimLevelResourceType (可选) |
body |
字符串 |
VIM 或资源提供商范围内的资源的类型。provider。 |
changedInfo (可选) |
body |
对象 |
有关更改的 VNF 实例信息,包括 VNF 可配置属性(如果适用)。 |
vnfInstanceName (可选) |
body |
字符串 |
如果存在,此属性表示对“VnfInstance”中的“vnfInstanceName”属性的修改。 |
vnfInstanceDescription (可选) |
body |
字符串 |
如果存在,此属性表示对“VnfInstance”中的“vnfInstanceDescription”属性的修改。 |
metadata (可选) |
body |
字符串 |
如果存在,此属性表示对“VnfInstance”中的“metadata”属性的修改。 |
vimConnectionInfo (可选) |
body |
数组 |
如果存在,此属性表示对“VnfInstance”中的“vimConnectionInfo”属性数组中某些条目的修改。 |
id |
body |
字符串 |
VIM 连接的标识符。此标识符由 NFVO 管理。 |
vimId (可选) |
body |
字符串 |
VIM 实例的标识符。此标识符由 NFVO 管理。 如果已通过本文档范围之外的方式配置到 VNFM,则应存在,否则应不存在。 |
vimType (可选) |
body |
字符串 |
VIM 信息的不同类型的区分器。 此属性的值根据 VIM 的类型确定“interfaceInfo”和“accessInfo”属性的结构。 随着新的 VIM 类型或版本的可用,允许的值集预计会随时间变化。 |
interfaceInfo (可选) |
body |
字符串 |
如果适用,有关与 VIM 的接口的信息,例如与 VIM 通信的接口端点的 URI。适用的键取决于 vimType 的内容。 或者,这些信息可能已配置到 VNFM 并绑定到 vimId。 |
endpoint |
body |
字符串 |
表示接口端点的 url。 |
accessInfo (可选) |
body |
字符串 |
访问 VIM 的身份验证凭据,以及其他访问相关信息,例如租户或基础设施资源组(请参阅注释)。适用的键取决于 vimType 的内容。 如果 VimConnectionInfo 结构是 HTTP 响应有效负载主体的一部分,则不应包含敏感属性(例如密码)。 如果 VimConnectionInfo 结构是 HTTP 请求有效负载主体的一部分,则如果尚未通过其他方式配置,则应存在敏感属性(例如密码)。 |
username |
body |
字符串 |
用于访问的用户名。 |
region |
body |
字符串 |
用于 VIM 连接的 OpenStack 区域。 |
password |
body |
字符串 |
用于访问的密码。 |
tenant |
body |
字符串 |
用于 VIM 连接的 OpenStack 租户。 |
vnfPkgId (可选) |
body |
字符串 |
如果存在,此属性表示对“VnfInstance”中的“vnfPkgId”属性的修改。 |
vnfdId (可选) |
body |
字符串 |
如果存在,此属性表示对“VnfInstance”中的“vnfdId”属性的修改。 |
vnfProvider (可选) |
body |
字符串 |
如果存在,此属性表示对“VnfInstance”中的“vnfProvider”属性的修改。 |
vnfProductName (可选) |
body |
字符串 |
如果存在,此属性表示对“VnfInstance”中的“vnfProductName”属性的修改。 |
vnfSotwareVersion (可选) |
body |
字符串 |
如果存在,此属性表示对“VnfInstance”中的“vnfSoftwareVersion”属性的修改。 |
vnfdVersion (可选) |
body |
字符串 |
如果存在,此属性表示对“VnfInstance”中的“vnfdVersion”属性的修改。 |
changedExtConnectivity (可选) |
body |
对象 |
有关更改的外部连接信息(如果适用) |
id (可选) |
body |
字符串 |
外部 VL 的标识符以及相关的外部 VL 信息实例。标识符由管理此 VL 实例的 NFV-MANO 实体分配。 |
resourceHandle |
body |
对象 |
实现此 VL 的资源的引用。 |
vimConnectionId (可选) |
body |
字符串 |
用于管理资源的 VIM 连接的标识符。仅当直接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。 |
resourceId |
body |
字符串 |
VIM 或资源提供商范围内的资源的标识符。 |
vimLevelResourceType (可选) |
body |
字符串 |
VIM 或资源提供商范围内的资源的类型。provider。 |
extLinkPorts (可选) |
body |
数组 |
外部提供的链路端口,用于将外部连接点连接到此外部 VL。如果未提供此属性,则 VNFM 应在外部 VL 上创建链路端口。 |
id |
body |
字符串 |
提供此链路端口的实体提供的此链路端口的标识符。 |
resourceHandle |
body |
对象 |
实现此 VL 的资源的引用。 |
vimConnectionId (可选) |
body |
字符串 |
用于管理资源的 VIM 连接的标识符。仅当直接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。 |
resourceId |
body |
字符串 |
VIM 或资源提供商范围内的资源的标识符。 |
vimLevelResourceType (可选) |
body |
字符串 |
VIM 或资源提供商范围内的资源的类型。provider。 |
cpInstanceId (可选) |
body |
字符串 |
要应用此配置参数集的外部连接点实例的标识符。 如果该实例已创建,则应存在。 |
_links |
body |
对象 |
指向与此资源相关的资源的链接。 |
响应示例¶
{
"id": "d85c6ae4-af16-42c0-96fc-82f7c014c468",
"operationState": "COMPLETED",
"stateEnteredTime": "2020-08-02T06:50:50.883373",
"startTime": "2020-08-02T06:41:34.883483",
"vnfInstanceId": "0b7b95a9-21d5-4ac4-80c8-9ae9f7323787",
"grantId": "3432cebe-db0a-11e8-9023-005056317abe",
"operation": "INSTANTIATE",
"isAutomaticInvocation": false,
"operationParams": "{
"flavourId": "default",
"instantiationLevelId": "vnf-min",
}"
"isCancelPending": false,
"resourceChanges": {
"affectedVnfcs": [
{
"id": "36e24439-829c-4803-a413-385cd658d544",
"vduId": "VDU",
"changeType": "ADDED",
"computeResource": {
"vimConnectionId": "f26f181d-7891-4720-b022-b074ec1733ef",
"resourceId": "e0510ba9-3a53-4fcf-9dcc-58dea5c048b0",
"vimLevelResourceType": "OS::Nova::Server",
},
"affectedVnfcCpIds": [
"VDU1_CP0",
"VDU1_CP1"
],
"addedStorageResourceIds": [
"81ae44f6-b65b-47aa-a578-e53b7a50a574"
]
}
],
"affectedVirtualLinks": [
{
"id": "9836f7f2-5af4-4df5-a89f-933479448ef7",
"vnfVirtualLinkDescId": "internalNW",
"changeType": "ADDED",
"networkResource": {
"vimConnectionId": "f26f181d-7891-4720-b022-b074ec1733ef",
"resourceId": "400692e5-b2db-478e-acb1-b77a92635ec6",
"vimLevelResourceType": "OS::Neutron::Net"
}
}
],
"affectedVirtualStorages": [
{
"id": "81ae44f6-b65b-47aa-a578-e53b7a50a574",
"virtualStorageDescId": "Storage",
"changeType": "ADDED",
"storageResource": {
"vimConnectionId": "f26f181d-7891-4720-b022-b074ec1733ef",
"resourceId": "842f527e-0092-4f11-aede-f981ba4fd884",
"vimLevelResourceType": "OS::Cinder::Volume"
}
}
]
},
"_links": {
"self": {
"href": "http://sample1.com/vnflcm/v1/vnf_lcm_op_occs/d85c6ae4-af16-42c0-96fc-82f7c014c468"
},
"vnfInstance": {
"href": "http://sample1.com/vnflcm/v1/vnf_instances/0b7b95a9-21d5-4ac4-80c8-9ae9f7323787"
},
"grant": {
"href": "http://sample1.com/grant/v1/grants/3432cebe-db0a-11e8-9023-005056317abe"
},
"retry":{
"href":"http://sample1.com/vnflcm/v1/vnf_lcm_op_occs/d85c6ae4-af16-42c0-96fc-82f7c014c468/retry"
},
"rollback":{
"href":"http://sample1.com/vnflcm/v1/vnf_lcm_op_occs/d85c6ae4-af16-42c0-96fc-82f7c014c468/rollback"
},
"fail":{
"href":"http://sample1.com/vnflcm/v1/vnf_lcm_op_occs/d85c6ae4-af16-42c0-96fc-82f7c014c468/fail"
}
}
}
API 消费者可以使用此方法查询多个 VNF 生命周期管理操作事件的状态信息。
如果响应包含 LINK HTTP 标头(参见 IETF RFC 8288 [2]),且“rel”属性设置为“next”,则 API 消费者可以向 LINK 标头中通信的 URI 发送 GET 请求,以获取下一页结果。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
403 - 禁止 |
策略不允许当前用户执行此操作。 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
id |
body |
字符串 |
此 VNF 生命周期管理操作发生的标识符。 |
operationState |
body |
字符串 |
LCM 操作的状态。 |
stateEnteredTime |
body |
字符串 |
当前状态进入的时间。 |
startTime |
body |
字符串 |
操作开始的时间。 |
vnfInstanceId |
body |
字符串 |
操作适用的 VNF 实例的标识符。 |
grantId (可选) |
body |
字符串 |
与此 VNF LCM 操作发生相关的授权的标识符。如果存在这样的授权,则应将其设置为表示相关“单个授权”的“id”属性的值。 |
operation |
body |
字符串 |
此 VNF LCM 操作发生所代表的实际 LCM 操作的类型。 |
isAutomaticInvocation |
body |
布尔值 |
如果此 VNF LCM 操作发生是由 VNFM 内部的自动化过程触发的(例如,由自动缩放触发的 ScaleVnf 或由自动修复触发的 HealVnf),则设置为 true。否则,设置为 false。 |
operationParams (可选) |
body |
字符串 |
LCM 操作的输入参数。此属性应根据相关 LCM 操作的请求数据类型进行格式化。以下是 operationType 与此属性的数据类型之间的映射 INSTANTIATE:InstantiateVnfRequest SCALE:ScaleVnfRequest HEAL:HealVnfRequest TERMINATE:TerminateVnfRequest MODIFY_INFO:VnfInfoModificationRequest 如果此数据类型在读取单个资源响应中返回,则应存在此属性,如果此数据类型在查询容器资源响应中返回,则可能存在,具体取决于所选的属性选择器参数。 |
isCancelPending |
body |
布尔值 |
如果 VNF LCM 操作发生处于“STARTING”、“PROCESSING”或“ROLLING_BACK”状态并且正在取消操作,则应将此属性设置为 true。否则,应将其设置为 false。 |
错误 (可选) |
body |
对象 |
如果“operationState”为“FAILED_TEMP”或“FAILED”或“operationState”为“PROCESSING”或“ROLLING_BACK”并且“operationState”的先前值为“FAILED_TEMP”,则应存在此属性并包含错误信息,除非已通过属性选择器请求排除它。 |
title (可选) |
body |
字符串 |
根据 IETF RFC 3986 的 URI 引用,用于标识问题类型。鼓励在取消引用 URI 时提供人类可读的文档(例如,使用 HTML)。当未提供此成员时,其值为“about:blank”。 |
status |
body |
字符串 |
此问题实例的 HTTP 状态码。 |
详情 |
body |
字符串 |
此问题实例的特定于人类的可读解释。 |
resourceChanges (可选) |
body |
对象 |
此属性包含 LCM 操作自其启动以来对虚拟化资源进行的累积更改的信息(如果适用)。 |
affectedVnfc (可选) |
body |
数组 |
在生命周期操作期间受到影响的 VNFC 实例的信息。 |
id |
body |
字符串 |
VNFC 实例的标识符,标识“VnfInstance”数据类型中的适用的“vnfcResourceInfo”条目。 |
vduId |
body |
字符串 |
VNFD 中相关 VDU 的标识符。 |
changeType |
body |
字符串 |
指示更改类型。允许的值 ADDED REMOVED MODIFIED TEMPORARY 对于临时资源,只要临时资源存在,就会存在 AffectedVnfc 结构。 |
computeResource |
body |
对象 |
对 VirtualCompute 资源的引用。 |
vimConnectionId (可选) |
body |
字符串 |
用于管理资源的 VIM 连接的标识符。仅当直接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。 |
resourceId |
body |
字符串 |
VIM 或资源提供商范围内的资源的标识符。 |
vimLevelResourceType (可选) |
body |
字符串 |
VIM 或资源提供商范围内的资源的类型。provider。 |
affectedVnfcCpIds (可选) |
body |
数组 |
受更改影响的 VNFC 实例的 CP 标识符。应存在于与 VNF 的外部 CP 关联的受影响的 CP 中。可以存在于进一步受影响的 VNFC CP 中。 |
addedStorageResourceIds (可选) |
body |
数组 |
已添加的 VirtualStorage 资源的引用。每个值引用 VnfInstance 中的添加到 VNFC 的 VirtualStorageResourceInfo 条目。如果至少有一个存储资源已添加到 VNFC,则应提供它。 |
removedStorageResourceIds (可选) |
body |
数组 |
已删除的 VirtualStorage 资源的引用。该值包含从 VNFC 中删除的 VirtualStorageResourceInfo 条目的标识符,并且可能不再存在于 VnfInstance 中。如果至少有一个存储资源已从 VNFC 中删除,则应提供它。 |
affectedVirtualLinks (可选) |
body |
数组 |
在生命周期操作期间受到影响的 VL 实例的信息。 |
id |
body |
字符串 |
虚拟链路实例的标识符,标识“VnfInstance”数据类型中的适用的“vnfVirtualLinkResourceInfo”条目。 |
vnfVirtualLinkDescId |
body |
字符串 |
VNFD 中的 VNF 虚拟链路描述符 (VLD) 的标识符。 |
changeType |
body |
字符串 |
指示更改类型。允许的值 ADDED REMOVED MODIFIED TEMPORARY LINK_PORT_ADDED LINK_PORT_REMOVED 对于临时资源,受影响的虚拟链路结构在临时资源存在期间一直存在。 |
networkResource |
body |
对象 |
对 VirtualNetwork 资源的引用。 |
vimConnectionId (可选) |
body |
字符串 |
用于管理资源的 VIM 连接的标识符。仅当直接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。 |
resourceId |
body |
字符串 |
VIM 或资源提供商范围内的资源的标识符。 |
vimLevelResourceType (可选) |
body |
字符串 |
VIM 或资源提供商范围内的资源的类型。provider。 |
受影响的虚拟存储 (可选) |
body |
数组 |
有关在生命周期操作期间受到影响的虚拟化存储实例的信息。 |
id |
body |
字符串 |
存储实例的标识符,用于标识“VnfInstance”数据类型中的适用“virtualStorageResourceInfo”条目。 |
virtualStorageDescId |
body |
字符串 |
VNFD 中相关虚拟存储描述符的标识符。 |
changeType |
body |
字符串 |
指示更改类型。允许的值 ADDED REMOVED MODIFIED TEMPORARY 对于临时资源,受影响的虚拟存储结构在临时资源存在期间一直存在。 |
storageResource |
body |
对象 |
对 VirtualStorage 资源的引用。 |
vimConnectionId (可选) |
body |
字符串 |
用于管理资源的 VIM 连接的标识符。仅当直接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。 |
resourceId |
body |
字符串 |
VIM 或资源提供商范围内的资源的标识符。 |
vimLevelResourceType (可选) |
body |
字符串 |
VIM 或资源提供商范围内的资源的类型。provider。 |
changedInfo (可选) |
body |
对象 |
有关更改的 VNF 实例信息,包括 VNF 可配置属性(如果适用)。 |
vnfInstanceName (可选) |
body |
字符串 |
如果存在,此属性表示对“VnfInstance”中的“vnfInstanceName”属性的修改。 |
vnfInstanceDescription (可选) |
body |
字符串 |
如果存在,此属性表示对“VnfInstance”中的“vnfInstanceDescription”属性的修改。 |
metadata (可选) |
body |
字符串 |
如果存在,此属性表示对“VnfInstance”中的“metadata”属性的修改。 |
vimConnectionInfo (可选) |
body |
数组 |
如果存在,此属性表示对“VnfInstance”中的“vimConnectionInfo”属性数组中某些条目的修改。 |
id |
body |
字符串 |
VIM 连接的标识符。此标识符由 NFVO 管理。 |
vimId (可选) |
body |
字符串 |
VIM 实例的标识符。此标识符由 NFVO 管理。 如果已通过本文档范围之外的方式配置到 VNFM,则应存在,否则应不存在。 |
vimType (可选) |
body |
字符串 |
VIM 信息的不同类型的区分器。 此属性的值根据 VIM 的类型确定“interfaceInfo”和“accessInfo”属性的结构。 随着新的 VIM 类型或版本的可用,允许的值集预计会随时间变化。 |
interfaceInfo (可选) |
body |
字符串 |
如果适用,有关与 VIM 的接口的信息,例如与 VIM 通信的接口端点的 URI。适用的键取决于 vimType 的内容。 或者,这些信息可能已配置到 VNFM 并绑定到 vimId。 |
endpoint |
body |
字符串 |
表示接口端点的 url。 |
accessInfo (可选) |
body |
字符串 |
访问 VIM 的身份验证凭据,以及其他访问相关信息,例如租户或基础设施资源组(请参阅注释)。适用的键取决于 vimType 的内容。 如果 VimConnectionInfo 结构是 HTTP 响应有效负载主体的一部分,则不应包含敏感属性(例如密码)。 如果 VimConnectionInfo 结构是 HTTP 请求有效负载主体的一部分,则如果尚未通过其他方式配置,则应存在敏感属性(例如密码)。 |
username |
body |
字符串 |
用于访问的用户名。 |
region |
body |
字符串 |
用于 VIM 连接的 OpenStack 区域。 |
password |
body |
字符串 |
用于访问的密码。 |
tenant |
body |
字符串 |
用于 VIM 连接的 OpenStack 租户。 |
vnfPkgId (可选) |
body |
字符串 |
如果存在,此属性表示对“VnfInstance”中的“vnfPkgId”属性的修改。 |
vnfdId (可选) |
body |
字符串 |
如果存在,此属性表示对“VnfInstance”中的“vnfdId”属性的修改。 |
vnfProvider (可选) |
body |
字符串 |
如果存在,此属性表示对“VnfInstance”中的“vnfProvider”属性的修改。 |
vnfProductName (可选) |
body |
字符串 |
如果存在,此属性表示对“VnfInstance”中的“vnfProductName”属性的修改。 |
vnfSotwareVersion (可选) |
body |
字符串 |
如果存在,此属性表示对“VnfInstance”中的“vnfSoftwareVersion”属性的修改。 |
vnfdVersion (可选) |
body |
字符串 |
如果存在,此属性表示对“VnfInstance”中的“vnfdVersion”属性的修改。 |
_links |
body |
对象 |
指向与此资源相关的资源的链接。 |
响应示例¶
[
{
"id": "d85c6ae4-af16-42c0-96fc-82f7c014c468",
"operationState": "COMPLETED",
"stateEnteredTime": "2020-08-02T06:50:50.883373",
"startTime": "2020-08-02T06:41:34.883483",
"vnfInstanceId": "0b7b95a9-21d5-4ac4-80c8-9ae9f7323787",
"grantId": "3432cebe-db0a-11e8-9023-005056317abe",
"operation": "INSTANTIATE",
"isAutomaticInvocation": false,
"operationParams": "{
'flavourId': 'default',
'instantiationLevelId': 'vnf-min',
}",
"isCancelPending": false,
"resourceChanges": {
"affectedVnfcs": [
{
"id": "36e24439-829c-4803-a413-385cd658d544",
"vduId": "VDU",
"changeType": "ADDED",
"computeResource": {
"vimConnectionId": "f26f181d-7891-4720-b022-b074ec1733ef",
"resourceId": "e0510ba9-3a53-4fcf-9dcc-58dea5c048b0",
"vimLevelResourceType": "OS::Nova::Server",
},
"affectedVnfcCpIds": [
"VDU1_CP0",
"VDU1_CP1"
],
"addedStorageResourceIds": [
"81ae44f6-b65b-47aa-a578-e53b7a50a574"
]
}
],
"affectedVirtualLinks": [
{
"id": "9836f7f2-5af4-4df5-a89f-933479448ef7",
"vnfVirtualLinkDescId": "internalNW",
"changeType": "ADDED",
"networkResource": {
"vimConnectionId": "f26f181d-7891-4720-b022-b074ec1733ef",
"resourceId": "400692e5-b2db-478e-acb1-b77a92635ec6",
"vimLevelResourceType": "OS::Neutron::Net"
}
}
],
"affectedVirtualStorages": [
{
"id": "81ae44f6-b65b-47aa-a578-e53b7a50a574",
"virtualStorageDescId": "Storage",
"changeType": "ADDED",
"storageResource": {
"vimConnectionId": "f26f181d-7891-4720-b022-b074ec1733ef",
"resourceId": "842f527e-0092-4f11-aede-f981ba4fd884",
"vimLevelResourceType": "OS::Cinder::Volume"
}
}
]
},
"_links": {
"self": {
"href": "http://sample.com/vnflcm/v1/vnf_lcm_op_occs/d85c6ae4-af16-42c0-96fc-82f7c014c468"
},
"vnfInstance": {
"href": "http://sample.com/vnflcm/v1/vnf_instances/0b7b95a9-21d5-4ac4-80c8-9ae9f7323787"
},
"grant":{
"href":"http://sample.com/grant/v1/grants/3432cebe-db0a-11e8-9023-005056317abe"
},
"retry":{
"href":"http://sample1.com/vnflcm/v1/vnf_lcm_op_occs/d85c6ae4-af16-42c0-96fc-82f7c014c468/retry"
},
"rollback":{
"href":"http://sample1.com/vnflcm/v1/vnf_lcm_op_occs/d85c6ae4-af16-42c0-96fc-82f7c014c468/rollback"
},
"fail":{
"href":"http://sample1.com/vnflcm/v1/vnf_lcm_op_occs/d85c6ae4-af16-42c0-96fc-82f7c014c468/fail"
}
}
}
]
如果操作经历了临时故障(即相关的“Individual VNF LCM operation occurrence”资源处于“FAILED_TEMP”状态),则 POST 方法启动回滚 VNF 生命周期操作。
如果成功处理异步请求,则父资源的“operationState”属性将更改为“ROLLING_BACK”,并且将发出适用的“start”通知,以指示正在尝试回滚底层的 VNF LCM 操作事件。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已被接受处理,但处理尚未完成。响应中包含一个“location”头部,其中包含一个链接以检查请求的进度。 |
错误¶
代码 |
原因 |
|---|---|
401 - 未授权 |
用户必须在发出请求之前进行身份验证。 |
403 - 禁止 |
策略不允许当前用户执行此操作。 |
404 - Not Found |
找不到请求的资源。 |
409 - Conflict |
此操作与此资源的另一个操作冲突。 |
请求参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
vnfLcmOpOccId |
路径 |
字符串 |
VNF 生命周期管理操作发生的标识符。 |
如果操作事件处于“FAILED_TEMP”状态,则 POST 方法将 VNF 生命周期管理操作事件标记为“最终失败”。
如果成功,父资源的“operationState”属性将更改为“FAILED”,并且将发出适用的“result”通知,以指示底层 VNF LCM 操作事件已最终且无法恢复地失败。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
401 - 未授权 |
用户必须在发出请求之前进行身份验证。 |
403 - 禁止 |
策略不允许当前用户执行此操作。 |
404 - Not Found |
找不到请求的资源。 |
409 - Conflict |
此操作与此资源的另一个操作冲突。 |
请求参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
vnfLcmOpOccId |
路径 |
字符串 |
VNF 生命周期管理操作发生的标识符。 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
id |
body |
字符串 |
此 VNF 生命周期管理操作发生的标识符。 |
operationState |
body |
字符串 |
LCM 操作的状态。 |
stateEnteredTime |
body |
字符串 |
当前状态进入的时间。 |
startTime |
body |
字符串 |
操作开始的时间。 |
vnfInstanceId |
body |
字符串 |
操作适用的 VNF 实例的标识符。 |
grantId (可选) |
body |
字符串 |
与此 VNF LCM 操作发生相关的授权的标识符。如果存在这样的授权,则应将其设置为表示相关“单个授权”的“id”属性的值。 |
operation |
body |
字符串 |
此 VNF LCM 操作发生所代表的实际 LCM 操作的类型。 |
isAutomaticInvocation |
body |
布尔值 |
如果此 VNF LCM 操作发生是由 VNFM 内部的自动化过程触发的(例如,由自动缩放触发的 ScaleVnf 或由自动修复触发的 HealVnf),则设置为 true。否则,设置为 false。 |
operationParams (可选) |
body |
字符串 |
LCM 操作的输入参数。此属性应根据相关 LCM 操作的请求数据类型进行格式化。以下是 operationType 与此属性的数据类型之间的映射 INSTANTIATE:InstantiateVnfRequest SCALE:ScaleVnfRequest HEAL:HealVnfRequest TERMINATE:TerminateVnfRequest MODIFY_INFO:VnfInfoModificationRequest 如果此数据类型在读取单个资源响应中返回,则应存在此属性,如果此数据类型在查询容器资源响应中返回,则可能存在,具体取决于所选的属性选择器参数。 |
错误 (可选) |
body |
对象 |
如果“operationState”为“FAILED_TEMP”或“FAILED”或“operationState”为“PROCESSING”或“ROLLING_BACK”并且“operationState”的先前值为“FAILED_TEMP”,则应存在此属性并包含错误信息,除非已通过属性选择器请求排除它。 |
title (可选) |
body |
字符串 |
根据 IETF RFC 3986 的 URI 引用,用于标识问题类型。鼓励在取消引用 URI 时提供人类可读的文档(例如,使用 HTML)。当未提供此成员时,其值为“about:blank”。 |
status |
body |
字符串 |
此问题实例的 HTTP 状态码。 |
详情 |
body |
字符串 |
此问题实例的特定于人类的可读解释。 |
isCancelPending |
body |
布尔值 |
如果 VNF LCM 操作发生处于“STARTING”、“PROCESSING”或“ROLLING_BACK”状态并且正在取消操作,则应将此属性设置为 true。否则,应将其设置为 false。 |
_links |
body |
对象 |
指向与此资源相关的资源的链接。 |
resourceChanges (可选) |
body |
对象 |
此属性包含 LCM 操作自其启动以来对虚拟化资源进行的累积更改的信息(如果适用)。 |
affectedVnfc (可选) |
body |
数组 |
在生命周期操作期间受到影响的 VNFC 实例的信息。 |
id |
body |
字符串 |
VNFC 实例的标识符,标识“VnfInstance”数据类型中的适用的“vnfcResourceInfo”条目。 |
vduId |
body |
字符串 |
VNFD 中相关 VDU 的标识符。 |
changeType |
body |
字符串 |
指示更改类型。允许的值 ADDED REMOVED MODIFIED TEMPORARY 对于临时资源,只要临时资源存在,就会存在 AffectedVnfc 结构。 |
computeResource |
body |
对象 |
对 VirtualCompute 资源的引用。 |
vimConnectionId (可选) |
body |
字符串 |
用于管理资源的 VIM 连接的标识符。仅当直接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。 |
resourceId |
body |
字符串 |
VIM 或资源提供商范围内的资源的标识符。 |
vimLevelResourceType (可选) |
body |
字符串 |
VIM 或资源提供商范围内的资源的类型。provider。 |
affectedVnfcCpIds (可选) |
body |
数组 |
受更改影响的 VNFC 实例的 CP 标识符。应存在于与 VNF 的外部 CP 关联的受影响的 CP 中。可以存在于进一步受影响的 VNFC CP 中。 |
addedStorageResourceIds (可选) |
body |
数组 |
已添加的 VirtualStorage 资源的引用。每个值引用 VnfInstance 中的添加到 VNFC 的 VirtualStorageResourceInfo 条目。如果至少有一个存储资源已添加到 VNFC,则应提供它。 |
removedStorageResourceIds (可选) |
body |
数组 |
已删除的 VirtualStorage 资源的引用。该值包含从 VNFC 中删除的 VirtualStorageResourceInfo 条目的标识符,并且可能不再存在于 VnfInstance 中。如果至少有一个存储资源已从 VNFC 中删除,则应提供它。 |
affectedVirtualLinks (可选) |
body |
数组 |
在生命周期操作期间受到影响的 VL 实例的信息。 |
id |
body |
字符串 |
虚拟链路实例的标识符,标识“VnfInstance”数据类型中的适用的“vnfVirtualLinkResourceInfo”条目。 |
vnfVirtualLinkDescId |
body |
字符串 |
VNFD 中的 VNF 虚拟链路描述符 (VLD) 的标识符。 |
changeType |
body |
字符串 |
指示更改类型。允许的值 ADDED REMOVED MODIFIED TEMPORARY LINK_PORT_ADDED LINK_PORT_REMOVED 对于临时资源,受影响的虚拟链路结构在临时资源存在期间一直存在。 |
networkResource |
body |
对象 |
对 VirtualNetwork 资源的引用。 |
vimConnectionId (可选) |
body |
字符串 |
用于管理资源的 VIM 连接的标识符。仅当直接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。 |
resourceId |
body |
字符串 |
VIM 或资源提供商范围内的资源的标识符。 |
vimLevelResourceType (可选) |
body |
字符串 |
VIM 或资源提供商范围内的资源的类型。provider。 |
受影响的虚拟存储 (可选) |
body |
数组 |
有关在生命周期操作期间受到影响的虚拟化存储实例的信息。 |
id |
body |
字符串 |
存储实例的标识符,用于标识“VnfInstance”数据类型中的适用“virtualStorageResourceInfo”条目。 |
virtualStorageDescId |
body |
字符串 |
VNFD 中相关虚拟存储描述符的标识符。 |
changeType |
body |
字符串 |
指示更改类型。允许的值 ADDED REMOVED MODIFIED TEMPORARY 对于临时资源,受影响的虚拟存储结构在临时资源存在期间一直存在。 |
storageResource |
body |
对象 |
对 VirtualStorage 资源的引用。 |
vimConnectionId (可选) |
body |
字符串 |
用于管理资源的 VIM 连接的标识符。仅当直接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。 |
resourceId |
body |
字符串 |
VIM 或资源提供商范围内的资源的标识符。 |
vimLevelResourceType (可选) |
body |
字符串 |
VIM 或资源提供商范围内的资源的类型。provider。 |
changedInfo (可选) |
body |
对象 |
有关更改的 VNF 实例信息,包括 VNF 可配置属性(如果适用)。 |
vnfInstanceName (可选) |
body |
字符串 |
如果存在,此属性表示对“VnfInstance”中的“vnfInstanceName”属性的修改。 |
vnfInstanceDescription (可选) |
body |
字符串 |
如果存在,此属性表示对“VnfInstance”中的“vnfInstanceDescription”属性的修改。 |
metadata (可选) |
body |
字符串 |
如果存在,此属性表示对“VnfInstance”中的“metadata”属性的修改。 |
vimConnectionInfo (可选) |
body |
数组 |
如果存在,此属性表示对“VnfInstance”中的“vimConnectionInfo”属性数组中某些条目的修改。 |
id |
body |
字符串 |
VIM 连接的标识符。此标识符由 NFVO 管理。 |
vimId (可选) |
body |
字符串 |
VIM 实例的标识符。此标识符由 NFVO 管理。 如果已通过本文档范围之外的方式配置到 VNFM,则应存在,否则应不存在。 |
vimType (可选) |
body |
字符串 |
VIM 信息的不同类型的区分器。 此属性的值根据 VIM 的类型确定“interfaceInfo”和“accessInfo”属性的结构。 随着新的 VIM 类型或版本的可用,允许的值集预计会随时间变化。 |
interfaceInfo (可选) |
body |
字符串 |
如果适用,有关与 VIM 的接口的信息,例如与 VIM 通信的接口端点的 URI。适用的键取决于 vimType 的内容。 或者,这些信息可能已配置到 VNFM 并绑定到 vimId。 |
endpoint |
body |
字符串 |
表示接口端点的 url。 |
accessInfo (可选) |
body |
字符串 |
访问 VIM 的身份验证凭据,以及其他访问相关信息,例如租户或基础设施资源组(请参阅注释)。适用的键取决于 vimType 的内容。 如果 VimConnectionInfo 结构是 HTTP 响应有效负载主体的一部分,则不应包含敏感属性(例如密码)。 如果 VimConnectionInfo 结构是 HTTP 请求有效负载主体的一部分,则如果尚未通过其他方式配置,则应存在敏感属性(例如密码)。 |
username |
body |
字符串 |
用于访问的用户名。 |
region |
body |
字符串 |
用于 VIM 连接的 OpenStack 区域。 |
password |
body |
字符串 |
用于访问的密码。 |
tenant |
body |
字符串 |
用于 VIM 连接的 OpenStack 租户。 |
vnfPkgId (可选) |
body |
字符串 |
如果存在,此属性表示对“VnfInstance”中的“vnfPkgId”属性的修改。 |
vnfdId (可选) |
body |
字符串 |
如果存在,此属性表示对“VnfInstance”中的“vnfdId”属性的修改。 |
vnfProvider (可选) |
body |
字符串 |
如果存在,此属性表示对“VnfInstance”中的“vnfProvider”属性的修改。 |
vnfProductName (可选) |
body |
字符串 |
如果存在,此属性表示对“VnfInstance”中的“vnfProductName”属性的修改。 |
vnfSotwareVersion (可选) |
body |
字符串 |
如果存在,此属性表示对“VnfInstance”中的“vnfSoftwareVersion”属性的修改。 |
vnfdVersion (可选) |
body |
字符串 |
如果存在,此属性表示对“VnfInstance”中的“vnfdVersion”属性的修改。 |
changedExtConnectivity (可选) |
body |
对象 |
有关更改的外部连接信息(如果适用) |
id (可选) |
body |
字符串 |
外部 VL 的标识符以及相关的外部 VL 信息实例。标识符由管理此 VL 实例的 NFV-MANO 实体分配。 |
resourceHandle |
body |
对象 |
实现此 VL 的资源的引用。 |
vimConnectionId (可选) |
body |
字符串 |
用于管理资源的 VIM 连接的标识符。仅当直接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。 |
resourceId |
body |
字符串 |
VIM 或资源提供商范围内的资源的标识符。 |
vimLevelResourceType (可选) |
body |
字符串 |
VIM 或资源提供商范围内的资源的类型。provider。 |
extLinkPorts (可选) |
body |
数组 |
外部提供的链路端口,用于将外部连接点连接到此外部 VL。如果未提供此属性,则 VNFM 应在外部 VL 上创建链路端口。 |
id |
body |
字符串 |
提供此链路端口的实体提供的此链路端口的标识符。 |
resourceHandle |
body |
对象 |
实现此 VL 的资源的引用。 |
vimConnectionId (可选) |
body |
字符串 |
用于管理资源的 VIM 连接的标识符。仅当直接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。 |
vimLevelResourceType (可选) |
body |
字符串 |
VIM 或资源提供商范围内的资源的类型。provider。 |
cpInstanceId (可选) |
body |
字符串 |
要应用此配置参数集的外部连接点实例的标识符。 如果该实例已创建,则应存在。 |
响应示例¶
{
"operation":"INSTANTIATE",
"stateEnteredTime":"2021-01-22 13:41:30.869833+00:00",
"id":"22962087-0494-484f-85e9-ef855e702633",
"isCancelPending":false,
"vnfInstanceId":"a9d0fe86-a3d0-4cbf-a117-578ff182fd7e",
"startTime":"2021-01-22 13:41:03+00:00",
"isAutomaticInvocation":false,
"operationState":"FAILED",
"operationParams":"{\"flavourId\": \"default\", \"instantiationLevelId\": \"n-msc-min\", \"additionalParams\": {\"lcm-operation-user-data\": \"./UserData/lcm_user_data.py\", \"lcm-operation-user-data-class\": \"SampleUserData\", \"sbc_name\": \"sbc\", \"slb_name\": \"slb\", \"image\": \"cirros-0.5.2-x86_64-disk\"}}",
"error":{
"status":500,
"detail":"MANUAL ERROR"
},
"_links":{
"self":{
"href":"https://sample1.com/vnflcm/v1/vnf_lcm_op_occs/22962087-0494-484f-85e9-ef855e702633"
},
"vnfInstance":{
"href":"https://sample1.com/vnflcm/v1/vnf_instances/a9d0fe86-a3d0-4cbf-a117-578ff182fd7e"
},
"retry":{
"href":"https://sample1.com/vnflcm/v1/vnf_lcm_op_occs/22962087-0494-484f-85e9-ef855e702633/retry"
},
"rollback":{
"href":"https://sample1.com/vnflcm/v1/vnf_lcm_op_occs/22962087-0494-484f-85e9-ef855e702633/rollback"
},
"fail":{
"href":"https://sample1.com/vnflcm/v1/vnf_lcm_op_occs/22962087-0494-484f-85e9-ef855e702633/fail"
}
}
}
POST 方法创建新的订阅。
成功执行此方法的结果是,已创建新的“Individual subscription”资源。此方法不会触发任何通知。
创建两个具有相同 callbackURI 和相同 filter 的“Individual subscription”资源可能会导致性能下降,并且会向 NFVO 提供重复的通知,并且只有在非常罕见的情况下才有意义。因此,VNFM 可以允许创建“Individual subscription”资源,如果另一个具有相同 filter 和 callbackUri 的 Individual subscription 资源已经存在(在这种情况下,它将返回 201 Created 响应代码),或者可以决定不创建重复的“Individual subscription”资源(在这种情况下,它将返回“303 See Other”响应代码,引用具有相同 filter 和 callbackUri 的现有“Individual subscription”资源)。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
201 - 已创建 |
资源已创建并准备好使用。 |
错误¶
代码 |
原因 |
|---|---|
303 - See Other |
服务器正在将用户代理重定向到不同的资源,如 Location 标头字段中指示的 URI,旨在为原始请求提供间接响应。 |
400 - 请求错误 |
请求中的某些内容无效。 |
401 - 未授权 |
用户必须在发出请求之前进行身份验证。 |
403 - 禁止 |
策略不允许当前用户执行此操作。 |
请求参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
filter (可选) |
body |
对象 |
此订阅的筛选设置,用于定义所有通知的子集。如果筛选条件匹配,或者没有筛选条件,则将通知发送给订阅者。 |
vnfInstanceSubscriptionFilter (可选) |
body |
对象 |
用于选择要通知的 VNF 实例的筛选标准。 |
notificationTypes (可选) |
body |
字符串 |
匹配特定的通知类型。允许的值 VnfLcmOperationOccurrenceNotification VnfIdentifierCreationNotification VnfIdentifierDeletionNotification |
operationTypes (可选) |
body |
字符串 |
匹配 VnfLcmOperationOccurrenceNotification 类型的特定 VNF 生命周期操作类型。如果“notificationTypes”属性包含值“VnfLcmOperationOccurrenceNotification”,则可以存在,否则必须不存在。 |
operationStates (可选) |
body |
字符串 |
匹配 VnfLcmOperationOccurrenceNotification 类型的通知中报告的特定 LCM 操作状态值。如果“notificationTypes”属性包含值“VnfLcmOperationOccurrenceNotification”,则可以存在,否则必须不存在。 |
callbackUri |
body |
字符串 |
发送通知的端点的 URI。 |
authentication (可选) |
body |
对象 |
用于配置在发送与此订阅对应的通知时使用授权的身份验证参数。仅当订阅者需要通知授权时,才应存在此属性。 |
authType |
body |
字符串 |
定义 API 消费者在接收通知时愿意接受的身份验证/授权类型。允许的值 BASIC:在每个 HTTP 请求中,使用客户端凭据进行 HTTP Basic 身份验证。 OAUTH2_CLIENT_CREDENTIALS:在每个 HTTP 请求中,使用 OAuth 2.0 持有者令牌,该令牌使用客户端凭据授权类型获得。 TLS_CERT 不受支持。 |
paramsBasic (可选) |
body |
对象 |
使用 BASIC 进行身份验证/授权的参数。如果 authType 为“BASIC”且包含的信息未通过其他方式配置,则应存在。否则,应不存在。 |
userName (可选) |
body |
字符串 |
用于 HTTP Basic 身份验证的用户名。如果未通过其他方式配置,则应存在。 |
密码 (可选) |
body |
字符串 |
用于 HTTP Basic 身份验证的密码。如果未通过其他方式配置,则应存在。 |
paramsOauth2ClientCredentials (可选) |
body |
对象 |
使用 OAUTH2_CLIENT_CREDENTIALS 进行身份验证/授权的参数。如果 authType 为“OAUTH2_CLIENT_CREDENTIALS”且包含的信息未通过其他方式配置,则应存在。否则,应不存在。 |
clientId (可选) |
body |
字符串 |
OAuth 2.0 客户端凭据授权类型访问令牌请求中使用的客户端标识符。如果未通过其他方式配置,则应存在。 |
clientPassword (可选) |
body |
字符串 |
OAuth 2.0 客户端凭据授权类型访问令牌请求中使用的客户端密码。如果未通过其他方式配置,则应存在。 |
tokenEndpoint (可选) |
body |
字符串 |
可以获取访问令牌的令牌端点。如果未通过其他方式配置,则应存在。 |
请求示例¶
{
"filter": {
"notificationTypes": [
"VnfLcmOperationOccurrenceNotification"
],
"vnfInstanceSubscriptionFilter": {
"vnfdIds": [],
"vnfProductsFromProviders": {
"vnfProvider": "Vnf Provider 1",
"vnfProducts": [
{
"vnfProductName": "Vnf Product 1",
"versions": [
{
"vnfSoftwareVersion": "v1",
"vnfdVersions": ["vnfd.v1.1"]
}
]
}
]
}
}
},
"callbackUri": "http://sample1.com/notification"
}
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
id |
body |
字符串 |
此订阅资源的标识符。 |
filter (可选) |
body |
对象 |
此订阅的筛选设置,用于定义所有通知的子集。如果筛选条件匹配,或者没有筛选条件,则将通知发送给订阅者。 |
notificationTypes (可选) |
body |
字符串 |
匹配特定的通知类型。允许的值 VnfLcmOperationOccurrenceNotification VnfIdentifierCreationNotification VnfIdentifierDeletionNotification |
operationTypes (可选) |
body |
字符串 |
匹配 VnfLcmOperationOccurrenceNotification 类型的特定 VNF 生命周期操作类型。如果“notificationTypes”属性包含值“VnfLcmOperationOccurrenceNotification”,则可以存在,否则必须不存在。 |
callbackUri |
body |
字符串 |
发送通知的端点的 URI。 |
_links |
body |
对象 |
指向与此资源相关的资源的链接。 |
响应示例¶
{
"id": "76057f8e65ab37fb82d9382dfc3f3c8b",
"filter": {
"vnfInstanceSubscriptionFilter": {
"vnfdIds": [],
"vnfProductsFromProviders": {
"vnfProvider": "Vnf Provider 1",
"vnfProducts": [
{
"vnfProductName": "Vnf Product 1",
"versions": [
{
"vnfSoftwareVersion": "v1",
"vnfdVersions": ["vnfd.v1.1"]
}
]
}
]
}
},
"notificationTypes": [
"VnfLcmOperationOccurrenceNotification"
]
},
"callbackUri": "http://sample1.com/notification",
"_links": {
"self": {
"href": "https://sample1.com/vnflcm/v1/subscriptions/76057f8e65ab37fb82d9382dfc3f3c8b"
}
}
}
DELETE 方法终止单个订阅。
成功执行此方法的结果是,“Individual subscription”资源将不再存在。这意味着不会向以前订阅的 API 消费者发送该订阅的任何通知。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
204 - No Content |
服务器已通过删除资源来满足请求。 |
错误¶
代码 |
原因 |
|---|---|
401 - 未授权 |
用户必须在发出请求之前进行身份验证。 |
403 - 禁止 |
策略不允许当前用户执行此操作。 |
404 - Not Found |
找不到请求的资源。 |
请求参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
subscriptionId |
路径 |
字符串 |
订阅的标识符。 |
GET 方法通过读取“Individual subscription”资源来检索有关订阅的信息。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
401 - 未授权 |
用户必须在发出请求之前进行身份验证。 |
403 - 禁止 |
策略不允许当前用户执行此操作。 |
404 - Not Found |
找不到请求的资源。 |
请求参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
subscriptionId |
路径 |
字符串 |
订阅的标识符。 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
id |
body |
字符串 |
此订阅资源的标识符。 |
filter (可选) |
body |
对象 |
此订阅的筛选设置,用于定义所有通知的子集。如果筛选条件匹配,或者没有筛选条件,则将通知发送给订阅者。 |
vnfInstanceSubscriptionFilter (可选) |
body |
对象 |
此类型表示匹配 VNF 实例的订阅筛选标准。 |
notificationTypes (可选) |
body |
字符串 |
匹配特定的通知类型。允许的值 VnfLcmOperationOccurrenceNotification VnfIdentifierCreationNotification VnfIdentifierDeletionNotification |
operationTypes (可选) |
body |
字符串 |
匹配 VnfLcmOperationOccurrenceNotification 类型的特定 VNF 生命周期操作类型。如果“notificationTypes”属性包含值“VnfLcmOperationOccurrenceNotification”,则可以存在,否则必须不存在。 |
operationStates (可选) |
body |
字符串 |
匹配 VnfLcmOperationOccurrenceNotification 类型的通知中报告的特定 LCM 操作状态值。如果“notificationTypes”属性包含值“VnfLcmOperationOccurrenceNotification”,则可以存在,否则必须不存在。 |
callbackUri |
body |
字符串 |
发送通知的端点的 URI。 |
_links |
body |
对象 |
指向与此资源相关的资源的链接。 |
响应示例¶
{
"id": "76057f8e65ab37fb82d9382dfc3f3c8b",
"filter": {
"vnfInstanceSubscriptionFilter": {
"vnfdIds": [],
"vnfProductsFromProviders": {
"vnfProvider": "Vnf Provider 1",
"vnfProducts": [
{
"vnfProductName": "Vnf Product 1",
"versions": [
{
"vnfSoftwareVersion": "v1",
"vnfdVersions": [
"vnfd.v1.1"
]
}
]
}
]
}
},
"notificationTypes": [
"VnfLcmOperationOccurrenceNotification",
"VnfIdentifierCreationNotification",
"VnfIdentifierDeletionNotification"
],
"operationTypes": [
"INSTANTIATE",
"SCALE",
"TERMINATE",
"HEAL",
"CHANGE_EXT_CONN",
"MODIFY_INFO"
],
"operationStates": [
"STARTING",
"PROCESSING",
"COMPLETED",
"FAILED_TEMP",
"FAILED",
"ROLLING_BACK",
"ROLLED_BACK"
]
},
"callbackUri": "http://sample1.com/notification",
"_links": {
"self": {
"href": "https://sample1.com/vnflcm/v1/subscriptions/76057f8e65ab37fb82d9382dfc3f3c8b"
}
}
}
GET 方法查询调用该方法的函数块的活动订阅列表。它可以用于在错误情况后进行重新同步。
如果响应包含 LINK HTTP 标头(参见 IETF RFC 8288 [3]),且“rel”属性设置为“next”,则 API 消费者可以向 LINK 标头中通信的 URI 发送 GET 请求,以获取下一页结果。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
401 - 未授权 |
用户必须在发出请求之前进行身份验证。 |
403 - 禁止 |
策略不允许当前用户执行此操作。 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
id |
body |
字符串 |
此订阅资源的标识符。 |
filter (可选) |
body |
对象 |
此订阅的筛选设置,用于定义所有通知的子集。如果筛选条件匹配,或者没有筛选条件,则将通知发送给订阅者。 |
vnfInstanceSubscriptionFilter (可选) |
body |
对象 |
用于选择要通知的 VNF 实例的筛选标准。 |
notificationTypes (可选) |
body |
字符串 |
匹配特定的通知类型。允许的值 VnfLcmOperationOccurrenceNotification VnfIdentifierCreationNotification VnfIdentifierDeletionNotification |
operationTypes (可选) |
body |
字符串 |
匹配 VnfLcmOperationOccurrenceNotification 类型的特定 VNF 生命周期操作类型。如果“notificationTypes”属性包含值“VnfLcmOperationOccurrenceNotification”,则可以存在,否则必须不存在。 |
operationStates (可选) |
body |
字符串 |
匹配 VnfLcmOperationOccurrenceNotification 类型的通知中报告的特定 LCM 操作状态值。如果“notificationTypes”属性包含值“VnfLcmOperationOccurrenceNotification”,则可以存在,否则必须不存在。 |
callbackUri |
body |
字符串 |
发送通知的端点的 URI。 |
_links |
body |
对象 |
指向与此资源相关的资源的链接。 |
响应示例¶
[
{
"id": "76057f8e65ab37fb82d9382dfc3f3c8b",
"filter": {
"notificationTypes": [
"VnfLcmOperationOccurrenceNotification"
]
},
"callbackUri": "http://sample1.com/notification",
"_links": {
"self": {
"href": "https://sample1.com/vnflcm/v1/subscriptions/76057f8e65ab37fb82d9382dfc3f3c8b"
}
}
},
{
"id": "4845ac30eab62a0b0b4edc00fbb930ee",
"filter": {
"notificationTypes": [
"VnfLcmOperationOccurrenceNotification",
"VnfIdentifierCreationNotification",
"VnfIdentifierDeletionNotification"
],
"notificationTypes": [
"SCALE",
"HEAL"
]
},
"callbackUri": "http://sample2.com/notification",
"_links": {
"self": {
"href": "https://sample2.com/vnflcm/v1/subscriptions/4845ac30eab62a0b0b4edc00fbb930ee"
}
}
}
]
POST 方法启动重试 VNF 生命周期操作,如果该操作经历了临时故障(即相关的“Individual VNF LCM operation occurrence”资源处于“FAILED_TEMP”状态)。
如果成功处理异步请求,则父资源的“operationState”属性将更改为“PROCESSING”,并且将发出适用的“start”通知,以指示底层 VNF LCM 操作事件正在进行。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已被接受处理,但处理尚未完成。响应中包含一个“location”头部,其中包含一个链接以检查请求的进度。 |
错误¶
代码 |
原因 |
|---|---|
401 - 未授权 |
用户必须在发出请求之前进行身份验证。 |
403 - 禁止 |
策略不允许当前用户执行此操作。 |
404 - Not Found |
找不到请求的资源。 |
409 - Conflict |
此操作与此资源的另一个操作冲突。 |
请求参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
vnfLcmOpOccId |
路径 |
字符串 |
VNF 生命周期管理操作发生的标识符。 |