虚拟化网络功能生命周期管理接口 (VNF LCM) v2¶
虚拟化网络功能生命周期管理接口 (VNF LCM)¶
此接口管理 VNF 实例的 VNF 生命周期管理操作。
此接口允许 NFVO 向 VNFM 发起 VNF 实例的 VNF 生命周期管理操作。
POST 方法创建新的 VNF 实例资源。
成功执行此方法后,应已创建新的单个 VNF 实例资源,并且该资源表示中的 instantiationState 属性值应为 NOT_INSTANTIATED。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
201 - 已创建 |
资源已创建并准备好使用。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
401 - 未授权 |
用户必须在发出请求之前进行身份验证。 |
406 - 不可接受 |
不可接受,请求的资源只能生成根据请求中发送的“Accept”标头不可接受的内容。 |
422 - 无法处理的实体 |
有效负载体的 content type 受支持,并且请求的有效负载体包含语法上正确的数据(例如,格式良好的 JSON),但无法处理该数据(例如,因为它无法通过模式验证)。 |
请求参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
vnfdId |
body |
字符串 |
标识定义要创建的 VNF 实例的 VNFD 的标识符。 |
vnfInstanceName (可选) |
body |
字符串 |
要创建的 VNF 实例的人性化名称。 |
vnfInstanceDescription (可选) |
body |
字符串 |
要创建的 VNF 实例的人性化描述。 |
metadata (可选) |
body |
键值对 |
此属性为“VnfInstance”中的“metadata”属性提供值。 |
请求示例¶
{
"vnfInstanceDescription": "test sample1",
"vnfInstanceName": "sample1",
"vnfdId": "da459819-a2eb-442b-b9a2-0c1c02466baf"
}
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
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 复制而来。 |
vnfConfigurableProperties (可选) |
body |
键值对 |
如果存在,此属性为“VnfInstance”中的“vnfConfigurableProperties”属性提供修改。为操作期间处理 VNF 可配置属性以及在发生冲突时传递所需参数值提供机制。 |
instantiationState |
body |
字符串 |
VNF 实例的实例化状态。 NOT_INSTANTIATED:VNF 实例已终止或未实例化。 INSTANTIATED:VNF 实例已实例化。 |
metadata (可选) |
body |
键值对 |
提供描述 VNF 实例的元数据的其他 VNF 特定属性。这些属性表示存储在 VnfInstance 结构中以供调用 VNF 生命周期管理接口的功能块使用的值。VNFM 或生命周期管理脚本不会使用它们。修改这些属性的值不会影响 VNF 实例,它只会影响 VnfInstance 结构中表示的信息。 |
extensions (可选) |
body |
键值对 |
影响此 VNF 实例生命周期的其他 VNF 特定属性。这些属性表示存储在 VnfInstance 结构中以供 VNFM 或生命周期管理脚本在执行 VNF 生命周期管理操作期间使用的值。修改这些属性的值不会直接影响 VNF 实例;但是,修改后的属性值可以在后续的 VNF 生命周期管理操作期间被考虑,这意味着修改后的值可以间接影响 VNF 实例的配置。 |
_links |
body |
对象 |
指向与此资源相关的资源的链接。 |
响应示例¶
{
"_links": {
"instantiate": {
"href": "http://127.0.0.1:9890/vnflcm/v2/vnf_instances/99e2bae9-45d3-4ca1-83f4-34d44ca25bee/instantiate"
},
"self": {
"href": "http://127.0.0.1:9890/vnflcm/v2/vnf_instances/99e2bae9-45d3-4ca1-83f4-34d44ca25bee"
}
},
"extensions": {},
"id": "99e2bae9-45d3-4ca1-83f4-34d44ca25bee",
"instantiationState": "NOT_INSTANTIATED",
"metadata": {},
"vnfConfigurableProperties": {},
"vnfInstanceDescription": "test sample1",
"vnfInstanceName": "sample1",
"vnfProductName": "Sample VNF",
"vnfProvider": "Company",
"vnfSoftwareVersion": "1.0",
"vnfdId": "da459819-a2eb-442b-b9a2-0c1c02466baf",
"vnfdVersion": "1.0"
}
POST 方法实例化 VNF 实例。
一旦 VNFM 成功完成底层的 VNF LCM 操作发生,它应将 Individual VNF 实例资源表示中的 instantiationState 属性设置为 INSTANTIATED 值,并将 vnfState 属性设置为 STARTED 值。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已被接受处理,但处理尚未完成。响应中包含一个“location”头部,其中包含一个链接以检查请求的进度。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
401 - 未授权 |
用户必须在发出请求之前进行身份验证。 |
404 - Not Found |
找不到请求的资源。 |
406 - 不可接受 |
不可接受,请求的资源只能生成根据请求中发送的“Accept”标头不可接受的内容。 |
409 - Conflict |
此操作与此资源的另一个操作冲突。 |
请求参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
vnfInstanceId |
路径 |
字符串 |
VNF 实例的标识符。 |
flavourId |
body |
字符串 |
要实例化的 VNF 部署风味的标识符。 |
instantiationLevelId (可选) |
body |
字符串 |
要实例化的部署风味的实例化级别标识符。如果未提供,则实例化 VNFD 中声明的默认实例化级别。 |
extVirtualLinks (可选) |
body |
数组 |
有关要连接到 VNF 的外部 VL 的信息。 |
id |
body |
字符串 |
外部 VL 实例的标识符。该标识符由管理此 VL 实例的 NFV-MANO 实体分配。 |
vimConnectionId (可选) |
body |
字符串 |
用于管理资源的 VIM 连接的标识符。仅当直接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。 |
resourceProviderId (可选) |
body |
字符串 |
标识负责该资源的实体。仅当间接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。 |
resourceId |
body |
字符串 |
资源在 VIM 或资源提供商范围内的标识符。 |
extCps |
body |
数组 |
要连接到此外部 VL 的 VNF 的外部 CP。 |
cpdId |
body |
字符串 |
VNFD 中的 CPD 的标识符。 |
cpConfig |
body |
map |
需要配置在从各自 CPD 创建的 CP 实例上的实例数据列表。 |
parentCpConfigId (可选) |
body |
字符串 |
标识干线父端口对应的“VnfExtCpConfig”映射条目的键值。仅存在于提供干线中子端口配置信息的“VnfExtCpConfig”结构中,并且如果支持父端口。 |
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”中的一个。 |
segmentationId (可选) |
body |
字符串 |
Cp 实例连接到的网络段的标识符。 |
ipAddresses (可选) |
body |
数组 |
要分配给 CP 实例的 IP 地址列表。每个条目代表每个子网的固定或动态 IP 地址分配的 IP 地址数据。 如果未提供此属性,则不应分配任何 IP 地址。 |
type |
body |
字符串 |
IP 地址的类型。允许的值:IPV4、IPV6。 |
fixedAddresses (可选) |
body |
数组 |
要分配的固定地址(如果提供了“subnetId”,则来自定义的子网)。“fixedAddresses”或“numDynamicAddresses”中应存在且仅存在一个。 |
numDynamicAddresses (可选) |
body |
int |
设置动态地址的数量。“fixedAddresses”或“numDynamicAddresses”中应存在且仅存在一个。 |
addressRange (可选) |
body |
对象 |
要使用的 IP 地址范围,例如在出口连接的情况下。 |
minAddress |
body |
字符串 |
范围内的最低 IP 地址。 |
maxAddress |
body |
字符串 |
范围内的最高 IP 地址。 |
subnetId (可选) |
body |
字符串 |
由 VIM 中子网资源标识符定义的子网。如果存在此属性,将分配来自该子网的 IP 地址;否则,将分配未绑定到子网的 IP 地址。 |
extLinkPorts (可选) |
body |
数组 |
外部提供的链路端口,用于将外部连接点连接到此外部 VL。如果未提供此属性,VNFM 应在外部 VL 上创建链路端口。 |
id |
body |
字符串 |
由创建链路端口的实体提供的此链路端口的标识符。 |
resourceHandle |
body |
对象 |
实现此链路端口的虚拟化资源的引用。 |
vimConnectionId (可选) |
body |
字符串 |
用于管理资源的 VIM 连接的标识符。仅当直接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。 |
resourceProviderId (可选) |
body |
字符串 |
标识负责该资源的实体。仅当间接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。 |
resourceId |
body |
字符串 |
VIM 或资源提供商范围内的资源的标识符。 |
vimLevelResourceType (可选) |
body |
字符串 |
VIM 或资源提供商范围内的资源类型。 |
extManagedVirtualLinks (可选) |
body |
数组 |
有关由 NFVO 管理的内部 VL 的信息列表。 |
id |
body |
字符串 |
外部管理的内部 VL 实例的标识符。该标识符由管理此 VL 实例的 NFV-MANO 实体分配。 |
vnfVirtualLinkDescId |
body |
字符串 |
VNFD 中此 VL 的 VLD 的标识符。 |
vimConnectionId (可选) |
body |
字符串 |
用于管理资源的 VIM 连接的标识符。仅当直接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。 |
resourceProviderId (可选) |
body |
字符串 |
标识负责该资源的实体。仅当间接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。 |
resourceId |
body |
字符串 |
资源在 VIM 或资源提供商范围内的标识符。 |
vnfLinkPort (可选) |
body |
对象 |
外部提供的链路端口,用于将 VNFC 连接点连接到此外部管理的 VL 上的网络资源。如果未提供此属性,VNFM 应在外部管理的 VL 上创建链路端口。 |
vnfLinkPortId |
body |
字符串 |
由创建链路端口的实体提供的此链路端口的标识符。 |
resourceHandle |
body |
对象 |
实现此链路端口的虚拟化网络资源的引用。 |
vimConnectionId (可选) |
body |
字符串 |
用于管理资源的 VIM 连接的标识符。仅当直接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。 |
resourceProviderId (可选) |
body |
字符串 |
标识负责该资源的实体。仅当间接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。 |
resourceId |
body |
字符串 |
VIM 或资源提供商范围内的资源的标识符。 |
vimLevelResourceType (可选) |
body |
字符串 |
VIM 或资源提供商范围内的资源类型。 |
extManagedMultisiteVirtualLinkId (可选) |
body |
字符串 |
外部管理的跨站点 VL 实例的标识符。该标识符由管理外部管理的跨站点 VL 实例的 NFV-MANO 实体分配。当当前外部管理的内部 VL(由 extManagedVirtualLinkId 指示)是跨站点 VL 的一部分时,例如为了支持跨多个 VIM 的跨站点 VNF,它应存在。对应于基于相同 virtualLinkDescId 创建的内部 VL 的所有外部管理的内部 VL 实例应引用相同的 extManagedMultisiteVirtualLinkId。 |
vimConnectionInfo (可选) |
body |
map |
有关 VIM 连接的信息,用于管理 VNF 实例的资源,或引用外部/外部管理的虚拟链路。 仅当直接模式下的 VNF 相关资源管理适用时,才应支持此属性并可能存在。 |
vimId (可选) |
body |
字符串 |
VIM 实例的标识符。此标识符由 NFVO 管理。 如果已通过本文档范围之外的方式配置到 VNFM,则应存在以解决有关 VIM 的其他信息,否则应不存在。 |
vimType |
body |
字符串 |
VIM 信息的不同类型的区分器。 此属性的值根据 VIM 的类型确定“interfaceInfo”和“accessInfo”属性的结构。 预计允许值的集合会随着新的 VIM 类型或版本可用而发生变化。 |
interfaceInfo (可选) |
body |
键值对 |
如果适用,有关与 VIM 的接口或接口的信息,例如与 VIM 通信的接口端点的 URI。适用的键取决于 vimType 的内容。 或者,这些信息可能已配置到 VNFM 并绑定到 vimId。 |
accessInfo (可选) |
body |
键值对 |
访问 VIM 的身份验证凭据和其他访问相关信息,例如租户或基础设施资源组(请参阅说明)。适用的键取决于 vimType 的内容。 如果 VimConnectionInfo 结构是 HTTP 响应有效负载主体的一部分,则不应包含敏感属性(例如密码)。 如果 VimConnectionInfo 结构是 HTTP 请求有效负载主体的一部分,则如果尚未通过其他方式配置,则应存在敏感属性(例如密码)。 |
extra (可选) |
body |
键值对 |
VIM 类型特定的其他信息。适用的结构,以及此属性是否存在,取决于 vimType 的内容。 |
localizationLanguage (可选) |
body |
字符串 |
要实例化的 VNF 的本地化语言。该值应符合 IETF RFC 5646 [3] 中定义的格式。 |
additionalParams (可选) |
body |
键值对 |
风味更改过程的附加输入参数,特定于正在修改的 VNF,如 VNFD 中“ChangeVnfFlavourOpConfig”的一部分中所声明。 |
extensions (可选) |
body |
键值对 |
影响此 VNF 实例生命周期的其他 VNF 特定属性。这些属性表示存储在 VnfInstance 结构中以供 VNFM 或生命周期管理脚本在执行 VNF 生命周期管理操作期间使用的值。修改这些属性的值不会直接影响 VNF 实例;但是,修改后的属性值可以在后续的 VNF 生命周期管理操作期间被考虑,这意味着修改后的值可以间接影响 VNF 实例的配置。 |
vnfConfigurableProperties (可选) |
body |
键值对 |
如果存在,此属性为“VnfInstance”中的“vnfConfigurableProperties”属性提供修改。为操作期间处理 VNF 可配置属性以及在发生冲突时传递所需参数值提供机制。 |
请求示例¶
{
"extManagedVirtualLinks": [
{
"id": "7a6fe192-c34b-4029-937d-f1a2e7a00f5a",
"resourceId": "11f8a056-0495-4ca6-8de9-94402604663f",
"vnfVirtualLinkDescId": "internalVL1"
}
],
"extVirtualLinks": [
{
"extCps": [
{
"cpConfig": {
"VDU1_CP1_1": {
"cpProtocolData": [
{
"ipOverEthernet": {
"ipAddresses": [
{
"numDynamicAddresses": 1,
"type": "IPV4"
}
]
},
"layerProtocol": "IP_OVER_ETHERNET"
}
]
}
},
"cpdId": "VDU1_CP1"
},
{
"cpConfig": {
"VDU2_CP1_1": {
"cpProtocolData": [
{
"ipOverEthernet": {
"ipAddresses": [
{
"fixedAddresses": [
"10.10.0.101"
],
"type": "IPV4"
}
]
},
"layerProtocol": "IP_OVER_ETHERNET"
}
]
}
},
"cpdId": "VDU2_CP1"
}
],
"id": "b0b2f836-a275-4374-834e-ed336a563b1e",
"resourceId": "1948231e-bbf0-4ff9-a692-40f8d6d5c90d"
},
{
"extCps": [
{
"cpConfig": {
"VDU1_CP2_1": {
"cpProtocolData": [
{
"ipOverEthernet": {
"ipAddresses": [
{
"numDynamicAddresses": 1,
"subnetId": "1d4877ea-b810-4093-95de-bee62b2363f1",
"type": "IPV4"
}
]
},
"layerProtocol": "IP_OVER_ETHERNET"
}
]
}
},
"cpdId": "VDU1_CP2"
},
{
"cpConfig": {
"VDU2_CP2_1": {
"cpProtocolData": [
{
"ipOverEthernet": {
"ipAddresses": [
{
"fixedAddresses": [
"10.10.1.101"
],
"subnetId": "1d4877ea-b810-4093-95de-bee62b2363f1",
"type": "IPV4"
}
]
},
"layerProtocol": "IP_OVER_ETHERNET"
}
]
}
},
"cpdId": "VDU2_CP2"
}
],
"id": "6766a8d4-cad1-43f1-b0cb-ce0ef9267661",
"resourceId": "5af7e28a-e744-4b4f-a1a4-c7d0f7d93cd7"
}
],
"flavourId": "simple",
"instantiationLevelId": "instantiation_level_1",
"vimConnectionInfo": {
"vim1": {
"accessInfo": {
"password": "devstack",
"project": "nfv",
"projectDomain": "Default",
"region": "RegionOne",
"userDomain": "Default",
"username": "nfv_user"
},
"interfaceInfo": {
"endpoint": "https:///identity/v3"
},
"vimId": "03e608b2-e7d4-44fa-bd84-74fb24be3ed5",
"vimType": "ETSINFV.OPENSTACK_KEYSTONE.V_3"
}
}
}
此任务资源表示“终止 VNF”操作。客户端可以使用此资源来终止 VNF 实例。
POST 方法终止 VNF 实例。
一旦 VNFM 成功完成底层的 VNF LCM 操作发生,它应将 Individual VNF 实例资源表示中的 instantiationState 属性设置为 NOT_INSTANTIATED 值。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已被接受处理,但处理尚未完成。响应中包含一个“location”头部,其中包含一个链接以检查请求的进度。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
401 - 未授权 |
用户必须在发出请求之前进行身份验证。 |
404 - Not Found |
找不到请求的资源。 |
406 - 不可接受 |
不可接受,请求的资源只能生成根据请求中发送的“Accept”标头不可接受的内容。 |
409 - Conflict |
此操作与此资源的另一个操作冲突。 |
请求参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
vnfInstanceId |
路径 |
字符串 |
VNF 实例的标识符。 |
terminationType |
body |
enum |
指示是否请求强制或优雅终止。允许的值 FORCEFUL:VNFM 在接受请求后将立即关闭 VNF 并释放资源。 GRACEFUL:VNFM 首先将在接受请求后安排将 VNF 退出服务。一旦完成退出服务操作(无论成功与否),或者一旦“gracefulTerminationTimeout”属性中指定的时间值到期,VNFM 将关闭 VNF 并释放资源。 |
gracefulTerminationTimeout (可选) |
body |
整数 |
仅在优雅终止的情况下适用,此属性定义了在关闭 VNF 并释放资源之前等待 VNF 退出服务的时间。 单位为秒。 如果未提供且“terminationType”属性设置为“GRACEFUL”,则预计VNFM会等待VNF成功退出服务,无论需要多长时间,然后再关闭VNF并释放资源。 |
additionalParams (可选) |
body |
键值对 |
由NFVO作为输入传递到终止过程的附加参数,特定于正在终止的VNF,如VNFD中“TerminateVnfOpConfig”部分所声明。 |
请求示例¶
{
"gracefulTerminationTimeout": 10,
"terminationType": "GRACEFUL"
}
此任务资源代表“修复VNF”操作。客户端可以使用此资源请求修复VNF实例。
POST方法用于修复VNF实例。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已被接受处理,但处理尚未完成。响应中包含一个“location”头部,其中包含一个链接以检查请求的进度。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
401 - 未授权 |
用户必须在发出请求之前进行身份验证。 |
404 - Not Found |
找不到请求的资源。 |
406 - 不可接受 |
不可接受,请求的资源只能生成根据请求中发送的“Accept”标头不可接受的内容。 |
409 - Conflict |
此操作与此资源的另一个操作冲突。 |
请求参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
vnfInstanceId |
路径 |
字符串 |
VNF 实例的标识符。 |
cause (可选) |
body |
字符串 |
指示需要修复过程的原因。 |
additionalParams (可选) |
body |
键值对 |
由NFVO作为输入传递到修复过程的附加参数,特定于正在修复的VNF,如VNFD中“HealVnfOpConfig”部分所声明。 |
all (可选) |
body |
布尔值 |
定义网络资源和存储资源是否包含在修复目标中。 |
vnfcInstanceId (可选) |
body |
数组 |
需要治疗操作的 VNFC 实例列表。 |
请求示例¶
{
"cause": "healing",
"additionalParams": {
"all": false
},
"vnfcInstanceId": ["c51c98dc-b918-4681-a9eb-4f32a57c4e08"]
}
此方法删除“单个VNF实例”资源。
成功执行此方法后,“单个VNF实例”资源将不再存在。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
204 - No Content |
服务器已通过删除资源来满足请求。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
401 - 未授权 |
用户必须在发出请求之前进行身份验证。 |
404 - Not Found |
找不到请求的资源。 |
406 - 不可接受 |
不可接受,请求的资源只能生成根据请求中发送的“Accept”标头不可接受的内容。 |
409 - Conflict |
此操作与此资源的另一个操作冲突。 |
请求参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
vnfInstanceId |
路径 |
字符串 |
VNF 实例的标识符。 |
显示给定单个VNF实例的信息。
GET方法通过读取“单个VNF实例”资源来检索VNF实例的信息。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
401 - 未授权 |
用户必须在发出请求之前进行身份验证。 |
404 - Not Found |
找不到请求的资源。 |
406 - 不可接受 |
不可接受,请求的资源只能生成根据请求中发送的“Accept”标头不可接受的内容。 |
请求参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
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 复制而来。 |
vnfConfigurableProperties (可选) |
body |
键值对 |
如果存在,此属性为“VnfInstance”中的“vnfConfigurableProperties”属性提供修改。为操作期间处理 VNF 可配置属性以及在发生冲突时传递所需参数值提供机制。 |
vimConnectionInfo (可选) |
body |
map |
有关 VIM 连接的信息,用于管理 VNF 实例的资源,或引用外部/外部管理的虚拟链路。 仅当直接模式下的 VNF 相关资源管理适用时,才应支持此属性并可能存在。 |
vimId (可选) |
body |
字符串 |
VIM 实例的标识符。此标识符由 NFVO 管理。 如果已通过本文档范围之外的方式配置到 VNFM,则应存在以解决有关 VIM 的其他信息,否则应不存在。 |
vimType |
body |
字符串 |
VIM 信息的不同类型的区分器。 此属性的值根据 VIM 的类型确定“interfaceInfo”和“accessInfo”属性的结构。 预计允许值的集合会随着新的 VIM 类型或版本可用而发生变化。 |
interfaceInfo (可选) |
body |
键值对 |
如果适用,有关与 VIM 的接口或接口的信息,例如与 VIM 通信的接口端点的 URI。适用的键取决于 vimType 的内容。 或者,这些信息可能已配置到 VNFM 并绑定到 vimId。 |
accessInfo (可选) |
body |
键值对 |
访问 VIM 的身份验证凭据和其他访问相关信息,例如租户或基础设施资源组(请参阅说明)。适用的键取决于 vimType 的内容。 如果 VimConnectionInfo 结构是 HTTP 响应有效负载主体的一部分,则不应包含敏感属性(例如密码)。 如果 VimConnectionInfo 结构是 HTTP 请求有效负载主体的一部分,则如果尚未通过其他方式配置,则应存在敏感属性(例如密码)。 |
extra (可选) |
body |
键值对 |
VIM 类型特定的其他信息。适用的结构,以及此属性是否存在,取决于 vimType 的内容。 |
instantiationState |
body |
字符串 |
VNF 实例的实例化状态。 NOT_INSTANTIATED:VNF 实例已终止或未实例化。 INSTANTIATED:VNF 实例已实例化。 |
instantiatedVnfInfo (可选) |
body |
对象 |
特定于实例化VNF实例的信息。如果instantiateState属性值为INSTANTIATED,则应存在此属性。 |
flavourId |
body |
字符串 |
应用于此VNF实例的VNF部署风味标识符。 |
vnfState |
body |
字符串 |
VNF实例的状态。 |
scaleStatus (可选) |
body |
对象 |
VNF的缩放状态,每个方面一个条目。表示VNF相对于该方面缩放到多大程度。 |
aspectId |
body |
字符串 |
缩放方面的标识符。 |
vnfdId (可选) |
body |
字符串 |
VNFD的标识符。如果值与VnfInstance的vnfdId属性不同,则应存在(例如,在“更改当前VNF包”操作期间或由于最终失败)。 |
scaleLevel |
body |
整数 |
指示缩放级别。最小值应为0,最大值应小于或等于VNFD中描述的maxScaleLevel。 |
maxScaleLevels (可选) |
body |
对象 |
VNF允许的最大缩放级别,每个方面一个条目。 |
aspectId |
body |
字符串 |
缩放方面的标识符。 |
vnfdId (可选) |
body |
字符串 |
VNFD的标识符。如果值与VnfInstance的vnfdId属性不同,则应存在(例如,在“更改当前VNF包”操作期间或由于最终失败)。 |
scaleLevel |
body |
整数 |
指示缩放级别。最小值应为0,最大值应小于或等于VNFD中描述的maxScaleLevel。 |
extCpInfo |
body |
数组 |
有关VNF实例暴露的外部CP的信息。 |
id |
body |
字符串 |
外部CP实例的标识符和相关的information instance标识符。 |
cpdId |
body |
字符串 |
VNFD中外部CPD、VnfExtCpd的标识符。在VNF实例内,对于各自类型而言是唯一的标识符,但不必全局唯一。表示形式:变长字符串。 |
cpConfigId |
body |
字符串 |
引用“ExtVirtualLinkInfo”结构中的“currentVnfExtCpData”的“cpConfig”映射中的应用“VnfExtCpConfig”条目的标识符。 |
cpProtocolInfo |
body |
数组 |
此CP的网络协议信息。 |
layerProtocol |
body |
字符串 |
与网络地址信息关联的层和协议的标识符。 允许的值:IP_OVER_ETHERNET |
ipOverEthernet (可选) |
body |
对象 |
要分配给extCP实例的以太网上的IP地址。如果layerProtocol等于“IP_OVER_ETHERNET”,则应存在,否则应不存在。 |
macAddress (可选) |
body |
字符串 |
MAC 地址。如果未提供此属性,VIM 应选择它。至少应存在“macAddress”或“ipAddresses”中的一个。 |
segmentationId (可选) |
body |
字符串 |
Cp 实例连接到的网络段的标识符。 |
ipAddresses (可选) |
body |
数组 |
分配给CP实例的地址。每个条目代表每个子网通过固定或动态IP地址分配分配的IP地址。 |
type |
body |
字符串 |
IP 地址的类型。允许的值:IPV4、IPV6。 |
addresses (可选) |
body |
数组 |
要分配的固定地址(如果提供了“subnetId”,则来自定义的子网)。“fixedAddresses”或“numDynamicAddresses”中应存在且仅存在一个。 |
isDynamic (可选) |
body |
布尔值 |
指示这组地址是动态分配的(true)还是基于API消费者提供的输入信息提供的地址信息(false)。如果存在“addresses”,则应存在,否则应不存在。 |
addressRange (可选) |
body |
对象 |
要使用的 IP 地址范围,例如在出口连接的情况下。 |
minAddress |
body |
字符串 |
范围内的最低 IP 地址。 |
maxAddress |
body |
字符串 |
范围内的最高 IP 地址。 |
subnetId (可选) |
body |
字符串 |
由 VIM 中子网资源标识符定义的子网。如果存在此属性,将分配来自该子网的 IP 地址;否则,将分配未绑定到子网的 IP 地址。 |
extLinkPortId (可选) |
body |
字符串 |
“extVirtualLinkInfo”结构中的“extLinkPortInfo”结构的标识符。如果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 相关资源管理适用时,才应支持并存在此属性。 |
resourceProviderId (可选) |
body |
字符串 |
标识负责该资源的实体。仅当间接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。 |
resourceId |
body |
字符串 |
VIM 或资源提供商范围内的资源的标识符。 |
vimLevelResourceType (可选) |
body |
字符串 |
VIM 或资源提供商范围内的资源类型。 |
extLinkPorts (可选) |
body |
数组 |
此VL的链路端口。 |
id |
body |
字符串 |
由创建链路端口的实体提供的此链路端口的标识符。 |
resourceHandle |
body |
对象 |
实现此VL的资源的引用。 |
vimConnectionId (可选) |
body |
字符串 |
用于管理资源的 VIM 连接的标识符。仅当直接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。 |
resourceProviderId (可选) |
body |
字符串 |
标识负责该资源的实体。仅当间接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。 |
resourceId |
body |
字符串 |
VIM 或资源提供商范围内的资源的标识符。 |
vimLevelResourceType (可选) |
body |
字符串 |
VIM 或资源提供商范围内的资源类型。 |
cpInstanceId (可选) |
body |
字符串 |
连接到此链路端口的VNF的外部CP的标识符。最多只能有一个链路端口与任何外部连接点实例关联。该值引用VnfInstance中的“extCpInfo”项。 |
currentVnfExtCpData |
body |
对象 |
允许API消费者读取当前CP配置信息,用于将外部CP连接到外部虚拟链路。 |
cpdId |
body |
字符串 |
VNFD 中的 CPD 的标识符。 |
cpConfig |
body |
map |
需要配置在从各自 CPD 创建的 CP 实例上的实例数据列表。 |
parentCpConfigId (可选) |
body |
字符串 |
标识干线父端口对应的“VnfExtCpConfig”映射条目的键值。仅存在于提供干线中子端口配置信息的“VnfExtCpConfig”结构中,并且如果支持父端口。 |
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”中的一个。 |
segmentationId (可选) |
body |
字符串 |
Cp 实例连接到的网络段的标识符。 |
ipAddresses (可选) |
body |
数组 |
要分配给 CP 实例的 IP 地址列表。每个条目代表每个子网的固定或动态 IP 地址分配的 IP 地址数据。 如果未提供此属性,则不应分配任何 IP 地址。 |
type |
body |
字符串 |
IP 地址的类型。允许的值:IPV4、IPV6。 |
fixedAddresses (可选) |
body |
数组 |
要分配的固定地址(如果提供了“subnetId”,则来自定义的子网)。“fixedAddresses”或“numDynamicAddresses”中应存在且仅存在一个。 |
numDynamicAddresses (可选) |
body |
int |
设置动态地址的数量。“fixedAddresses”或“numDynamicAddresses”中应存在且仅存在一个。 |
addressRange (可选) |
body |
对象 |
要使用的 IP 地址范围,例如在出口连接的情况下。 |
minAddress |
body |
字符串 |
范围内的最低 IP 地址。 |
maxAddress |
body |
字符串 |
范围内的最高 IP 地址。 |
subnetId (可选) |
body |
字符串 |
由 VIM 中子网资源标识符定义的子网。如果存在此属性,将分配来自该子网的 IP 地址;否则,将分配未绑定到子网的 IP 地址。 |
extManagedVirtualLinkInfo (可选) |
body |
数组 |
有关VNF实例的外部管理的内部VL的信息。 |
id |
body |
字符串 |
外部管理的内部VL的标识符和相关的外部管理VL信息实例。标识符由管理此VL实例的NFV-MANO实体分配。 |
vnfVirtualLinkDescId |
body |
字符串 |
VNFD中VNF虚拟链路描述符(VLD)的标识符。 |
networkResource |
body |
对象 |
对VirtualNetwork资源的引用。 |
vimConnectionId (可选) |
body |
字符串 |
用于管理资源的 VIM 连接的标识符。仅当直接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。 |
resourceProviderId (可选) |
body |
字符串 |
标识负责该资源的实体。仅当间接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。 |
resourceId |
body |
字符串 |
VIM 或资源提供商范围内的资源的标识符。 |
vimLevelResourceType (可选) |
body |
字符串 |
VIM 或资源提供商范围内的资源类型。 |
vnfLinkPorts (可选) |
body |
数组 |
此VL的链路端口。 |
id |
body |
字符串 |
由创建链路端口的实体提供的此链路端口的标识符。 |
resourceHandle |
body |
对象 |
实现此链路端口的虚拟化网络资源的引用。 |
vimConnectionId (可选) |
body |
字符串 |
用于管理资源的 VIM 连接的标识符。仅当直接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。 |
resourceProviderId (可选) |
body |
字符串 |
标识负责该资源的实体。仅当间接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。 |
resourceId |
body |
字符串 |
VIM 或资源提供商范围内的资源的标识符。 |
vimLevelResourceType (可选) |
body |
字符串 |
VIM 或资源提供商范围内的资源类型。 |
cpInstanceId (可选) |
body |
字符串 |
当链路端口由VNF用于外部连接时,此属性表示与此链路端口关联的标识符。 当链路端口由VNF用于内部连接时,此属性表示要连接到此链路端口的VNFC CP。 当链路端口由VNF用于外部连接时,应存在。 如果用于引用VNFC CP实例,则可能存在。最多只能有一个链路端口与任何外部连接点实例或内部连接点(即VNFC CP)实例关联。 该值引用VnfInstance中的“extCpInfo”项或VnfInstance中的“vnfcResourceInfo”项的“vnfcCpInfo”项。 |
cpInstanceType (可选) |
body |
enum |
由cpInstanceId标识的CP实例的类型。 如果存在“cpInstanceId”,则应存在,否则应不存在。 允许的值 VNFC_CP:链路端口连接到VNFC CP。 EXT_CP:链路端口与外部CP关联。 |
extManagedMultisiteVirtualLinkId (可选) |
body |
字符串 |
外部管理的跨站点 VL 实例的标识符。该标识符由管理外部管理的跨站点 VL 实例的 NFV-MANO 实体分配。当当前外部管理的内部 VL(由 extManagedVirtualLinkId 指示)是跨站点 VL 的一部分时,例如为了支持跨多个 VIM 的跨站点 VNF,它应存在。对应于基于相同 virtualLinkDescId 创建的内部 VL 的所有外部管理的内部 VL 实例应引用相同的 extManagedMultisiteVirtualLinkId。 |
monitoringParameters (可选) |
body |
数组 |
活动监控参数。 |
id |
body |
字符串 |
VNFD中定义的监控参数的标识符。 |
vnfdId (可选) |
body |
字符串 |
VNFD的标识符。如果值与VnfInstance的vnfdId属性不同,则应存在(例如,在“更改当前VNF包”操作期间或由于最终失败)。 |
name (可选) |
body |
字符串 |
VNFD中定义的监控参数的人类可读名称。 |
performanceMetric |
body |
字符串 |
被监控的性能指标。 |
localizationLanguage (可选) |
body |
字符串 |
要实例化的 VNF 的本地化语言。该值应符合 IETF RFC 5646 [3] 中定义的格式。 |
vnfcResourceInfo (可选) |
body |
数组 |
有关VNF实例的VNFC使用的虚拟化计算和存储资源的信息。 |
id |
body |
字符串 |
此VnfcResourceInfo实例的标识符。 |
vduId |
body |
字符串 |
对VNFD中适用VDU的引用。 |
computeResource |
body |
对象 |
对VirtualCompute资源的引用。 |
vimConnectionId (可选) |
body |
字符串 |
用于管理资源的 VIM 连接的标识符。仅当直接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。 |
resourceProviderId (可选) |
body |
字符串 |
标识负责该资源的实体。仅当间接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。 |
resourceId |
body |
字符串 |
VIM 或资源提供商范围内的资源的标识符。 |
vimLevelResourceType (可选) |
body |
字符串 |
VIM 或资源提供商范围内的资源类型。 |
zoneId (可选) |
body |
字符串 |
资源管理层(通常是VIM)管理的资源区域中放置引用的VirtualCompute资源的标识符。如果此信息来自VIM,则应提供。 |
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的标识符。 |
vnfLinkPortId (可选) |
body |
字符串 |
“VnfVirtualLinkResourceInfo”结构中的“VnfLinkPortInfo”结构的标识符。如果CP与VNF实例的内部VL上的链路端口关联,则应存在,否则应不存在。 |
metadata (可选) |
body |
键值对 |
此属性提供“VnfcResourceInfo”中的“metadata”属性的值。 |
vnfVirtualLinkResourceInfo (可选) |
body |
数组 |
有关VNF实例使用的虚拟化网络资源的信息。 |
id |
body |
字符串 |
此VnfVirtualLinkResourceInfo实例的标识符。 |
vnfVirtualLinkDescId |
body |
字符串 |
VNFD中VNF虚拟链路描述符(VLD)的标识符。 |
networkResource |
body |
对象 |
对VirtualNetwork资源的引用。 |
vimConnectionId (可选) |
body |
字符串 |
用于管理资源的 VIM 连接的标识符。仅当直接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。 |
resourceProviderId (可选) |
body |
字符串 |
标识负责该资源的实体。仅当间接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。 |
resourceId |
body |
字符串 |
VIM 或资源提供商范围内的资源的标识符。 |
vimLevelResourceType (可选) |
body |
字符串 |
VIM 或资源提供商范围内的资源类型。 |
vnfLinkPorts (可选) |
body |
数组 |
此VL的链路端口。 |
id |
body |
字符串 |
由创建链路端口的实体提供的此链路端口的标识符。 |
resourceHandle |
body |
对象 |
实现此链路端口的虚拟化网络资源的引用。 |
vimConnectionId (可选) |
body |
字符串 |
用于管理资源的 VIM 连接的标识符。仅当直接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。 |
resourceProviderId (可选) |
body |
字符串 |
标识负责该资源的实体。仅当间接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。 |
resourceId |
body |
字符串 |
VIM 或资源提供商范围内的资源的标识符。 |
vimLevelResourceType (可选) |
body |
字符串 |
VIM 或资源提供商范围内的资源类型。 |
cpInstanceId (可选) |
body |
字符串 |
当链路端口由VNF用于外部连接时,此属性表示与此链路端口关联的标识符。 当链路端口由VNF用于内部连接时,此属性表示要连接到此链路端口的VNFC CP。 当链路端口由VNF用于外部连接时,应存在。 如果用于引用VNFC CP实例,则可能存在。最多只能有一个链路端口与任何外部连接点实例或内部连接点(即VNFC CP)实例关联。 该值引用VnfInstance中的“extCpInfo”项或VnfInstance中的“vnfcResourceInfo”项的“vnfcCpInfo”项。 |
cpInstanceType (可选) |
body |
enum |
由cpInstanceId标识的CP实例的类型。 如果存在“cpInstanceId”,则应存在,否则应不存在。 允许的值 VNFC_CP:链路端口连接到VNFC CP。 EXT_CP:链路端口与外部CP关联。 |
virtualStorageResourceInfo (可选) |
body |
数组 |
有关用作VNF实例存储的虚拟化存储资源的信息。 |
id |
body |
字符串 |
此VirtualStorageResourceInfo实例的标识符。 |
virtualStorageDescId |
body |
字符串 |
VNFD中VirtualStorageDesc的标识符。 |
storageResource |
body |
对象 |
对VirtualStorage资源的引用。 |
vimConnectionId (可选) |
body |
字符串 |
用于管理资源的 VIM 连接的标识符。仅当直接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。 |
resourceProviderId (可选) |
body |
字符串 |
标识负责该资源的实体。仅当间接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。 |
resourceId |
body |
字符串 |
VIM 或资源提供商范围内的资源的标识符。 |
vimLevelResourceType (可选) |
body |
字符串 |
VIM 或资源提供商范围内的资源类型。 |
vnfcInfo |
body |
字符串 |
有关VNFC实例的信息。 |
id |
body |
字符串 |
VNFC实例的标识符。 |
vduId |
body |
字符串 |
对VNFD中适用的VDU信息元素的引用。 |
vnfcResourceInfoId |
body |
字符串 |
此VnfcResourceInfo实例的标识符。 |
vnfcState |
body |
字符串 |
VNFC实例的状态。允许的值 STARTED:VNFC实例已启动并正在运行。 STOPPED:VNFC实例已关闭。 |
vnfcConfigurableProperties |
body |
键值对 |
VNFC实例的可配置属性的更改。 |
metadata (可选) |
body |
键值对 |
此属性不是ETSI定义的标准属性。成功实例化后的VNF信息存储在此属性中。用于其他生命周期操作。 |
metadata (可选) |
body |
键值对 |
提供描述 VNF 实例的元数据的其他 VNF 特定属性。这些属性表示存储在 VnfInstance 结构中以供调用 VNF 生命周期管理接口的功能块使用的值。VNFM 或生命周期管理脚本不会使用它们。修改这些属性的值不会影响 VNF 实例,它只会影响 VnfInstance 结构中表示的信息。 |
extensions (可选) |
body |
键值对 |
影响此 VNF 实例生命周期的其他 VNF 特定属性。这些属性表示存储在 VnfInstance 结构中以供 VNFM 或生命周期管理脚本在执行 VNF 生命周期管理操作期间使用的值。修改这些属性的值不会直接影响 VNF 实例;但是,修改后的属性值可以在后续的 VNF 生命周期管理操作期间被考虑,这意味着修改后的值可以间接影响 VNF 实例的配置。 |
_links |
body |
对象 |
指向与此资源相关的资源的链接。 |
响应示例¶
{
"_links": {
"changeExtConn": {
"href": "http://127.0.0.1:9890/vnflcm/v2/vnf_instances/99e2bae9-45d3-4ca1-83f4-34d44ca25bee/change_ext_conn"
},
"heal": {
"href": "http://127.0.0.1:9890/vnflcm/v2/vnf_instances/99e2bae9-45d3-4ca1-83f4-34d44ca25bee/heal"
},
"scale": {
"href": "http://127.0.0.1:9890/vnflcm/v2/vnf_instances/99e2bae9-45d3-4ca1-83f4-34d44ca25bee/scale"
},
"self": {
"href": "http://127.0.0.1:9890/vnflcm/v2/vnf_instances/99e2bae9-45d3-4ca1-83f4-34d44ca25bee"
},
"terminate": {
"href": "http://127.0.0.1:9890/vnflcm/v2/vnf_instances/99e2bae9-45d3-4ca1-83f4-34d44ca25bee/terminate"
}
},
"extensions": {},
"id": "99e2bae9-45d3-4ca1-83f4-34d44ca25bee",
"instantiatedVnfInfo": {
"extCpInfo": [
{
"associatedVnfcCpId": "f52ba062-48fc-4ff1-bad0-e3a5b29d50bd",
"cpConfigId": "VDU2_CP2_1",
"cpProtocolInfo": [
{
"ipOverEthernet": {
"ipAddresses": [
{
"addresses": [
"10.10.1.101"
],
"subnetId": "1d4877ea-b810-4093-95de-bee62b2363f1",
"type": "IPV4"
}
]
},
"layerProtocol": "IP_OVER_ETHERNET"
}
],
"cpdId": "VDU2_CP2",
"extLinkPortId": "c9008244-6561-49cf-a9a3-6218034e6b02",
"id": "ef2c2ee9-6cdb-4d68-b091-b8a4babdced5"
},
{
"associatedVnfcCpId": "30711c7a-f02b-4ae5-ac9f-eb61828e0f5e",
"cpConfigId": "VDU2_CP1_1",
"cpProtocolInfo": [
{
"ipOverEthernet": {
"ipAddresses": [
{
"addresses": [
"10.10.0.101"
],
"type": "IPV4"
}
]
},
"layerProtocol": "IP_OVER_ETHERNET"
}
],
"cpdId": "VDU2_CP1",
"extLinkPortId": "c19db045-8526-4d2d-8daf-819905f9b3fb",
"id": "96d97d70-c431-4a78-8072-42a974d525aa"
},
{
"associatedVnfcCpId": "bdf62eb2-c2cb-4a11-84b7-eda2526c8d11",
"cpConfigId": "VDU1_CP1_1",
"cpProtocolInfo": [
{
"ipOverEthernet": {
"ipAddresses": [
{
"isDynamic": true,
"type": "IPV4"
}
]
},
"layerProtocol": "IP_OVER_ETHERNET"
}
],
"cpdId": "VDU1_CP1",
"extLinkPortId": "51043a84-78f4-4bbe-832d-a7fcfbd3cb23",
"id": "2c3a08c9-ab43-4bb8-a4b9-b1d9c2c6ff94"
},
{
"associatedVnfcCpId": "1cb04dd2-3a28-4be5-8b87-74a21fbb62dc",
"cpConfigId": "VDU1_CP2_1",
"cpProtocolInfo": [
{
"ipOverEthernet": {
"ipAddresses": [
{
"isDynamic": true,
"subnetId": "1d4877ea-b810-4093-95de-bee62b2363f1",
"type": "IPV4"
}
]
},
"layerProtocol": "IP_OVER_ETHERNET"
}
],
"cpdId": "VDU1_CP2",
"extLinkPortId": "f190426f-63a7-42a5-ad12-44c6bc464f13",
"id": "f8428c7d-2268-40f9-9bea-fa9539d118be"
}
],
"extManagedVirtualLinkInfo": [
{
"id": "7a6fe192-c34b-4029-937d-f1a2e7a00f5a",
"networkResource": {
"resourceId": "11f8a056-0495-4ca6-8de9-94402604663f"
},
"vnfLinkPorts": [
{
"cpInstanceId": "1c55be13-988f-4499-a8e5-3a9f2d0d3913",
"cpInstanceType": "VNFC_CP",
"id": "b8b0430e-169c-442a-9c48-8fb8c4c3db4d",
"resourceHandle": {
"resourceId": "7fe18c76-85eb-4e90-ba95-df6e6bad2cd6",
"vimConnectionId": "vim1",
"vimLevelResourceType": "OS::Neutron::Port"
}
},
{
"cpInstanceId": "ab497ce5-b57e-48d1-8bc1-8f58eac6b45d",
"cpInstanceType": "VNFC_CP",
"id": "2950622a-ded8-4160-88dc-2bf0f02529dd",
"resourceHandle": {
"resourceId": "07dc4096-49c7-478d-986a-fd132efd573a",
"vimConnectionId": "vim1",
"vimLevelResourceType": "OS::Neutron::Port"
}
}
],
"vnfVirtualLinkDescId": "internalVL1"
}
],
"extVirtualLinkInfo": [
{
"currentVnfExtCpData": [
{
"cpConfig": {
"VDU1_CP1_1": {
"cpProtocolData": [
{
"ipOverEthernet": {
"ipAddresses": [
{
"numDynamicAddresses": 1,
"type": "IPV4"
}
]
},
"layerProtocol": "IP_OVER_ETHERNET"
}
]
}
},
"cpdId": "VDU1_CP1"
},
{
"cpConfig": {
"VDU2_CP1_1": {
"cpProtocolData": [
{
"ipOverEthernet": {
"ipAddresses": [
{
"fixedAddresses": [
"10.10.0.101"
],
"type": "IPV4"
}
]
},
"layerProtocol": "IP_OVER_ETHERNET"
}
]
}
},
"cpdId": "VDU2_CP1"
}
],
"extLinkPorts": [
{
"cpInstanceId": "96d97d70-c431-4a78-8072-42a974d525aa",
"id": "c19db045-8526-4d2d-8daf-819905f9b3fb",
"resourceHandle": {
"resourceId": "c1f49f87-37ff-437b-84a0-91a346fdec55",
"vimConnectionId": "vim1",
"vimLevelResourceType": "OS::Neutron::Port"
}
},
{
"cpInstanceId": "2c3a08c9-ab43-4bb8-a4b9-b1d9c2c6ff94",
"id": "51043a84-78f4-4bbe-832d-a7fcfbd3cb23",
"resourceHandle": {
"resourceId": "88bc7eee-0893-4892-b0d3-d58d1c2293a8",
"vimConnectionId": "vim1",
"vimLevelResourceType": "OS::Neutron::Port"
}
}
],
"id": "b0b2f836-a275-4374-834e-ed336a563b1e",
"resourceHandle": {
"resourceId": "1948231e-bbf0-4ff9-a692-40f8d6d5c90d"
}
},
{
"currentVnfExtCpData": [
{
"cpConfig": {
"VDU1_CP2_1": {
"cpProtocolData": [
{
"ipOverEthernet": {
"ipAddresses": [
{
"numDynamicAddresses": 1,
"subnetId": "1d4877ea-b810-4093-95de-bee62b2363f1",
"type": "IPV4"
}
]
},
"layerProtocol": "IP_OVER_ETHERNET"
}
]
}
},
"cpdId": "VDU1_CP2"
},
{
"cpConfig": {
"VDU2_CP2_1": {
"cpProtocolData": [
{
"ipOverEthernet": {
"ipAddresses": [
{
"fixedAddresses": [
"10.10.1.101"
],
"subnetId": "1d4877ea-b810-4093-95de-bee62b2363f1",
"type": "IPV4"
}
]
},
"layerProtocol": "IP_OVER_ETHERNET"
}
]
}
},
"cpdId": "VDU2_CP2"
}
],
"extLinkPorts": [
{
"cpInstanceId": "ef2c2ee9-6cdb-4d68-b091-b8a4babdced5",
"id": "c9008244-6561-49cf-a9a3-6218034e6b02",
"resourceHandle": {
"resourceId": "3c89dfce-2039-41ad-a60b-6be6488bbca6",
"vimConnectionId": "vim1",
"vimLevelResourceType": "OS::Neutron::Port"
}
},
{
"cpInstanceId": "f8428c7d-2268-40f9-9bea-fa9539d118be",
"id": "f190426f-63a7-42a5-ad12-44c6bc464f13",
"resourceHandle": {
"resourceId": "a0db5863-e420-4191-a2bb-c8536b091bda",
"vimConnectionId": "vim1",
"vimLevelResourceType": "OS::Neutron::Port"
}
}
],
"id": "6766a8d4-cad1-43f1-b0cb-ce0ef9267661",
"resourceHandle": {
"resourceId": "5af7e28a-e744-4b4f-a1a4-c7d0f7d93cd7"
}
}
],
"flavourId": "simple",
"maxScaleLevels": [
{
"aspectId": "VDU1_scale",
"scaleLevel": 2
}
],
"scaleStatus": [
{
"aspectId": "VDU1_scale",
"scaleLevel": 0
}
],
"virtualStorageResourceInfo": [
{
"id": "0357ecab-bdd8-403f-a91b-b80f287b536f",
"storageResource": {
"resourceId": "0ea498c7-a740-4b16-b8fd-93dbd5d8ee7d",
"vimConnectionId": "vim1",
"vimLevelResourceType": "OS::Cinder::Volume"
},
"virtualStorageDescId": "VirtualStorage"
}
],
"vnfState": "STARTED",
"vnfVirtualLinkResourceInfo": [
{
"id": "e651053a-e17e-47e3-9665-6ec028873040",
"networkResource": {
"resourceId": "98d5c67b-c7f8-4293-890c-011184b6574b",
"vimConnectionId": "vim1",
"vimLevelResourceType": "OS::Neutron::Net"
},
"vnfLinkPorts": [
{
"cpInstanceId": "b1cab6ba-c571-4fbf-80fd-f8e67b9fbf68",
"cpInstanceType": "VNFC_CP",
"id": "d5ec9027-dba4-4b53-be4a-7bbad1ab9f51",
"resourceHandle": {
"resourceId": "42fe1697-30a7-4a79-8547-71de0c43c8b5",
"vimConnectionId": "vim1",
"vimLevelResourceType": "OS::Neutron::Port"
}
},
{
"cpInstanceId": "f495eec3-1420-467c-b126-19abf8396e11",
"cpInstanceType": "VNFC_CP",
"id": "a5f21c6d-3ba4-4843-b3cc-cc4c8b37be72",
"resourceHandle": {
"resourceId": "5bd09199-1409-46b1-9cd4-191e3fb7c9cb",
"vimConnectionId": "vim1",
"vimLevelResourceType": "OS::Neutron::Port"
}
}
],
"vnfVirtualLinkDescId": "internalVL2"
},
{
"id": "5efa5ab4-4237-4b41-9e39-7f4565992acc",
"networkResource": {
"resourceId": "be459310-e24d-4430-a0b9-b9ad391f4e5e",
"vimConnectionId": "vim1",
"vimLevelResourceType": "OS::Neutron::Net"
},
"vnfLinkPorts": [
{
"cpInstanceId": "e8111f5b-a713-4f40-a64d-fab56d038487",
"cpInstanceType": "VNFC_CP",
"id": "c02a75f8-a809-49c6-b6dc-bbda31928ef0",
"resourceHandle": {
"resourceId": "86c5a181-4232-4937-ba73-5c494f0d267a",
"vimConnectionId": "vim1",
"vimLevelResourceType": "OS::Neutron::Port"
}
},
{
"cpInstanceId": "16686d29-8491-41f8-8f2c-6d091f83592f",
"cpInstanceType": "VNFC_CP",
"id": "bfb260e7-cfdd-45ee-8fb9-64f51d8c2064",
"resourceHandle": {
"resourceId": "de311602-f52b-44a7-af11-15b97ca28beb",
"vimConnectionId": "vim1",
"vimLevelResourceType": "OS::Neutron::Port"
}
}
],
"vnfVirtualLinkDescId": "internalVL3"
}
],
"vnfcInfo": [
{
"id": "12e3f94b-8177-4621-8476-f9af72dddcaa",
"vduId": "VDU2",
"vnfcResourceInfoId": "d0c3f928-adca-4c9b-aaa3-1a8b43a9460d",
"vnfcState": "STARTED"
},
{
"id": "7ba99664-517a-45bd-b69c-7375018a2e2e",
"vduId": "VDU1",
"vnfcResourceInfoId": "60d4ffe7-275c-458d-9f40-0a7b43f895fd",
"vnfcState": "STARTED"
}
],
"vnfcResourceInfo": [
{
"computeResource": {
"resourceId": "edda96a2-b4c2-48ca-a06f-31976f9d9653",
"vimConnectionId": "vim1",
"vimLevelResourceType": "OS::Nova::Server"
},
"id": "d0c3f928-adca-4c9b-aaa3-1a8b43a9460d",
"vduId": "VDU2",
"vnfcCpInfo": [
{
"cpdId": "VDU2_CP1",
"id": "30711c7a-f02b-4ae5-ac9f-eb61828e0f5e",
"vnfExtCpId": "96d97d70-c431-4a78-8072-42a974d525aa"
},
{
"cpdId": "VDU2_CP2",
"id": "f52ba062-48fc-4ff1-bad0-e3a5b29d50bd",
"vnfExtCpId": "ef2c2ee9-6cdb-4d68-b091-b8a4babdced5"
},
{
"cpdId": "VDU2_CP3",
"id": "1c55be13-988f-4499-a8e5-3a9f2d0d3913",
"vnfLinkPortId": "b8b0430e-169c-442a-9c48-8fb8c4c3db4d"
},
{
"cpdId": "VDU2_CP4",
"id": "b1cab6ba-c571-4fbf-80fd-f8e67b9fbf68",
"vnfLinkPortId": "d5ec9027-dba4-4b53-be4a-7bbad1ab9f51"
},
{
"cpdId": "VDU2_CP5",
"id": "e8111f5b-a713-4f40-a64d-fab56d038487",
"vnfLinkPortId": "c02a75f8-a809-49c6-b6dc-bbda31928ef0"
}
]
},
{
"computeResource": {
"resourceId": "66a84389-8234-4394-929f-68e0ea77fde1",
"vimConnectionId": "vim1",
"vimLevelResourceType": "OS::Nova::Server"
},
"id": "60d4ffe7-275c-458d-9f40-0a7b43f895fd",
"storageResourceIds": [
"0357ecab-bdd8-403f-a91b-b80f287b536f"
],
"vduId": "VDU1",
"vnfcCpInfo": [
{
"cpdId": "VDU1_CP1",
"id": "bdf62eb2-c2cb-4a11-84b7-eda2526c8d11",
"vnfExtCpId": "2c3a08c9-ab43-4bb8-a4b9-b1d9c2c6ff94"
},
{
"cpdId": "VDU1_CP2",
"id": "1cb04dd2-3a28-4be5-8b87-74a21fbb62dc",
"vnfExtCpId": "f8428c7d-2268-40f9-9bea-fa9539d118be"
},
{
"cpdId": "VDU1_CP3",
"id": "ab497ce5-b57e-48d1-8bc1-8f58eac6b45d",
"vnfLinkPortId": "2950622a-ded8-4160-88dc-2bf0f02529dd"
},
{
"cpdId": "VDU1_CP4",
"id": "f495eec3-1420-467c-b126-19abf8396e11",
"vnfLinkPortId": "a5f21c6d-3ba4-4843-b3cc-cc4c8b37be72"
},
{
"cpdId": "VDU1_CP5",
"id": "16686d29-8491-41f8-8f2c-6d091f83592f",
"vnfLinkPortId": "bfb260e7-cfdd-45ee-8fb9-64f51d8c2064"
}
]
}
],
"metadata": {
"stack_id": "74350884-fcfd-43f3-a425-2eb007180bc4"
}
},
"instantiationState": "INSTANTIATED",
"metadata": {},
"vimConnectionInfo": {
"vim1": {
"accessInfo": {
"project": "nfv",
"projectDomain": "Default",
"region": "RegionOne",
"userDomain": "Default",
"username": "nfv_user"
},
"interfaceInfo": {
"endpoint": "https:///identity/v3"
},
"vimId": "03e608b2-e7d4-44fa-bd84-74fb24be3ed5",
"vimType": "ETSINFV.OPENSTACK_KEYSTONE.V_3"
}
},
"vnfConfigurableProperties": {},
"vnfInstanceDescription": "test sample1",
"vnfInstanceName": "sample1",
"vnfProductName": "Sample VNF",
"vnfProvider": "Company",
"vnfSoftwareVersion": "1.0",
"vnfdId": "da459819-a2eb-442b-b9a2-0c1c02466baf",
"vnfdVersion": "1.0"
}
GET方法查询有关多个VNF实例的信息。它支持ETSI NFV SOL013 v3.4.1中定义的基于属性的过滤和属性选择器。基于属性的过滤的详细信息在SOL013 v3.4.1第5.2节中描述。
属性选择器允许 API 消费者选择响应中包含哪些属性。可以设置 *all_fields*、*fields*、*exclude_fields* 和 *exclude_default* 作为查询参数。
如果提供了此参数,或者未提供任何参数“all_fields”、“fields”、“exclude_fields”、“exclude_default”,则响应体中的VnfInstance结构应排除以下属性:- vnfConfigurableProperties - vimConnectionInfo - instantiatedVnfInfo - metadata - extensions 默认情况下
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
401 - 未授权 |
用户必须在发出请求之前进行身份验证。 |
406 - 不可接受 |
不可接受,请求的资源只能生成根据请求中发送的“Accept”标头不可接受的内容。 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
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 复制而来。 |
vnfConfigurableProperties (可选) |
body |
键值对 |
如果存在,此属性为“VnfInstance”中的“vnfConfigurableProperties”属性提供修改。为操作期间处理 VNF 可配置属性以及在发生冲突时传递所需参数值提供机制。 |
vimConnectionInfo (可选) |
body |
map |
有关 VIM 连接的信息,用于管理 VNF 实例的资源,或引用外部/外部管理的虚拟链路。 仅当直接模式下的 VNF 相关资源管理适用时,才应支持此属性并可能存在。 |
vimId (可选) |
body |
字符串 |
VIM 实例的标识符。此标识符由 NFVO 管理。 如果已通过本文档范围之外的方式配置到 VNFM,则应存在以解决有关 VIM 的其他信息,否则应不存在。 |
vimType |
body |
字符串 |
VIM 信息的不同类型的区分器。 此属性的值根据 VIM 的类型确定“interfaceInfo”和“accessInfo”属性的结构。 预计允许值的集合会随着新的 VIM 类型或版本可用而发生变化。 |
interfaceInfo (可选) |
body |
键值对 |
如果适用,有关与 VIM 的接口或接口的信息,例如与 VIM 通信的接口端点的 URI。适用的键取决于 vimType 的内容。 或者,这些信息可能已配置到 VNFM 并绑定到 vimId。 |
accessInfo (可选) |
body |
键值对 |
访问 VIM 的身份验证凭据和其他访问相关信息,例如租户或基础设施资源组(请参阅说明)。适用的键取决于 vimType 的内容。 如果 VimConnectionInfo 结构是 HTTP 响应有效负载主体的一部分,则不应包含敏感属性(例如密码)。 如果 VimConnectionInfo 结构是 HTTP 请求有效负载主体的一部分,则如果尚未通过其他方式配置,则应存在敏感属性(例如密码)。 |
extra (可选) |
body |
键值对 |
VIM 类型特定的其他信息。适用的结构,以及此属性是否存在,取决于 vimType 的内容。 |
instantiationState |
body |
字符串 |
VNF 实例的实例化状态。 NOT_INSTANTIATED:VNF 实例已终止或未实例化。 INSTANTIATED:VNF 实例已实例化。 |
instantiatedVnfInfo (可选) |
body |
对象 |
特定于实例化VNF实例的信息。如果instantiateState属性值为INSTANTIATED,则应存在此属性。 |
flavourId |
body |
字符串 |
应用于此VNF实例的VNF部署风味标识符。 |
vnfState |
body |
字符串 |
VNF实例的状态。 |
scaleStatus (可选) |
body |
对象 |
VNF的缩放状态,每个方面一个条目。表示VNF相对于该方面缩放到多大程度。 |
aspectId |
body |
字符串 |
缩放方面的标识符。 |
vnfdId (可选) |
body |
字符串 |
VNFD的标识符。如果值与VnfInstance的vnfdId属性不同,则应存在(例如,在“更改当前VNF包”操作期间或由于最终失败)。 |
scaleLevel |
body |
整数 |
指示缩放级别。最小值应为0,最大值应小于或等于VNFD中描述的maxScaleLevel。 |
maxScaleLevels (可选) |
body |
对象 |
VNF允许的最大缩放级别,每个方面一个条目。 |
aspectId |
body |
字符串 |
缩放方面的标识符。 |
vnfdId (可选) |
body |
字符串 |
VNFD的标识符。如果值与VnfInstance的vnfdId属性不同,则应存在(例如,在“更改当前VNF包”操作期间或由于最终失败)。 |
scaleLevel |
body |
整数 |
指示缩放级别。最小值应为0,最大值应小于或等于VNFD中描述的maxScaleLevel。 |
extCpInfo |
body |
数组 |
有关VNF实例暴露的外部CP的信息。 |
id |
body |
字符串 |
外部CP实例的标识符和相关的information instance标识符。 |
cpdId |
body |
字符串 |
VNFD中外部CPD、VnfExtCpd的标识符。在VNF实例内,对于各自类型而言是唯一的标识符,但不必全局唯一。表示形式:变长字符串。 |
cpConfigId |
body |
字符串 |
引用“ExtVirtualLinkInfo”结构中的“currentVnfExtCpData”的“cpConfig”映射中的应用“VnfExtCpConfig”条目的标识符。 |
cpProtocolInfo |
body |
数组 |
此CP的网络协议信息。 |
layerProtocol |
body |
字符串 |
与网络地址信息关联的层和协议的标识符。 允许的值:IP_OVER_ETHERNET |
ipOverEthernet (可选) |
body |
对象 |
要分配给extCP实例的以太网上的IP地址。如果layerProtocol等于“IP_OVER_ETHERNET”,则应存在,否则应不存在。 |
macAddress (可选) |
body |
字符串 |
MAC 地址。如果未提供此属性,VIM 应选择它。至少应存在“macAddress”或“ipAddresses”中的一个。 |
segmentationId (可选) |
body |
字符串 |
Cp 实例连接到的网络段的标识符。 |
ipAddresses (可选) |
body |
数组 |
分配给CP实例的地址。每个条目代表每个子网通过固定或动态IP地址分配分配的IP地址。 |
type |
body |
字符串 |
IP 地址的类型。允许的值:IPV4、IPV6。 |
addresses (可选) |
body |
数组 |
要分配的固定地址(如果提供了“subnetId”,则来自定义的子网)。“fixedAddresses”或“numDynamicAddresses”中应存在且仅存在一个。 |
isDynamic (可选) |
body |
布尔值 |
指示这组地址是动态分配的(true)还是基于API消费者提供的输入信息提供的地址信息(false)。如果存在“addresses”,则应存在,否则应不存在。 |
addressRange (可选) |
body |
对象 |
要使用的 IP 地址范围,例如在出口连接的情况下。 |
minAddress |
body |
字符串 |
范围内的最低 IP 地址。 |
maxAddress |
body |
字符串 |
范围内的最高 IP 地址。 |
subnetId (可选) |
body |
字符串 |
由 VIM 中子网资源标识符定义的子网。如果存在此属性,将分配来自该子网的 IP 地址;否则,将分配未绑定到子网的 IP 地址。 |
extLinkPortId (可选) |
body |
字符串 |
“extVirtualLinkInfo”结构中的“extLinkPortInfo”结构的标识符。如果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 相关资源管理适用时,才应支持并存在此属性。 |
resourceProviderId (可选) |
body |
字符串 |
标识负责该资源的实体。仅当间接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。 |
resourceId |
body |
字符串 |
VIM 或资源提供商范围内的资源的标识符。 |
vimLevelResourceType (可选) |
body |
字符串 |
VIM 或资源提供商范围内的资源类型。 |
extLinkPorts (可选) |
body |
数组 |
此VL的链路端口。 |
id |
body |
字符串 |
由创建链路端口的实体提供的此链路端口的标识符。 |
resourceHandle |
body |
对象 |
实现此VL的资源的引用。 |
vimConnectionId (可选) |
body |
字符串 |
用于管理资源的 VIM 连接的标识符。仅当直接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。 |
resourceProviderId (可选) |
body |
字符串 |
标识负责该资源的实体。仅当间接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。 |
resourceId |
body |
字符串 |
VIM 或资源提供商范围内的资源的标识符。 |
vimLevelResourceType (可选) |
body |
字符串 |
VIM 或资源提供商范围内的资源类型。 |
cpInstanceId (可选) |
body |
字符串 |
连接到此链路端口的VNF的外部CP的标识符。最多只能有一个链路端口与任何外部连接点实例关联。该值引用VnfInstance中的“extCpInfo”项。 |
currentVnfExtCpData |
body |
对象 |
允许API消费者读取当前CP配置信息,用于将外部CP连接到外部虚拟链路。 |
cpdId |
body |
字符串 |
VNFD 中的 CPD 的标识符。 |
cpConfig |
body |
map |
需要配置在从各自 CPD 创建的 CP 实例上的实例数据列表。 |
parentCpConfigId (可选) |
body |
字符串 |
标识干线父端口对应的“VnfExtCpConfig”映射条目的键值。仅存在于提供干线中子端口配置信息的“VnfExtCpConfig”结构中,并且如果支持父端口。 |
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”中的一个。 |
segmentationId (可选) |
body |
字符串 |
Cp 实例连接到的网络段的标识符。 |
ipAddresses (可选) |
body |
数组 |
要分配给 CP 实例的 IP 地址列表。每个条目代表每个子网的固定或动态 IP 地址分配的 IP 地址数据。 如果未提供此属性,则不应分配任何 IP 地址。 |
type |
body |
字符串 |
IP 地址的类型。允许的值:IPV4、IPV6。 |
fixedAddresses (可选) |
body |
数组 |
要分配的固定地址(如果提供了“subnetId”,则来自定义的子网)。“fixedAddresses”或“numDynamicAddresses”中应存在且仅存在一个。 |
numDynamicAddresses (可选) |
body |
int |
设置动态地址的数量。“fixedAddresses”或“numDynamicAddresses”中应存在且仅存在一个。 |
addressRange (可选) |
body |
对象 |
要使用的 IP 地址范围,例如在出口连接的情况下。 |
minAddress |
body |
字符串 |
范围内的最低 IP 地址。 |
maxAddress |
body |
字符串 |
范围内的最高 IP 地址。 |
subnetId (可选) |
body |
字符串 |
由 VIM 中子网资源标识符定义的子网。如果存在此属性,将分配来自该子网的 IP 地址;否则,将分配未绑定到子网的 IP 地址。 |
extManagedVirtualLinkInfo (可选) |
body |
数组 |
有关VNF实例的外部管理的内部VL的信息。 |
id |
body |
字符串 |
外部管理的内部VL的标识符和相关的外部管理VL信息实例。标识符由管理此VL实例的NFV-MANO实体分配。 |
vnfVirtualLinkDescId |
body |
字符串 |
VNFD中VNF虚拟链路描述符(VLD)的标识符。 |
networkResource |
body |
对象 |
对VirtualNetwork资源的引用。 |
vimConnectionId (可选) |
body |
字符串 |
用于管理资源的 VIM 连接的标识符。仅当直接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。 |
resourceProviderId (可选) |
body |
字符串 |
标识负责该资源的实体。仅当间接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。 |
resourceId |
body |
字符串 |
VIM 或资源提供商范围内的资源的标识符。 |
vimLevelResourceType (可选) |
body |
字符串 |
VIM 或资源提供商范围内的资源类型。 |
vnfLinkPorts (可选) |
body |
数组 |
此VL的链路端口。 |
id |
body |
字符串 |
由创建链路端口的实体提供的此链路端口的标识符。 |
resourceHandle |
body |
对象 |
实现此链路端口的虚拟化网络资源的引用。 |
vimConnectionId (可选) |
body |
字符串 |
用于管理资源的 VIM 连接的标识符。仅当直接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。 |
resourceProviderId (可选) |
body |
字符串 |
标识负责该资源的实体。仅当间接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。 |
resourceId |
body |
字符串 |
VIM 或资源提供商范围内的资源的标识符。 |
vimLevelResourceType (可选) |
body |
字符串 |
VIM 或资源提供商范围内的资源类型。 |
cpInstanceId (可选) |
body |
字符串 |
当链路端口由VNF用于外部连接时,此属性表示与此链路端口关联的标识符。 当链路端口由VNF用于内部连接时,此属性表示要连接到此链路端口的VNFC CP。 当链路端口由VNF用于外部连接时,应存在。 如果用于引用VNFC CP实例,则可能存在。最多只能有一个链路端口与任何外部连接点实例或内部连接点(即VNFC CP)实例关联。 该值引用VnfInstance中的“extCpInfo”项或VnfInstance中的“vnfcResourceInfo”项的“vnfcCpInfo”项。 |
cpInstanceType (可选) |
body |
enum |
由cpInstanceId标识的CP实例的类型。 如果存在“cpInstanceId”,则应存在,否则应不存在。 允许的值 VNFC_CP:链路端口连接到VNFC CP。 EXT_CP:链路端口与外部CP关联。 |
extManagedMultisiteVirtualLinkId (可选) |
body |
字符串 |
外部管理的跨站点 VL 实例的标识符。该标识符由管理外部管理的跨站点 VL 实例的 NFV-MANO 实体分配。当当前外部管理的内部 VL(由 extManagedVirtualLinkId 指示)是跨站点 VL 的一部分时,例如为了支持跨多个 VIM 的跨站点 VNF,它应存在。对应于基于相同 virtualLinkDescId 创建的内部 VL 的所有外部管理的内部 VL 实例应引用相同的 extManagedMultisiteVirtualLinkId。 |
monitoringParameters (可选) |
body |
数组 |
活动监控参数。 |
id |
body |
字符串 |
VNFD中定义的监控参数的标识符。 |
vnfdId (可选) |
body |
字符串 |
VNFD的标识符。如果值与VnfInstance的vnfdId属性不同,则应存在(例如,在“更改当前VNF包”操作期间或由于最终失败)。 |
name (可选) |
body |
字符串 |
VNFD中定义的监控参数的人类可读名称。 |
performanceMetric |
body |
字符串 |
被监控的性能指标。 |
localizationLanguage (可选) |
body |
字符串 |
要实例化的 VNF 的本地化语言。该值应符合 IETF RFC 5646 [3] 中定义的格式。 |
vnfcResourceInfo (可选) |
body |
数组 |
有关VNF实例的VNFC使用的虚拟化计算和存储资源的信息。 |
id |
body |
字符串 |
此VnfcResourceInfo实例的标识符。 |
vduId |
body |
字符串 |
对VNFD中适用VDU的引用。 |
computeResource |
body |
对象 |
对VirtualCompute资源的引用。 |
vimConnectionId (可选) |
body |
字符串 |
用于管理资源的 VIM 连接的标识符。仅当直接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。 |
resourceProviderId (可选) |
body |
字符串 |
标识负责该资源的实体。仅当间接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。 |
resourceId |
body |
字符串 |
VIM 或资源提供商范围内的资源的标识符。 |
vimLevelResourceType (可选) |
body |
字符串 |
VIM 或资源提供商范围内的资源类型。 |
zoneId (可选) |
body |
字符串 |
资源管理层(通常是VIM)管理的资源区域中放置引用的VirtualCompute资源的标识符。如果此信息来自VIM,则应提供。 |
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的标识符。 |
vnfLinkPortId (可选) |
body |
字符串 |
“VnfVirtualLinkResourceInfo”结构中的“VnfLinkPortInfo”结构的标识符。如果CP与VNF实例的内部VL上的链路端口关联,则应存在,否则应不存在。 |
metadata (可选) |
body |
键值对 |
此属性提供“VnfcResourceInfo”中的“metadata”属性的值。 |
vnfVirtualLinkResourceInfo (可选) |
body |
数组 |
有关VNF实例使用的虚拟化网络资源的信息。 |
id |
body |
字符串 |
此VnfVirtualLinkResourceInfo实例的标识符。 |
vnfVirtualLinkDescId |
body |
字符串 |
VNFD中VNF虚拟链路描述符(VLD)的标识符。 |
networkResource |
body |
对象 |
对VirtualNetwork资源的引用。 |
vimConnectionId (可选) |
body |
字符串 |
用于管理资源的 VIM 连接的标识符。仅当直接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。 |
resourceProviderId (可选) |
body |
字符串 |
标识负责该资源的实体。仅当间接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。 |
resourceId |
body |
字符串 |
VIM 或资源提供商范围内的资源的标识符。 |
vimLevelResourceType (可选) |
body |
字符串 |
VIM 或资源提供商范围内的资源类型。 |
vnfLinkPorts (可选) |
body |
数组 |
此VL的链路端口。 |
id |
body |
字符串 |
由创建链路端口的实体提供的此链路端口的标识符。 |
resourceHandle |
body |
对象 |
实现此链路端口的虚拟化网络资源的引用。 |
vimConnectionId (可选) |
body |
字符串 |
用于管理资源的 VIM 连接的标识符。仅当直接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。 |
resourceProviderId (可选) |
body |
字符串 |
标识负责该资源的实体。仅当间接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。 |
resourceId |
body |
字符串 |
VIM 或资源提供商范围内的资源的标识符。 |
vimLevelResourceType (可选) |
body |
字符串 |
VIM 或资源提供商范围内的资源类型。 |
cpInstanceId (可选) |
body |
字符串 |
当链路端口由VNF用于外部连接时,此属性表示与此链路端口关联的标识符。 当链路端口由VNF用于内部连接时,此属性表示要连接到此链路端口的VNFC CP。 当链路端口由VNF用于外部连接时,应存在。 如果用于引用VNFC CP实例,则可能存在。最多只能有一个链路端口与任何外部连接点实例或内部连接点(即VNFC CP)实例关联。 该值引用VnfInstance中的“extCpInfo”项或VnfInstance中的“vnfcResourceInfo”项的“vnfcCpInfo”项。 |
cpInstanceType (可选) |
body |
enum |
由cpInstanceId标识的CP实例的类型。 如果存在“cpInstanceId”,则应存在,否则应不存在。 允许的值 VNFC_CP:链路端口连接到VNFC CP。 EXT_CP:链路端口与外部CP关联。 |
virtualStorageResourceInfo (可选) |
body |
数组 |
有关用作VNF实例存储的虚拟化存储资源的信息。 |
id |
body |
字符串 |
此VirtualStorageResourceInfo实例的标识符。 |
virtualStorageDescId |
body |
字符串 |
VNFD中VirtualStorageDesc的标识符。 |
storageResource |
body |
对象 |
对VirtualStorage资源的引用。 |
vimConnectionId (可选) |
body |
字符串 |
用于管理资源的 VIM 连接的标识符。仅当直接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。 |
resourceProviderId (可选) |
body |
字符串 |
标识负责该资源的实体。仅当间接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。 |
resourceId |
body |
字符串 |
VIM 或资源提供商范围内的资源的标识符。 |
vimLevelResourceType (可选) |
body |
字符串 |
VIM 或资源提供商范围内的资源类型。 |
vnfcInfo |
body |
字符串 |
有关VNFC实例的信息。 |
id |
body |
字符串 |
VNFC实例的标识符。 |
vduId |
body |
字符串 |
对VNFD中适用的VDU信息元素的引用。 |
vnfcResourceInfoId |
body |
字符串 |
此VnfcResourceInfo实例的标识符。 |
vnfcState |
body |
字符串 |
VNFC实例的状态。允许的值 STARTED:VNFC实例已启动并正在运行。 STOPPED:VNFC实例已关闭。 |
vnfcConfigurableProperties |
body |
键值对 |
VNFC实例的可配置属性的更改。 |
metadata (可选) |
body |
键值对 |
此属性不是ETSI定义的标准属性。成功实例化后的VNF信息存储在此属性中。用于其他生命周期操作。 |
metadata (可选) |
body |
键值对 |
提供描述 VNF 实例的元数据的其他 VNF 特定属性。这些属性表示存储在 VnfInstance 结构中以供调用 VNF 生命周期管理接口的功能块使用的值。VNFM 或生命周期管理脚本不会使用它们。修改这些属性的值不会影响 VNF 实例,它只会影响 VnfInstance 结构中表示的信息。 |
extensions (可选) |
body |
键值对 |
影响此 VNF 实例生命周期的其他 VNF 特定属性。这些属性表示存储在 VnfInstance 结构中以供 VNFM 或生命周期管理脚本在执行 VNF 生命周期管理操作期间使用的值。修改这些属性的值不会直接影响 VNF 实例;但是,修改后的属性值可以在后续的 VNF 生命周期管理操作期间被考虑,这意味着修改后的值可以间接影响 VNF 实例的配置。 |
_links |
body |
对象 |
指向与此资源相关的资源的链接。 |
响应示例¶
[
{
"_links": {
"changeExtConn": {
"href": "http://127.0.0.1:9890/vnflcm/v2/vnf_instances/99e2bae9-45d3-4ca1-83f4-34d44ca25bee/change_ext_conn"
},
"heal": {
"href": "http://127.0.0.1:9890/vnflcm/v2/vnf_instances/99e2bae9-45d3-4ca1-83f4-34d44ca25bee/heal"
},
"scale": {
"href": "http://127.0.0.1:9890/vnflcm/v2/vnf_instances/99e2bae9-45d3-4ca1-83f4-34d44ca25bee/scale"
},
"self": {
"href": "http://127.0.0.1:9890/vnflcm/v2/vnf_instances/99e2bae9-45d3-4ca1-83f4-34d44ca25bee"
},
"terminate": {
"href": "http://127.0.0.1:9890/vnflcm/v2/vnf_instances/99e2bae9-45d3-4ca1-83f4-34d44ca25bee/terminate"
}
},
"extensions": {},
"id": "99e2bae9-45d3-4ca1-83f4-34d44ca25bee",
"instantiatedVnfInfo": {
"extCpInfo": [
{
"associatedVnfcCpId": "f52ba062-48fc-4ff1-bad0-e3a5b29d50bd",
"cpConfigId": "VDU2_CP2_1",
"cpProtocolInfo": [
{
"ipOverEthernet": {
"ipAddresses": [
{
"addresses": [
"10.10.1.101"
],
"subnetId": "1d4877ea-b810-4093-95de-bee62b2363f1",
"type": "IPV4"
}
]
},
"layerProtocol": "IP_OVER_ETHERNET"
}
],
"cpdId": "VDU2_CP2",
"extLinkPortId": "c9008244-6561-49cf-a9a3-6218034e6b02",
"id": "ef2c2ee9-6cdb-4d68-b091-b8a4babdced5"
},
{
"associatedVnfcCpId": "30711c7a-f02b-4ae5-ac9f-eb61828e0f5e",
"cpConfigId": "VDU2_CP1_1",
"cpProtocolInfo": [
{
"ipOverEthernet": {
"ipAddresses": [
{
"addresses": [
"10.10.0.101"
],
"type": "IPV4"
}
]
},
"layerProtocol": "IP_OVER_ETHERNET"
}
],
"cpdId": "VDU2_CP1",
"extLinkPortId": "c19db045-8526-4d2d-8daf-819905f9b3fb",
"id": "96d97d70-c431-4a78-8072-42a974d525aa"
},
{
"associatedVnfcCpId": "bdf62eb2-c2cb-4a11-84b7-eda2526c8d11",
"cpConfigId": "VDU1_CP1_1",
"cpProtocolInfo": [
{
"ipOverEthernet": {
"ipAddresses": [
{
"isDynamic": true,
"type": "IPV4"
}
]
},
"layerProtocol": "IP_OVER_ETHERNET"
}
],
"cpdId": "VDU1_CP1",
"extLinkPortId": "51043a84-78f4-4bbe-832d-a7fcfbd3cb23",
"id": "2c3a08c9-ab43-4bb8-a4b9-b1d9c2c6ff94"
},
{
"associatedVnfcCpId": "1cb04dd2-3a28-4be5-8b87-74a21fbb62dc",
"cpConfigId": "VDU1_CP2_1",
"cpProtocolInfo": [
{
"ipOverEthernet": {
"ipAddresses": [
{
"isDynamic": true,
"subnetId": "1d4877ea-b810-4093-95de-bee62b2363f1",
"type": "IPV4"
}
]
},
"layerProtocol": "IP_OVER_ETHERNET"
}
],
"cpdId": "VDU1_CP2",
"extLinkPortId": "f190426f-63a7-42a5-ad12-44c6bc464f13",
"id": "f8428c7d-2268-40f9-9bea-fa9539d118be"
}
],
"extManagedVirtualLinkInfo": [
{
"id": "7a6fe192-c34b-4029-937d-f1a2e7a00f5a",
"networkResource": {
"resourceId": "11f8a056-0495-4ca6-8de9-94402604663f"
},
"vnfLinkPorts": [
{
"cpInstanceId": "1c55be13-988f-4499-a8e5-3a9f2d0d3913",
"cpInstanceType": "VNFC_CP",
"id": "b8b0430e-169c-442a-9c48-8fb8c4c3db4d",
"resourceHandle": {
"resourceId": "7fe18c76-85eb-4e90-ba95-df6e6bad2cd6",
"vimConnectionId": "vim1",
"vimLevelResourceType": "OS::Neutron::Port"
}
},
{
"cpInstanceId": "ab497ce5-b57e-48d1-8bc1-8f58eac6b45d",
"cpInstanceType": "VNFC_CP",
"id": "2950622a-ded8-4160-88dc-2bf0f02529dd",
"resourceHandle": {
"resourceId": "07dc4096-49c7-478d-986a-fd132efd573a",
"vimConnectionId": "vim1",
"vimLevelResourceType": "OS::Neutron::Port"
}
}
],
"vnfVirtualLinkDescId": "internalVL1"
}
],
"extVirtualLinkInfo": [
{
"currentVnfExtCpData": [
{
"cpConfig": {
"VDU1_CP1_1": {
"cpProtocolData": [
{
"ipOverEthernet": {
"ipAddresses": [
{
"numDynamicAddresses": 1,
"type": "IPV4"
}
]
},
"layerProtocol": "IP_OVER_ETHERNET"
}
]
}
},
"cpdId": "VDU1_CP1"
},
{
"cpConfig": {
"VDU2_CP1_1": {
"cpProtocolData": [
{
"ipOverEthernet": {
"ipAddresses": [
{
"fixedAddresses": [
"10.10.0.101"
],
"type": "IPV4"
}
]
},
"layerProtocol": "IP_OVER_ETHERNET"
}
]
}
},
"cpdId": "VDU2_CP1"
}
],
"extLinkPorts": [
{
"cpInstanceId": "96d97d70-c431-4a78-8072-42a974d525aa",
"id": "c19db045-8526-4d2d-8daf-819905f9b3fb",
"resourceHandle": {
"resourceId": "c1f49f87-37ff-437b-84a0-91a346fdec55",
"vimConnectionId": "vim1",
"vimLevelResourceType": "OS::Neutron::Port"
}
},
{
"cpInstanceId": "2c3a08c9-ab43-4bb8-a4b9-b1d9c2c6ff94",
"id": "51043a84-78f4-4bbe-832d-a7fcfbd3cb23",
"resourceHandle": {
"resourceId": "88bc7eee-0893-4892-b0d3-d58d1c2293a8",
"vimConnectionId": "vim1",
"vimLevelResourceType": "OS::Neutron::Port"
}
}
],
"id": "b0b2f836-a275-4374-834e-ed336a563b1e",
"resourceHandle": {
"resourceId": "1948231e-bbf0-4ff9-a692-40f8d6d5c90d"
}
},
{
"currentVnfExtCpData": [
{
"cpConfig": {
"VDU1_CP2_1": {
"cpProtocolData": [
{
"ipOverEthernet": {
"ipAddresses": [
{
"numDynamicAddresses": 1,
"subnetId": "1d4877ea-b810-4093-95de-bee62b2363f1",
"type": "IPV4"
}
]
},
"layerProtocol": "IP_OVER_ETHERNET"
}
]
}
},
"cpdId": "VDU1_CP2"
},
{
"cpConfig": {
"VDU2_CP2_1": {
"cpProtocolData": [
{
"ipOverEthernet": {
"ipAddresses": [
{
"fixedAddresses": [
"10.10.1.101"
],
"subnetId": "1d4877ea-b810-4093-95de-bee62b2363f1",
"type": "IPV4"
}
]
},
"layerProtocol": "IP_OVER_ETHERNET"
}
]
}
},
"cpdId": "VDU2_CP2"
}
],
"extLinkPorts": [
{
"cpInstanceId": "ef2c2ee9-6cdb-4d68-b091-b8a4babdced5",
"id": "c9008244-6561-49cf-a9a3-6218034e6b02",
"resourceHandle": {
"resourceId": "3c89dfce-2039-41ad-a60b-6be6488bbca6",
"vimConnectionId": "vim1",
"vimLevelResourceType": "OS::Neutron::Port"
}
},
{
"cpInstanceId": "f8428c7d-2268-40f9-9bea-fa9539d118be",
"id": "f190426f-63a7-42a5-ad12-44c6bc464f13",
"resourceHandle": {
"resourceId": "a0db5863-e420-4191-a2bb-c8536b091bda",
"vimConnectionId": "vim1",
"vimLevelResourceType": "OS::Neutron::Port"
}
}
],
"id": "6766a8d4-cad1-43f1-b0cb-ce0ef9267661",
"resourceHandle": {
"resourceId": "5af7e28a-e744-4b4f-a1a4-c7d0f7d93cd7"
}
}
],
"flavourId": "simple",
"maxScaleLevels": [
{
"aspectId": "VDU1_scale",
"scaleLevel": 2
}
],
"scaleStatus": [
{
"aspectId": "VDU1_scale",
"scaleLevel": 0
}
],
"virtualStorageResourceInfo": [
{
"id": "0357ecab-bdd8-403f-a91b-b80f287b536f",
"storageResource": {
"resourceId": "0ea498c7-a740-4b16-b8fd-93dbd5d8ee7d",
"vimConnectionId": "vim1",
"vimLevelResourceType": "OS::Cinder::Volume"
},
"virtualStorageDescId": "VirtualStorage"
}
],
"vnfState": "STARTED",
"vnfVirtualLinkResourceInfo": [
{
"id": "e651053a-e17e-47e3-9665-6ec028873040",
"networkResource": {
"resourceId": "98d5c67b-c7f8-4293-890c-011184b6574b",
"vimConnectionId": "vim1",
"vimLevelResourceType": "OS::Neutron::Net"
},
"vnfLinkPorts": [
{
"cpInstanceId": "b1cab6ba-c571-4fbf-80fd-f8e67b9fbf68",
"cpInstanceType": "VNFC_CP",
"id": "d5ec9027-dba4-4b53-be4a-7bbad1ab9f51",
"resourceHandle": {
"resourceId": "42fe1697-30a7-4a79-8547-71de0c43c8b5",
"vimConnectionId": "vim1",
"vimLevelResourceType": "OS::Neutron::Port"
}
},
{
"cpInstanceId": "f495eec3-1420-467c-b126-19abf8396e11",
"cpInstanceType": "VNFC_CP",
"id": "a5f21c6d-3ba4-4843-b3cc-cc4c8b37be72",
"resourceHandle": {
"resourceId": "5bd09199-1409-46b1-9cd4-191e3fb7c9cb",
"vimConnectionId": "vim1",
"vimLevelResourceType": "OS::Neutron::Port"
}
}
],
"vnfVirtualLinkDescId": "internalVL2"
},
{
"id": "5efa5ab4-4237-4b41-9e39-7f4565992acc",
"networkResource": {
"resourceId": "be459310-e24d-4430-a0b9-b9ad391f4e5e",
"vimConnectionId": "vim1",
"vimLevelResourceType": "OS::Neutron::Net"
},
"vnfLinkPorts": [
{
"cpInstanceId": "e8111f5b-a713-4f40-a64d-fab56d038487",
"cpInstanceType": "VNFC_CP",
"id": "c02a75f8-a809-49c6-b6dc-bbda31928ef0",
"resourceHandle": {
"resourceId": "86c5a181-4232-4937-ba73-5c494f0d267a",
"vimConnectionId": "vim1",
"vimLevelResourceType": "OS::Neutron::Port"
}
},
{
"cpInstanceId": "16686d29-8491-41f8-8f2c-6d091f83592f",
"cpInstanceType": "VNFC_CP",
"id": "bfb260e7-cfdd-45ee-8fb9-64f51d8c2064",
"resourceHandle": {
"resourceId": "de311602-f52b-44a7-af11-15b97ca28beb",
"vimConnectionId": "vim1",
"vimLevelResourceType": "OS::Neutron::Port"
}
}
],
"vnfVirtualLinkDescId": "internalVL3"
}
],
"vnfcInfo": [
{
"id": "12e3f94b-8177-4621-8476-f9af72dddcaa",
"vduId": "VDU2",
"vnfcResourceInfoId": "d0c3f928-adca-4c9b-aaa3-1a8b43a9460d",
"vnfcState": "STARTED"
},
{
"id": "7ba99664-517a-45bd-b69c-7375018a2e2e",
"vduId": "VDU1",
"vnfcResourceInfoId": "60d4ffe7-275c-458d-9f40-0a7b43f895fd",
"vnfcState": "STARTED"
}
],
"vnfcResourceInfo": [
{
"computeResource": {
"resourceId": "edda96a2-b4c2-48ca-a06f-31976f9d9653",
"vimConnectionId": "vim1",
"vimLevelResourceType": "OS::Nova::Server"
},
"id": "d0c3f928-adca-4c9b-aaa3-1a8b43a9460d",
"vduId": "VDU2",
"vnfcCpInfo": [
{
"cpdId": "VDU2_CP1",
"id": "30711c7a-f02b-4ae5-ac9f-eb61828e0f5e",
"vnfExtCpId": "96d97d70-c431-4a78-8072-42a974d525aa"
},
{
"cpdId": "VDU2_CP2",
"id": "f52ba062-48fc-4ff1-bad0-e3a5b29d50bd",
"vnfExtCpId": "ef2c2ee9-6cdb-4d68-b091-b8a4babdced5"
},
{
"cpdId": "VDU2_CP3",
"id": "1c55be13-988f-4499-a8e5-3a9f2d0d3913",
"vnfLinkPortId": "b8b0430e-169c-442a-9c48-8fb8c4c3db4d"
},
{
"cpdId": "VDU2_CP4",
"id": "b1cab6ba-c571-4fbf-80fd-f8e67b9fbf68",
"vnfLinkPortId": "d5ec9027-dba4-4b53-be4a-7bbad1ab9f51"
},
{
"cpdId": "VDU2_CP5",
"id": "e8111f5b-a713-4f40-a64d-fab56d038487",
"vnfLinkPortId": "c02a75f8-a809-49c6-b6dc-bbda31928ef0"
}
]
},
{
"computeResource": {
"resourceId": "66a84389-8234-4394-929f-68e0ea77fde1",
"vimConnectionId": "vim1",
"vimLevelResourceType": "OS::Nova::Server"
},
"id": "60d4ffe7-275c-458d-9f40-0a7b43f895fd",
"storageResourceIds": [
"0357ecab-bdd8-403f-a91b-b80f287b536f"
],
"vduId": "VDU1",
"vnfcCpInfo": [
{
"cpdId": "VDU1_CP1",
"id": "bdf62eb2-c2cb-4a11-84b7-eda2526c8d11",
"vnfExtCpId": "2c3a08c9-ab43-4bb8-a4b9-b1d9c2c6ff94"
},
{
"cpdId": "VDU1_CP2",
"id": "1cb04dd2-3a28-4be5-8b87-74a21fbb62dc",
"vnfExtCpId": "f8428c7d-2268-40f9-9bea-fa9539d118be"
},
{
"cpdId": "VDU1_CP3",
"id": "ab497ce5-b57e-48d1-8bc1-8f58eac6b45d",
"vnfLinkPortId": "2950622a-ded8-4160-88dc-2bf0f02529dd"
},
{
"cpdId": "VDU1_CP4",
"id": "f495eec3-1420-467c-b126-19abf8396e11",
"vnfLinkPortId": "a5f21c6d-3ba4-4843-b3cc-cc4c8b37be72"
},
{
"cpdId": "VDU1_CP5",
"id": "16686d29-8491-41f8-8f2c-6d091f83592f",
"vnfLinkPortId": "bfb260e7-cfdd-45ee-8fb9-64f51d8c2064"
}
]
}
],
"metadata": {
"stack_id": "74350884-fcfd-43f3-a425-2eb007180bc4"
}
},
"instantiationState": "INSTANTIATED",
"metadata": {},
"vimConnectionInfo": {
"vim1": {
"accessInfo": {
"project": "nfv",
"projectDomain": "Default",
"region": "RegionOne",
"userDomain": "Default",
"username": "nfv_user"
},
"interfaceInfo": {
"endpoint": "https:///identity/v3"
},
"vimId": "03e608b2-e7d4-44fa-bd84-74fb24be3ed5",
"vimType": "ETSINFV.OPENSTACK_KEYSTONE.V_3"
}
},
"vnfConfigurableProperties": {},
"vnfInstanceDescription": "test sample1",
"vnfInstanceName": "sample1",
"vnfProductName": "Sample VNF",
"vnfProvider": "Company",
"vnfSoftwareVersion": "1.0",
"vnfdId": "da459819-a2eb-442b-b9a2-0c1c02466baf",
"vnfdVersion": "1.0"
}
]
此任务资源代表“缩放VNF”操作。客户端可以使用此资源请求缩放VNF实例。
POST方法用于缩放VNF实例。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已被接受处理,但处理尚未完成。响应中包含一个“location”头部,其中包含一个链接以检查请求的进度。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
401 - 未授权 |
用户必须在发出请求之前进行身份验证。 |
404 - Not Found |
找不到请求的资源。 |
406 - 不可接受 |
不可接受,请求的资源只能生成根据请求中发送的“Accept”标头不可接受的内容。 |
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”部分所声明。 |
请求示例¶
{
"additionalParams": {
"dummy-key": "dummy-value"
},
"aspectId": "VDU1_scale",
"numberOfSteps": 1,
"type": "SCALE_OUT"
}
对VNF可配置属性的更改应用于VNF实例中的配置,并反映在此资源的表示中。其他更改应用于VNFM管理的VNF实例信息,并反映在此资源的表示中。
根据ETSI NFV SOL文档,尚未为Etag定义API请求/响应规范,并且使用Etag的事务尚未通过标准化定义。因此,Bobcat版本不支持错误代码:412 前置条件失败。一旦建立了标准规范,它将被安装到tacker上。
此方法修改“单个VNF实例”。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已被接受处理,但处理尚未完成。响应中包含一个“location”头部,其中包含一个链接以检查请求的进度。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
401 - 未授权 |
用户必须在发出请求之前进行身份验证。 |
404 - Not Found |
找不到请求的资源。 |
406 - 不可接受 |
不可接受,请求的资源只能生成根据请求中发送的“Accept”标头不可接受的内容。 |
409 - Conflict |
此操作与此资源的另一个操作冲突。 |
422 - 无法处理的实体 |
有效负载体的 content type 受支持,并且请求的有效负载体包含语法上正确的数据(例如,格式良好的 JSON),但无法处理该数据(例如,因为它无法通过模式验证)。 |
请求参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
vnfInstanceId |
路径 |
字符串 |
VNF 实例的标识符。 |
vnfInstanceName (可选) |
body |
字符串 |
“VnfInstance”中“vnfInstanceName”属性的新值。 |
vnfInstanceDescription (可选) |
body |
字符串 |
“VnfInstance”中“vnfInstanceDescription”属性的新值。 |
vnfdId (可选) |
body |
字符串 |
“VnfInstance”中“vnfdId”属性的新值。“null”值不允许。 |
vnfConfigurableProperties (可选) |
body |
键值对 |
“VnfInstance”中“vnfConfigurableProperties”属性的修改。如果存在,则应根据JSON Merge Patch的规则应用这些修改。 |
metadata (可选) |
body |
键值对 |
“VnfInstance”中“metadata”属性的修改。如果存在,则应根据JSON Merge Patch的规则应用这些修改。 |
extensions (可选) |
body |
键值对 |
“VnfInstance”中“extensions”属性的修改。如果存在,则应根据JSON Merge Patch的规则应用这些修改。 |
vimConnectionInfo (可选) |
body |
map |
有关 VIM 连接的信息,用于管理 VNF 实例的资源,或引用外部/外部管理的虚拟链路。 仅当直接模式下的 VNF 相关资源管理适用时,才应支持此属性并可能存在。 |
vimId (可选) |
body |
字符串 |
VIM 实例的标识符。此标识符由 NFVO 管理。 如果已通过本文档范围之外的方式配置到 VNFM,则应存在以解决有关 VIM 的其他信息,否则应不存在。 |
vimType |
body |
字符串 |
VIM 信息的不同类型的区分器。 此属性的值根据 VIM 的类型确定“interfaceInfo”和“accessInfo”属性的结构。 预计允许值的集合会随着新的 VIM 类型或版本可用而发生变化。 |
interfaceInfo (可选) |
body |
键值对 |
如果适用,有关与 VIM 的接口或接口的信息,例如与 VIM 通信的接口端点的 URI。适用的键取决于 vimType 的内容。 或者,这些信息可能已配置到 VNFM 并绑定到 vimId。 |
accessInfo (可选) |
body |
键值对 |
访问 VIM 的身份验证凭据和其他访问相关信息,例如租户或基础设施资源组(请参阅说明)。适用的键取决于 vimType 的内容。 如果 VimConnectionInfo 结构是 HTTP 响应有效负载主体的一部分,则不应包含敏感属性(例如密码)。 如果 VimConnectionInfo 结构是 HTTP 请求有效负载主体的一部分,则如果尚未通过其他方式配置,则应存在敏感属性(例如密码)。 |
extra (可选) |
body |
键值对 |
VIM 类型特定的其他信息。适用的结构,以及此属性是否存在,取决于 vimType 的内容。 |
vnfcInfoModifications (可选) |
body |
数组 |
此属性指示对“VnfInstance”的“instantiatedVnfInfo”属性中的“vnfcInfo”属性数组的某些条目的修改。 |
id |
body |
字符串 |
要修改其信息的VNFC实例的标识符。 |
vnfcConfigurableProperties |
body |
键值对 |
VNFC实例的可配置属性的更改。 |
注意
JSON Merge Patch不支持“null”。对于类型为“键值对”的属性,通过指定null删除键。(属性本身不能被删除。)
请求示例¶
{
"extensions": {
"dummy-key": "dummy-value"
},
"metadata": {
"dummy-key": "dummy-value"
},
"vimConnectionInfo": {
"vim2": {
"accessInfo": {
"password": "dummy_password",
"project": "dummy_project",
"projectDomain": "Default",
"region": "RegionOne",
"userDomain": "Default",
"username": "dummy_user"
},
"extra": {
"dummy-key": "dummy-val"
},
"interfaceInfo": {
"endpoint": "http://127.0.0.1/identity/v3"
},
"vimId": "ac2d2ece-5e49-4b15-b92d-b681e9c096d8",
"vimType": "ETSINFV.OPENSTACK_KEYSTONE.V_3"
}
},
"vnfConfigurableProperties": {
"dummy-key": "dummy-value"
},
"vnfInstanceDescription": "new description",
"vnfInstanceName": "new name",
"vnfcInfoModifications": [
{
"id": "VDU1-07dfd58c-b147-4d4f-8cd6-d55f41280bb9",
"vnfcConfigurableProperties": {
"dummy-key": "dummy-value"
}
},
{
"id": "VDU1-20637c67-9fbe-4c31-b975-6bc4bcd8c35a",
"vnfcConfigurableProperties": {
"dummy-key": "dummy-value"
}
}
],
"vnfdId": "5f846f98-849c-4df0-b57e-fabe9db2beff"
}
此任务资源代表“更改外部 VNF 连接性”操作。客户端可以使用此资源来更改 VNF 实例的外部连接性。
POST 方法更改 VNF 实例的外部连接性。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已被接受处理,但处理尚未完成。响应中包含一个“location”头部,其中包含一个链接以检查请求的进度。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
401 - 未授权 |
用户必须在发出请求之前进行身份验证。 |
404 - Not Found |
找不到请求的资源。 |
406 - 不可接受 |
不可接受,请求的资源只能生成根据请求中发送的“Accept”标头不可接受的内容。 |
409 - Conflict |
此操作与此资源的另一个操作冲突。 |
请求参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
vnfInstanceId |
路径 |
字符串 |
VNF 实例的标识符。 |
extVirtualLinks |
body |
数组 |
关于要更改的外部 VL 的信息。 |
id |
body |
字符串 |
外部 VL 实例的标识符。该标识符由管理此 VL 实例的 NFV-MANO 实体分配。 |
vimConnectionId (可选) |
body |
字符串 |
用于管理资源的 VIM 连接的标识符。仅当直接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。 |
resourceProviderId (可选) |
body |
字符串 |
标识负责该资源的实体。仅当间接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。 |
resourceId |
body |
字符串 |
资源在 VIM 或资源提供商范围内的标识符。 |
extCps |
body |
数组 |
要连接到此外部 VL 的 VNF 的外部 CP。 |
cpdId |
body |
字符串 |
VNFD 中的 CPD 的标识符。 |
cpConfig |
body |
map |
需要配置在从各自 CPD 创建的 CP 实例上的实例数据列表。 |
parentCpConfigId (可选) |
body |
字符串 |
标识干线父端口对应的“VnfExtCpConfig”映射条目的键值。仅存在于提供干线中子端口配置信息的“VnfExtCpConfig”结构中,并且如果支持父端口。 |
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”中的一个。 |
segmentationId (可选) |
body |
字符串 |
Cp 实例连接到的网络段的标识符。 |
ipAddresses (可选) |
body |
数组 |
要分配给 CP 实例的 IP 地址列表。每个条目代表每个子网的固定或动态 IP 地址分配的 IP 地址数据。 如果未提供此属性,则不应分配任何 IP 地址。 |
type |
body |
字符串 |
IP 地址的类型。允许的值:IPV4、IPV6。 |
fixedAddresses (可选) |
body |
数组 |
要分配的固定地址(如果提供了“subnetId”,则来自定义的子网)。“fixedAddresses”或“numDynamicAddresses”中应存在且仅存在一个。 |
numDynamicAddresses (可选) |
body |
int |
设置动态地址的数量。“fixedAddresses”或“numDynamicAddresses”中应存在且仅存在一个。 |
addressRange (可选) |
body |
对象 |
要使用的 IP 地址范围,例如在出口连接的情况下。 |
minAddress |
body |
字符串 |
范围内的最低 IP 地址。 |
maxAddress |
body |
字符串 |
范围内的最高 IP 地址。 |
subnetId (可选) |
body |
字符串 |
由 VIM 中子网资源标识符定义的子网。如果存在此属性,将分配来自该子网的 IP 地址;否则,将分配未绑定到子网的 IP 地址。 |
extLinkPorts (可选) |
body |
数组 |
外部提供的链路端口,用于将外部连接点连接到此外部 VL。如果未提供此属性,VNFM 应在外部 VL 上创建链路端口。 |
id |
body |
字符串 |
由创建链路端口的实体提供的此链路端口的标识符。 |
resourceHandle |
body |
对象 |
实现此链路端口的虚拟化资源的引用。 |
vimConnectionId (可选) |
body |
字符串 |
用于管理资源的 VIM 连接的标识符。仅当直接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。 |
resourceProviderId (可选) |
body |
字符串 |
标识负责该资源的实体。仅当间接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。 |
resourceId |
body |
字符串 |
VIM 或资源提供商范围内的资源的标识符。 |
vimLevelResourceType (可选) |
body |
字符串 |
VIM 或资源提供商范围内的资源类型。 |
vimConnectionInfo (可选) |
body |
map |
有关 VIM 连接的信息,用于管理 VNF 实例的资源,或引用外部/外部管理的虚拟链路。 仅当直接模式下的 VNF 相关资源管理适用时,才应支持此属性并可能存在。 |
vimId (可选) |
body |
字符串 |
VIM 实例的标识符。此标识符由 NFVO 管理。 如果已通过本文档范围之外的方式配置到 VNFM,则应存在以解决有关 VIM 的其他信息,否则应不存在。 |
vimType |
body |
字符串 |
VIM 信息的不同类型的区分器。 此属性的值根据 VIM 的类型确定“interfaceInfo”和“accessInfo”属性的结构。 预计允许值的集合会随着新的 VIM 类型或版本可用而发生变化。 |
interfaceInfo (可选) |
body |
键值对 |
如果适用,有关与 VIM 的接口或接口的信息,例如与 VIM 通信的接口端点的 URI。适用的键取决于 vimType 的内容。 或者,这些信息可能已配置到 VNFM 并绑定到 vimId。 |
accessInfo (可选) |
body |
键值对 |
访问 VIM 的身份验证凭据和其他访问相关信息,例如租户或基础设施资源组(请参阅说明)。适用的键取决于 vimType 的内容。 如果 VimConnectionInfo 结构是 HTTP 响应有效负载主体的一部分,则不应包含敏感属性(例如密码)。 如果 VimConnectionInfo 结构是 HTTP 请求有效负载主体的一部分,则如果尚未通过其他方式配置,则应存在敏感属性(例如密码)。 |
extra (可选) |
body |
键值对 |
VIM 类型特定的其他信息。适用的结构,以及此属性是否存在,取决于 vimType 的内容。 |
additionalParams (可选) |
body |
键值对 |
NFVO 作为输入传递给过程的附加参数,特定于要更改外部连接性的 VNF,如 VNFD 中“ChangeExtVnfConnectivityOpConfig”部分中所声明。 |
请求示例¶
{
"additionalParams": {
"dummy-key": "dummy-value"
},
"extVirtualLinks": [
{
"extCps": [
{
"cpConfig": {
"VDU1_CP1": {
"cpProtocolData": [
{
"ipOverEthernet": {
"ipAddresses": [
{
"numDynamicAddresses": 1,
"subnetId": "9df49e05-4288-48d3-bbb5-9ae902d98506",
"type": "IPV4"
}
]
},
"layerProtocol": "IP_OVER_ETHERNET"
}
],
"parentCpConfigId": "6274c3fa-1cec-41cc-add2-fc8808793cf7"
}
},
"cpdId": "VDU1_CP1"
},
{
"cpConfig": {
"VDU2_CP1-1": {
"cpProtocolData": [
{
"ipOverEthernet": {
"ipAddresses": [
{
"numDynamicAddresses": 1,
"subnetId": "9df49e05-4288-48d3-bbb5-9ae902d98506",
"type": "IPV4"
}
]
},
"layerProtocol": "IP_OVER_ETHERNET"
}
],
"linkPortId": "315a2b77-8076-49df-84fe-45579faf4085",
"parentCpConfigId": "99f8ba42-3619-4fbd-81a5-999c3767237b"
}
},
"cpdId": "VDU2_CP1-1"
},
{
"cpConfig": {
"VDU2_CP1-2": {
"cpProtocolData": [
{
"ipOverEthernet": {
"ipAddresses": [
{
"numDynamicAddresses": 1,
"subnetId": "9df49e05-4288-48d3-bbb5-9ae902d98506",
"type": "IPV4"
}
]
},
"layerProtocol": "IP_OVER_ETHERNET"
}
],
"linkPortId": "63e41d9c-2b34-45e9-be79-13bdf9f8b3a3",
"parentCpConfigId": "3b55b051-c5cb-41cf-bc0e-ea71e95d2636"
}
},
"cpdId": "VDU2_CP1-2"
}
],
"extLinkPorts": [
{
"id": "315a2b77-8076-49df-84fe-45579faf4085",
"resourceHandle": {
"resourceId": "1cb1fb17-1a8f-4052-8599-ec6858da3659"
}
},
{
"id": "63e41d9c-2b34-45e9-be79-13bdf9f8b3a3",
"resourceHandle": {
"resourceId": "dummy-id"
}
}
],
"id": "38a38351-fbed-4637-8dcd-01ca1f69d4bb",
"resourceId": "bbe38e96-8395-4b7f-a7da-67058922df1c",
"resourceProviderId": "Company",
"vimConnectionId": "vim1"
},
{
"extCps": [
{
"cpConfig": {
"VDU1_CP2": {
"cpProtocolData": [
{
"ipOverEthernet": {
"ipAddresses": [
{
"numDynamicAddresses": 1,
"subnetId": "775cdf14-a942-4358-a3f2-60ad423f6ad2",
"type": "IPV4"
}
]
},
"layerProtocol": "IP_OVER_ETHERNET"
}
],
"parentCpConfigId": "c09646b2-8a91-4af3-8260-71cfa865a5b1"
}
},
"cpdId": "VDU1_CP2"
},
{
"cpConfig": {
"VDU2_CP2": {
"cpProtocolData": [
{
"ipOverEthernet": {
"ipAddresses": [
{
"fixedAddresses": [
"100.100.100.12"
],
"subnetId": "775cdf14-a942-4358-a3f2-60ad423f6ad2",
"type": "IPV4"
},
{
"numDynamicAddresses": 1,
"subnetId": "15cd2e7e-add5-42cd-b790-2fe734fcc7dc",
"type": "IPV6"
}
],
"macAddress": "fa:16:3e:fa:22:75"
},
"layerProtocol": "IP_OVER_ETHERNET"
}
],
"parentCpConfigId": "40820a06-be32-4ea1-ae38-5f164c8de178"
}
},
"cpdId": "VDU2_CP2"
}
],
"id": "97a82200-328a-44f6-98cb-bfdf27c359c1",
"resourceId": "b47d25bd-f1d8-4136-b7e7-ac8754977661",
"resourceProviderId": "Company",
"vimConnectionId": "vim1"
}
],
"vimConnectionInfo": {
"vim1": {
"accessInfo": {
"password": "devstack",
"project": "nfv",
"projectDomain": "Default",
"region": "RegionOne",
"userDomain": "Default",
"username": "nfv_user"
},
"extra": {
"new-key": "new-val"
},
"interfaceInfo": {
"endpoint": "https:///identity/v3"
},
"vimId": "defb2f96-5670-4bef-8036-27bf61267fc1",
"vimType": "ETSINFV.OPENSTACK_KEYSTONE.V_3"
},
"vim2": {
"accessInfo": {
"password": "dummy_password",
"project": "dummy_project",
"projectDomain": "Default",
"region": "RegionOne",
"userDomain": "Default",
"username": "dummy_user"
},
"extra": {
"dummy-key": "dummy-val"
},
"interfaceInfo": {
"endpoint": "https:///identity/v3"
},
"vimId": "c8dbc7c0-a4f4-4bff-8075-4cb555e63b7b",
"vimType": "ETSINFV.OPENSTACK_KEYSTONE.V_3"
}
}
}
此任务资源代表“更改当前 VNF 包”操作。客户端可以使用此资源来更改 VNF 实例的当前 vnf 包。
POST 方法更改 VNF 实例的当前 vnf 包。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已被接受处理,但处理尚未完成。响应中包含一个“location”头部,其中包含一个链接以检查请求的进度。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
401 - 未授权 |
用户必须在发出请求之前进行身份验证。 |
404 - Not Found |
找不到请求的资源。 |
406 - 不可接受 |
不可接受,请求的资源只能生成根据请求中发送的“Accept”标头不可接受的内容。 |
409 - Conflict |
此操作与此资源的另一个操作冲突。 |
请求参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
vnfInstanceId |
路径 |
字符串 |
VNF 实例的标识符。 |
vnfdId |
body |
字符串 |
定义更改的目标 VNF 包的 VNFD 的标识符。 |
extVirtualLinks (可选) |
body |
数组 |
有关要连接到 VNF 的外部 VL 的信息。 |
id |
body |
字符串 |
外部 VL 实例的标识符。该标识符由管理此 VL 实例的 NFV-MANO 实体分配。 |
vimConnectionId (可选) |
body |
字符串 |
用于管理资源的 VIM 连接的标识符。仅当直接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。 |
resourceProviderId (可选) |
body |
字符串 |
标识负责该资源的实体。仅当间接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。 |
resourceId |
body |
字符串 |
资源在 VIM 或资源提供商范围内的标识符。 |
extCps |
body |
数组 |
要连接到此外部 VL 的 VNF 的外部 CP。 |
cpdId |
body |
字符串 |
VNFD 中的 CPD 的标识符。 |
cpConfig |
body |
map |
需要配置在从各自 CPD 创建的 CP 实例上的实例数据列表。 |
parentCpConfigId (可选) |
body |
字符串 |
标识干线父端口对应的“VnfExtCpConfig”映射条目的键值。仅存在于提供干线中子端口配置信息的“VnfExtCpConfig”结构中,并且如果支持父端口。 |
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”中的一个。 |
segmentationId (可选) |
body |
字符串 |
Cp 实例连接到的网络段的标识符。 |
ipAddresses (可选) |
body |
数组 |
要分配给 CP 实例的 IP 地址列表。每个条目代表每个子网的固定或动态 IP 地址分配的 IP 地址数据。 如果未提供此属性,则不应分配任何 IP 地址。 |
type |
body |
字符串 |
IP 地址的类型。允许的值:IPV4、IPV6。 |
fixedAddresses (可选) |
body |
数组 |
要分配的固定地址(如果提供了“subnetId”,则来自定义的子网)。“fixedAddresses”或“numDynamicAddresses”中应存在且仅存在一个。 |
numDynamicAddresses (可选) |
body |
int |
设置动态地址的数量。“fixedAddresses”或“numDynamicAddresses”中应存在且仅存在一个。 |
addressRange (可选) |
body |
对象 |
要使用的 IP 地址范围,例如在出口连接的情况下。 |
minAddress |
body |
字符串 |
范围内的最低 IP 地址。 |
maxAddress |
body |
字符串 |
范围内的最高 IP 地址。 |
subnetId (可选) |
body |
字符串 |
由 VIM 中子网资源标识符定义的子网。如果存在此属性,将分配来自该子网的 IP 地址;否则,将分配未绑定到子网的 IP 地址。 |
extLinkPorts (可选) |
body |
数组 |
外部提供的链路端口,用于将外部连接点连接到此外部 VL。如果未提供此属性,VNFM 应在外部 VL 上创建链路端口。 |
id |
body |
字符串 |
由创建链路端口的实体提供的此链路端口的标识符。 |
resourceHandle |
body |
对象 |
实现此链路端口的虚拟化资源的引用。 |
vimConnectionId (可选) |
body |
字符串 |
用于管理资源的 VIM 连接的标识符。仅当直接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。 |
resourceProviderId (可选) |
body |
字符串 |
标识负责该资源的实体。仅当间接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。 |
resourceId |
body |
字符串 |
VIM 或资源提供商范围内的资源的标识符。 |
vimLevelResourceType (可选) |
body |
字符串 |
VIM 或资源提供商范围内的资源类型。 |
extManagedVirtualLinks (可选) |
body |
数组 |
有关由 NFVO 管理的内部 VL 的信息列表。 |
id |
body |
字符串 |
外部管理的内部 VL 实例的标识符。该标识符由管理此 VL 实例的 NFV-MANO 实体分配。 |
vnfVirtualLinkDescId |
body |
字符串 |
VNFD 中此 VL 的 VLD 的标识符。 |
resourceId |
body |
字符串 |
资源在 VIM 或资源提供商范围内的标识符。 |
vimConnectionInfo (可选) |
body |
map |
有关用于管理 VNF 实例资源的 VIM 连接的信息,或引用外部/外部管理的虚拟链路。 仅当直接模式下的 VNF 相关资源管理适用时,才应支持此属性,并且可能存在。 VNFM 应根据 JSON Merge Patch 的规则将此属性的内容应用于“VnfInstance”的“vimConnectionInfo”属性。 |
vimId (可选) |
body |
字符串 |
VIM 实例的标识符。此标识符由 NFVO 管理。 如果已通过本文档范围之外的方式配置到 VNFM,则应存在以解决有关 VIM 的其他信息,否则应不存在。 |
vimType |
body |
字符串 |
VIM 信息的不同类型的区分器。 此属性的值根据 VIM 的类型确定“interfaceInfo”和“accessInfo”属性的结构。 预计允许值的集合会随着新的 VIM 类型或版本可用而发生变化。 |
interfaceInfo (可选) |
body |
键值对 |
如果适用,有关与 VIM 的接口或接口的信息,例如与 VIM 通信的接口端点的 URI。适用的键取决于 vimType 的内容。 或者,这些信息可能已配置到 VNFM 并绑定到 vimId。 |
accessInfo (可选) |
body |
键值对 |
访问 VIM 的身份验证凭据和其他访问相关信息,例如租户或基础设施资源组(请参阅说明)。适用的键取决于 vimType 的内容。 如果 VimConnectionInfo 结构是 HTTP 响应有效负载主体的一部分,则不应包含敏感属性(例如密码)。 如果 VimConnectionInfo 结构是 HTTP 请求有效负载主体的一部分,则如果尚未通过其他方式配置,则应存在敏感属性(例如密码)。 |
extra (可选) |
body |
键值对 |
VIM 类型特定的其他信息。适用的结构,以及此属性是否存在,取决于 vimType 的内容。 |
additionalParams (可选) |
body |
键值对 |
NFVO 作为输入传递给过程的附加参数,特定于选择 upgrade_type 的 VNF。 |
请求示例¶
{
"vnfdId": "c6595341-a5bb-8246-53c4-7aeb843d60c5",
"additionalParams": {
"upgrade_type": "RollingUpdate",
"lcm-operation-coordinate-old-vnf": "./Scripts/coordinate_old_vnf.py",
"lcm-operation-coordinate-new-vnf": "./Scripts/coordinate_new_vnf.py",
"vdu_params": [{
"vdu_id": "VDU1",
"old_vnfc_param": {
"cp_name": "VDU1_CP1",
"username": "ubuntu",
"password": "ubuntu"
},
"new_vnfc_param": {
"cp_name": "VDU1_CP1",
"username": "ubuntu",
"password": "ubuntu"
}
}, {
"vdu_id": "VDU2",
"old_vnfc_param": {
"cp_name": "VDU2_CP1",
"username": "ubuntu",
"password": "ubuntu"
},
"new_vnfc_param": {
"cp_name": "VDU2_CP1",
"username": "ubuntu",
"password": "ubuntu"
}
}]
},
"extVirtualLinks": [
{
"extCps": [
{
"cpConfig": {
"VDU1_CP1": {
"cpProtocolData": [
{
"ipOverEthernet": {
"ipAddresses": [
{
"numDynamicAddresses": 1,
"subnetId": "9df49e05-4288-48d3-bbb5-9ae902d98506",
"type": "IPV4"
}
]
},
"layerProtocol": "IP_OVER_ETHERNET"
}
],
"parentCpConfigId": "6274c3fa-1cec-41cc-add2-fc8808793cf7"
}
},
"cpdId": "VDU1_CP1"
},
{
"cpConfig": {
"VDU2_CP1-1": {
"cpProtocolData": [
{
"ipOverEthernet": {
"ipAddresses": [
{
"numDynamicAddresses": 1,
"subnetId": "9df49e05-4288-48d3-bbb5-9ae902d98506",
"type": "IPV4"
}
]
},
"layerProtocol": "IP_OVER_ETHERNET"
}
],
"linkPortId": "315a2b77-8076-49df-84fe-45579faf4085",
"parentCpConfigId": "99f8ba42-3619-4fbd-81a5-999c3767237b"
}
},
"cpdId": "VDU2_CP1-1"
},
{
"cpConfig": {
"VDU2_CP1-2": {
"cpProtocolData": [
{
"ipOverEthernet": {
"ipAddresses": [
{
"numDynamicAddresses": 1,
"subnetId": "9df49e05-4288-48d3-bbb5-9ae902d98506",
"type": "IPV4"
}
]
},
"layerProtocol": "IP_OVER_ETHERNET"
}
],
"linkPortId": "63e41d9c-2b34-45e9-be79-13bdf9f8b3a3",
"parentCpConfigId": "3b55b051-c5cb-41cf-bc0e-ea71e95d2636"
}
},
"cpdId": "VDU2_CP1-2"
}
],
"extLinkPorts": [
{
"id": "315a2b77-8076-49df-84fe-45579faf4085",
"resourceHandle": {
"resourceId": "1cb1fb17-1a8f-4052-8599-ec6858da3659"
}
},
{
"id": "63e41d9c-2b34-45e9-be79-13bdf9f8b3a3",
"resourceHandle": {
"resourceId": "dummy-id"
}
}
],
"id": "38a38351-fbed-4637-8dcd-01ca1f69d4bb",
"resourceId": "bbe38e96-8395-4b7f-a7da-67058922df1c",
"resourceProviderId": "Company",
"vimConnectionId": "vim1"
},
{
"extCps": [
{
"cpConfig": {
"VDU1_CP2": {
"cpProtocolData": [
{
"ipOverEthernet": {
"ipAddresses": [
{
"numDynamicAddresses": 1,
"subnetId": "775cdf14-a942-4358-a3f2-60ad423f6ad2",
"type": "IPV4"
}
]
},
"layerProtocol": "IP_OVER_ETHERNET"
}
],
"parentCpConfigId": "c09646b2-8a91-4af3-8260-71cfa865a5b1"
}
},
"cpdId": "VDU1_CP2"
},
{
"cpConfig": {
"VDU2_CP2": {
"cpProtocolData": [
{
"ipOverEthernet": {
"ipAddresses": [
{
"fixedAddresses": [
"100.100.100.12"
],
"subnetId": "775cdf14-a942-4358-a3f2-60ad423f6ad2",
"type": "IPV4"
},
{
"numDynamicAddresses": 1,
"subnetId": "15cd2e7e-add5-42cd-b790-2fe734fcc7dc",
"type": "IPV6"
}
],
"macAddress": "fa:16:3e:fa:22:75"
},
"layerProtocol": "IP_OVER_ETHERNET"
}
],
"parentCpConfigId": "40820a06-be32-4ea1-ae38-5f164c8de178"
}
},
"cpdId": "VDU2_CP2"
}
],
"id": "97a82200-328a-44f6-98cb-bfdf27c359c1",
"resourceId": "b47d25bd-f1d8-4136-b7e7-ac8754977661",
"resourceProviderId": "Company",
"vimConnectionId": "vim1"
}
],
"vimConnectionInfo": {
"vim1": {
"accessInfo": {
"password": "devstack",
"project": "nfv",
"projectDomain": "Default",
"region": "RegionOne",
"userDomain": "Default",
"username": "nfv_user"
},
"extra": {
"new-key": "new-val"
},
"interfaceInfo": {
"endpoint": "https:///identity/v3"
},
"vimId": "defb2f96-5670-4bef-8036-27bf61267fc1",
"vimType": "ETSINFV.OPENSTACK_KEYSTONE.V_3"
},
"vim2": {
"accessInfo": {
"password": "dummy_password",
"project": "dummy_project",
"projectDomain": "Default",
"region": "RegionOne",
"userDomain": "Default",
"username": "dummy_user"
},
"extra": {
"dummy-key": "dummy-val"
},
"interfaceInfo": {
"endpoint": "https:///identity/v3"
},
"vimId": "c8dbc7c0-a4f4-4bff-8075-4cb555e63b7b",
"vimType": "ETSINFV.OPENSTACK_KEYSTONE.V_3"
}
}
}
客户端可以使用此方法通过读取“单个 VNF LCM 操作事件”资源来检索 VNF 生命周期管理操作事件的状态信息。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
401 - 未授权 |
用户必须在发出请求之前进行身份验证。 |
404 - Not Found |
找不到请求的资源。 |
406 - 不可接受 |
不可接受,请求的资源只能生成根据请求中发送的“Accept”标头不可接受的内容。 |
请求参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
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 CHANGE_EXT_CONN: ChangeExtVnfConnectivityRequest TERMINATE: TerminateVnfRequest MODIFY_INFO: VnfInfoModificationRequest CHANGE_VNFPKG: ChangeCurrentVnfPkgRequest 如果读取单个资源响应中返回此数据类型,则此属性应存在,如果查询容器资源响应中返回此数据类型,则此属性可能存在,具体取决于所选的属性选择器参数。 |
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 操作自其启动以来对虚拟化资源进行的累积更改信息(如果适用)。 |
affectedVnfcs (可选) |
body |
数组 |
生命周期操作期间受影响的 VNFC 实例的信息。 |
id |
body |
字符串 |
Vnfc 实例的标识符,标识“VnfInstance”数据类型中的适用“vnfcResourceInfo”条目。 |
vduId |
body |
字符串 |
VNFD 中相关 VDU 的标识符。 |
changeType |
body |
字符串 |
指示更改的类型。 允许的值: ADDED REMOVED MODIFIED TEMPORARY 对于临时资源,只要临时资源存在,就会存在受影响的 Vncf 结构。 |
computeResource |
body |
对象 |
对VirtualCompute资源的引用。 |
vimConnectionId (可选) |
body |
字符串 |
用于管理资源的 VIM 连接的标识符。仅当直接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。 |
resourceProviderId (可选) |
body |
字符串 |
标识负责该资源的实体。仅当间接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。 |
resourceId |
body |
字符串 |
VIM 或资源提供商范围内的资源的标识符。 |
vimLevelResourceType (可选) |
body |
字符串 |
VIM 或资源提供商范围内的资源类型。 |
zoneId (可选) |
body |
字符串 |
资源管理层(通常是VIM)管理的资源区域中放置引用的VirtualCompute资源的标识符。如果此信息来自VIM,则应提供。 |
metadata |
body |
键值对 |
有关此资源的元数据。 此属性应复制“VnfcResourceInfo”结构中的“metadata”属性的内容。 |
affectedVnfcCpIds (可选) |
body |
数组 |
受更改影响的 VNFC 实例的 CP 标识符。 仅当这些受影响的 CP 与 VNF 实例的外部 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 相关资源管理适用时,才应支持并存在此属性。 |
resourceProviderId (可选) |
body |
字符串 |
标识负责该资源的实体。仅当间接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。 |
resourceId |
body |
字符串 |
VIM 或资源提供商范围内的资源的标识符。 |
vimLevelResourceType (可选) |
body |
字符串 |
VIM 或资源提供商范围内的资源类型。 |
vnfLinkPortIds (可选) |
body |
字符串 |
受影响的 VL 相关更改的链路端口的标识符。 每个标识符引用一个“VnfLinkPortInfo”结构。 当 changeType 等于“LINK_PORT_ADDED”或“LINK_PORT_REMOVED”,并且相关的“VnfLinkPortInfo”结构存在(添加的情况)或曾经存在(删除的情况)于“VnfVirtualLinkResourceInfo”或“ExtManagedVirtualLinkInfo”结构中,这些结构由“VnfInstance”结构中的“vnfVirtualLinkResourceInfo”或“extManagedVirtualLinkInfo”属性表示时,应设置它。 |
affectedExtLinkPorts (可选) |
body |
数组 |
生命周期操作期间受影响的外部 VNF 链路端口的信息。 这允许 NFVO 获取包含在最新“result”通知中的信息,如果由于错误或配置错误的订阅过滤器而未收到该通知。 |
id |
body |
字符串 |
链路端口的标识符,标识“ExtVirtualLinkInfo”数据类型中的适用“extLinkPorts”条目。 |
changeType |
body |
字符串 |
指示更改的类型。 允许的值: ADDED REMOVED |
extCpInstranceId |
body |
字符串 |
相关外部 CP 实例的标识符。 |
resourceHandle |
body |
对象 |
实现此VL的资源的引用。 |
vimConnectionId (可选) |
body |
字符串 |
用于管理资源的 VIM 连接的标识符。仅当直接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。 |
resourceProviderId (可选) |
body |
字符串 |
标识负责该资源的实体。仅当间接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。 |
resourceId |
body |
字符串 |
VIM 或资源提供商范围内的资源的标识符。 |
vimLevelResourceType (可选) |
body |
字符串 |
VIM 或资源提供商范围内的资源类型。 |
affectedVirtualStorages (可选) |
body |
数组 |
生命周期操作期间受影响的虚拟化存储实例的信息。 |
id |
body |
字符串 |
存储实例的标识符,标识“VnfInstance”数据类型中的适用“virtualStorageResourceInfo”条目。 |
virtualStorageDescId |
body |
字符串 |
VNFD 中相关 VirtualStorage 描述符的标识符。 |
changeType |
body |
字符串 |
指示更改的类型。 允许的值: ADDED REMOVED MODIFIED TEMPORARY 对于临时资源,只要临时资源存在,就会存在受影响的虚拟存储结构。 |
storageResource |
body |
对象 |
对VirtualStorage资源的引用。 |
vimConnectionId (可选) |
body |
字符串 |
用于管理资源的 VIM 连接的标识符。仅当直接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。 |
resourceProviderId (可选) |
body |
字符串 |
标识负责该资源的实体。仅当间接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。 |
resourceId |
body |
字符串 |
VIM 或资源提供商范围内的资源的标识符。 |
vimLevelResourceType (可选) |
body |
字符串 |
VIM 或资源提供商范围内的资源类型。 |
metadata (可选) |
body |
键值对 |
有关此资源的元数据。 此属性应复制“VirtualStorageResourceInfo”结构中的“metadata”属性的内容。 |
changedInfo (可选) |
body |
对象 |
有关更改的 VNF 实例信息,包括 VNF 可配置属性(如果适用)。 |
vnfInstanceName (可选) |
body |
字符串 |
如果存在,则此属性指示“VnfInstance”中的“vnfInstanceName”属性的修改。 |
vnfInstanceDescription (可选) |
body |
字符串 |
如果存在,则此属性指示“VnfInstance”中的“vnfInstanceDescription”属性的修改。 |
vnfConfigurableProperties (可选) |
body |
键值对 |
如果存在,则此属性指示“VnfInstance”中的“vnfConfigurableProperties”属性的修改。 |
metadata (可选) |
body |
键值对 |
如果存在,则此属性指示“VnfInstance”中的“metadata”属性的修改。 |
extensions (可选) |
body |
键值对 |
如果存在,则此属性指示“VnfInstance”中的“extensions”属性的修改。 |
vimConnectionInfo (可选) |
body |
数组 |
如果存在,则此属性指示“VnfInstance”中的“vimConnectionInfo”属性数组的某些条目的修改。 |
vimId (可选) |
body |
字符串 |
VIM 实例的标识符。此标识符由 NFVO 管理。 如果已通过本文档范围之外的方式配置到 VNFM,则应存在以解决有关 VIM 的其他信息,否则应不存在。 |
vimType |
body |
字符串 |
VIM 信息的不同类型的区分器。 此属性的值根据 VIM 的类型确定“interfaceInfo”和“accessInfo”属性的结构。 预计允许值的集合会随着新的 VIM 类型或版本可用而发生变化。 |
interfaceInfo (可选) |
body |
键值对 |
如果适用,有关与 VIM 的接口或接口的信息,例如与 VIM 通信的接口端点的 URI。适用的键取决于 vimType 的内容。 或者,这些信息可能已配置到 VNFM 并绑定到 vimId。 |
accessInfo (可选) |
body |
键值对 |
访问 VIM 的身份验证凭据和其他访问相关信息,例如租户或基础设施资源组(请参阅说明)。适用的键取决于 vimType 的内容。 如果 VimConnectionInfo 结构是 HTTP 响应有效负载主体的一部分,则不应包含敏感属性(例如密码)。 如果 VimConnectionInfo 结构是 HTTP 请求有效负载主体的一部分,则如果尚未通过其他方式配置,则应存在敏感属性(例如密码)。 |
extra (可选) |
body |
键值对 |
VIM 类型特定的其他信息。适用的结构,以及此属性是否存在,取决于 vimType 的内容。 |
vnfdId (可选) |
body |
字符串 |
如果存在,则此属性指示“VnfInstance”中的“vnfdId”属性的修改。 |
vnfProvider (可选) |
body |
字符串 |
如果存在,则此属性指示“VnfInstance”中的“vnfProvider”属性的修改。 |
vnfProductName (可选) |
body |
字符串 |
如果存在,则此属性指示“VnfInstance”中的“vnfProductName”属性的修改。 |
vnfSoftwareVersion (可选) |
body |
字符串 |
如果存在,则此属性指示“VnfInstance”中的“vnfSoftwareVersion”属性的修改。 |
vnfdVersion (可选) |
body |
字符串 |
如果存在,则此属性指示“VnfInstance”中的“vnfdVersion”属性的修改。 |
vnfcInfoModifications (可选) |
body |
数组 |
此属性指示对“VnfInstance”的“instantiatedVnfInfo”属性中的“vnfcInfo”属性数组的某些条目的修改。 |
id |
body |
字符串 |
要修改其信息的VNFC实例的标识符。 |
vnfcConfigurableProperties |
body |
键值对 |
VNFC实例的可配置属性的更改。 |
changedExtConnectivity (可选) |
body |
对象 |
有关更改的外部连接性信息(如果适用)。 |
id (可选) |
body |
字符串 |
外部VL的标识符和相关的外部VL信息实例。标识符由管理此VL实例的NFV-MANO实体分配。 |
resourceHandle |
body |
对象 |
实现此VL的资源的引用。 |
vimConnectionId (可选) |
body |
字符串 |
用于管理资源的 VIM 连接的标识符。仅当直接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。 |
resourceProviderId (可选) |
body |
字符串 |
标识负责该资源的实体。仅当间接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。 |
resourceId |
body |
字符串 |
VIM 或资源提供商范围内的资源的标识符。 |
vimLevelResourceType (可选) |
body |
字符串 |
VIM 或资源提供商范围内的资源类型。 |
extLinkPorts (可选) |
body |
数组 |
外部提供的链路端口,用于将外部连接点连接到此外部 VL。如果未提供此属性,VNFM 应在外部 VL 上创建链路端口。 |
id |
body |
字符串 |
由创建链路端口的实体提供的此链路端口的标识符。 |
resourceHandle |
body |
对象 |
实现此VL的资源的引用。 |
vimConnectionId (可选) |
body |
字符串 |
用于管理资源的 VIM 连接的标识符。仅当直接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。 |
resourceProviderId (可选) |
body |
字符串 |
标识负责该资源的实体。仅当间接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。 |
resourceId |
body |
字符串 |
VIM 或资源提供商范围内的资源的标识符。 |
vimLevelResourceType (可选) |
body |
字符串 |
VIM 或资源提供商范围内的资源类型。 |
cpInstanceId (可选) |
body |
字符串 |
外部连接点的实例的标识符,请求将此配置参数集应用于该实例。 如果该实例已创建,则应存在。 |
currentVnfExtCpData |
body |
对象 |
允许API消费者读取当前CP配置信息,用于将外部CP连接到外部虚拟链路。 |
cpdId |
body |
字符串 |
VNFD 中的 CPD 的标识符。 |
cpConfig |
body |
map |
需要配置在从各自 CPD 创建的 CP 实例上的实例数据列表。 |
parentCpConfigId (可选) |
body |
字符串 |
标识干线父端口对应的“VnfExtCpConfig”映射条目的键值。仅存在于提供干线中子端口配置信息的“VnfExtCpConfig”结构中,并且如果支持父端口。 |
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”中的一个。 |
segmentationId (可选) |
body |
字符串 |
Cp 实例连接到的网络段的标识符。 |
ipAddresses (可选) |
body |
数组 |
要分配给 CP 实例的 IP 地址列表。每个条目代表每个子网的固定或动态 IP 地址分配的 IP 地址数据。 如果未提供此属性,则不应分配任何 IP 地址。 |
type |
body |
字符串 |
IP 地址的类型。允许的值:IPV4、IPV6。 |
fixedAddresses (可选) |
body |
数组 |
要分配的固定地址(如果提供了“subnetId”,则来自定义的子网)。“fixedAddresses”或“numDynamicAddresses”中应存在且仅存在一个。 |
numDynamicAddresses (可选) |
body |
int |
设置动态地址的数量。“fixedAddresses”或“numDynamicAddresses”中应存在且仅存在一个。 |
addressRange (可选) |
body |
对象 |
要使用的 IP 地址范围,例如在出口连接的情况下。 |
minAddress |
body |
字符串 |
范围内的最低 IP 地址。 |
maxAddress |
body |
字符串 |
范围内的最高 IP 地址。 |
subnetId (可选) |
body |
字符串 |
由 VIM 中子网资源标识符定义的子网。如果存在此属性,将分配来自该子网的 IP 地址;否则,将分配未绑定到子网的 IP 地址。 |
modificationsTriggeredByVnfPkgChange (可选) |
body |
对象 |
有关通过更改当前 VNF 包触发的“VnfInstance”属性的执行更改的信息。 |
vnfConfigurableProperties (可选) |
body |
键值对 |
如果存在,则此属性指示“VnfInstance”中的“vnfConfigurableProperties”属性的修改。 |
metadata (可选) |
body |
键值对 |
如果存在,则此属性指示“VnfInstance”中的“metadata”属性的修改。 |
extensions (可选) |
body |
键值对 |
如果存在,则此属性指示“VnfInstance”中的“extensions”属性的修改。 |
vnfdId (可选) |
body |
字符串 |
如果存在,则此属性指示“VnfInstance”中的“vnfdId”属性的新值。 |
vnfProvider (可选) |
body |
字符串 |
如果存在,则此属性指示“VnfInstance”中的“vnfProvider”属性的新值。 |
vnfProductName (可选) |
body |
字符串 |
如果存在,则此属性指示“VnfInstance”中的“vnfProductName”属性的新值。 |
vnfSoftwareVersion (可选) |
body |
字符串 |
如果存在,则此属性指示“VnfInstance”中的“vnfSoftwareVersion”属性的新值。 |
vnfdVersion (可选) |
body |
字符串 |
如果存在,则此属性指示“VnfInstance”中的“vnfdVersion”属性的新值。 |
_links |
body |
对象 |
指向与此资源相关的资源的链接。 |
响应示例¶
{
"_links": {
"fail": {
"href": "http://127.0.0.1:9890/vnflcm/v2/vnf_lcm_op_occs/a790879c-05f9-4475-9c90-1677452d3eb5/fail"
},
"retry": {
"href": "http://127.0.0.1:9890/vnflcm/v2/vnf_lcm_op_occs/a790879c-05f9-4475-9c90-1677452d3eb5/retry"
},
"rollback": {
"href": "http://127.0.0.1:9890/vnflcm/v2/vnf_lcm_op_occs/a790879c-05f9-4475-9c90-1677452d3eb5/rollback"
},
"self": {
"href": "http://127.0.0.1:9890/vnflcm/v2/vnf_lcm_op_occs/a790879c-05f9-4475-9c90-1677452d3eb5"
},
"vnfInstance": {
"href": "http://127.0.0.1:9890/vnflcm/v2/vnf_instances/e00f0d64-d7a3-459b-8a51-b402d5344296"
}
},
"grantId": "f848dd6c-6393-4104-8bfe-df764a042563",
"id": "a790879c-05f9-4475-9c90-1677452d3eb5",
"isAutomaticInvocation": false,
"isCancelPending": false,
"operation": "INSTANTIATE",
"operationParams": {
"additionalParams": {
"lcm-operation-user-data": "./UserData/userdata_default.py",
"lcm-operation-user-data-class": "DefaultUserData"
},
"extManagedVirtualLinks": [
{
"id": "7a6fe192-c34b-4029-937d-f1a2e7a00f5a",
"resourceId": "11f8a056-0495-4ca6-8de9-94402604663f",
"vnfVirtualLinkDescId": "internalVL1"
}
],
"extVirtualLinks": [
{
"extCps": [
{
"cpConfig": {
"VDU1_CP1_1": {
"cpProtocolData": [
{
"ipOverEthernet": {
"ipAddresses": [
{
"numDynamicAddresses": 1,
"type": "IPV4"
}
]
},
"layerProtocol": "IP_OVER_ETHERNET"
}
]
}
},
"cpdId": "VDU1_CP1"
},
{
"cpConfig": {
"VDU2_CP1_1": {
"cpProtocolData": [
{
"ipOverEthernet": {
"ipAddresses": [
{
"fixedAddresses": [
"10.10.0.101"
],
"type": "IPV4"
}
]
},
"layerProtocol": "IP_OVER_ETHERNET"
}
]
}
},
"cpdId": "VDU2_CP1"
}
],
"id": "b0b2f836-a275-4374-834e-ed336a563b1e",
"resourceId": "1948231e-bbf0-4ff9-a692-40f8d6d5c90d"
},
{
"extCps": [
{
"cpConfig": {
"VDU1_CP2_1": {
"cpProtocolData": [
{
"ipOverEthernet": {
"ipAddresses": [
{
"numDynamicAddresses": 1,
"subnetId": "1d4877ea-b810-4093-95de-bee62b2363f1",
"type": "IPV4"
}
]
},
"layerProtocol": "IP_OVER_ETHERNET"
}
]
}
},
"cpdId": "VDU1_CP2"
},
{
"cpConfig": {
"VDU2_CP2_1": {
"cpProtocolData": [
{
"ipOverEthernet": {
"ipAddresses": [
{
"fixedAddresses": [
"10.10.1.101"
],
"subnetId": "1d4877ea-b810-4093-95de-bee62b2363f1",
"type": "IPV4"
}
]
},
"layerProtocol": "IP_OVER_ETHERNET"
}
]
}
},
"cpdId": "VDU2_CP2"
}
],
"id": "6766a8d4-cad1-43f1-b0cb-ce0ef9267661",
"resourceId": "5af7e28a-e744-4b4f-a1a4-c7d0f7d93cd7"
}
],
"flavourId": "simple",
"instantiationLevelId": "instantiation_level_1",
"vimConnectionInfo": {
"vim1": {
"accessInfo": {
"password": "devstack",
"project": "nfv",
"projectDomain": "Default",
"region": "RegionOne",
"userDomain": "Default",
"username": "nfv_user"
},
"interfaceInfo": {
"endpoint": "https:///identity/v3"
},
"vimId": "03e608b2-e7d4-44fa-bd84-74fb24be3ed5",
"vimType": "ETSINFV.OPENSTACK_KEYSTONE.V_3"
}
}
},
"operationState": "COMPLETED",
"resourceChanges": {
"affectedVirtualLinks": [
{
"changeType": "ADDED",
"id": "74411165-b969-4539-99a9-3ffdbc8b1ae7",
"networkResource": {
"resourceId": "5f4cc2e3-7bce-4e90-ad1a-0d43812a4af5",
"vimConnectionId": "vim1",
"vimLevelResourceType": "OS::Neutron::Net"
},
"vnfLinkPortIds": [
"5cf5bba1-3481-4233-a42f-98284c91b6a4",
"68f63717-9e01-4e4e-a3f4-c64e6e0f7a49"
],
"vnfVirtualLinkDescId": "internalVL2"
},
{
"changeType": "ADDED",
"id": "5b696739-1a38-4df2-8f95-f3826fc3b0b7",
"networkResource": {
"resourceId": "349a4dbb-41e9-4db9-b044-0653507b9728",
"vimConnectionId": "vim1",
"vimLevelResourceType": "OS::Neutron::Net"
},
"vnfLinkPortIds": [
"474caf76-c227-4b84-9aa8-bb9814488917",
"9fe46983-9497-4377-a959-765734ef7871"
],
"vnfVirtualLinkDescId": "internalVL3"
}
],
"affectedVirtualStorages": [
{
"changeType": "ADDED",
"id": "359a20f2-2c66-49b4-bc4e-3cf673513688",
"storageResource": {
"resourceId": "496a70a0-c9df-43ce-8e49-3c708583eef0",
"vimConnectionId": "vim1",
"vimLevelResourceType": "OS::Cinder::Volume"
},
"virtualStorageDescId": "VirtualStorage"
}
],
"affectedVnfcs": [
{
"affectedVnfcCpIds": [
"e3ba03a1-f8a6-4468-ab97-0e24a8c5ad37",
"e23bf017-6979-48a1-805b-ed459eb78071",
"33a8397b-7f0c-4db7-85eb-8d8c19a35f9e",
"7e9e3e7e-5ba5-4f12-ba1c-fa865719391f",
"bf741bec-5294-4ae6-9486-51a1ebdb3ad7"
],
"changeType": "ADDED",
"computeResource": {
"resourceId": "7fceb009-ed81-4b95-ad4d-8487870cac48",
"vimConnectionId": "vim1",
"vimLevelResourceType": "OS::Nova::Server"
},
"id": "c4453bf6-d185-4d4f-9e6b-fb745bf21229",
"vduId": "VDU2"
},
{
"addedStorageResourceIds": [
"359a20f2-2c66-49b4-bc4e-3cf673513688"
],
"affectedVnfcCpIds": [
"5c0b46c4-3e08-4397-bbab-89bc196b5abd",
"c3efc6e9-1abc-407c-8421-101730cd8204",
"26847d0b-a64a-4c28-90db-25ed3d101741",
"b1647921-08b2-4cfa-a553-ebf333e602e4",
"29125d8c-d84e-4055-a76a-beed1912bca3"
],
"changeType": "ADDED",
"computeResource": {
"resourceId": "2f0f1954-0b5f-48a6-8591-f05ca2c3c74e",
"vimConnectionId": "vim1",
"vimLevelResourceType": "OS::Nova::Server"
},
"id": "795985f6-f2c1-4a32-b318-6ac424ddf2bf",
"vduId": "VDU1"
}
]
},
"startTime": "2021-09-06T07:07:15Z",
"stateEnteredTime": "2021-09-06T07:07:15Z",
"vnfInstanceId": "e00f0d64-d7a3-459b-8a51-b402d5344296"
}
API 消费者可以使用此方法查询多个 VNF 生命周期管理操作事件的状态信息。
它支持 ETSI NFV SOL013 v3.4.1 中定义的基于属性的过滤和属性选择器。 基于属性的过滤的详细信息在 SOL013 v3.4.1 第 5.2 条中描述。
属性选择器允许 API 消费者选择响应中包含哪些属性。可以设置 *all_fields*、*fields*、*exclude_fields* 和 *exclude_default* 作为查询参数。
如果提供了此参数,或者未提供任何参数“all_fields”、“fields”、“exclude_fields”、“exclude_default”,则响应主体中应从 VnfLcmOpOcc 结构中排除以下属性:- operationParams - error - resourceChanges - changedInfo - changedExtConnectivity。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
401 - 未授权 |
用户必须在发出请求之前进行身份验证。 |
406 - 不可接受 |
不可接受,请求的资源只能生成根据请求中发送的“Accept”标头不可接受的内容。 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
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 CHANGE_EXT_CONN: ChangeExtVnfConnectivityRequest TERMINATE: TerminateVnfRequest MODIFY_INFO: VnfInfoModificationRequest CHANGE_VNFPKG: ChangeCurrentVnfPkgRequest 如果读取单个资源响应中返回此数据类型,则此属性应存在,如果查询容器资源响应中返回此数据类型,则此属性可能存在,具体取决于所选的属性选择器参数。 |
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 操作自其启动以来对虚拟化资源进行的累积更改信息(如果适用)。 |
affectedVnfcs (可选) |
body |
数组 |
生命周期操作期间受影响的 VNFC 实例的信息。 |
id |
body |
字符串 |
Vnfc 实例的标识符,标识“VnfInstance”数据类型中的适用“vnfcResourceInfo”条目。 |
vduId |
body |
字符串 |
VNFD 中相关 VDU 的标识符。 |
changeType |
body |
字符串 |
指示更改的类型。 允许的值: ADDED REMOVED MODIFIED TEMPORARY 对于临时资源,只要临时资源存在,就会存在受影响的 Vncf 结构。 |
computeResource |
body |
对象 |
对VirtualCompute资源的引用。 |
vimConnectionId (可选) |
body |
字符串 |
用于管理资源的 VIM 连接的标识符。仅当直接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。 |
resourceProviderId (可选) |
body |
字符串 |
标识负责该资源的实体。仅当间接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。 |
resourceId |
body |
字符串 |
VIM 或资源提供商范围内的资源的标识符。 |
vimLevelResourceType (可选) |
body |
字符串 |
VIM 或资源提供商范围内的资源类型。 |
zoneId (可选) |
body |
字符串 |
资源管理层(通常是VIM)管理的资源区域中放置引用的VirtualCompute资源的标识符。如果此信息来自VIM,则应提供。 |
metadata |
body |
键值对 |
有关此资源的元数据。 此属性应复制“VnfcResourceInfo”结构中的“metadata”属性的内容。 |
affectedVnfcCpIds (可选) |
body |
数组 |
受更改影响的 VNFC 实例的 CP 标识符。 仅当这些受影响的 CP 与 VNF 实例的外部 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 相关资源管理适用时,才应支持并存在此属性。 |
resourceProviderId (可选) |
body |
字符串 |
标识负责该资源的实体。仅当间接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。 |
resourceId |
body |
字符串 |
VIM 或资源提供商范围内的资源的标识符。 |
vimLevelResourceType (可选) |
body |
字符串 |
VIM 或资源提供商范围内的资源类型。 |
vnfLinkPortIds (可选) |
body |
字符串 |
受影响的 VL 相关更改的链路端口的标识符。 每个标识符引用一个“VnfLinkPortInfo”结构。 当 changeType 等于“LINK_PORT_ADDED”或“LINK_PORT_REMOVED”,并且相关的“VnfLinkPortInfo”结构存在(添加的情况)或曾经存在(删除的情况)于“VnfVirtualLinkResourceInfo”或“ExtManagedVirtualLinkInfo”结构中,这些结构由“VnfInstance”结构中的“vnfVirtualLinkResourceInfo”或“extManagedVirtualLinkInfo”属性表示时,应设置它。 |
affectedExtLinkPorts (可选) |
body |
数组 |
生命周期操作期间受影响的外部 VNF 链路端口的信息。 这允许 NFVO 获取包含在最新“result”通知中的信息,如果由于错误或配置错误的订阅过滤器而未收到该通知。 |
id |
body |
字符串 |
链路端口的标识符,标识“ExtVirtualLinkInfo”数据类型中的适用“extLinkPorts”条目。 |
changeType |
body |
字符串 |
指示更改的类型。 允许的值: ADDED REMOVED |
extCpInstranceId |
body |
字符串 |
相关外部 CP 实例的标识符。 |
resourceHandle |
body |
对象 |
实现此VL的资源的引用。 |
vimConnectionId (可选) |
body |
字符串 |
用于管理资源的 VIM 连接的标识符。仅当直接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。 |
resourceProviderId (可选) |
body |
字符串 |
标识负责该资源的实体。仅当间接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。 |
resourceId |
body |
字符串 |
VIM 或资源提供商范围内的资源的标识符。 |
vimLevelResourceType (可选) |
body |
字符串 |
VIM 或资源提供商范围内的资源类型。 |
affectedVirtualStorages (可选) |
body |
数组 |
生命周期操作期间受影响的虚拟化存储实例的信息。 |
id |
body |
字符串 |
存储实例的标识符,标识“VnfInstance”数据类型中的适用“virtualStorageResourceInfo”条目。 |
virtualStorageDescId |
body |
字符串 |
VNFD 中相关 VirtualStorage 描述符的标识符。 |
changeType |
body |
字符串 |
指示更改的类型。 允许的值: ADDED REMOVED MODIFIED TEMPORARY 对于临时资源,只要临时资源存在,就会存在受影响的虚拟存储结构。 |
storageResource |
body |
对象 |
对VirtualStorage资源的引用。 |
vimConnectionId (可选) |
body |
字符串 |
用于管理资源的 VIM 连接的标识符。仅当直接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。 |
resourceProviderId (可选) |
body |
字符串 |
标识负责该资源的实体。仅当间接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。 |
resourceId |
body |
字符串 |
VIM 或资源提供商范围内的资源的标识符。 |
vimLevelResourceType (可选) |
body |
字符串 |
VIM 或资源提供商范围内的资源类型。 |
metadata (可选) |
body |
键值对 |
有关此资源的元数据。 此属性应复制“VirtualStorageResourceInfo”结构中的“metadata”属性的内容。 |
changedInfo (可选) |
body |
对象 |
有关更改的 VNF 实例信息,包括 VNF 可配置属性(如果适用)。 |
vnfInstanceName (可选) |
body |
字符串 |
如果存在,则此属性指示“VnfInstance”中的“vnfInstanceName”属性的修改。 |
vnfInstanceDescription (可选) |
body |
字符串 |
如果存在,则此属性指示“VnfInstance”中的“vnfInstanceDescription”属性的修改。 |
vnfConfigurableProperties (可选) |
body |
键值对 |
如果存在,则此属性指示“VnfInstance”中的“vnfConfigurableProperties”属性的修改。 |
metadata (可选) |
body |
键值对 |
如果存在,则此属性指示“VnfInstance”中的“metadata”属性的修改。 |
extensions (可选) |
body |
键值对 |
如果存在,则此属性指示“VnfInstance”中的“extensions”属性的修改。 |
vimConnectionInfo (可选) |
body |
数组 |
如果存在,则此属性指示“VnfInstance”中的“vimConnectionInfo”属性数组的某些条目的修改。 |
vimId (可选) |
body |
字符串 |
VIM 实例的标识符。此标识符由 NFVO 管理。 如果已通过本文档范围之外的方式配置到 VNFM,则应存在以解决有关 VIM 的其他信息,否则应不存在。 |
vimType |
body |
字符串 |
VIM 信息的不同类型的区分器。 此属性的值根据 VIM 的类型确定“interfaceInfo”和“accessInfo”属性的结构。 预计允许值的集合会随着新的 VIM 类型或版本可用而发生变化。 |
interfaceInfo (可选) |
body |
键值对 |
如果适用,有关与 VIM 的接口或接口的信息,例如与 VIM 通信的接口端点的 URI。适用的键取决于 vimType 的内容。 或者,这些信息可能已配置到 VNFM 并绑定到 vimId。 |
accessInfo (可选) |
body |
键值对 |
访问 VIM 的身份验证凭据和其他访问相关信息,例如租户或基础设施资源组(请参阅说明)。适用的键取决于 vimType 的内容。 如果 VimConnectionInfo 结构是 HTTP 响应有效负载主体的一部分,则不应包含敏感属性(例如密码)。 如果 VimConnectionInfo 结构是 HTTP 请求有效负载主体的一部分,则如果尚未通过其他方式配置,则应存在敏感属性(例如密码)。 |
extra (可选) |
body |
键值对 |
VIM 类型特定的其他信息。适用的结构,以及此属性是否存在,取决于 vimType 的内容。 |
vnfdId (可选) |
body |
字符串 |
如果存在,则此属性指示“VnfInstance”中的“vnfdId”属性的修改。 |
vnfProvider (可选) |
body |
字符串 |
如果存在,则此属性指示“VnfInstance”中的“vnfProvider”属性的修改。 |
vnfProductName (可选) |
body |
字符串 |
如果存在,则此属性指示“VnfInstance”中的“vnfProductName”属性的修改。 |
vnfSoftwareVersion (可选) |
body |
字符串 |
如果存在,则此属性指示“VnfInstance”中的“vnfSoftwareVersion”属性的修改。 |
vnfdVersion (可选) |
body |
字符串 |
如果存在,则此属性指示“VnfInstance”中的“vnfdVersion”属性的修改。 |
vnfcInfoModifications (可选) |
body |
数组 |
此属性指示对“VnfInstance”的“instantiatedVnfInfo”属性中的“vnfcInfo”属性数组的某些条目的修改。 |
id |
body |
字符串 |
要修改其信息的VNFC实例的标识符。 |
vnfcConfigurableProperties |
body |
键值对 |
VNFC实例的可配置属性的更改。 |
changedExtConnectivity (可选) |
body |
对象 |
有关更改的外部连接性信息(如果适用)。 |
id (可选) |
body |
字符串 |
外部VL的标识符和相关的外部VL信息实例。标识符由管理此VL实例的NFV-MANO实体分配。 |
resourceHandle |
body |
对象 |
实现此VL的资源的引用。 |
vimConnectionId (可选) |
body |
字符串 |
用于管理资源的 VIM 连接的标识符。仅当直接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。 |
resourceProviderId (可选) |
body |
字符串 |
标识负责该资源的实体。仅当间接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。 |
resourceId |
body |
字符串 |
VIM 或资源提供商范围内的资源的标识符。 |
vimLevelResourceType (可选) |
body |
字符串 |
VIM 或资源提供商范围内的资源类型。 |
extLinkPorts (可选) |
body |
数组 |
外部提供的链路端口,用于将外部连接点连接到此外部 VL。如果未提供此属性,VNFM 应在外部 VL 上创建链路端口。 |
id |
body |
字符串 |
由创建链路端口的实体提供的此链路端口的标识符。 |
resourceHandle |
body |
对象 |
实现此VL的资源的引用。 |
vimConnectionId (可选) |
body |
字符串 |
用于管理资源的 VIM 连接的标识符。仅当直接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。 |
resourceProviderId (可选) |
body |
字符串 |
标识负责该资源的实体。仅当间接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。 |
resourceId |
body |
字符串 |
VIM 或资源提供商范围内的资源的标识符。 |
vimLevelResourceType (可选) |
body |
字符串 |
VIM 或资源提供商范围内的资源类型。 |
cpInstanceId (可选) |
body |
字符串 |
外部连接点的实例的标识符,请求将此配置参数集应用于该实例。 如果该实例已创建,则应存在。 |
currentVnfExtCpData |
body |
对象 |
允许API消费者读取当前CP配置信息,用于将外部CP连接到外部虚拟链路。 |
cpdId |
body |
字符串 |
VNFD 中的 CPD 的标识符。 |
cpConfig |
body |
map |
需要配置在从各自 CPD 创建的 CP 实例上的实例数据列表。 |
parentCpConfigId (可选) |
body |
字符串 |
标识干线父端口对应的“VnfExtCpConfig”映射条目的键值。仅存在于提供干线中子端口配置信息的“VnfExtCpConfig”结构中,并且如果支持父端口。 |
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”中的一个。 |
segmentationId (可选) |
body |
字符串 |
Cp 实例连接到的网络段的标识符。 |
ipAddresses (可选) |
body |
数组 |
要分配给 CP 实例的 IP 地址列表。每个条目代表每个子网的固定或动态 IP 地址分配的 IP 地址数据。 如果未提供此属性,则不应分配任何 IP 地址。 |
type |
body |
字符串 |
IP 地址的类型。允许的值:IPV4、IPV6。 |
fixedAddresses (可选) |
body |
数组 |
要分配的固定地址(如果提供了“subnetId”,则来自定义的子网)。“fixedAddresses”或“numDynamicAddresses”中应存在且仅存在一个。 |
numDynamicAddresses (可选) |
body |
int |
设置动态地址的数量。“fixedAddresses”或“numDynamicAddresses”中应存在且仅存在一个。 |
addressRange (可选) |
body |
对象 |
要使用的 IP 地址范围,例如在出口连接的情况下。 |
minAddress |
body |
字符串 |
范围内的最低 IP 地址。 |
maxAddress |
body |
字符串 |
范围内的最高 IP 地址。 |
subnetId (可选) |
body |
字符串 |
由 VIM 中子网资源标识符定义的子网。如果存在此属性,将分配来自该子网的 IP 地址;否则,将分配未绑定到子网的 IP 地址。 |
modificationsTriggeredByVnfPkgChange (可选) |
body |
对象 |
有关通过更改当前 VNF 包触发的“VnfInstance”属性的执行更改的信息。 |
vnfConfigurableProperties (可选) |
body |
键值对 |
如果存在,则此属性指示“VnfInstance”中的“vnfConfigurableProperties”属性的修改。 |
metadata (可选) |
body |
键值对 |
如果存在,则此属性指示“VnfInstance”中的“metadata”属性的修改。 |
extensions (可选) |
body |
键值对 |
如果存在,则此属性指示“VnfInstance”中的“extensions”属性的修改。 |
vnfdId (可选) |
body |
字符串 |
如果存在,则此属性指示“VnfInstance”中的“vnfdId”属性的新值。 |
vnfProvider (可选) |
body |
字符串 |
如果存在,则此属性指示“VnfInstance”中的“vnfProvider”属性的新值。 |
vnfProductName (可选) |
body |
字符串 |
如果存在,则此属性指示“VnfInstance”中的“vnfProductName”属性的新值。 |
vnfSoftwareVersion (可选) |
body |
字符串 |
如果存在,则此属性指示“VnfInstance”中的“vnfSoftwareVersion”属性的新值。 |
vnfdVersion (可选) |
body |
字符串 |
如果存在,则此属性指示“VnfInstance”中的“vnfdVersion”属性的新值。 |
_links |
body |
对象 |
指向与此资源相关的资源的链接。 |
响应示例¶
[
{
"_links": {
"fail": {
"href": "http://127.0.0.1:9890/vnflcm/v2/vnf_lcm_op_occs/a790879c-05f9-4475-9c90-1677452d3eb5/fail"
},
"retry": {
"href": "http://127.0.0.1:9890/vnflcm/v2/vnf_lcm_op_occs/a790879c-05f9-4475-9c90-1677452d3eb5/retry"
},
"rollback": {
"href": "http://127.0.0.1:9890/vnflcm/v2/vnf_lcm_op_occs/a790879c-05f9-4475-9c90-1677452d3eb5/rollback"
},
"self": {
"href": "http://127.0.0.1:9890/vnflcm/v2/vnf_lcm_op_occs/a790879c-05f9-4475-9c90-1677452d3eb5"
},
"vnfInstance": {
"href": "http://127.0.0.1:9890/vnflcm/v2/vnf_instances/e00f0d64-d7a3-459b-8a51-b402d5344296"
}
},
"grantId": "30bdaa69-ef80-4545-9298-428b70ce8e4a",
"id": "a790879c-05f9-4475-9c90-1677452d3eb5",
"isAutomaticInvocation": false,
"isCancelPending": false,
"operation": "INSTANTIATE",
"operationParams": {
"additionalParams": {
"lcm-operation-user-data": "./UserData/userdata_default.py",
"lcm-operation-user-data-class": "DefaultUserData"
},
"extManagedVirtualLinks": [
{
"id": "7a6fe192-c34b-4029-937d-f1a2e7a00f5a",
"resourceId": "11f8a056-0495-4ca6-8de9-94402604663f",
"vnfVirtualLinkDescId": "internalVL1"
}
],
"extVirtualLinks": [
{
"extCps": [
{
"cpConfig": {
"VDU1_CP1_1": {
"cpProtocolData": [
{
"ipOverEthernet": {
"ipAddresses": [
{
"numDynamicAddresses": 1,
"type": "IPV4"
}
]
},
"layerProtocol": "IP_OVER_ETHERNET"
}
]
}
},
"cpdId": "VDU1_CP1"
},
{
"cpConfig": {
"VDU2_CP1_1": {
"cpProtocolData": [
{
"ipOverEthernet": {
"ipAddresses": [
{
"fixedAddresses": [
"10.10.0.101"
],
"type": "IPV4"
}
]
},
"layerProtocol": "IP_OVER_ETHERNET"
}
]
}
},
"cpdId": "VDU2_CP1"
}
],
"id": "b0b2f836-a275-4374-834e-ed336a563b1e",
"resourceId": "1948231e-bbf0-4ff9-a692-40f8d6d5c90d"
},
{
"extCps": [
{
"cpConfig": {
"VDU1_CP2_1": {
"cpProtocolData": [
{
"ipOverEthernet": {
"ipAddresses": [
{
"numDynamicAddresses": 1,
"subnetId": "1d4877ea-b810-4093-95de-bee62b2363f1",
"type": "IPV4"
}
]
},
"layerProtocol": "IP_OVER_ETHERNET"
}
]
}
},
"cpdId": "VDU1_CP2"
},
{
"cpConfig": {
"VDU2_CP2_1": {
"cpProtocolData": [
{
"ipOverEthernet": {
"ipAddresses": [
{
"fixedAddresses": [
"10.10.1.101"
],
"subnetId": "1d4877ea-b810-4093-95de-bee62b2363f1",
"type": "IPV4"
}
]
},
"layerProtocol": "IP_OVER_ETHERNET"
}
]
}
},
"cpdId": "VDU2_CP2"
}
],
"id": "6766a8d4-cad1-43f1-b0cb-ce0ef9267661",
"resourceId": "5af7e28a-e744-4b4f-a1a4-c7d0f7d93cd7"
}
],
"flavourId": "simple",
"instantiationLevelId": "instantiation_level_1",
"vimConnectionInfo": {
"vim1": {
"accessInfo": {
"password": "devstack",
"project": "nfv",
"projectDomain": "Default",
"region": "RegionOne",
"userDomain": "Default",
"username": "nfv_user"
},
"interfaceInfo": {
"endpoint": "https:///identity/v3"
},
"vimId": "03e608b2-e7d4-44fa-bd84-74fb24be3ed5",
"vimType": "ETSINFV.OPENSTACK_KEYSTONE.V_3"
}
}
},
"operationState": "PROCESSING",
"startTime": "2021-12-20T07:55:55Z",
"stateEnteredTime": "2021-12-20T07:55:55Z",
"vnfInstanceId": "f68c329d-2fca-4178-9a38-e21ee8c01606"
},
{
"_links": {
"fail": {
"href": "http://127.0.0.1:9890/vnflcm/v2/vnf_lcm_op_occs/fdd8bdf4-8f7b-4237-99d3-c87c0910571d/fail"
},
"retry": {
"href": "http://127.0.0.1:9890/vnflcm/v2/vnf_lcm_op_occs/fdd8bdf4-8f7b-4237-99d3-c87c0910571d/retry"
},
"rollback": {
"href": "http://127.0.0.1:9890/vnflcm/v2/vnf_lcm_op_occs/fdd8bdf4-8f7b-4237-99d3-c87c0910571d/rollback"
},
"self": {
"href": "http://127.0.0.1:9890/vnflcm/v2/vnf_lcm_op_occs/fdd8bdf4-8f7b-4237-99d3-c87c0910571d"
},
"vnfInstance": {
"href": "http://127.0.0.1:9890/vnflcm/v2/vnf_instances/c256d5c2-f29e-474c-bced-cbc6d9e2b00b"
}
},
"grantId": "3aa7d8cd-6f85-4d7f-859a-eb26481157e6",
"id": "fdd8bdf4-8f7b-4237-99d3-c87c0910571d",
"isAutomaticInvocation": false,
"isCancelPending": false,
"operation": "INSTANTIATE",
"operationParams": {
"additionalParams": {
"lcm-operation-user-data": "./UserData/userdata_default.py",
"lcm-operation-user-data-class": "DefaultUserData"
},
"extManagedVirtualLinks": [
{
"id": "46653630-2b7f-493c-8dec-c2c6e2fd98c8",
"resourceId": "6c85c8bd-91f3-48b4-bc4b-030bbdfb1a8d",
"vnfVirtualLinkDescId": "internalVL1"
}
],
"extVirtualLinks": [
{
"extCps": [
{
"cpConfig": {
"VDU1_CP1_1": {
"cpProtocolData": [
{
"ipOverEthernet": {
"ipAddresses": [
{
"numDynamicAddresses": 1,
"type": "IPV4"
}
]
},
"layerProtocol": "IP_OVER_ETHERNET"
}
]
}
},
"cpdId": "VDU1_CP1"
},
{
"cpConfig": {
"VDU2_CP1_1": {
"cpProtocolData": [
{
"ipOverEthernet": {
"ipAddresses": [
{
"fixedAddresses": [
"10.10.0.102"
],
"type": "IPV4"
}
]
},
"layerProtocol": "IP_OVER_ETHERNET"
}
]
}
},
"cpdId": "VDU2_CP1"
}
],
"id": "bec04b02-273f-4eb3-a18d-af695c4399bf",
"resourceId": "576075c2-d33e-4002-8d85-9c906cf63ed7"
},
{
"extCps": [
{
"cpConfig": {
"VDU1_CP2_1": {
"cpProtocolData": [
{
"ipOverEthernet": {
"ipAddresses": [
{
"numDynamicAddresses": 1,
"subnetId": "afc77fd6-1bf6-4db9-b285-6799642cbfd2",
"type": "IPV4"
}
]
},
"layerProtocol": "IP_OVER_ETHERNET"
}
]
}
},
"cpdId": "VDU1_CP2"
},
{
"cpConfig": {
"VDU2_CP2_1": {
"cpProtocolData": [
{
"ipOverEthernet": {
"ipAddresses": [
{
"fixedAddresses": [
"10.10.1.102"
],
"subnetId": "afc77fd6-1bf6-4db9-b285-6799642cbfd2",
"type": "IPV4"
}
]
},
"layerProtocol": "IP_OVER_ETHERNET"
}
]
}
},
"cpdId": "VDU2_CP2"
}
],
"id": "625f6da9-6a01-480e-8ecb-1ef8122ad224",
"resourceId": "c84bc776-69ed-4ec9-886e-c594d9ebe38f"
}
],
"flavourId": "simple",
"instantiationLevelId": "instantiation_level_1",
"vimConnectionInfo": {
"vim1": {
"accessInfo": {
"password": "devstack",
"project": "nfv",
"projectDomain": "Default",
"region": "RegionOne",
"userDomain": "Default",
"username": "nfv_user"
},
"interfaceInfo": {
"endpoint": "https:///identity/v3"
},
"vimId": "fc734abb-2d1b-4032-b594-88c33634e023",
"vimType": "ETSINFV.OPENSTACK_KEYSTONE.V_3"
}
}
},
"operationState": "COMPLETED",
"resourceChanges": {
"affectedVirtualLinks": [
{
"changeType": "ADDED",
"id": "74411165-b969-4539-99a9-3ffdbc8b1ae7",
"networkResource": {
"resourceId": "5f4cc2e3-7bce-4e90-ad1a-0d43812a4af5",
"vimConnectionId": "vim1",
"vimLevelResourceType": "OS::Neutron::Net"
},
"vnfLinkPortIds": [
"5cf5bba1-3481-4233-a42f-98284c91b6a4",
"68f63717-9e01-4e4e-a3f4-c64e6e0f7a49"
],
"vnfVirtualLinkDescId": "internalVL2"
},
{
"changeType": "ADDED",
"id": "5b696739-1a38-4df2-8f95-f3826fc3b0b7",
"networkResource": {
"resourceId": "349a4dbb-41e9-4db9-b044-0653507b9728",
"vimConnectionId": "vim1",
"vimLevelResourceType": "OS::Neutron::Net"
},
"vnfLinkPortIds": [
"474caf76-c227-4b84-9aa8-bb9814488917",
"9fe46983-9497-4377-a959-765734ef7871"
],
"vnfVirtualLinkDescId": "internalVL3"
}
],
"affectedVirtualStorages": [
{
"changeType": "ADDED",
"id": "359a20f2-2c66-49b4-bc4e-3cf673513688",
"storageResource": {
"resourceId": "496a70a0-c9df-43ce-8e49-3c708583eef0",
"vimConnectionId": "vim1",
"vimLevelResourceType": "OS::Cinder::Volume"
},
"virtualStorageDescId": "VirtualStorage"
}
],
"affectedVnfcs": [
{
"affectedVnfcCpIds": [
"e3ba03a1-f8a6-4468-ab97-0e24a8c5ad37",
"e23bf017-6979-48a1-805b-ed459eb78071",
"33a8397b-7f0c-4db7-85eb-8d8c19a35f9e",
"7e9e3e7e-5ba5-4f12-ba1c-fa865719391f",
"bf741bec-5294-4ae6-9486-51a1ebdb3ad7"
],
"changeType": "ADDED",
"computeResource": {
"resourceId": "7fceb009-ed81-4b95-ad4d-8487870cac48",
"vimConnectionId": "vim1",
"vimLevelResourceType": "OS::Nova::Server"
},
"id": "c4453bf6-d185-4d4f-9e6b-fb745bf21229",
"vduId": "VDU2"
},
{
"addedStorageResourceIds": [
"359a20f2-2c66-49b4-bc4e-3cf673513688"
],
"affectedVnfcCpIds": [
"5c0b46c4-3e08-4397-bbab-89bc196b5abd",
"c3efc6e9-1abc-407c-8421-101730cd8204",
"26847d0b-a64a-4c28-90db-25ed3d101741",
"b1647921-08b2-4cfa-a553-ebf333e602e4",
"29125d8c-d84e-4055-a76a-beed1912bca3"
],
"changeType": "ADDED",
"computeResource": {
"resourceId": "2f0f1954-0b5f-48a6-8591-f05ca2c3c74e",
"vimConnectionId": "vim1",
"vimLevelResourceType": "OS::Nova::Server"
},
"id": "795985f6-f2c1-4a32-b318-6ac424ddf2bf",
"vduId": "VDU1"
}
]
},
"startTime": "2021-09-06T07:07:15Z",
"stateEnteredTime": "2021-09-06T07:07:15Z",
"vnfInstanceId": "e00f0d64-d7a3-459b-8a51-b402d5344296"
}
]
POST 方法在 VNF 生命周期操作遇到临时故障(即相关的“单个 VNF LCM 操作事件”资源处于“FAILED_TEMP”状态)时开始重试该操作。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已被接受处理,但处理尚未完成。响应中包含一个“location”头部,其中包含一个链接以检查请求的进度。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
401 - 未授权 |
用户必须在发出请求之前进行身份验证。 |
404 - Not Found |
找不到请求的资源。 |
406 - 不可接受 |
不可接受,请求的资源只能生成根据请求中发送的“Accept”标头不可接受的内容。 |
409 - Conflict |
此操作与此资源的另一个操作冲突。 |
请求参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
vnfLcmOpOccId |
路径 |
字符串 |
VNF 生命周期管理操作事件的标识符。 |
POST 方法如果该操作事件处于“FAILED_TEMP”状态,则将 VNF 生命周期管理操作事件标记为“最终失败”。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
401 - 未授权 |
用户必须在发出请求之前进行身份验证。 |
404 - Not Found |
找不到请求的资源。 |
406 - 不可接受 |
不可接受,请求的资源只能生成根据请求中发送的“Accept”标头不可接受的内容。 |
409 - Conflict |
此操作与此资源的另一个操作冲突。 |
请求参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
vnfLcmOpOccId |
路径 |
字符串 |
VNF 生命周期管理操作事件的标识符。 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
id |
body |
字符串 |
此 VNF 生命周期管理操作事件的标识符。 |
operationState |
body |
字符串 |
LCM 操作的状态。 |
stateEnteredTime |
body |
字符串 |
当前状态进入的时间。 |
startTime |
body |
字符串 |
操作开始时间。 |
vnfInstanceId |
路径 |
字符串 |
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 CHANGE_EXT_CONN: ChangeExtVnfConnectivityRequest TERMINATE: TerminateVnfRequest MODIFY_INFO: VnfInfoModificationRequest CHANGE_VNFPKG: ChangeCurrentVnfPkgRequest 如果读取单个资源响应中返回此数据类型,则此属性应存在,如果查询容器资源响应中返回此数据类型,则此属性可能存在,具体取决于所选的属性选择器参数。 |
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 操作自其启动以来对虚拟化资源进行的累积更改信息(如果适用)。 |
affectedVnfcs (可选) |
body |
数组 |
生命周期操作期间受影响的 VNFC 实例的信息。 |
id |
body |
字符串 |
Vnfc 实例的标识符,标识“VnfInstance”数据类型中的适用“vnfcResourceInfo”条目。 |
vduId |
body |
字符串 |
VNFD 中相关 VDU 的标识符。 |
changeType |
body |
字符串 |
指示更改的类型。 允许的值: ADDED REMOVED MODIFIED TEMPORARY 对于临时资源,只要临时资源存在,就会存在受影响的 Vncf 结构。 |
computeResource |
body |
对象 |
对VirtualCompute资源的引用。 |
vimConnectionId (可选) |
body |
字符串 |
用于管理资源的 VIM 连接的标识符。仅当直接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。 |
resourceProviderId (可选) |
body |
字符串 |
标识负责该资源的实体。仅当间接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。 |
resourceId |
body |
字符串 |
VIM 或资源提供商范围内的资源的标识符。 |
vimLevelResourceType (可选) |
body |
字符串 |
VIM 或资源提供商范围内的资源类型。 |
zoneId (可选) |
body |
字符串 |
资源管理层(通常是VIM)管理的资源区域中放置引用的VirtualCompute资源的标识符。如果此信息来自VIM,则应提供。 |
metadata |
body |
键值对 |
有关此资源的元数据。 此属性应复制“VnfcResourceInfo”结构中的“metadata”属性的内容。 |
affectedVnfcCpIds (可选) |
body |
数组 |
受更改影响的 VNFC 实例的 CP 标识符。 仅当这些受影响的 CP 与 VNF 实例的外部 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 相关资源管理适用时,才应支持并存在此属性。 |
resourceProviderId (可选) |
body |
字符串 |
标识负责该资源的实体。仅当间接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。 |
resourceId |
body |
字符串 |
VIM 或资源提供商范围内的资源的标识符。 |
vimLevelResourceType (可选) |
body |
字符串 |
VIM 或资源提供商范围内的资源类型。 |
vnfLinkPortIds (可选) |
body |
字符串 |
受影响的 VL 相关更改的链路端口的标识符。 每个标识符引用一个“VnfLinkPortInfo”结构。 当 changeType 等于“LINK_PORT_ADDED”或“LINK_PORT_REMOVED”,并且相关的“VnfLinkPortInfo”结构存在(添加的情况)或曾经存在(删除的情况)于“VnfVirtualLinkResourceInfo”或“ExtManagedVirtualLinkInfo”结构中,这些结构由“VnfInstance”结构中的“vnfVirtualLinkResourceInfo”或“extManagedVirtualLinkInfo”属性表示时,应设置它。 |
affectedExtLinkPorts (可选) |
body |
数组 |
生命周期操作期间受影响的外部 VNF 链路端口的信息。 这允许 NFVO 获取包含在最新“result”通知中的信息,如果由于错误或配置错误的订阅过滤器而未收到该通知。 |
id |
body |
字符串 |
链路端口的标识符,标识“ExtVirtualLinkInfo”数据类型中的适用“extLinkPorts”条目。 |
changeType |
body |
字符串 |
指示更改的类型。 允许的值: ADDED REMOVED |
extCpInstranceId |
body |
字符串 |
相关外部 CP 实例的标识符。 |
resourceHandle |
body |
对象 |
实现此VL的资源的引用。 |
vimConnectionId (可选) |
body |
字符串 |
用于管理资源的 VIM 连接的标识符。仅当直接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。 |
resourceProviderId (可选) |
body |
字符串 |
标识负责该资源的实体。仅当间接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。 |
resourceId |
body |
字符串 |
VIM 或资源提供商范围内的资源的标识符。 |
vimLevelResourceType (可选) |
body |
字符串 |
VIM 或资源提供商范围内的资源类型。 |
affectedVirtualStorages (可选) |
body |
数组 |
生命周期操作期间受影响的虚拟化存储实例的信息。 |
id |
body |
字符串 |
存储实例的标识符,标识“VnfInstance”数据类型中的适用“virtualStorageResourceInfo”条目。 |
virtualStorageDescId |
body |
字符串 |
VNFD 中相关 VirtualStorage 描述符的标识符。 |
changeType |
body |
字符串 |
指示更改的类型。 允许的值: ADDED REMOVED MODIFIED TEMPORARY 对于临时资源,只要临时资源存在,就会存在受影响的虚拟存储结构。 |
storageResource |
body |
对象 |
对VirtualStorage资源的引用。 |
vimConnectionId (可选) |
body |
字符串 |
用于管理资源的 VIM 连接的标识符。仅当直接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。 |
resourceProviderId (可选) |
body |
字符串 |
标识负责该资源的实体。仅当间接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。 |
resourceId |
body |
字符串 |
VIM 或资源提供商范围内的资源的标识符。 |
vimLevelResourceType (可选) |
body |
字符串 |
VIM 或资源提供商范围内的资源类型。 |
metadata (可选) |
body |
键值对 |
有关此资源的元数据。 此属性应复制“VirtualStorageResourceInfo”结构中的“metadata”属性的内容。 |
changedInfo (可选) |
body |
对象 |
有关更改的 VNF 实例信息,包括 VNF 可配置属性(如果适用)。 |
vnfInstanceName (可选) |
body |
字符串 |
如果存在,则此属性指示“VnfInstance”中的“vnfInstanceName”属性的修改。 |
vnfInstanceDescription (可选) |
body |
字符串 |
如果存在,则此属性指示“VnfInstance”中的“vnfInstanceDescription”属性的修改。 |
vnfConfigurableProperties (可选) |
body |
键值对 |
如果存在,则此属性指示“VnfInstance”中的“vnfConfigurableProperties”属性的修改。 |
metadata (可选) |
body |
键值对 |
如果存在,则此属性指示“VnfInstance”中的“metadata”属性的修改。 |
extensions (可选) |
body |
键值对 |
如果存在,则此属性指示“VnfInstance”中的“extensions”属性的修改。 |
vimConnectionInfo (可选) |
body |
数组 |
如果存在,则此属性指示“VnfInstance”中的“vimConnectionInfo”属性数组的某些条目的修改。 |
vimId (可选) |
body |
字符串 |
VIM 实例的标识符。此标识符由 NFVO 管理。 如果已通过本文档范围之外的方式配置到 VNFM,则应存在以解决有关 VIM 的其他信息,否则应不存在。 |
vimType |
body |
字符串 |
VIM 信息的不同类型的区分器。 此属性的值根据 VIM 的类型确定“interfaceInfo”和“accessInfo”属性的结构。 预计允许值的集合会随着新的 VIM 类型或版本可用而发生变化。 |
interfaceInfo (可选) |
body |
键值对 |
如果适用,有关与 VIM 的接口或接口的信息,例如与 VIM 通信的接口端点的 URI。适用的键取决于 vimType 的内容。 或者,这些信息可能已配置到 VNFM 并绑定到 vimId。 |
accessInfo (可选) |
body |
键值对 |
访问 VIM 的身份验证凭据和其他访问相关信息,例如租户或基础设施资源组(请参阅说明)。适用的键取决于 vimType 的内容。 如果 VimConnectionInfo 结构是 HTTP 响应有效负载主体的一部分,则不应包含敏感属性(例如密码)。 如果 VimConnectionInfo 结构是 HTTP 请求有效负载主体的一部分,则如果尚未通过其他方式配置,则应存在敏感属性(例如密码)。 |
extra (可选) |
body |
键值对 |
VIM 类型特定的其他信息。适用的结构,以及此属性是否存在,取决于 vimType 的内容。 |
vnfdId (可选) |
body |
字符串 |
如果存在,则此属性指示“VnfInstance”中的“vnfdId”属性的修改。 |
vnfProvider (可选) |
body |
字符串 |
如果存在,则此属性指示“VnfInstance”中的“vnfProvider”属性的修改。 |
vnfProductName (可选) |
body |
字符串 |
如果存在,则此属性指示“VnfInstance”中的“vnfProductName”属性的修改。 |
vnfSoftwareVersion (可选) |
body |
字符串 |
如果存在,则此属性指示“VnfInstance”中的“vnfSoftwareVersion”属性的修改。 |
vnfdVersion (可选) |
body |
字符串 |
如果存在,则此属性指示“VnfInstance”中的“vnfdVersion”属性的修改。 |
vnfcInfoModifications (可选) |
body |
数组 |
此属性指示对“VnfInstance”的“instantiatedVnfInfo”属性中的“vnfcInfo”属性数组的某些条目的修改。 |
id |
body |
字符串 |
要修改其信息的VNFC实例的标识符。 |
vnfcConfigurableProperties |
body |
键值对 |
VNFC实例的可配置属性的更改。 |
changedExtConnectivity (可选) |
body |
对象 |
有关更改的外部连接性信息(如果适用)。 |
id (可选) |
body |
字符串 |
外部VL的标识符和相关的外部VL信息实例。标识符由管理此VL实例的NFV-MANO实体分配。 |
resourceHandle |
body |
对象 |
实现此VL的资源的引用。 |
vimConnectionId (可选) |
body |
字符串 |
用于管理资源的 VIM 连接的标识符。仅当直接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。 |
resourceProviderId (可选) |
body |
字符串 |
标识负责该资源的实体。仅当间接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。 |
resourceId |
body |
字符串 |
VIM 或资源提供商范围内的资源的标识符。 |
vimLevelResourceType (可选) |
body |
字符串 |
VIM 或资源提供商范围内的资源类型。 |
extLinkPorts (可选) |
body |
数组 |
外部提供的链路端口,用于将外部连接点连接到此外部 VL。如果未提供此属性,VNFM 应在外部 VL 上创建链路端口。 |
id |
body |
字符串 |
由创建链路端口的实体提供的此链路端口的标识符。 |
resourceHandle |
body |
对象 |
实现此VL的资源的引用。 |
vimConnectionId (可选) |
body |
字符串 |
用于管理资源的 VIM 连接的标识符。仅当直接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。 |
resourceProviderId (可选) |
body |
字符串 |
标识负责该资源的实体。仅当间接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。 |
resourceId |
body |
字符串 |
VIM 或资源提供商范围内的资源的标识符。 |
vimLevelResourceType (可选) |
body |
字符串 |
VIM 或资源提供商范围内的资源类型。 |
cpInstanceId (可选) |
body |
字符串 |
外部连接点的实例的标识符,请求将此配置参数集应用于该实例。 如果该实例已创建,则应存在。 |
currentVnfExtCpData |
body |
对象 |
允许API消费者读取当前CP配置信息,用于将外部CP连接到外部虚拟链路。 |
cpdId |
body |
字符串 |
VNFD 中的 CPD 的标识符。 |
cpConfig |
body |
map |
需要配置在从各自 CPD 创建的 CP 实例上的实例数据列表。 |
parentCpConfigId (可选) |
body |
字符串 |
标识干线父端口对应的“VnfExtCpConfig”映射条目的键值。仅存在于提供干线中子端口配置信息的“VnfExtCpConfig”结构中,并且如果支持父端口。 |
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”中的一个。 |
segmentationId (可选) |
body |
字符串 |
Cp 实例连接到的网络段的标识符。 |
ipAddresses (可选) |
body |
数组 |
要分配给 CP 实例的 IP 地址列表。每个条目代表每个子网的固定或动态 IP 地址分配的 IP 地址数据。 如果未提供此属性,则不应分配任何 IP 地址。 |
type |
body |
字符串 |
IP 地址的类型。允许的值:IPV4、IPV6。 |
fixedAddresses (可选) |
body |
数组 |
要分配的固定地址(如果提供了“subnetId”,则来自定义的子网)。“fixedAddresses”或“numDynamicAddresses”中应存在且仅存在一个。 |
numDynamicAddresses (可选) |
body |
int |
设置动态地址的数量。“fixedAddresses”或“numDynamicAddresses”中应存在且仅存在一个。 |
addressRange (可选) |
body |
对象 |
要使用的 IP 地址范围,例如在出口连接的情况下。 |
minAddress |
body |
字符串 |
范围内的最低 IP 地址。 |
maxAddress |
body |
字符串 |
范围内的最高 IP 地址。 |
subnetId (可选) |
body |
字符串 |
由 VIM 中子网资源标识符定义的子网。如果存在此属性,将分配来自该子网的 IP 地址;否则,将分配未绑定到子网的 IP 地址。 |
_links |
body |
对象 |
指向与此资源相关的资源的链接。 |
响应示例¶
{
"_links": {
"fail": {
"href": "http://127.0.0.1:9890/vnflcm/v2/vnf_lcm_op_occs/9b475d28-5acb-4c3b-95dd-fec2b2319643/fail"
},
"retry": {
"href": "http://127.0.0.1:9890/vnflcm/v2/vnf_lcm_op_occs/9b475d28-5acb-4c3b-95dd-fec2b2319643/retry"
},
"rollback": {
"href": "http://127.0.0.1:9890/vnflcm/v2/vnf_lcm_op_occs/9b475d28-5acb-4c3b-95dd-fec2b2319643/rollback"
},
"self": {
"href": "http://127.0.0.1:9890/vnflcm/v2/vnf_lcm_op_occs/9b475d28-5acb-4c3b-95dd-fec2b2319643"
},
"vnfInstance": {
"href": "http://127.0.0.1:9890/vnflcm/v2/vnf_instances/10ed068e-1284-48f2-9b6e-1c443ace9cc6"
}
},
"error": {
"detail": "instantiate_end failed: b'test instantiate_end error'",
"status": 422,
"title": "Mgmt driver execution failed"
},
"grantId": "f7437546-5c4d-4860-85b4-9e7dc5fe8e67",
"id": "9b475d28-5acb-4c3b-95dd-fec2b2319643",
"isAutomaticInvocation": false,
"isCancelPending": false,
"operation": "INSTANTIATE",
"operationParams": {
"additionalParams": {
"lcm-operation-user-data": "./UserData/userdata_default.py",
"lcm-operation-user-data-class": "DefaultUserData"
},
"extManagedVirtualLinks": [
{
"id": "ac9eff82-9406-42f0-88ae-1be9d89eb917",
"resourceId": "b3f18cea-a773-4f46-8fa1-9357df2ce360",
"vnfVirtualLinkDescId": "internalVL1"
}
],
"extVirtualLinks": [
{
"extCps": [
{
"cpConfig": {
"VDU1_CP1_1": {
"cpProtocolData": [
{
"ipOverEthernet": {
"ipAddresses": [
{
"numDynamicAddresses": 1,
"type": "IPV4"
}
]
},
"layerProtocol": "IP_OVER_ETHERNET"
}
]
}
},
"cpdId": "VDU1_CP1"
},
{
"cpConfig": {
"VDU2_CP1_1": {
"cpProtocolData": [
{
"ipOverEthernet": {
"ipAddresses": [
{
"fixedAddresses": [
"10.10.0.102"
],
"type": "IPV4"
}
]
},
"layerProtocol": "IP_OVER_ETHERNET"
}
]
}
},
"cpdId": "VDU2_CP1"
}
],
"id": "789ecc10-4285-43fe-b8e3-b0e7d4a5cd79",
"resourceId": "7d16f94d-d4c9-412b-a2f5-0321131e9e4d"
},
{
"extCps": [
{
"cpConfig": {
"VDU1_CP2_1": {
"cpProtocolData": [
{
"ipOverEthernet": {
"ipAddresses": [
{
"numDynamicAddresses": 1,
"subnetId": "f6208fae-87fa-473f-bc96-441a75a19d09",
"type": "IPV4"
}
]
},
"layerProtocol": "IP_OVER_ETHERNET"
}
]
}
},
"cpdId": "VDU1_CP2"
},
{
"cpConfig": {
"VDU2_CP2_1": {
"cpProtocolData": [
{
"ipOverEthernet": {
"ipAddresses": [
{
"fixedAddresses": [
"10.10.1.102"
],
"subnetId": "f6208fae-87fa-473f-bc96-441a75a19d09",
"type": "IPV4"
}
]
},
"layerProtocol": "IP_OVER_ETHERNET"
}
]
}
},
"cpdId": "VDU2_CP2"
}
],
"id": "cd8aa4ce-a17f-47d8-b3fb-6102ce17f355",
"resourceId": "67f4ca33-4142-4d1a-afb0-978365e31aa2"
}
],
"flavourId": "simple",
"instantiationLevelId": "instantiation_level_1",
"vimConnectionInfo": {
"vim1": {
"accessInfo": {
"password": "devstack",
"project": "nfv",
"projectDomain": "Default",
"region": "RegionOne",
"userDomain": "Default",
"username": "nfv_user"
},
"interfaceInfo": {
"endpoint": "https:///identity/v3"
},
"vimId": "0f093d21-cd8f-4826-aeee-27cd9305a209",
"vimType": "ETSINFV.OPENSTACK_KEYSTONE.V_3"
}
}
},
"operationState": "FAILED",
"resourceChanges": {
"affectedVirtualLinks": [
{
"changeType": "ADDED",
"id": "e2cc5431-eb8d-4208-b8e1-3b766c123279",
"networkResource": {
"resourceId": "d2565a88-aea8-4999-b52f-a220b59df5ea",
"vimConnectionId": "vim1",
"vimLevelResourceType": "OS::Neutron::Net"
},
"vnfLinkPortIds": [
"69081627-7f06-42fd-af9c-3f79d44fb8c3",
"46dd1aec-0ae1-4cff-8d5d-81c671f4aaad"
],
"vnfVirtualLinkDescId": "internalVL3"
},
{
"changeType": "ADDED",
"id": "b5d1f4b8-fb87-4155-a4e9-6619a1b7097f",
"networkResource": {
"resourceId": "d785e039-215c-4e6e-951c-79959d8c531c",
"vimConnectionId": "vim1",
"vimLevelResourceType": "OS::Neutron::Net"
},
"vnfLinkPortIds": [
"7d244233-7244-4a40-9e4f-7aec929401ab",
"fd61f725-28b7-44a5-ba02-652846bef719"
],
"vnfVirtualLinkDescId": "internalVL2"
}
],
"affectedVirtualStorages": [
{
"changeType": "ADDED",
"id": "55cf75b7-6c73-455e-8bd2-07f31047672d",
"storageResource": {
"resourceId": "5c6956bc-9e1b-490f-8592-a490da200a2c",
"vimConnectionId": "vim1",
"vimLevelResourceType": "OS::Cinder::Volume"
},
"virtualStorageDescId": "VirtualStorage"
}
],
"affectedVnfcs": [
{
"affectedVnfcCpIds": [
"a84df9fb-b81a-49be-a010-3082e6d2adbe",
"77bfa29d-9fbe-42f2-9892-af98a2507d59",
"4f0173ce-a624-4173-8e4b-a37667e04a80",
"3057e251-8546-4f61-96e4-ea6c1af886cf",
"7b31dd26-a2af-4e47-921d-5695ac101028"
],
"changeType": "ADDED",
"computeResource": {
"resourceId": "c9920a04-cf74-4e42-be89-a2fec2f89e48",
"vimConnectionId": "vim1",
"vimLevelResourceType": "OS::Nova::Server"
},
"id": "43c29ba1-6037-49a6-a73a-b83484e7dc4e",
"vduId": "VDU2"
},
{
"addedStorageResourceIds": [
"55cf75b7-6c73-455e-8bd2-07f31047672d"
],
"affectedVnfcCpIds": [
"defd21b3-d0e2-4eb4-8433-e4b555e5926b",
"60eb1d2b-11cf-4bb3-90c6-83096bd7d2a0",
"d7c68605-3022-41a4-a4bf-44cc76aa9d28",
"efb91c15-9ddc-435b-aded-33203b9061b6",
"95ad30b9-87e9-4695-be38-59298dc86cb6"
],
"changeType": "ADDED",
"computeResource": {
"resourceId": "dd5731bb-50f1-47e5-b1bf-ae0c34fd646e",
"vimConnectionId": "vim1",
"vimLevelResourceType": "OS::Nova::Server"
},
"id": "d9d06660-35d2-4c90-b9f0-139f38731e75",
"vduId": "VDU1"
}
]
},
"startTime": "2021-12-20T15:36:13Z",
"stateEnteredTime": "2021-12-20T15:36:13Z",
"vnfInstanceId": "10ed068e-1284-48f2-9b6e-1c443ace9cc6"
}
POST 方法在 VNF 生命周期操作遇到临时故障(即相关的“单个 VNF LCM 操作事件”资源处于“FAILED_TEMP”状态)时开始回滚 VNF 生命周期操作。 在回滚“InstantiateVnf”操作的事件时,VNFM 应请求 VIM 释放与相关 VNF 实例分配的虚拟化资源。 VNFM 应支持对处于 FAILED_TEMP 状态的“InstantiateVnf”操作事件进行“rollback”任务。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已被接受处理,但处理尚未完成。响应中包含一个“location”头部,其中包含一个链接以检查请求的进度。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
401 - 未授权 |
用户必须在发出请求之前进行身份验证。 |
404 - Not Found |
找不到请求的资源。 |
406 - 不可接受 |
不可接受,请求的资源只能生成根据请求中发送的“Accept”标头不可接受的内容。 |
409 - Conflict |
此操作与此资源的另一个操作冲突。 |
422 - 无法处理的实体 |
有效负载体的 content type 受支持,并且请求的有效负载体包含语法上正确的数据(例如,格式良好的 JSON),但无法处理该数据(例如,因为它无法通过模式验证)。 |
请求参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
vnfLcmOpOccId |
路径 |
字符串 |
VNF 生命周期管理操作事件的标识符。 |
POST 方法创建新订阅。
成功执行此方法后,应已创建新的“单个订阅”资源。 此方法不会触发任何通知。
创建具有相同 callbackURI 和相同过滤器的两个“独立订阅”资源可能导致性能下降,并向 NFVO 提供重复的通知,只有在非常罕见的情况下才有意义。因此,VNFM 可以允许创建“独立订阅”资源,如果另一个具有相同过滤器和 callbackUri 的“独立订阅”资源已经存在(在这种情况下,它应返回 201 Created 响应代码),或者 VNFM 可以决定不创建重复的“独立订阅”资源(在这种情况下,它应返回“303 See Other”响应代码,引用具有相同过滤器和 callbackUri 的现有“独立订阅”资源)。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
201 - 已创建 |
资源已创建并准备好使用。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
401 - 未授权 |
用户必须在发出请求之前进行身份验证。 |
406 - 不可接受 |
不可接受,请求的资源只能生成根据请求中发送的“Accept”标头不可接受的内容。 |
422 - 无法处理的实体 |
有效负载体的 content type 受支持,并且请求的有效负载体包含语法上正确的数据(例如,格式良好的 JSON),但无法处理该数据(例如,因为它无法通过模式验证)。 |
请求参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
filter (可选) |
body |
对象 |
此订阅的筛选设置,用于定义所有通知的子集。如果筛选条件匹配,或者没有筛选条件,则将通知发送给订阅者。 |
vnfInstanceSubscriptionFilter (可选) |
body |
对象 |
用于选择要通知的 VNF 实例的筛选标准。 |
vnfdIds (可选) |
body |
字符串 |
如果存在,则匹配基于由此属性中列出的 vnfdId 值标识的 VNFD 创建的 VNF 实例。 |
vnfProductsFromProviders (可选) |
body |
数组 |
如果存在,则匹配属于特定提供商的 VNF 产品中的 VNF 实例。 |
vnfProvider |
body |
字符串 |
要匹配的 VNF 提供商名称。 |
vnfProducts (可选) |
body |
数组 |
如果存在,则匹配属于具有特定产品名称的 VNF 产品中的 VNF 实例,来自特定的提供商。 |
vnfProductName |
body |
字符串 |
要匹配的 VNF 产品名称。 |
versions (可选) |
body |
数组 |
如果存在,则匹配属于具有特定版本和特定产品名称的 VNF 产品中的 VNF 实例,来自特定的提供商。 |
vnfSoftwareVersion |
body |
字符串 |
要匹配的软件版本。 |
vnfdVersions (可选) |
body |
数组 |
如果存在,则匹配属于具有特定 VNFD 版本、特定软件版本和特定产品名称的 VNF 产品中的 VNF 实例,来自特定的提供商。 |
vnfInstanceIds (可选) |
body |
数组 |
如果存在,则匹配具有此属性中列出的实例标识符的 VNF 实例。 |
vnfInstanceNames (可选) |
body |
数组 |
如果存在,则匹配具有此属性中列出的 VNF 实例名称的 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 令牌。 OAUTH2_CLIENT_CERT:在向通知端点发送的每个 HTTP 请求中,使用使用客户端凭据授权类型在向令牌端点使用客户端标识符和 X.509 证书进行相互身份验证后获得的 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 |
字符串 |
可以获取访问令牌的令牌端点。如果未通过其他方式配置,则应存在。 |
paramsOauth2ClientCert (可选) |
body |
对象 |
用于使用 OAUTH2_CLIENT_CERT 进行身份验证/授权的参数。如果 authType 为“OAUTH2_CLIENT_CERT”且包含的信息未通过其他方式配置,则应存在。否则,应不存在。 |
clientId |
body |
字符串 |
OAuth 2.0 客户端凭据授权类型访问令牌请求中使用的客户端标识符。如果未通过其他方式配置,则应存在。 |
certificateRef |
body |
对象 |
客户端证书的指纹。哈希函数应使用 SHA256 或更高版本。如果未通过其他方式配置,则应存在。 |
type |
body |
字符串 |
指纹类型。允许的值 x5t#S256:根据 IETF RFC 7515 第 4.1.8 节定义的 X.509 证书的 SHA-256 拇指码。 |
value |
body |
字符串 |
根据类型定义的指纹值。如果未通过其他方式配置,则应存在。 |
tokenEndpoint |
body |
字符串 |
可以获取访问令牌的令牌端点。如果未通过其他方式配置,则应存在。 |
verbosity (可选) |
body |
enum |
此属性指示请求的 LCM 操作发生通知的详细程度。如果未提供,则默认为“FULL”。 |
请求示例¶
{
"callbackUri": "http://127.0.0.1/"
}
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
id |
body |
字符串 |
此订阅资源的标识符。 |
filter (可选) |
body |
对象 |
此订阅的筛选设置,用于定义所有通知的子集。如果筛选条件匹配,或者没有筛选条件,则将通知发送给订阅者。 |
vnfInstanceSubscriptionFilter (可选) |
body |
对象 |
用于选择要通知的 VNF 实例的筛选标准。 |
vnfdIds (可选) |
body |
字符串 |
如果存在,则匹配基于由此属性中列出的 vnfdId 值标识的 VNFD 创建的 VNF 实例。 |
vnfProductsFromProviders (可选) |
body |
数组 |
如果存在,则匹配属于特定提供商的 VNF 产品中的 VNF 实例。 |
vnfProvider |
body |
字符串 |
要匹配的 VNF 提供商名称。 |
vnfProducts (可选) |
body |
数组 |
如果存在,则匹配属于具有特定产品名称的 VNF 产品中的 VNF 实例,来自特定的提供商。 |
vnfProductName |
body |
字符串 |
要匹配的 VNF 产品名称。 |
versions (可选) |
body |
数组 |
如果存在,则匹配属于具有特定版本和特定产品名称的 VNF 产品中的 VNF 实例,来自特定的提供商。 |
vnfSoftwareVersion |
body |
字符串 |
要匹配的软件版本。 |
vnfdVersions (可选) |
body |
数组 |
如果存在,则匹配属于具有特定 VNFD 版本、特定软件版本和特定产品名称的 VNF 产品中的 VNF 实例,来自特定的提供商。 |
vnfInstanceIds (可选) |
body |
数组 |
如果存在,则匹配具有此属性中列出的实例标识符的 VNF 实例。 |
vnfInstanceNames (可选) |
body |
数组 |
如果存在,则匹配具有此属性中列出的 VNF 实例名称的 VNF 实例。 |
notificationTypes (可选) |
body |
数组 |
匹配特定的通知类型。允许的值 VnfLcmOperationOccurrenceNotification VnfIdentifierCreationNotification VnfIdentifierDeletionNotification |
operationTypes (可选) |
body |
数组 |
匹配 VnfLcmOperationOccurrenceNotification 类型的通知的特定 VNF 生命周期操作类型。如果“notificationTypes”属性包含值“VnfLcmOperationOccurrenceNotification”,则可以存在此属性,否则必须不存在。 |
operationStates (可选) |
body |
数组 |
匹配 VnfLcmOperationOccurrenceNotification 类型的通知中报告的特定 LCM 操作状态值。如果“notificationTypes”属性包含值“VnfLcmOperationOccurrenceNotification”,则可以存在此属性,否则必须不存在。 |
callbackUri |
body |
字符串 |
发送通知的端点的 URI。 |
verbosity |
body |
enum |
此属性指示请求的 LCM 操作发生通知的详细程度。如果未提供,则默认为“FULL”。 |
_links |
body |
对象 |
指向与此资源相关的资源的链接。 |
响应示例¶
{
"_links": {
"self": {
"href": "http://127.0.0.1:9890/vnflcm/v2/subscriptions/084cf869-d787-4c1a-b43b-405a25ed98da"
}
},
"callbackUri": "http://127.0.0.1/",
"id": "084cf869-d787-4c1a-b43b-405a25ed98da",
"verbosity": "FULL"
}
DELETE 方法终止单个订阅。
成功执行此方法后,“独立订阅”资源将不再存在。这意味着不会向以前订阅的 API 消费者发送该订阅的任何通知。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
204 - No Content |
服务器已通过删除资源来满足请求。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
401 - 未授权 |
用户必须在发出请求之前进行身份验证。 |
404 - Not Found |
找不到请求的资源。 |
406 - 不可接受 |
不可接受,请求的资源只能生成根据请求中发送的“Accept”标头不可接受的内容。 |
请求参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
subscriptionId |
路径 |
字符串 |
订阅的标识符。 |
GET 方法通过读取“独立订阅”资源来检索订阅信息。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
401 - 未授权 |
用户必须在发出请求之前进行身份验证。 |
404 - Not Found |
找不到请求的资源。 |
406 - 不可接受 |
不可接受,请求的资源只能生成根据请求中发送的“Accept”标头不可接受的内容。 |
请求参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
subscriptionId |
路径 |
字符串 |
订阅的标识符。 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
id |
body |
字符串 |
此订阅资源的标识符。 |
filter (可选) |
body |
对象 |
此订阅的筛选设置,用于定义所有通知的子集。如果筛选条件匹配,或者没有筛选条件,则将通知发送给订阅者。 |
vnfInstanceSubscriptionFilter (可选) |
body |
对象 |
用于选择要通知的 VNF 实例的筛选标准。 |
vnfdIds (可选) |
body |
字符串 |
如果存在,则匹配基于由此属性中列出的 vnfdId 值标识的 VNFD 创建的 VNF 实例。 |
vnfProductsFromProviders (可选) |
body |
数组 |
如果存在,则匹配属于特定提供商的 VNF 产品中的 VNF 实例。 |
vnfProvider |
body |
字符串 |
要匹配的 VNF 提供商名称。 |
vnfProducts (可选) |
body |
数组 |
如果存在,则匹配属于具有特定产品名称的 VNF 产品中的 VNF 实例,来自特定的提供商。 |
vnfProductName |
body |
字符串 |
要匹配的 VNF 产品名称。 |
versions (可选) |
body |
数组 |
如果存在,则匹配属于具有特定版本和特定产品名称的 VNF 产品中的 VNF 实例,来自特定的提供商。 |
vnfSoftwareVersion |
body |
字符串 |
要匹配的软件版本。 |
vnfdVersions (可选) |
body |
数组 |
如果存在,则匹配属于具有特定 VNFD 版本、特定软件版本和特定产品名称的 VNF 产品中的 VNF 实例,来自特定的提供商。 |
vnfInstanceIds (可选) |
body |
数组 |
如果存在,则匹配具有此属性中列出的实例标识符的 VNF 实例。 |
vnfInstanceNames (可选) |
body |
数组 |
如果存在,则匹配具有此属性中列出的 VNF 实例名称的 VNF 实例。 |
notificationTypes (可选) |
body |
数组 |
匹配特定的通知类型。允许的值 VnfLcmOperationOccurrenceNotification VnfIdentifierCreationNotification VnfIdentifierDeletionNotification |
operationTypes (可选) |
body |
数组 |
匹配 VnfLcmOperationOccurrenceNotification 类型的通知的特定 VNF 生命周期操作类型。如果“notificationTypes”属性包含值“VnfLcmOperationOccurrenceNotification”,则可以存在此属性,否则必须不存在。 |
operationStates (可选) |
body |
数组 |
匹配 VnfLcmOperationOccurrenceNotification 类型的通知中报告的特定 LCM 操作状态值。如果“notificationTypes”属性包含值“VnfLcmOperationOccurrenceNotification”,则可以存在此属性,否则必须不存在。 |
callbackUri |
body |
字符串 |
发送通知的端点的 URI。 |
verbosity |
body |
enum |
此属性指示请求的 LCM 操作发生通知的详细程度。如果未提供,则默认为“FULL”。 |
_links |
body |
对象 |
指向与此资源相关的资源的链接。 |
响应示例¶
{
"_links": {
"self": {
"href": "http://127.0.0.1:9890/vnflcm/v2/subscriptions/cd87e3d6-9bbe-4ad1-bb21-0f5c3e4e777d"
}
},
"callbackUri": "http://127.0.0.1/",
"id": "cd87e3d6-9bbe-4ad1-bb21-0f5c3e4e777d",
"verbosity": "FULL"
}
GET 方法查询调用该方法的函数块的活动订阅列表。例如,它可以用于在错误情况后重新同步。
它支持 ETSI NFV SOL013 v3.4.1 中的基于属性的过滤。基于属性的过滤的详细信息在 SOL013 v3.4.1 第 5.2 条中描述。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
401 - 未授权 |
用户必须在发出请求之前进行身份验证。 |
406 - 不可接受 |
不可接受,请求的资源只能生成根据请求中发送的“Accept”标头不可接受的内容。 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
id |
body |
字符串 |
此订阅资源的标识符。 |
filter (可选) |
body |
对象 |
此订阅的筛选设置,用于定义所有通知的子集。如果筛选条件匹配,或者没有筛选条件,则将通知发送给订阅者。 |
vnfInstanceSubscriptionFilter (可选) |
body |
对象 |
用于选择要通知的 VNF 实例的筛选标准。 |
vnfdIds (可选) |
body |
字符串 |
如果存在,则匹配基于由此属性中列出的 vnfdId 值标识的 VNFD 创建的 VNF 实例。 |
vnfProductsFromProviders (可选) |
body |
数组 |
如果存在,则匹配属于特定提供商的 VNF 产品中的 VNF 实例。 |
vnfProvider |
body |
字符串 |
要匹配的 VNF 提供商名称。 |
vnfProducts (可选) |
body |
数组 |
如果存在,则匹配属于具有特定产品名称的 VNF 产品中的 VNF 实例,来自特定的提供商。 |
vnfProductName |
body |
字符串 |
要匹配的 VNF 产品名称。 |
versions (可选) |
body |
数组 |
如果存在,则匹配属于具有特定版本和特定产品名称的 VNF 产品中的 VNF 实例,来自特定的提供商。 |
vnfSoftwareVersion |
body |
字符串 |
要匹配的软件版本。 |
vnfdVersions (可选) |
body |
数组 |
如果存在,则匹配属于具有特定 VNFD 版本、特定软件版本和特定产品名称的 VNF 产品中的 VNF 实例,来自特定的提供商。 |
vnfInstanceIds (可选) |
body |
数组 |
如果存在,则匹配具有此属性中列出的实例标识符的 VNF 实例。 |
vnfInstanceNames (可选) |
body |
数组 |
如果存在,则匹配具有此属性中列出的 VNF 实例名称的 VNF 实例。 |
notificationTypes (可选) |
body |
数组 |
匹配特定的通知类型。允许的值 VnfLcmOperationOccurrenceNotification VnfIdentifierCreationNotification VnfIdentifierDeletionNotification |
operationTypes (可选) |
body |
数组 |
匹配 VnfLcmOperationOccurrenceNotification 类型的通知的特定 VNF 生命周期操作类型。如果“notificationTypes”属性包含值“VnfLcmOperationOccurrenceNotification”,则可以存在此属性,否则必须不存在。 |
operationStates (可选) |
body |
数组 |
匹配 VnfLcmOperationOccurrenceNotification 类型的通知中报告的特定 LCM 操作状态值。如果“notificationTypes”属性包含值“VnfLcmOperationOccurrenceNotification”,则可以存在此属性,否则必须不存在。 |
callbackUri |
body |
字符串 |
发送通知的端点的 URI。 |
verbosity |
body |
enum |
此属性指示请求的 LCM 操作发生通知的详细程度。如果未提供,则默认为“FULL”。 |
_links |
body |
对象 |
指向与此资源相关的资源的链接。 |
响应示例¶
[
{
"_links": {
"self": {
"href": "http://127.0.0.1:9890/vnflcm/v2/subscriptions/cd87e3d6-9bbe-4ad1-bb21-0f5c3e4e777d"
}
},
"callbackUri": "http://127.0.0.1/",
"id": "cd87e3d6-9bbe-4ad1-bb21-0f5c3e4e777d",
"verbosity": "FULL"
}
]