虚拟化网络功能生命周期管理接口 (VNF LCM) v2

虚拟化网络功能生命周期管理接口 (VNF LCM)

此接口管理 VNF 实例的 VNF 生命周期管理操作。

此接口允许 NFVO 向 VNFM 发起 VNF 实例的 VNF 生命周期管理操作。

POST
/vnflcm/v2/vnf_instances

创建新的 VNF 实例资源 (v2)

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
/vnflcm/v2/vnf_instances/{vnfInstanceId}/instantiate

实例化 VNF 实例 (v2)

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"
        }
    }
}
POST
/vnflcm/v2/vnf_instances/{vnfInstanceId}/terminate

终止 VNF 实例 (v2)

此任务资源表示“终止 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"
}
POST
/vnflcm/v2/vnf_instances/{vnfInstanceId}/heal

修复VNF实例 (v2)

此任务资源代表“修复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"]
}
DELETE
/vnflcm/v2/vnf_instances/{vnfInstanceId}

删除VNF实例 (v2)

此方法删除“单个VNF实例”资源。

成功执行此方法后,“单个VNF实例”资源将不再存在。

响应代码

成功

代码

原因

204 - No Content

服务器已通过删除资源来满足请求。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

404 - Not Found

找不到请求的资源。

406 - 不可接受

不可接受,请求的资源只能生成根据请求中发送的“Accept”标头不可接受的内容。

409 - Conflict

此操作与此资源的另一个操作冲突。

请求参数

名称

入参

类型

描述

vnfInstanceId

路径

字符串

VNF 实例的标识符。

GET
/vnflcm/v2/vnf_instances/{vnfInstanceId}

显示VNF实例 (v2)

显示给定单个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
/vnflcm/v2/vnf_instances

列出VNF实例 (v2)

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"
    }
]
POST
/vnflcm/v2/vnf_instances/{vnfInstanceId}/scale

缩放VNF实例 (v2)

此任务资源代表“缩放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"
}
PATCH
vnflcm/v2/vnf_instances/{vnfInstanceId}

更新VNF实例 (v2)

对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"
}
POST
/vnflcm/v2/vnf_instances/{vnfInstanceId}/change_ext_conn

更改外部VNF连接 (v2)

此任务资源代表“更改外部 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"
        }
    }
}
POST
/vnflcm/v2/vnf_instances/{vnfInstanceId}/change_vnfpkg

更改当前 VNF 包 (v2)

此任务资源代表“更改当前 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"
        }
    }
}
GET
/vnflcm/v2/vnf_lcm_op_occs/{vnfLcmOpOccId}

显示 VNF LCM 操作事件 (v2)

客户端可以使用此方法通过读取“单个 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"
}
GET
/vnflcm/v2/vnf_lcm_op_occs

列出 VNF LCM 操作事件 (v2)

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
/vnflcm/v2/vnf_lcm_op_occs/{vnfLcmOpOccId}/retry

重试 VNF LCM 操作事件 (v2)

POST 方法在 VNF 生命周期操作遇到临时故障(即相关的“单个 VNF LCM 操作事件”资源处于“FAILED_TEMP”状态)时开始重试该操作。

响应代码

成功

代码

原因

202 - Accepted

请求已被接受处理,但处理尚未完成。响应中包含一个“location”头部,其中包含一个链接以检查请求的进度。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

404 - Not Found

找不到请求的资源。

406 - 不可接受

不可接受,请求的资源只能生成根据请求中发送的“Accept”标头不可接受的内容。

409 - Conflict

此操作与此资源的另一个操作冲突。

请求参数

名称

入参

类型

描述

vnfLcmOpOccId

路径

字符串

VNF 生命周期管理操作事件的标识符。

POST
/vnflcm/v2/vnf_lcm_op_occs/{vnfLcmOpOccId}/fail

使 VNF LCM 操作事件失败 (v2)

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
/vnflcm/v2/vnf_lcm_op_occs/{vnfLcmOpOccId}/rollback

回滚 VNF LCM 操作事件 (v2)

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
/vnflcm/v2/subscriptions

创建新订阅 (v2)

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
/vnflcm/v2/subscriptions/{subscriptionId}

删除订阅

DELETE 方法终止单个订阅。

成功执行此方法后,“独立订阅”资源将不再存在。这意味着不会向以前订阅的 API 消费者发送该订阅的任何通知。

响应代码

成功

代码

原因

204 - No Content

服务器已通过删除资源来满足请求。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

404 - Not Found

找不到请求的资源。

406 - 不可接受

不可接受,请求的资源只能生成根据请求中发送的“Accept”标头不可接受的内容。

请求参数

名称

入参

类型

描述

subscriptionId

路径

字符串

订阅的标识符。

GET
/vnflcm/v2/subscriptions/{subscriptionId}

显示订阅 (v2)

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
/vnflcm/v2/subscriptions

列出订阅 (v2)

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"
    }
]