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

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

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

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

POST
/vnflcm/v1/vnf_instances

创建新的 VNF 实例资源

POST 方法创建新的 VNF 实例资源。

成功执行此方法后,应已创建新的单个 VNF 实例资源,并且该资源表示中的 instantiationState 属性值应为 NOT_INSTANTIATED。

响应代码

成功

代码

原因

201 - 已创建

资源已创建并准备好使用。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

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

403 - 禁止

策略不允许当前用户执行此操作。

请求参数

名称

入参

类型

描述

vnfdId

body

字符串

标识定义要创建的 VNF 实例的 VNFD 的标识符。

vnfInstanceName (可选)

body

字符串

要创建的 VNF 实例的人性化名称。

vnfInstanceDescription (可选)

body

字符串

要创建的 VNF 实例的人性化描述。

metadata (可选)

body

数组

此属性为“VnfInstance”中的“metadata”属性提供值。

请求示例

{
  "vnfdId": "b1bb0ce7-ebca-4fa7-95ed-4840d70a1177",
  "vnfInstanceName": "Instance name",
  "vnfInstanceDescription": "Instance description"
}

响应参数

名称

入参

类型

描述

id

body

字符串

VNF 实例的标识符。

vnfInstanceName (可选)

body

字符串

VNF 实例的名称。

vnfInstanceDescription (可选)

body

字符串

VNF 实例的人性化描述。

vnfdId

body

字符串

VNF 实例所基于的 VNFD 的标识符。

vnfProvider

body

字符串

VNF 和 VNFD 的提供者。该值从 VNFD 复制而来。

vnfProductName

body

字符串

用于标识 VNF 产品名称。该值从 VNFD 复制而来。

vnfSoftwareVersion

body

字符串

VNF 的软件版本。该值从 VNFD 复制而来。

vnfdVersion

body

字符串

标识 VNFD 的版本。该值从 VNFD 复制而来。

vnfPkgId

body

字符串

NFVO 关于 VNF 基于的特定 VNF 包所持有的信息的标识符。此标识符由 NFVO 分配,并且可以使用 PATCH 方法进行修改。

instantiationState

body

字符串

VNF 实例的实例化状态。

NOT_INSTANTIATED:VNF 实例已终止或未实例化。

INSTANTIATED:VNF 实例已实例化。

_links

body

对象

指向与此资源相关的资源的链接。

响应示例

{
  "id": "cda383ea-8341-4731-93c7-19db4b5ce1b5",
  "instantiationState": "NOT_INSTANTIATED",
  "vnfInstanceDescription": "Instance description",
  "vnfInstanceName": "Instance name",
  "vnfPkgId": "5ac73423-f102-4574-911e-578dad9fa8fe",
  "vnfProductName": "Sample VNF",
  "vnfProvider": "Company",
  "vnfSoftwareVersion": "1.0",
  "vnfdId": "b1bb0ce7-ebca-4fa7-95ed-4840d70a1177",
  "vnfdVersion": "1.0",
  "_links": {
    "instantiate": {
      "href": "https://:9890/vnflcm/v1/vnf_instances/cda383ea-8341-4731-93c7-19db4b5ce1b5/instantiate"
    },
    "self": {
      "href": "https://:9890/vnflcm/v1/vnf_instances/cda383ea-8341-4731-93c7-19db4b5ce1b5"
    }
  }
}
POST
/vnflcm/v1/vnf_instances/{vnfInstanceId}/instantiate

实例化 VNF 实例

POST 方法实例化 VNF 实例。

一旦 VNFM 成功完成底层的 VNF LCM 操作发生,它应将 Individual VNF 实例资源表示中的 instantiationState 属性设置为 INSTANTIATED 值,并将 vnfState 属性设置为 STARTED 值。

响应代码

成功

代码

原因

202 - Accepted

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

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

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

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

409 - Conflict

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

请求参数

名称

入参

类型

描述

vnfInstanceId

路径

字符串

VNF 实例的标识符。

flavourId

body

字符串

要实例化的 VNF 部署风味的标识符。

instantiationLevelId (可选)

body

字符串

要实例化的部署风味的实例化级别标识符。如果未提供,则实例化 VNFD 中声明的默认实例化级别。

extVirtualLinks (可选)

body

数组

有关外部 VL 以连接到 VNF 的信息。

id

body

字符串

外部 VL 实例的标识符。标识符由管理此 VL 实例的 NFV-MANO 实体分配。

resourceId

body

字符串

VIM 或资源提供商范围内的资源的标识符。

extCps

body

数组

要连接到此外部 VL 的 VNF 的外部 CP。

cpdId

body

字符串

VNFD 中 CPD 的标识符。

cpConfig (可选)

body

数组

需要配置在从各自 CPD 创建的 CP 实例上的实例数据列表。

cpInstanceId (可选)

body

字符串

要应用此配置参数集的外部连接点实例的标识符。

如果该实例已创建,则应存在。

linkPortId (可选)

body

字符串

与外部 CP 将关联的预配置链路端口的标识符。请参阅注释。

cpProtocolData (可选)

body

数组

用于配置连接 CP 到 VL 的链路端口上的网络协议的参数。

layerProtocol

body

字符串

层和协议的标识符。

允许的值:IP_OVER_ETHERNET

ipOverEthernet (可选)

body

对象

要分配给 extCP 实例的网络地址数据。如果 layerProtocol 等于“IP_OVER_ETHERNET”,则应存在,否则应不存在。

macAddress (可选)

body

字符串

MAC 地址。如果未提供此属性,则应由 VIM 选择。至少应存在“macAddress”或“ipAddresses”中的一个。

ipAddresses (可选)

body

数组

要分配给 CP 实例的 IP 地址列表。每个条目代表针对每个子网的固定或动态 IP 地址分配的 IP 地址数据。

如果未提供此属性,则不应分配任何 IP 地址。

type

body

字符串

IP 地址的类型。允许的值:IPV4、IPV6。

fixedAddresses (可选)

body

数组

要分配的固定地址(如果提供了“subnetId”,则来自子网)。“fixedAddresses”或“numDynamicAddresses”中的一个必须存在。

numDynamicAddresses (可选)

body

int

设置动态地址的数量。“fixedAddresses”或“numDynamicAddresses”中的一个必须存在。

subnetId (可选)

body

字符串

VIM 中子网资源标识符定义的子网。如果存在此属性,将分配来自该子网的 IP 地址;否则,将分配未绑定到子网的 IP 地址。

extLinkPorts (可选)

body

数组

外部提供的链路端口,用于将外部连接点连接到此外部 VL。如果未提供此属性,则 VNFM 应在外部 VL 上创建链路端口。

id

body

字符串

提供此链路端口的实体提供的此链路端口的标识符。

resourceHandle

body

对象

实现此链路端口的虚拟化资源的引用。

resourceId

body

字符串

VIM 或资源提供商范围内的资源的标识符。

vimLevelResourceType (可选)

body

字符串

VIM 或资源提供商范围内的资源的类型。provider。

extManagedVirtualLinks (可选)

body

数组

有关由 NFVO 管理的内部 VL 的信息列表。

id

body

字符串

外部管理的内部 VL 实例的标识符。标识符由管理此 VL 实例的 NFV-MANO 实体分配。

vnfVirtualLinkDescId

body

字符串

VNFD 中此 VL 的 VLD 的标识符。

resourceId

body

字符串

VIM 或资源提供商范围内的资源的标识符。

vimConnectionInfo (可选)

body

数组

有关 VIM 连接的信息,用于管理 VNF 实例的资源,或引用外部/外部管理的虚拟链路。

仅当直接模式下的 VNF 相关资源管理适用时,才应支持此属性,并且可能存在。

id

body

字符串

VIM 连接的标识符。此标识符由 NFVO 管理。

vimId (可选)

body

字符串

VIM 实例的标识符。此标识符由 NFVO 管理。

如果已通过本文档范围之外的方式配置到 VNFM,则应存在,否则应不存在。

vimType (可选)

body

字符串

VIM 信息的不同类型的区分器。

此属性的值根据 VIM 的类型确定“interfaceInfo”和“accessInfo”属性的结构。

随着新的 VIM 类型或版本的可用,允许的值集预计会随时间变化。

accessInfo (可选)

body

字符串

访问 VIM 的身份验证凭据,以及其他访问相关信息,例如租户或基础设施资源组(请参阅注释)。适用的键取决于 vimType 的内容。

如果 VimConnectionInfo 结构是 HTTP 响应有效负载主体的一部分,则不应包含敏感属性(例如密码)。

如果 VimConnectionInfo 结构是 HTTP 请求有效负载主体的一部分,则如果尚未通过其他方式配置,则应存在敏感属性(例如密码)。

additionalParams

body

字符串

作为 VNFD 的“ChangeVnfFlavourOpConfig”的一部分声明的,作为对正在修改的 VNF 特定的风味更改过程的附加输入参数。

请求示例

{
  "flavourId": "simple",
  "extVirtualLinks": [
    {
      "id": "ext-vl-uuid-VL1"
      "resourceId": "991a1e07-e8a2-4e1b-b77d-3937177a5b7f",
      "extCps": [
        {
          "cpdId": "CP2",
          "cpConfig": [
            {
              "linkPortId": "1d868d02-ecd4-4402-8e6b-54e77ebdcc28",
              "cpProtocolData": [
                {
                  "layerProtocol": "IP_OVER_ETHERNET",
                  "ipOverEthernet": {
                    "ipAddresses":[
                      {
                        "type": "IPV4",
                        "numDynamicAddresses": 1
                      }
                    ]
                  }
                }
              ]
            }
          ]
        }
      ],
      "extLinkPorts": [
        {
          "id": "1d868d02-ecd4-4402-8e6b-54e77ebdcc28",
          "resourceHandle": {
            "resourceId": "109f5049-b51e-409a-9a99-d740ba5f3acb",
            "vimLevelResourceType": "LINKPORT"
          }
        }
      ]
    },
    {
      "id": "ext-vl-uuid-VL1",
      "resourceId": "991a1e07-e8a2-4e1b-b77d-3937177a5b7f",
      "extCps": [
        {
          "cpdId": "CP1",
          "cpConfig": [
            {
              "cpProtocolData": [
                {
                  "layerProtocol": "IP_OVER_ETHERNET",
                  "ipOverEthernet": {
                     "macAddress": "fa:16:3e:22:17:05"
                  }
                }
              ]
            }
          ]
        }
      ]
    }
  ],
  "extManagedVirtualLinks": [
    {
      "id": "extMngVLnk-uuid_VL3",
      "vnfVirtualLinkDescId": "VL4",
      "resourceId": "991a1e07-e8a2-4e1b-b77d-3937177a5b7f"
    }
  ],
  "vimConnectionInfo": [
    {
      "id": "8a3adb69-0784-43c7-833e-aab0b6ab4470",
      "vimId": "c576eb55-5bec-4881-a573-5b0f3a05c370",
      "vimType": "openstack"
    }
  ]
}
POST
/vnflcm/v1/vnf_instances/{vnfInstanceId}/terminate

终止 VNF 实例

此任务资源表示“终止 VNF”操作。客户端可以使用此资源来终止 VNF 实例。

POST 方法终止 VNF 实例。

一旦 VNFM 成功完成底层的 VNF LCM 操作发生,它应将 Individual VNF 实例资源表示中的 instantiationState 属性设置为 NOT_INSTANTIATED 值。

响应代码

成功

代码

原因

202 - Accepted

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

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

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

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

409 - Conflict

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

请求参数

名称

入参

类型

描述

vnfInstanceId

路径

字符串

VNF 实例的标识符。

terminationType

body

字符串

指示是否请求强制或优雅终止。允许的值

FORCEFUL:VNFM 在接受请求后会立即关闭 VNF 并释放资源。

GRACEFUL:VNFM 首先在接受请求后安排将 VNF 退出服务。一旦完成退出服务的操作(无论成功与否),或者“gracefulTerminationTimeout”属性中指定的时间值到期,VNFM 将关闭 VNF 并释放资源。

gracefulTerminationTimeout (可选)

body

字符串

仅当优雅终止时,此属性才适用。它定义了在关闭 VNF 并释放资源之前等待 VNF 退出服务的时间。

单位为秒。

如果未提供并且“terminationType”属性设置为“GRACEFUL”,则预计 VNFM 会等待 VNF 成功退出服务,无论需要多长时间,然后关闭 VNF 并释放资源。

请求示例

{
  "terminationType": "GRACEFUL",
  "gracefulTerminationTimeout": 10
}
POST
/vnflcm/v1/vnf_instances/{vnfInstanceId}/heal

修复 VNF 实例

此任务资源表示“修复 VNF”操作。客户端可以使用此资源请求修复 VNF 实例。

POST 方法请求修复 VNF 实例。

响应码

成功

代码

原因

202 - Accepted

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

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

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

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

409 - Conflict

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

请求参数

名称

入参

类型

描述

vnfInstanceId

路径

字符串

VNF 实例的标识符。

cause (可选)

body

字符串

指示需要修复过程的原因。

vnfcInstanceId (可选)

body

数组

需要治疗操作的 VNFC 实例列表。

additionalParams (可选)

body

键值对

作为 VNFD 的“HealVnfOpConfig”的一部分声明的,作为对正在修复的 VNF 特定的附加参数,由 NFVO 作为输入传递给修复过程。

tacker_extension_heal_include_block_storage (可选)

body

布尔值

**管理员可配置的参数名称。** 控制在修复指定的 VNFC 实例时是否重新创建相关的 Cinder 块存储。

键名称由 [vnf_lcm] heal_include_block_storage_keytacker.conf 中配置(默认值:tacker_extension_heal_include_block_storage)。如果省略了该键,则默认行为由 [vnf_lcm] heal_vnfc_block_storage 控制。

建议: 由于键名称和默认行为都取决于您的部署设置,建议您与环境管理员确认它们。

请求示例

{
  "cause": "healing",
  "vnfcInstanceId": ["c51c98dc-b918-4681-a9eb-4f32a57c4e08"],
  "additionalParams": {
      "tacker_extension_heal_include_block_storage": false
  }
}
DELETE
/vnflcm/v1/vnf_instances/{vnfInstanceId}

删除 VNF 实例

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

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

响应代码

成功

代码

原因

204 - No Content

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

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

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

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

409 - Conflict

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

请求参数

名称

入参

类型

描述

vnfInstanceId

路径

字符串

VNF 实例的标识符。

GET
/vnflcm/v1/vnf_instances/{vnfInstanceId}

显示 VNF 实例

显示给定单个 VNF 实例的信息。

GET 方法通过读取“单个 VNF 实例”资源来检索 VNF 实例的信息。

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

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

403 - 禁止

策略不允许当前用户执行此操作。

请求参数

名称

入参

类型

描述

vnfInstanceId

路径

字符串

VNF 实例的标识符。

响应参数

名称

入参

类型

描述

id

路径

字符串

VNF 实例的标识符。

vnfInstanceName (可选)

body

字符串

VNF 实例的名称。

vnfInstanceDescription (可选)

body

字符串

VNF 实例的人性化描述。

vnfdId

body

字符串

VNF 实例所基于的 VNFD 的标识符。

vnfProvider

body

字符串

VNF 和 VNFD 的提供者。该值从 VNFD 复制而来。

vnfProductName

body

字符串

用于标识 VNF 产品名称。该值从 VNFD 复制而来。

vnfSoftwareVersion

body

字符串

VNF 的软件版本。该值从 VNFD 复制而来。

vnfdVersion

body

字符串

标识 VNFD 的版本。该值从 VNFD 复制而来。

vnfPkgId

body

字符串

NFVO 关于 VNF 基于的特定 VNF 包所持有的信息的标识符。此标识符由 NFVO 分配,并且可以使用 PATCH 方法进行修改。

vimConnectionInfo (可选)

body

数组

有关 VIM 连接的信息,用于管理 VNF 实例的资源,或引用外部/外部管理的虚拟链路。

仅当直接模式下的 VNF 相关资源管理适用时,才应支持此属性,并且可能存在。

id

body

字符串

VIM 连接的标识符。此标识符由 NFVO 管理。

vimId (可选)

body

字符串

VIM 实例的标识符。此标识符由 NFVO 管理。

如果已通过本文档范围之外的方式配置到 VNFM,则应存在,否则应不存在。

vimType (可选)

body

字符串

VIM 信息的不同类型的区分器。

此属性的值根据 VIM 的类型确定“interfaceInfo”和“accessInfo”属性的结构。

随着新的 VIM 类型或版本的可用,允许的值集预计会随时间变化。

interfaceInfo (可选)

body

字符串

如果适用,有关与 VIM 的接口的信息,例如与 VIM 通信的接口端点的 URI。适用的键取决于 vimType 的内容。

或者,这些信息可能已配置到 VNFM 并绑定到 vimId。

endpoint

body

字符串

表示接口端点的 url。

accessInfo (可选)

body

字符串

访问 VIM 的身份验证凭据,以及其他访问相关信息,例如租户或基础设施资源组(请参阅注释)。适用的键取决于 vimType 的内容。

如果 VimConnectionInfo 结构是 HTTP 响应有效负载主体的一部分,则不应包含敏感属性(例如密码)。

如果 VimConnectionInfo 结构是 HTTP 请求有效负载主体的一部分,则如果尚未通过其他方式配置,则应存在敏感属性(例如密码)。

instantiationState

body

字符串

VNF 实例的实例化状态。

NOT_INSTANTIATED:VNF 实例已终止或未实例化。

INSTANTIATED:VNF 实例已实例化。

instantiatedVnfInfo (可选)

body

对象

特定于已实例化的 VNF 实例的信息。如果 instantiationState 属性值为 INSTANTIATED,则应存在此属性。

flavourId

body

字符串

应用于此 VNF 实例的 VNF 部署风味的标识符。

vnfState (可选)

body

字符串

VNF 实例的状态。

scaleStatus (可选)

body

数组

VNF 的缩放状态,每个方面一个条目。表示 VNF 相对于该方面缩放到多大程度。

aspectId

body

字符串

缩放方面的标识符。

scaleLevel

body

字符串

指示缩放级别。最小值应为 0,最大值应小于或等于 VNFD 中描述的 maxScaleLevel。

extCpInfo

body

数组

VNF 实例暴露的外部 CP 的信息。

id

body

字符串

外部 CP 实例及其相关信息实例的标识符。

cpdId

body

字符串

外部 CPD 的标识符,在 VNFD 中为 VnfExtCpd。一个标识符,对于 VNF 实例内的相应类型是唯一的,但不一定全局唯一。表示形式:变长字符串。

cpProtocolInfo

body

数组

此 CP 的网络协议信息。

layerProtocol

body

字符串

与网络地址信息关联的层和协议的标识符。

允许的值:IP_OVER_ETHERNET

ipOverEthernet (可选)

body

对象

要分配给 extCP 实例的以太网上的 IP 地址。如果 layerProtocol 等于“IP_OVER_ETHERNET”,则必须存在,否则必须不存在。

macAddress (可选)

body

字符串

如果已分配,则为 MAC 地址。

ipAddresses (可选)

body

数组

分配给 CP 实例的地址。每个条目代表每个子网通过固定或动态 IP 地址分配的 IP 地址。

type

body

字符串

IP 地址的类型。允许的值:IPV4、IPV6。

addresses (可选)

body

数组

要分配的固定地址(如果提供了“subnetId”,则来自子网)。“fixedAddresses”或“numDynamicAddresses”中的一个必须存在。

isDynamic (可选)

body

布尔值

指示这组地址是动态分配的(true)还是基于从 API 消费者提供的输入地址信息(false)。如果存在“addresses”,则必须存在,否则必须不存在。

subnetId (可选)

body

字符串

VIM 中子网资源标识符定义的子网。如果存在此属性,将分配来自该子网的 IP 地址;否则,将分配未绑定到子网的 IP 地址。

extLinkPortId (可选)

body

字符串

“extVirtualLinkInfo”结构体内的“extLinkPortInfo”结构的标识符。如果 CP 关联到链路端口,则必须存在。

metadata (可选)

body

字符串

关于此外部 CP 的元数据。

associatedVnfcCpId (可选)

body

字符串

“VnfcResourceInfo”结构体中“vnfcCpInfo”结构的标识符,该结构体表示由此外部 CP 实例暴露的 VNFC CP。如果此 CP 实例映射到 VNFC CP,则必须存在。

extVirtualLinkInfo (可选)

body

数组

VNF 实例连接到的外部 VL 的信息。

id

body

字符串

外部 VL 的标识符以及相关的外部 VL 信息实例。标识符由管理此 VL 实例的 NFV-MANO 实体分配。

resourceHandle

body

对象

实现此 VL 的资源的引用。

vimConnectionId (可选)

body

字符串

用于管理资源的 VIM 连接的标识符。仅当直接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。

resourceId

body

字符串

VIM 或资源提供商范围内的资源的标识符。

vimLevelResourceType (可选)

body

字符串

VIM 或资源提供商范围内的资源的类型。provider。

extLinkPorts (可选)

body

数组

此 VL 的链路端口。

id

body

字符串

提供此链路端口的实体提供的此链路端口的标识符。

resourceHandle

body

对象

实现此 VL 的资源的引用。

vimConnectionId (可选)

body

字符串

用于管理资源的 VIM 连接的标识符。仅当直接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。

resourceId

body

字符串

VIM 或资源提供商范围内的资源的标识符。

vimLevelResourceType (可选)

body

字符串

VIM 或资源提供商范围内的资源的类型。provider。

cpInstanceId (可选)

body

字符串

连接到此链路端口的 VNF 的外部 CP 的标识符。任何外部连接点实例最多只能关联一个链路端口。该值引用 VnfInstance 中的“extCpInfo”条目。

extManagedVirtualLinkInfo (可选)

body

数组

VNF 实例的外部管理的内部 VL 的信息。

id

body

字符串

外部管理的内部 VL 的标识符以及相关的外部管理的 VL 信息实例。标识符由管理此 VL 实例的 NFV-MANO 实体分配。

vnfVirtualLinkDescId

body

字符串

VNFD 中的 VNF 虚拟链路描述符 (VLD) 的标识符。

networkResource

body

对象

对 VirtualNetwork 资源的引用。

vimConnectionId (可选)

body

字符串

用于管理资源的 VIM 连接的标识符。仅当直接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。

resourceId

body

字符串

VIM 或资源提供商范围内的资源的标识符。

vimLevelResourceType (可选)

body

字符串

VIM 或资源提供商范围内的资源的类型。provider。

vnfLinkPorts (可选)

body

数组

此 VL 的链路端口。

id

body

字符串

提供此链路端口的实体提供的此链路端口的标识符。

resourceHandle

body

对象

实现此链路端口的虚拟化网络资源的引用。

vimConnectionId (可选)

body

字符串

用于管理资源的 VIM 连接的标识符。仅当直接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。

resourceId

body

字符串

VIM 或资源提供商范围内的资源的标识符。

vimLevelResourceType (可选)

body

字符串

VIM 或资源提供商范围内的资源的类型。provider。

cpInstanceId (可选)

body

字符串

当链路端口由 VNF 用于外部连接时,此属性表示与此链路端口关联的标识符。

当链路端口由 VNF 用于内部连接时,此属性表示要连接到此链路端口的 VNFC CP。

当链路端口由 VNF 用于外部连接时,必须存在。

如果用于引用 VNFC CP 实例,则可能存在。任何外部连接点实例或内部连接点(即 VNFC CP)实例最多只能关联一个链路端口。

该值引用 VnfInstance 中的“extCpInfo”条目或 VnfInstance 中“vnfcResourceInfo”条目的“vnfcCpInfo”条目。

vnfcResourceInfo (可选)

body

数组

VNF 实例的 VNFC 使用的虚拟化计算和存储资源的信息。

id

body

字符串

此 VnfcResourceInfo 实例的标识符。

vduId

body

字符串

对 VNFD 中适用 VDU 的引用。

computeResource

body

对象

对 VirtualCompute 资源的引用。

vimConnectionId (可选)

body

字符串

用于管理资源的 VIM 连接的标识符。仅当直接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。

resourceId

body

字符串

VIM 或资源提供商范围内的资源的标识符。

vimLevelResourceType (可选)

body

字符串

VIM 或资源提供商范围内的资源的类型。provider。

storageResourceIds (可选)

body

数组

对 VirtualStorage 资源的引用。该值引用 VnfInstance 中的 VirtualStorageResourceInfo 条目。

vnfcCpInfo (可选)

body

数组

VNFC 实例的 CP。当 VNFC 实例的特定 CP 与 VNF 的外部 CP 关联时,必须存在。否则,可能存在。

id

body

字符串

此 VNFC CP 实例的标识符以及关联的数组条目。

cpdId

body

字符串

VNFD 中 VDU CPD 的标识符,cpdId。

vnfExtCpId (可选)

body

字符串

当 VNFC CP 作为 VNF 的外部 CP 暴露时,此外部 VNF CP 的标识符。

cpProtocolInfo (可选)

body

数组

此 CP 的网络协议信息。

layerProtocol

body

字符串

与网络地址信息关联的层和协议的标识符。

允许的值:IP_OVER_ETHERNET

ipOverEthernet (可选)

body

对象

要分配给 extCP 实例的以太网上的 IP 地址。如果 layerProtocol 等于“IP_OVER_ETHERNET”,则必须存在,否则必须不存在。

macAddress (可选)

body

字符串

如果已分配,则为 MAC 地址。

ipAddresses (可选)

body

数组

分配给 CP 实例的地址。每个条目代表每个子网通过固定或动态 IP 地址分配的 IP 地址。

type

body

字符串

IP 地址的类型。允许的值:IPV4、IPV6。

addresses (可选)

body

数组

要分配的固定地址(如果提供了“subnetId”,则来自子网)。“fixedAddresses”或“numDynamicAddresses”中的一个必须存在。

isDynamic (可选)

body

布尔值

指示这组地址是动态分配的(true)还是基于从 API 消费者提供的输入地址信息(false)。如果存在“addresses”,则必须存在,否则必须不存在。

subnetId (可选)

body

字符串

VIM 中子网资源标识符定义的子网。如果存在此属性,将分配来自该子网的 IP 地址;否则,将分配未绑定到子网的 IP 地址。

vnfLinkPortId (可选)

body

字符串

“VnfVirtualLinkResourceInfo”结构体中的“vnfLinkPorts”结构的标识符。如果 CP 关联到链路端口,则必须存在。

vnfVirtualLinkResourceInfo (可选)

body

数组

VNF 实例的 VL 使用的虚拟化网络资源的信息。

id

body

字符串

此 VnfVirtualLinkResourceInfo 实例的标识符。

vnfVirtualLinkDescId

body

字符串

VNFD 中的 VNF 虚拟链路描述符 (VLD) 的标识符。

networkResource

body

对象

对 VirtualNetwork 资源的引用。

vimConnectionId (可选)

body

字符串

用于管理资源的 VIM 连接的标识符。仅当直接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。

resourceId

body

字符串

VIM 或资源提供商范围内的资源的标识符。

vimLevelResourceType (可选)

body

字符串

VIM 或资源提供商范围内的资源的类型。provider。

vnfLinkPorts (可选)

body

数组

此 VL 的链路端口。

id

body

字符串

提供此链路端口的实体提供的此链路端口的标识符。

resourceHandle

body

对象

实现此链路端口的虚拟化网络资源的引用。

vimConnectionId (可选)

body

字符串

用于管理资源的 VIM 连接的标识符。仅当直接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。

resourceId

body

字符串

VIM 或资源提供商范围内的资源的标识符。

vimLevelResourceType (可选)

body

字符串

VIM 或资源提供商范围内的资源的类型。provider。

cpInstanceId (可选)

body

字符串

当链路端口由 VNF 用于外部连接时,此属性表示与此链路端口关联的标识符。

当链路端口由 VNF 用于内部连接时,此属性表示要连接到此链路端口的 VNFC CP。

当链路端口由 VNF 用于外部连接时,必须存在。

如果用于引用 VNFC CP 实例,则可能存在。任何外部连接点实例或内部连接点(即 VNFC CP)实例最多只能关联一个链路端口。

该值引用 VnfInstance 中的“extCpInfo”条目或 VnfInstance 中“vnfcResourceInfo”条目的“vnfcCpInfo”条目。

virtualStorageResourceInfo (可选)

body

数组

用作 VNF 实例存储的虚拟化存储资源的信息。

id

body

字符串

此 VirtualStorageResourceInfo 实例的标识符。

virtualStorageDescId

body

字符串

VNFD 中 VirtualStorageDesc 的标识符。

storageResource

body

对象

对 VirtualStorage 资源的引用。

vimConnectionId (可选)

body

字符串

用于管理资源的 VIM 连接的标识符。仅当直接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。

resourceId

body

字符串

VIM 或资源提供商范围内的资源的标识符。

vimLevelResourceType (可选)

body

字符串

VIM 或资源提供商范围内的资源的类型。provider。

vnfcInfo

body

字符串

关于 VNFC 实例的信息。

id

body

字符串

VNFC 实例的标识符。

vduId

body

字符串

对 VNFD 中适用的 VDU 信息元素的引用。

vnfcState

body

字符串

VNFC 实例的状态。允许的值

STARTED:VNFC 实例已启动并正在运行。

STOPPED:VNFC 实例已关闭。

_links

body

对象

指向与此资源相关的资源的链接。

响应示例

{
  "id": "27d7c019-39d1-4203-93b2-fe3776bbea74",
  "instantiatedVnfInfo": {
    "additionalParams": {
      "lcm-operation-user-data": "./UserData/lcm_user_data.py",
      "lcm-operation-user-data-class": "SampleUserData"
    },
    "extCpInfo": [
      {
        "associatedVnfcCpId": "4c59e5ce-85c1-4d58-9c29-d4c88826fd6f",
        "cpProtocolInfo": [
          {
            "ipOverEthernet": {
              "ipAddresses": [
                {
                  "addresses": [],
                  "isDynamic": true,
                  "subnetId": "8d0bee9e-c2f0-470a-abd8-606e84d888a6",
                  "type": "IPV4"
                }
              ],
              "macAddress": null
            },
            "layerProtocol": "IP_OVER_ETHERNET"
          }
        ],
        "cpdId": "CP1",
        "extLinkPortId": null,
        "id": "491bc7a8-4eb8-43c3-be96-d69f5a3262ff"
      }
    ],
    "extVirtualLinkInfo": [
      {
        "id": "net0",
        "resourceHandle": {
          "resourceId": "9179e873-ace2-4c4b-b1f3-318576baba78",
          "vimConnectionId": null,
          "vimLevelResourceType": null
        }
      }
    ],
    "flavourId": "simple",
    "vnfState": "STARTED",
    "vnfVirtualLinkResourceInfo": [
      {
        "id": "cb63f573-472e-425e-a4c8-c6e47169fd74",
        "networkResource": {
          "resourceId": "",
          "vimConnectionId": null,
          "vimLevelResourceType": null
        },
        "vnfLinkPorts": [
          {
            "cpInstanceId": "adcc13bd-c6ef-4c4f-83b6-b366d43e659d",
            "id": "fa7dbb85-1f97-4794-9811-699126ab93f2",
            "resourceHandle": {
              "resourceId": "65cdb3c3-35bb-4f91-8ac5-b165e22381c8",
              "vimConnectionId": "95ccd60b-d8e9-4e65-ac31-1c1c839d9896",
              "vimLevelResourceType": "OS::Neutron::Port"
            }
          }
        ],
        "vnfVirtualLinkDescId": "internalVL1"
      },
      {
        "id": "01cf48a2-bd32-4a81-a0ed-768e4f8ff0fa",
        "networkResource": {
          "resourceId": "9179e873-ace2-4c4b-b1f3-318576baba78",
          "vimConnectionId": null,
          "vimLevelResourceType": "OS::Neutron::Net"
        },
        "vnfLinkPorts": [
          {
            "cpInstanceId": "adcc13bd-c6ef-4c4f-83b6-b366d43e659d",
            "id": "7188b765-285c-43a8-a889-07a32afb3530",
            "resourceHandle": {
              "resourceId": "",
              "vimConnectionId": null,
              "vimLevelResourceType": null
            }
          }
        ],
        "vnfVirtualLinkDescId": "net0"
      }
    ],
    "vnfcInfo": [
      {
        "id": "3771810f-f5b0-493f-9e3c-60719e227be6",
        "vduId": "VDU1",
        "vnfcState": "STARTED"
      }
    ],
    "vnfcResourceInfo": [
      {
        "computeResource": {
          "resourceId": "ebd3eeac-b1c6-4375-a625-d743e9892b6e",
          "vimConnectionId": "95ccd60b-d8e9-4e65-ac31-1c1c839d9896",
          "vimLevelResourceType": "OS::Nova::Server"
        },
        "id": "4c59e5ce-85c1-4d58-9c29-d4c88826fd6f",
        "storageResourceIds": [],
        "vduId": "VDU1",
        "vnfcCpInfo": [
          {
            "cpProtocolInfo": [
              {
                "ipOverEthernet": {
                  "ipAddresses": [
                    {
                      "addresses": [],
                      "isDynamic": true,
                      "subnetId": "8d0bee9e-c2f0-470a-abd8-606e84d888a6",
                      "type": "IPV4"
                    }
                  ],
                  "macAddress": null
                },
                "layerProtocol": "IP_OVER_ETHERNET"
              }
            ],
            "cpdId": "CP1",
            "id": "adcc13bd-c6ef-4c4f-83b6-b366d43e659d",
            "vnfExtCpId": null,
            "vnfLinkPortId": "7188b765-285c-43a8-a889-07a32afb3530"
          }
        ]
      }
    ]
  },
  "instantiationState": "INSTANTIATED",
  "metadata": {
    "tenant": "nfv"
  },
  "vimConnectionInfo": [
    {
      "accessInfo": {},
      "extra": {},
      "id": "e24f9796-a8e9-4cb0-85ce-5920dcddafa1",
      "interfaceInfo": {},
      "vimId": "95ccd60b-d8e9-4e65-ac31-1c1c839d9896",
      "vimType": "ETSINFV.OPENSTACK_KEYSTONE.V_2"
    },
    {
      "accessInfo": {},
      "extra": {},
      "id": "32596836-7ac3-4213-9ae3-3469d7e09294",
      "interfaceInfo": {},
      "vimId": "95ccd60b-d8e9-4e65-ac31-1c1c839d9896",
      "vimType": "openstack"
    }
  ],
  "vnfInstanceName": "vnf-27d7c019-39d1-4203-93b2-fe3776bbea74",
  "vnfPkgId": "5ac73423-f102-4574-911e-578dad9fa8fe",
  "vnfProductName": "Sample VNF",
  "vnfProvider": "Company",
  "vnfSoftwareVersion": "1.0",
  "vnfdId": "b1bb0ce7-ebca-4fa7-95ed-4840d70a1177",
  "vnfdVersion": "1.0",
  "_links": {
    "changeExtConn": {
      "href": "https://:9890/vnflcm/v1/vnf_instances/27d7c019-39d1-4203-93b2-fe3776bbea74/change_ext_conn"
    },
    "heal": {
      "href": "https://:9890/vnflcm/v1/vnf_instances/27d7c019-39d1-4203-93b2-fe3776bbea74/heal"
    },
    "scale": {
      "href": "https://:9890/vnflcm/v1/vnf_instances/27d7c019-39d1-4203-93b2-fe3776bbea74/scale"
    },
    "self": {
      "href": "https://:9890/vnflcm/v1/vnf_instances/27d7c019-39d1-4203-93b2-fe3776bbea74"
    },
    "terminate": {
      "href": "https://:9890/vnflcm/v1/vnf_instances/27d7c019-39d1-4203-93b2-fe3776bbea74/terminate"
    }
  }
}
GET
/vnflcm/v1/vnf_instances

列出 VNF 实例

GET 方法查询有关多个 VNF 实例的信息。在 Victoria 版本中,添加了基于属性的过滤表达式(用于 VnfInstance),该表达式遵循 ETSI GS NFV SOL13 的第 5.2 条。

如果响应包含 LINK HTTP 标头(参见 IETF RFC 8288 [1]),并且“rel”属性设置为“next”,则 API 消费者可以发送 GET 请求到 LINK 标头中通信的 URI,以获取下一页结果。

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

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

403 - 禁止

策略不允许当前用户执行此操作。

响应参数

名称

入参

类型

描述

id

路径

字符串

VNF 实例的标识符。

vnfInstanceName (可选)

body

字符串

VNF 实例的名称。

vnfInstanceDescription (可选)

body

字符串

VNF 实例的人性化描述。

vnfdId

body

字符串

VNF 实例所基于的 VNFD 的标识符。

vnfProvider

body

字符串

VNF 和 VNFD 的提供者。该值从 VNFD 复制而来。

vnfProductName

body

字符串

用于标识 VNF 产品名称。该值从 VNFD 复制而来。

vnfSoftwareVersion

body

字符串

VNF 的软件版本。该值从 VNFD 复制而来。

vnfdVersion

body

字符串

标识 VNFD 的版本。该值从 VNFD 复制而来。

vnfPkgId

body

字符串

NFVO 关于 VNF 基于的特定 VNF 包所持有的信息的标识符。此标识符由 NFVO 分配,并且可以使用 PATCH 方法进行修改。

vimConnectionInfo (可选)

body

数组

有关 VIM 连接的信息,用于管理 VNF 实例的资源,或引用外部/外部管理的虚拟链路。

仅当直接模式下的 VNF 相关资源管理适用时,才应支持此属性,并且可能存在。

id

body

字符串

VIM 连接的标识符。此标识符由 NFVO 管理。

vimId (可选)

body

字符串

VIM 实例的标识符。此标识符由 NFVO 管理。

如果已通过本文档范围之外的方式配置到 VNFM,则应存在,否则应不存在。

vimType (可选)

body

字符串

VIM 信息的不同类型的区分器。

此属性的值根据 VIM 的类型确定“interfaceInfo”和“accessInfo”属性的结构。

随着新的 VIM 类型或版本的可用,允许的值集预计会随时间变化。

interfaceInfo (可选)

body

字符串

如果适用,有关与 VIM 的接口的信息,例如与 VIM 通信的接口端点的 URI。适用的键取决于 vimType 的内容。

或者,这些信息可能已配置到 VNFM 并绑定到 vimId。

endpoint

body

字符串

表示接口端点的 url。

accessInfo (可选)

body

字符串

访问 VIM 的身份验证凭据,以及其他访问相关信息,例如租户或基础设施资源组(请参阅注释)。适用的键取决于 vimType 的内容。

如果 VimConnectionInfo 结构是 HTTP 响应有效负载主体的一部分,则不应包含敏感属性(例如密码)。

如果 VimConnectionInfo 结构是 HTTP 请求有效负载主体的一部分,则如果尚未通过其他方式配置,则应存在敏感属性(例如密码)。

instantiationState

body

字符串

VNF 实例的实例化状态。

NOT_INSTANTIATED:VNF 实例已终止或未实例化。

INSTANTIATED:VNF 实例已实例化。

instantiatedVnfInfo (可选)

body

对象

特定于已实例化的 VNF 实例的信息。如果 instantiationState 属性值为 INSTANTIATED,则应存在此属性。

flavourId

body

字符串

应用于此 VNF 实例的 VNF 部署风味的标识符。

vnfState (可选)

body

字符串

VNF 实例的状态。

scaleStatus (可选)

body

数组

VNF 的缩放状态,每个方面一个条目。表示 VNF 相对于该方面缩放到多大程度。

aspectId

body

字符串

缩放方面的标识符。

scaleLevel

body

字符串

指示缩放级别。最小值应为 0,最大值应小于或等于 VNFD 中描述的 maxScaleLevel。

extCpInfo

body

数组

VNF 实例暴露的外部 CP 的信息。

id

body

字符串

外部 CP 实例及其相关信息实例的标识符。

cpdId

body

字符串

外部 CPD 的标识符,在 VNFD 中为 VnfExtCpd。一个标识符,对于 VNF 实例内的相应类型是唯一的,但不一定全局唯一。表示形式:变长字符串。

cpProtocolInfo

body

数组

此 CP 的网络协议信息。

layerProtocol

body

字符串

与网络地址信息关联的层和协议的标识符。

允许的值:IP_OVER_ETHERNET

ipOverEthernet (可选)

body

对象

要分配给 extCP 实例的以太网上的 IP 地址。如果 layerProtocol 等于“IP_OVER_ETHERNET”,则必须存在,否则必须不存在。

macAddress (可选)

body

字符串

如果已分配,则为 MAC 地址。

ipAddresses (可选)

body

数组

分配给 CP 实例的地址。每个条目代表每个子网通过固定或动态 IP 地址分配的 IP 地址。

type

body

字符串

IP 地址的类型。允许的值:IPV4、IPV6。

addresses (可选)

body

数组

要分配的固定地址(如果提供了“subnetId”,则来自子网)。“fixedAddresses”或“numDynamicAddresses”中的一个必须存在。

isDynamic (可选)

body

布尔值

指示这组地址是动态分配的(true)还是基于从 API 消费者提供的输入地址信息(false)。如果存在“addresses”,则必须存在,否则必须不存在。

subnetId (可选)

body

字符串

VIM 中子网资源标识符定义的子网。如果存在此属性,将分配来自该子网的 IP 地址;否则,将分配未绑定到子网的 IP 地址。

extLinkPortId (可选)

body

字符串

“extVirtualLinkInfo”结构体内的“extLinkPortInfo”结构的标识符。如果 CP 关联到链路端口,则必须存在。

metadata (可选)

body

字符串

关于此外部 CP 的元数据。

associatedVnfcCpId (可选)

body

字符串

“VnfcResourceInfo”结构体中“vnfcCpInfo”结构的标识符,该结构体表示由此外部 CP 实例暴露的 VNFC CP。如果此 CP 实例映射到 VNFC CP,则必须存在。

extVirtualLinkInfo (可选)

body

数组

VNF 实例连接到的外部 VL 的信息。

id

body

字符串

外部 VL 的标识符以及相关的外部 VL 信息实例。标识符由管理此 VL 实例的 NFV-MANO 实体分配。

resourceHandle

body

对象

实现此 VL 的资源的引用。

vimConnectionId (可选)

body

字符串

用于管理资源的 VIM 连接的标识符。仅当直接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。

resourceId

body

字符串

VIM 或资源提供商范围内的资源的标识符。

vimLevelResourceType (可选)

body

字符串

VIM 或资源提供商范围内的资源的类型。provider。

extLinkPorts (可选)

body

数组

此 VL 的链路端口。

id

body

字符串

提供此链路端口的实体提供的此链路端口的标识符。

resourceHandle

body

对象

实现此 VL 的资源的引用。

vimConnectionId (可选)

body

字符串

用于管理资源的 VIM 连接的标识符。仅当直接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。

resourceId

body

字符串

VIM 或资源提供商范围内的资源的标识符。

vimLevelResourceType (可选)

body

字符串

VIM 或资源提供商范围内的资源的类型。provider。

cpInstanceId (可选)

body

字符串

连接到此链路端口的 VNF 的外部 CP 的标识符。任何外部连接点实例最多只能关联一个链路端口。该值引用 VnfInstance 中的“extCpInfo”条目。

extManagedVirtualLinkInfo (可选)

body

数组

VNF 实例的外部管理的内部 VL 的信息。

id

body

字符串

外部管理的内部 VL 的标识符以及相关的外部管理的 VL 信息实例。标识符由管理此 VL 实例的 NFV-MANO 实体分配。

vnfVirtualLinkDescId

body

字符串

VNFD 中的 VNF 虚拟链路描述符 (VLD) 的标识符。

networkResource

body

对象

对 VirtualNetwork 资源的引用。

vimConnectionId (可选)

body

字符串

用于管理资源的 VIM 连接的标识符。仅当直接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。

resourceId

body

字符串

VIM 或资源提供商范围内的资源的标识符。

vimLevelResourceType (可选)

body

字符串

VIM 或资源提供商范围内的资源的类型。provider。

vnfLinkPorts (可选)

body

数组

此 VL 的链路端口。

id

body

字符串

提供此链路端口的实体提供的此链路端口的标识符。

resourceHandle

body

对象

实现此链路端口的虚拟化网络资源的引用。

vimConnectionId (可选)

body

字符串

用于管理资源的 VIM 连接的标识符。仅当直接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。

resourceId

body

字符串

VIM 或资源提供商范围内的资源的标识符。

vimLevelResourceType (可选)

body

字符串

VIM 或资源提供商范围内的资源的类型。provider。

cpInstanceId (可选)

body

字符串

当链路端口由 VNF 用于外部连接时,此属性表示与此链路端口关联的标识符。

当链路端口由 VNF 用于内部连接时,此属性表示要连接到此链路端口的 VNFC CP。

当链路端口由 VNF 用于外部连接时,必须存在。

如果用于引用 VNFC CP 实例,则可能存在。任何外部连接点实例或内部连接点(即 VNFC CP)实例最多只能关联一个链路端口。

该值引用 VnfInstance 中的“extCpInfo”条目或 VnfInstance 中“vnfcResourceInfo”条目的“vnfcCpInfo”条目。

vnfcResourceInfo (可选)

body

数组

VNF 实例的 VNFC 使用的虚拟化计算和存储资源的信息。

id

body

字符串

此 VnfcResourceInfo 实例的标识符。

vduId

body

字符串

对 VNFD 中适用 VDU 的引用。

computeResource

body

对象

对 VirtualCompute 资源的引用。

vimConnectionId (可选)

body

字符串

用于管理资源的 VIM 连接的标识符。仅当直接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。

resourceId

body

字符串

VIM 或资源提供商范围内的资源的标识符。

vimLevelResourceType (可选)

body

字符串

VIM 或资源提供商范围内的资源的类型。provider。

storageResourceIds (可选)

body

数组

对 VirtualStorage 资源的引用。该值引用 VnfInstance 中的 VirtualStorageResourceInfo 条目。

vnfcCpInfo (可选)

body

数组

VNFC 实例的 CP。当 VNFC 实例的特定 CP 与 VNF 的外部 CP 关联时,必须存在。否则,可能存在。

id

body

字符串

此 VNFC CP 实例的标识符以及关联的数组条目。

cpdId

body

字符串

VNFD 中 VDU CPD 的标识符,cpdId。

vnfExtCpId (可选)

body

字符串

当 VNFC CP 作为 VNF 的外部 CP 暴露时,此外部 VNF CP 的标识符。

cpProtocolInfo (可选)

body

数组

此 CP 的网络协议信息。

layerProtocol

body

字符串

与网络地址信息关联的层和协议的标识符。

允许的值:IP_OVER_ETHERNET

ipOverEthernet (可选)

body

对象

要分配给 extCP 实例的以太网上的 IP 地址。如果 layerProtocol 等于“IP_OVER_ETHERNET”,则必须存在,否则必须不存在。

macAddress (可选)

body

字符串

如果已分配,则为 MAC 地址。

ipAddresses (可选)

body

数组

分配给 CP 实例的地址。每个条目代表每个子网通过固定或动态 IP 地址分配的 IP 地址。

type

body

字符串

IP 地址的类型。允许的值:IPV4、IPV6。

addresses (可选)

body

数组

要分配的固定地址(如果提供了“subnetId”,则来自子网)。“fixedAddresses”或“numDynamicAddresses”中的一个必须存在。

isDynamic (可选)

body

布尔值

指示这组地址是动态分配的(true)还是基于从 API 消费者提供的输入地址信息(false)。如果存在“addresses”,则必须存在,否则必须不存在。

subnetId (可选)

body

字符串

VIM 中子网资源标识符定义的子网。如果存在此属性,将分配来自该子网的 IP 地址;否则,将分配未绑定到子网的 IP 地址。

vnfLinkPortId (可选)

body

字符串

“VnfVirtualLinkResourceInfo”结构体中的“vnfLinkPorts”结构的标识符。如果 CP 关联到链路端口,则必须存在。

vnfVirtualLinkResourceInfo (可选)

body

数组

VNF 实例的 VL 使用的虚拟化网络资源的信息。

id

body

字符串

此 VnfVirtualLinkResourceInfo 实例的标识符。

vnfVirtualLinkDescId

body

字符串

VNFD 中的 VNF 虚拟链路描述符 (VLD) 的标识符。

networkResource

body

对象

对 VirtualNetwork 资源的引用。

vimConnectionId (可选)

body

字符串

用于管理资源的 VIM 连接的标识符。仅当直接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。

resourceId

body

字符串

VIM 或资源提供商范围内的资源的标识符。

vimLevelResourceType (可选)

body

字符串

VIM 或资源提供商范围内的资源的类型。provider。

vnfLinkPorts (可选)

body

数组

此 VL 的链路端口。

id

body

字符串

提供此链路端口的实体提供的此链路端口的标识符。

resourceHandle

body

对象

实现此链路端口的虚拟化网络资源的引用。

vimConnectionId (可选)

body

字符串

用于管理资源的 VIM 连接的标识符。仅当直接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。

resourceId

body

字符串

VIM 或资源提供商范围内的资源的标识符。

vimLevelResourceType (可选)

body

字符串

VIM 或资源提供商范围内的资源的类型。provider。

cpInstanceId (可选)

body

字符串

当链路端口由 VNF 用于外部连接时,此属性表示与此链路端口关联的标识符。

当链路端口由 VNF 用于内部连接时,此属性表示要连接到此链路端口的 VNFC CP。

当链路端口由 VNF 用于外部连接时,必须存在。

如果用于引用 VNFC CP 实例,则可能存在。任何外部连接点实例或内部连接点(即 VNFC CP)实例最多只能关联一个链路端口。

该值引用 VnfInstance 中的“extCpInfo”条目或 VnfInstance 中“vnfcResourceInfo”条目的“vnfcCpInfo”条目。

virtualStorageResourceInfo (可选)

body

数组

用作 VNF 实例存储的虚拟化存储资源的信息。

id

body

字符串

此 VirtualStorageResourceInfo 实例的标识符。

virtualStorageDescId

body

字符串

VNFD 中 VirtualStorageDesc 的标识符。

storageResource

body

对象

对 VirtualStorage 资源的引用。

vimConnectionId (可选)

body

字符串

用于管理资源的 VIM 连接的标识符。仅当直接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。

resourceId

body

字符串

VIM 或资源提供商范围内的资源的标识符。

vimLevelResourceType (可选)

body

字符串

VIM 或资源提供商范围内的资源的类型。provider。

vnfcInfo

body

字符串

关于 VNFC 实例的信息。

id

body

字符串

VNFC 实例的标识符。

vduId

body

字符串

对 VNFD 中适用的 VDU 信息元素的引用。

vnfcState

body

字符串

VNFC 实例的状态。允许的值

STARTED:VNFC 实例已启动并正在运行。

STOPPED:VNFC 实例已关闭。

_links

body

对象

指向与此资源相关的资源的链接。

响应示例

[
  {
    "id": "27d7c019-39d1-4203-93b2-fe3776bbea74",
    "instantiatedVnfInfo": {
      "additionalParams": {
        "lcm-operation-user-data": "./UserData/lcm_user_data.py",
        "lcm-operation-user-data-class": "SampleUserData"
      },
      "extCpInfo": [
        {
          "associatedVnfcCpId": "4c59e5ce-85c1-4d58-9c29-d4c88826fd6f",
          "cpProtocolInfo": [
            {
              "ipOverEthernet": {
                "ipAddresses": [
                  {
                    "addresses": [],
                    "isDynamic": true,
                    "subnetId": "8d0bee9e-c2f0-470a-abd8-606e84d888a6",
                    "type": "IPV4"
                  }
                ],
                "macAddress": null
              },
              "layerProtocol": "IP_OVER_ETHERNET"
            }
          ],
          "cpdId": "CP1",
          "extLinkPortId": null,
          "id": "491bc7a8-4eb8-43c3-be96-d69f5a3262ff"
        }
      ],
      "extVirtualLinkInfo": [
        {
          "id": "net0",
          "resourceHandle": {
            "resourceId": "9179e873-ace2-4c4b-b1f3-318576baba78",
            "vimConnectionId": null,
            "vimLevelResourceType": null
          }
        }
      ],
      "flavourId": "simple",
      "vnfState": "STARTED",
      "vnfVirtualLinkResourceInfo": [
        {
          "id": "cb63f573-472e-425e-a4c8-c6e47169fd74",
          "networkResource": {
            "resourceId": "",
            "vimConnectionId": null,
            "vimLevelResourceType": null
          },
          "vnfLinkPorts": [
            {
              "cpInstanceId": "adcc13bd-c6ef-4c4f-83b6-b366d43e659d",
              "id": "fa7dbb85-1f97-4794-9811-699126ab93f2",
              "resourceHandle": {
                "resourceId": "65cdb3c3-35bb-4f91-8ac5-b165e22381c8",
                "vimConnectionId": "95ccd60b-d8e9-4e65-ac31-1c1c839d9896",
                "vimLevelResourceType": "OS::Neutron::Port"
              }
            }
          ],
          "vnfVirtualLinkDescId": "internalVL1"
        },
        {
          "id": "01cf48a2-bd32-4a81-a0ed-768e4f8ff0fa",
          "networkResource": {
            "resourceId": "9179e873-ace2-4c4b-b1f3-318576baba78",
            "vimConnectionId": null,
            "vimLevelResourceType": "OS::Neutron::Net"
          },
          "vnfLinkPorts": [
            {
              "cpInstanceId": "adcc13bd-c6ef-4c4f-83b6-b366d43e659d",
              "id": "7188b765-285c-43a8-a889-07a32afb3530",
              "resourceHandle": {
                "resourceId": "",
                "vimConnectionId": null,
                "vimLevelResourceType": null
              }
            }
          ],
          "vnfVirtualLinkDescId": "net0"
        }
      ],
      "vnfcInfo": [
        {
          "id": "3771810f-f5b0-493f-9e3c-60719e227be6",
          "vduId": "VDU1",
          "vnfcState": "STARTED"
        }
      ],
      "vnfcResourceInfo": [
        {
          "computeResource": {
            "resourceId": "ebd3eeac-b1c6-4375-a625-d743e9892b6e",
            "vimConnectionId": "95ccd60b-d8e9-4e65-ac31-1c1c839d9896",
            "vimLevelResourceType": "OS::Nova::Server"
          },
          "id": "4c59e5ce-85c1-4d58-9c29-d4c88826fd6f",
          "storageResourceIds": [],
          "vduId": "VDU1",
          "vnfcCpInfo": [
            {
              "cpProtocolInfo": [
                {
                  "ipOverEthernet": {
                    "ipAddresses": [
                      {
                        "addresses": [],
                        "isDynamic": true,
                        "subnetId": "8d0bee9e-c2f0-470a-abd8-606e84d888a6",
                        "type": "IPV4"
                      }
                    ],
                    "macAddress": null
                  },
                  "layerProtocol": "IP_OVER_ETHERNET"
                }
              ],
              "cpdId": "CP1",
              "id": "adcc13bd-c6ef-4c4f-83b6-b366d43e659d",
              "vnfExtCpId": null,
              "vnfLinkPortId": "7188b765-285c-43a8-a889-07a32afb3530"
            }
          ]
        }
      ]
    },
    "instantiationState": "INSTANTIATED",
    "metadata": {
      "tenant": "nfv"
    },
    "vimConnectionInfo": [
      {
        "accessInfo": {},
        "extra": {},
        "id": "e24f9796-a8e9-4cb0-85ce-5920dcddafa1",
        "interfaceInfo": {},
        "vimId": "95ccd60b-d8e9-4e65-ac31-1c1c839d9896",
        "vimType": "ETSINFV.OPENSTACK_KEYSTONE.V_2"
      },
      {
        "accessInfo": {},
        "extra": {},
        "id": "32596836-7ac3-4213-9ae3-3469d7e09294",
        "interfaceInfo": {},
        "vimId": "95ccd60b-d8e9-4e65-ac31-1c1c839d9896",
        "vimType": "openstack"
      }
    ],
    "vnfInstanceName": "vnf-27d7c019-39d1-4203-93b2-fe3776bbea74",
    "vnfPkgId": "5ac73423-f102-4574-911e-578dad9fa8fe",
    "vnfProductName": "Sample VNF",
    "vnfProvider": "Company",
    "vnfSoftwareVersion": "1.0",
    "vnfdId": "b1bb0ce7-ebca-4fa7-95ed-4840d70a1177",
    "vnfdVersion": "1.0",
    "_links": {
      "changeExtConn": {
        "href": "https://:9890/vnflcm/v1/vnf_instances/27d7c019-39d1-4203-93b2-fe3776bbea74/change_ext_conn"
      },
      "heal": {
        "href": "https://:9890/vnflcm/v1/vnf_instances/27d7c019-39d1-4203-93b2-fe3776bbea74/heal"
      },
      "scale": {
        "href": "https://:9890/vnflcm/v1/vnf_instances/27d7c019-39d1-4203-93b2-fe3776bbea74/scale"
      },
      "self": {
        "href": "https://:9890/vnflcm/v1/vnf_instances/27d7c019-39d1-4203-93b2-fe3776bbea74"
      },
      "terminate": {
        "href": "https://:9890/vnflcm/v1/vnf_instances/27d7c019-39d1-4203-93b2-fe3776bbea74/terminate"
      }
    }
  },
  {
    "id": "cda383ea-8341-4731-93c7-19db4b5ce1b5",
    "instantiationState": "NOT_INSTANTIATED",
    "vnfInstanceDescription": "Instance description",
    "vnfInstanceName": "Instance name",
    "vnfPkgId": "5ac73423-f102-4574-911e-578dad9fa8fe",
    "vnfProductName": "Sample VNF",
    "vnfProvider": "Company",
    "vnfSoftwareVersion": "1.0",
    "vnfdId": "b1bb0ce7-ebca-4fa7-95ed-4840d70a1177",
    "vnfdVersion": "1.0",
    "_links": {
      "instantiate": {
        "href": "https://:9890/vnflcm/v1/vnf_instances/cda383ea-8341-4731-93c7-19db4b5ce1b5/instantiate"
      },
      "self": {
        "href": "https://:9890/vnflcm/v1/vnf_instances/cda383ea-8341-4731-93c7-19db4b5ce1b5"
      }
    }
  }
]
POST
/vnflcm/v1/vnf_instances/{vnfInstanceId}/scale

缩放 VNF 实例

此任务资源表示“缩放 VNF”操作。客户端可以使用此资源请求缩放 VNF 实例。

POST 方法请求缩放 VNF 实例。

响应代码

成功

代码

原因

202 - Accepted

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

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

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

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

409 - Conflict

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

请求参数

名称

入参

类型

描述

vnfInstanceId

路径

字符串

VNF 实例的标识符。

type

body

字符串

指示请求的缩放操作类型。允许的值

SCALE_OUT:向 VNF 添加额外的 VNFC 实例以增加容量。

SCALE_IN:从 VNF 中删除 VNFC 实例以释放未使用的容量。

aspectId

body

字符串

缩放方面的标识符。

numberOfSteps (可选)

body

int

作为此缩放 VNF 操作的一部分要执行的缩放步骤数。它必须是一个正数,默认值为 1。

additionalParams (可选)

body

字符串

由 NFVO 作为输入传递给缩放过程的附加参数,特定于正在缩放的 VNF,如 VNFD 中“ScaleVnfOpConfig”的一部分中所声明。

请求示例

{
  "type": "SCALE_OUT",
  "aspectId": "scale_aspect",
  "numberOfSteps": "1"
}
PATCH
/vnflcm/v1/vnf_instances/{vnfInstanceId}

修改 VNF 实例

此方法修改“单个 VNF 实例”资源。

对 VNF 可配置属性的更改应用于 VNF 实例中的配置,并在该资源的表示形式中反映出来。其他更改应用于 VNFM 管理的 VNF 实例信息,并在该资源的表示形式中反映出来。

根据 ETSI NFV SOL 文档,尚无 Etag 的 API 请求/响应规范,并且使用 Etag 的事务未由标准化定义。因此,Victoria 版本不支持 错误代码:412 前置条件失败。一旦建立了标准规范,它将被安装在 tacker 上。

响应代码

成功

代码

原因

202 - Accepted

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

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

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

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

409 - Conflict

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

请求参数

名称

入参

类型

描述

vnfInstanceId

路径

字符串

VNF 实例的标识符。

vnfInstanceName (可选)

body

字符串

“VnfInstance”中的“vnfInstanceName”属性的新值,或“null”以删除该属性。

vnfInstanceDescription (可选)

body

字符串

“VnfInstance”中的“vnfInstanceDescription”属性的新值,或“null”以删除该属性。

vnfdId (可选)

body

字符串

“VnfInstance”中的“vnfdId”属性的新值。“null”值不允许。

vnfPkgId (可选)

body

字符串

“VnfInstance”中的“vnfPkgId”属性的新值。“null”值不允许。

metadata (可选)

body

字符串

对“VnfInstance”中的“metadata”属性的修改。如果存在,则应根据 JSON Merge PATCH 的规则应用这些修改

vimConnectionInfo (可选)

body

字符串

“VnfInstance”中“vimConnectionInfo”属性数组中的某些条目的新内容,如下表所述。

id

body

字符串

VIM 连接的标识符。此标识符由 NFVO 管理。

vimId (可选)

body

字符串

VIM 实例的标识符。此标识符由 NFVO 管理。

如果已通过本文档范围之外的方式配置到 VNFM,则应存在,否则应不存在。

vimType (可选)

body

字符串

VIM 信息的不同类型的区分器。

此属性的值根据 VIM 的类型确定“interfaceInfo”和“accessInfo”属性的结构。

随着新的 VIM 类型或版本的可用,允许的值集预计会随时间变化。

interfaceInfo (可选)

body

字符串

如果适用,有关与 VIM 的接口的信息,例如与 VIM 通信的接口端点的 URI。适用的键取决于 vimType 的内容。

或者,这些信息可能已配置到 VNFM 并绑定到 vimId。

endpoint

body

字符串

表示接口端点的 url。

accessInfo (可选)

body

字符串

访问 VIM 的身份验证凭据,以及其他访问相关信息,例如租户或基础设施资源组(请参阅注释)。适用的键取决于 vimType 的内容。

如果 VimConnectionInfo 结构是 HTTP 响应有效负载主体的一部分,则不应包含敏感属性(例如密码)。

如果 VimConnectionInfo 结构是 HTTP 请求有效负载主体的一部分,则如果尚未通过其他方式配置,则应存在敏感属性(例如密码)。

username

body

字符串

用于访问的用户名。

region

body

字符串

用于 VIM 连接的 OpenStack 区域。

password

body

字符串

用于访问的密码。

tenant

body

字符串

用于 VIM 连接的 OpenStack 租户。

请求示例

{
  "vnfdId": "093c38b5-a731-4593-a578-d12e42596b3e"
}
POST
/vnflcm/v1/vnf_instances/{vnfInstanceId}/change_ext_conn

更改外部 VNF 连接性

POST 方法更改 VNF 实例的外部连接性。

此任务资源表示“更改外部 VNF 连接性”操作。客户端可以使用此资源更改 VNF 实例的外部连接性。

响应代码

成功

代码

原因

202 - Accepted

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

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

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

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

409 - Conflict

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

请求参数

名称

入参

类型

描述

vnfInstanceId

路径

字符串

VNF 实例的标识符。

extVirtualLinks (可选)

body

数组

有关外部 VL 以连接到 VNF 的信息。

id

body

字符串

外部 VL 实例的标识符。标识符由管理此 VL 实例的 NFV-MANO 实体分配。

vimConnectionId (可选)

body

字符串

用于管理资源的 VIM 连接的标识符。仅当直接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。

resourceId

body

字符串

VIM 或资源提供商范围内的资源的标识符。

extCps

body

数组

要连接到此外部 VL 的 VNF 的外部 CP。

cpdId

body

字符串

VNFD 中 CPD 的标识符。

cpConfig (可选)

body

数组

需要配置在从各自 CPD 创建的 CP 实例上的实例数据列表。

cpInstanceId (可选)

body

字符串

要应用此配置参数集的外部连接点实例的标识符。

如果该实例已创建,则应存在。

linkPortId (可选)

body

字符串

与外部 CP 将关联的预配置链路端口的标识符。请参阅注释。

cpProtocolData (可选)

body

数组

用于配置连接 CP 到 VL 的链路端口上的网络协议的参数。

layerProtocol

body

字符串

层和协议的标识符。

允许的值:IP_OVER_ETHERNET

ipOverEthernet (可选)

body

对象

要分配给 extCP 实例的网络地址数据。如果 layerProtocol 等于“IP_OVER_ETHERNET”,则应存在,否则应不存在。

macAddress (可选)

body

字符串

MAC 地址。如果未提供此属性,则应由 VIM 选择。至少应存在“macAddress”或“ipAddresses”中的一个。

ipAddresses (可选)

body

数组

要分配给 CP 实例的 IP 地址列表。每个条目代表针对每个子网的固定或动态 IP 地址分配的 IP 地址数据。

如果未提供此属性,则不应分配任何 IP 地址。

type

body

字符串

IP 地址的类型。允许的值:IPV4、IPV6。

fixedAddresses (可选)

body

数组

要分配的固定地址(如果提供了“subnetId”,则来自子网)。“fixedAddresses”或“numDynamicAddresses”中的一个必须存在。

numDynamicAddresses (可选)

body

int

设置动态地址的数量。“fixedAddresses”或“numDynamicAddresses”中的一个必须存在。

subnetId (可选)

body

字符串

VIM 中子网资源标识符定义的子网。如果存在此属性,将分配来自该子网的 IP 地址;否则,将分配未绑定到子网的 IP 地址。

extLinkPorts (可选)

body

数组

外部提供的链路端口,用于将外部连接点连接到此外部 VL。如果未提供此属性,则 VNFM 应在外部 VL 上创建链路端口。

id

body

字符串

提供此链路端口的实体提供的此链路端口的标识符。

resourceHandle

body

对象

实现此链路端口的虚拟化资源的引用。

vimConnectionId (可选)

body

字符串

用于管理资源的 VIM 连接的标识符。仅当直接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。

resourceId

body

字符串

VIM 或资源提供商范围内的资源的标识符。

vimLevelResourceType (可选)

body

字符串

VIM 或资源提供商范围内的资源的类型。provider。

vimConnectionInfo (可选)

body

数组

有关 VIM 连接的信息,用于管理 VNF 实例的资源,或引用外部/外部管理的虚拟链路。

仅当直接模式下的 VNF 相关资源管理适用时,才应支持此属性,并且可能存在。

id

body

字符串

VIM 连接的标识符。此标识符由 NFVO 管理。

vimId (可选)

body

字符串

VIM 实例的标识符。此标识符由 NFVO 管理。

如果已通过本文档范围之外的方式配置到 VNFM,则应存在,否则应不存在。

vimType (可选)

body

字符串

VIM 信息的不同类型的区分器。

此属性的值根据 VIM 的类型确定“interfaceInfo”和“accessInfo”属性的结构。

随着新的 VIM 类型或版本的可用,允许的值集预计会随时间变化。

interfaceInfo (可选)

body

字符串

如果适用,有关与 VIM 的接口的信息,例如与 VIM 通信的接口端点的 URI。适用的键取决于 vimType 的内容。

或者,这些信息可能已配置到 VNFM 并绑定到 vimId。

endpoint

body

字符串

表示接口端点的 url。

accessInfo (可选)

body

字符串

访问 VIM 的身份验证凭据,以及其他访问相关信息,例如租户或基础设施资源组(请参阅注释)。适用的键取决于 vimType 的内容。

如果 VimConnectionInfo 结构是 HTTP 响应有效负载主体的一部分,则不应包含敏感属性(例如密码)。

如果 VimConnectionInfo 结构是 HTTP 请求有效负载主体的一部分,则如果尚未通过其他方式配置,则应存在敏感属性(例如密码)。

username

body

字符串

用于访问的用户名。

password

body

字符串

用于访问的密码。

region

body

字符串

用于 VIM 连接的 OpenStack 区域。

tenant

body

字符串

用于 VIM 连接的 OpenStack 租户。

additionalParams

body

字符串

作为 VNFD 的“ChangeVnfFlavourOpConfig”的一部分声明的,作为对正在修改的 VNF 特定的风味更改过程的附加输入参数。

请求示例

{
  "extVirtualLinks": [
    {
      "id": "ext-vl-uuid-VL1",
      "resourceId": "neutron-network-uuid_VL1",
      "extCps": [
        {
          "cpdId": "CP1",
          "cpConfig": [
            {
              "cpProtocolData": [
                {
                  "layerProtocol": "IP_OVER_ETHERNET",
                  "ipOverEthernet": {
                    "ipAddresses": [
                      {
                        "type": "IPV4",
                        "numDynamicAddresses": 1,
                        "subnetId": "subnet-uuid"
                      }
                    ]
                  }
                }
              ]
            }
          ]
        },
        {
          "cpdId": "CP2",
          "cpConfig": [
            {
              "cpProtocolData": [
                {
                  "layerProtocol": "IP_OVER_ETHERNET",
                  "ipOverEthernet": {
                    "ipAddresses": [
                      {
                        "type": "IPV4",
                        "fixedAddresses": [
                          "10.0.0.1"
                        ],
                        "subnetId": "subnet-uuid"
                      }
                    ]
                  }
                }
              ]
            }
          ]
        }
      ]
    }
  ],
  "vimConnectionInfo": [
    {
      "id": "vim-uuid",
      "vimType": "ETSINFV.OPENSTACK_KEYSTONE.V_2",
      "vimConnectionId": "dummy-vimid",
      "interfaceInfo": {
        "key1": "value1",
        "key2": "value2"
      },
      "accessInfo": {
        "key1": "value1",
        "key2": "value2"
      }
    }
  ]
}
GET
/vnflcm/v1/vnf_lcm_op_occs/{vnfLcmOpOccId}

显示 VNF LCM 操作发生

客户端可以使用此方法通过读取“单个 VNF LCM 操作发生”资源来检索 VNF 生命周期管理操作发生的的状态信息。

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

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

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

请求参数

名称

入参

类型

描述

vnfLcmOpOccId

路径

字符串

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

响应参数

名称

入参

类型

描述

id

body

字符串

此 VNF 生命周期管理操作发生的标识符。

operationState

body

字符串

LCM 操作的状态。

stateEnteredTime

body

字符串

当前状态进入的时间。

startTime

body

字符串

操作开始的时间。

vnfInstanceId

body

字符串

操作适用的 VNF 实例的标识符。

grantId (可选)

body

字符串

与此 VNF LCM 操作发生相关的授权的标识符。如果存在这样的授权,则应将其设置为表示相关“单个授权”的“id”属性的值。

operation

body

字符串

此 VNF LCM 操作发生所代表的实际 LCM 操作的类型。

isAutomaticInvocation

body

布尔值

如果此 VNF LCM 操作发生是由 VNFM 内部的自动化过程触发的(例如,由自动缩放触发的 ScaleVnf 或由自动修复触发的 HealVnf),则设置为 true。否则,设置为 false。

operationParams (可选)

body

字符串

LCM 操作的输入参数。此属性应根据相关 LCM 操作的请求数据类型进行格式化。以下是 operationType 与此属性的数据类型之间的映射

INSTANTIATE:InstantiateVnfRequest

SCALE:ScaleVnfRequest

HEAL:HealVnfRequest

TERMINATE:TerminateVnfRequest

MODIFY_INFO:VnfInfoModificationRequest

如果此数据类型在读取单个资源响应中返回,则应存在此属性,如果此数据类型在查询容器资源响应中返回,则可能存在,具体取决于所选的属性选择器参数。

isCancelPending

body

布尔值

如果 VNF LCM 操作发生处于“STARTING”、“PROCESSING”或“ROLLING_BACK”状态并且正在取消操作,则应将此属性设置为 true。否则,应将其设置为 false。

错误 (可选)

body

对象

如果“operationState”为“FAILED_TEMP”或“FAILED”或“operationState”为“PROCESSING”或“ROLLING_BACK”并且“operationState”的先前值为“FAILED_TEMP”,则应存在此属性并包含错误信息,除非已通过属性选择器请求排除它。

title (可选)

body

字符串

根据 IETF RFC 3986 的 URI 引用,用于标识问题类型。鼓励在取消引用 URI 时提供人类可读的文档(例如,使用 HTML)。当未提供此成员时,其值为“about:blank”。

status

body

字符串

此问题实例的 HTTP 状态码。

详情

body

字符串

此问题实例的特定于人类的可读解释。

resourceChanges (可选)

body

对象

此属性包含 LCM 操作自其启动以来对虚拟化资源进行的累积更改的信息(如果适用)。

affectedVnfc (可选)

body

数组

在生命周期操作期间受到影响的 VNFC 实例的信息。

id

body

字符串

VNFC 实例的标识符,标识“VnfInstance”数据类型中的适用的“vnfcResourceInfo”条目。

vduId

body

字符串

VNFD 中相关 VDU 的标识符。

changeType

body

字符串

指示更改类型。允许的值

ADDED

REMOVED

MODIFIED

TEMPORARY

对于临时资源,只要临时资源存在,就会存在 AffectedVnfc 结构。

computeResource

body

对象

对 VirtualCompute 资源的引用。

vimConnectionId (可选)

body

字符串

用于管理资源的 VIM 连接的标识符。仅当直接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。

resourceId

body

字符串

VIM 或资源提供商范围内的资源的标识符。

vimLevelResourceType (可选)

body

字符串

VIM 或资源提供商范围内的资源的类型。provider。

affectedVnfcCpIds (可选)

body

数组

受更改影响的 VNFC 实例的 CP 标识符。应存在于与 VNF 的外部 CP 关联的受影响的 CP 中。可以存在于进一步受影响的 VNFC CP 中。

addedStorageResourceIds (可选)

body

数组

已添加的 VirtualStorage 资源的引用。每个值引用 VnfInstance 中的添加到 VNFC 的 VirtualStorageResourceInfo 条目。如果至少有一个存储资源已添加到 VNFC,则应提供它。

removedStorageResourceIds (可选)

body

数组

已删除的 VirtualStorage 资源的引用。该值包含从 VNFC 中删除的 VirtualStorageResourceInfo 条目的标识符,并且可能不再存在于 VnfInstance 中。如果至少有一个存储资源已从 VNFC 中删除,则应提供它。

affectedVirtualLinks (可选)

body

数组

在生命周期操作期间受到影响的 VL 实例的信息。

id

body

字符串

虚拟链路实例的标识符,标识“VnfInstance”数据类型中的适用的“vnfVirtualLinkResourceInfo”条目。

vnfVirtualLinkDescId

body

字符串

VNFD 中的 VNF 虚拟链路描述符 (VLD) 的标识符。

changeType

body

字符串

指示更改类型。允许的值

ADDED

REMOVED

MODIFIED

TEMPORARY

LINK_PORT_ADDED

LINK_PORT_REMOVED

对于临时资源,受影响的虚拟链路结构在临时资源存在期间一直存在。

networkResource

body

对象

对 VirtualNetwork 资源的引用。

vimConnectionId (可选)

body

字符串

用于管理资源的 VIM 连接的标识符。仅当直接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。

resourceId

body

字符串

VIM 或资源提供商范围内的资源的标识符。

vimLevelResourceType (可选)

body

字符串

VIM 或资源提供商范围内的资源的类型。provider。

受影响的虚拟存储 (可选)

body

数组

有关在生命周期操作期间受到影响的虚拟化存储实例的信息。

id

body

字符串

存储实例的标识符,用于标识“VnfInstance”数据类型中的适用“virtualStorageResourceInfo”条目。

virtualStorageDescId

body

字符串

VNFD 中相关虚拟存储描述符的标识符。

changeType

body

字符串

指示更改类型。允许的值

ADDED

REMOVED

MODIFIED

TEMPORARY

对于临时资源,受影响的虚拟存储结构在临时资源存在期间一直存在。

storageResource

body

对象

对 VirtualStorage 资源的引用。

vimConnectionId (可选)

body

字符串

用于管理资源的 VIM 连接的标识符。仅当直接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。

resourceId

body

字符串

VIM 或资源提供商范围内的资源的标识符。

vimLevelResourceType (可选)

body

字符串

VIM 或资源提供商范围内的资源的类型。provider。

changedInfo (可选)

body

对象

有关更改的 VNF 实例信息,包括 VNF 可配置属性(如果适用)。

vnfInstanceName (可选)

body

字符串

如果存在,此属性表示对“VnfInstance”中的“vnfInstanceName”属性的修改。

vnfInstanceDescription (可选)

body

字符串

如果存在,此属性表示对“VnfInstance”中的“vnfInstanceDescription”属性的修改。

metadata (可选)

body

字符串

如果存在,此属性表示对“VnfInstance”中的“metadata”属性的修改。

vimConnectionInfo (可选)

body

数组

如果存在,此属性表示对“VnfInstance”中的“vimConnectionInfo”属性数组中某些条目的修改。

id

body

字符串

VIM 连接的标识符。此标识符由 NFVO 管理。

vimId (可选)

body

字符串

VIM 实例的标识符。此标识符由 NFVO 管理。

如果已通过本文档范围之外的方式配置到 VNFM,则应存在,否则应不存在。

vimType (可选)

body

字符串

VIM 信息的不同类型的区分器。

此属性的值根据 VIM 的类型确定“interfaceInfo”和“accessInfo”属性的结构。

随着新的 VIM 类型或版本的可用,允许的值集预计会随时间变化。

interfaceInfo (可选)

body

字符串

如果适用,有关与 VIM 的接口的信息,例如与 VIM 通信的接口端点的 URI。适用的键取决于 vimType 的内容。

或者,这些信息可能已配置到 VNFM 并绑定到 vimId。

endpoint

body

字符串

表示接口端点的 url。

accessInfo (可选)

body

字符串

访问 VIM 的身份验证凭据,以及其他访问相关信息,例如租户或基础设施资源组(请参阅注释)。适用的键取决于 vimType 的内容。

如果 VimConnectionInfo 结构是 HTTP 响应有效负载主体的一部分,则不应包含敏感属性(例如密码)。

如果 VimConnectionInfo 结构是 HTTP 请求有效负载主体的一部分,则如果尚未通过其他方式配置,则应存在敏感属性(例如密码)。

username

body

字符串

用于访问的用户名。

region

body

字符串

用于 VIM 连接的 OpenStack 区域。

password

body

字符串

用于访问的密码。

tenant

body

字符串

用于 VIM 连接的 OpenStack 租户。

vnfPkgId (可选)

body

字符串

如果存在,此属性表示对“VnfInstance”中的“vnfPkgId”属性的修改。

vnfdId (可选)

body

字符串

如果存在,此属性表示对“VnfInstance”中的“vnfdId”属性的修改。

vnfProvider (可选)

body

字符串

如果存在,此属性表示对“VnfInstance”中的“vnfProvider”属性的修改。

vnfProductName (可选)

body

字符串

如果存在,此属性表示对“VnfInstance”中的“vnfProductName”属性的修改。

vnfSotwareVersion (可选)

body

字符串

如果存在,此属性表示对“VnfInstance”中的“vnfSoftwareVersion”属性的修改。

vnfdVersion (可选)

body

字符串

如果存在,此属性表示对“VnfInstance”中的“vnfdVersion”属性的修改。

changedExtConnectivity (可选)

body

对象

有关更改的外部连接信息(如果适用)

id (可选)

body

字符串

外部 VL 的标识符以及相关的外部 VL 信息实例。标识符由管理此 VL 实例的 NFV-MANO 实体分配。

resourceHandle

body

对象

实现此 VL 的资源的引用。

vimConnectionId (可选)

body

字符串

用于管理资源的 VIM 连接的标识符。仅当直接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。

resourceId

body

字符串

VIM 或资源提供商范围内的资源的标识符。

vimLevelResourceType (可选)

body

字符串

VIM 或资源提供商范围内的资源的类型。provider。

extLinkPorts (可选)

body

数组

外部提供的链路端口,用于将外部连接点连接到此外部 VL。如果未提供此属性,则 VNFM 应在外部 VL 上创建链路端口。

id

body

字符串

提供此链路端口的实体提供的此链路端口的标识符。

resourceHandle

body

对象

实现此 VL 的资源的引用。

vimConnectionId (可选)

body

字符串

用于管理资源的 VIM 连接的标识符。仅当直接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。

resourceId

body

字符串

VIM 或资源提供商范围内的资源的标识符。

vimLevelResourceType (可选)

body

字符串

VIM 或资源提供商范围内的资源的类型。provider。

cpInstanceId (可选)

body

字符串

要应用此配置参数集的外部连接点实例的标识符。

如果该实例已创建,则应存在。

_links

body

对象

指向与此资源相关的资源的链接。

响应示例

{
  "id": "d85c6ae4-af16-42c0-96fc-82f7c014c468",
  "operationState": "COMPLETED",
  "stateEnteredTime": "2020-08-02T06:50:50.883373",
  "startTime": "2020-08-02T06:41:34.883483",
  "vnfInstanceId": "0b7b95a9-21d5-4ac4-80c8-9ae9f7323787",
  "grantId": "3432cebe-db0a-11e8-9023-005056317abe",
  "operation": "INSTANTIATE",
  "isAutomaticInvocation": false,
  "operationParams": "{
    "flavourId": "default",
    "instantiationLevelId": "vnf-min",
    }"
  "isCancelPending": false,
  "resourceChanges": {
    "affectedVnfcs": [
      {
        "id": "36e24439-829c-4803-a413-385cd658d544",
        "vduId": "VDU",
        "changeType": "ADDED",
        "computeResource": {
            "vimConnectionId": "f26f181d-7891-4720-b022-b074ec1733ef",
            "resourceId": "e0510ba9-3a53-4fcf-9dcc-58dea5c048b0",
            "vimLevelResourceType": "OS::Nova::Server",
        },
        "affectedVnfcCpIds": [
          "VDU1_CP0",
          "VDU1_CP1"
        ],
        "addedStorageResourceIds": [
          "81ae44f6-b65b-47aa-a578-e53b7a50a574"
        ]
      }
    ],
    "affectedVirtualLinks": [
      {
        "id": "9836f7f2-5af4-4df5-a89f-933479448ef7",
        "vnfVirtualLinkDescId": "internalNW",
        "changeType": "ADDED",
        "networkResource": {
            "vimConnectionId": "f26f181d-7891-4720-b022-b074ec1733ef",
            "resourceId": "400692e5-b2db-478e-acb1-b77a92635ec6",
            "vimLevelResourceType": "OS::Neutron::Net"
        }
      }
    ],
    "affectedVirtualStorages": [
      {
        "id": "81ae44f6-b65b-47aa-a578-e53b7a50a574",
        "virtualStorageDescId": "Storage",
        "changeType": "ADDED",
        "storageResource": {
            "vimConnectionId": "f26f181d-7891-4720-b022-b074ec1733ef",
            "resourceId": "842f527e-0092-4f11-aede-f981ba4fd884",
            "vimLevelResourceType": "OS::Cinder::Volume"
        }
      }
    ]
  },
  "_links": {
    "self": {
      "href": "http://sample1.com/vnflcm/v1/vnf_lcm_op_occs/d85c6ae4-af16-42c0-96fc-82f7c014c468"
    },
    "vnfInstance": {
      "href": "http://sample1.com/vnflcm/v1/vnf_instances/0b7b95a9-21d5-4ac4-80c8-9ae9f7323787"
    },
    "grant": {
      "href": "http://sample1.com/grant/v1/grants/3432cebe-db0a-11e8-9023-005056317abe"
    },
    "retry":{
      "href":"http://sample1.com/vnflcm/v1/vnf_lcm_op_occs/d85c6ae4-af16-42c0-96fc-82f7c014c468/retry"
    },
    "rollback":{
      "href":"http://sample1.com/vnflcm/v1/vnf_lcm_op_occs/d85c6ae4-af16-42c0-96fc-82f7c014c468/rollback"
    },
    "fail":{
      "href":"http://sample1.com/vnflcm/v1/vnf_lcm_op_occs/d85c6ae4-af16-42c0-96fc-82f7c014c468/fail"
    }
  }
}
GET
/vnflcm/v1/vnf_lcm_op_occs

列出 VNF LCM 操作事件

API 消费者可以使用此方法查询多个 VNF 生命周期管理操作事件的状态信息。

如果响应包含 LINK HTTP 标头(参见 IETF RFC 8288 [2]),且“rel”属性设置为“next”,则 API 消费者可以向 LINK 标头中通信的 URI 发送 GET 请求,以获取下一页结果。

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

403 - 禁止

策略不允许当前用户执行此操作。

响应参数

名称

入参

类型

描述

id

body

字符串

此 VNF 生命周期管理操作发生的标识符。

operationState

body

字符串

LCM 操作的状态。

stateEnteredTime

body

字符串

当前状态进入的时间。

startTime

body

字符串

操作开始的时间。

vnfInstanceId

body

字符串

操作适用的 VNF 实例的标识符。

grantId (可选)

body

字符串

与此 VNF LCM 操作发生相关的授权的标识符。如果存在这样的授权,则应将其设置为表示相关“单个授权”的“id”属性的值。

operation

body

字符串

此 VNF LCM 操作发生所代表的实际 LCM 操作的类型。

isAutomaticInvocation

body

布尔值

如果此 VNF LCM 操作发生是由 VNFM 内部的自动化过程触发的(例如,由自动缩放触发的 ScaleVnf 或由自动修复触发的 HealVnf),则设置为 true。否则,设置为 false。

operationParams (可选)

body

字符串

LCM 操作的输入参数。此属性应根据相关 LCM 操作的请求数据类型进行格式化。以下是 operationType 与此属性的数据类型之间的映射

INSTANTIATE:InstantiateVnfRequest

SCALE:ScaleVnfRequest

HEAL:HealVnfRequest

TERMINATE:TerminateVnfRequest

MODIFY_INFO:VnfInfoModificationRequest

如果此数据类型在读取单个资源响应中返回,则应存在此属性,如果此数据类型在查询容器资源响应中返回,则可能存在,具体取决于所选的属性选择器参数。

isCancelPending

body

布尔值

如果 VNF LCM 操作发生处于“STARTING”、“PROCESSING”或“ROLLING_BACK”状态并且正在取消操作,则应将此属性设置为 true。否则,应将其设置为 false。

错误 (可选)

body

对象

如果“operationState”为“FAILED_TEMP”或“FAILED”或“operationState”为“PROCESSING”或“ROLLING_BACK”并且“operationState”的先前值为“FAILED_TEMP”,则应存在此属性并包含错误信息,除非已通过属性选择器请求排除它。

title (可选)

body

字符串

根据 IETF RFC 3986 的 URI 引用,用于标识问题类型。鼓励在取消引用 URI 时提供人类可读的文档(例如,使用 HTML)。当未提供此成员时,其值为“about:blank”。

status

body

字符串

此问题实例的 HTTP 状态码。

详情

body

字符串

此问题实例的特定于人类的可读解释。

resourceChanges (可选)

body

对象

此属性包含 LCM 操作自其启动以来对虚拟化资源进行的累积更改的信息(如果适用)。

affectedVnfc (可选)

body

数组

在生命周期操作期间受到影响的 VNFC 实例的信息。

id

body

字符串

VNFC 实例的标识符,标识“VnfInstance”数据类型中的适用的“vnfcResourceInfo”条目。

vduId

body

字符串

VNFD 中相关 VDU 的标识符。

changeType

body

字符串

指示更改类型。允许的值

ADDED

REMOVED

MODIFIED

TEMPORARY

对于临时资源,只要临时资源存在,就会存在 AffectedVnfc 结构。

computeResource

body

对象

对 VirtualCompute 资源的引用。

vimConnectionId (可选)

body

字符串

用于管理资源的 VIM 连接的标识符。仅当直接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。

resourceId

body

字符串

VIM 或资源提供商范围内的资源的标识符。

vimLevelResourceType (可选)

body

字符串

VIM 或资源提供商范围内的资源的类型。provider。

affectedVnfcCpIds (可选)

body

数组

受更改影响的 VNFC 实例的 CP 标识符。应存在于与 VNF 的外部 CP 关联的受影响的 CP 中。可以存在于进一步受影响的 VNFC CP 中。

addedStorageResourceIds (可选)

body

数组

已添加的 VirtualStorage 资源的引用。每个值引用 VnfInstance 中的添加到 VNFC 的 VirtualStorageResourceInfo 条目。如果至少有一个存储资源已添加到 VNFC,则应提供它。

removedStorageResourceIds (可选)

body

数组

已删除的 VirtualStorage 资源的引用。该值包含从 VNFC 中删除的 VirtualStorageResourceInfo 条目的标识符,并且可能不再存在于 VnfInstance 中。如果至少有一个存储资源已从 VNFC 中删除,则应提供它。

affectedVirtualLinks (可选)

body

数组

在生命周期操作期间受到影响的 VL 实例的信息。

id

body

字符串

虚拟链路实例的标识符,标识“VnfInstance”数据类型中的适用的“vnfVirtualLinkResourceInfo”条目。

vnfVirtualLinkDescId

body

字符串

VNFD 中的 VNF 虚拟链路描述符 (VLD) 的标识符。

changeType

body

字符串

指示更改类型。允许的值

ADDED

REMOVED

MODIFIED

TEMPORARY

LINK_PORT_ADDED

LINK_PORT_REMOVED

对于临时资源,受影响的虚拟链路结构在临时资源存在期间一直存在。

networkResource

body

对象

对 VirtualNetwork 资源的引用。

vimConnectionId (可选)

body

字符串

用于管理资源的 VIM 连接的标识符。仅当直接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。

resourceId

body

字符串

VIM 或资源提供商范围内的资源的标识符。

vimLevelResourceType (可选)

body

字符串

VIM 或资源提供商范围内的资源的类型。provider。

受影响的虚拟存储 (可选)

body

数组

有关在生命周期操作期间受到影响的虚拟化存储实例的信息。

id

body

字符串

存储实例的标识符,用于标识“VnfInstance”数据类型中的适用“virtualStorageResourceInfo”条目。

virtualStorageDescId

body

字符串

VNFD 中相关虚拟存储描述符的标识符。

changeType

body

字符串

指示更改类型。允许的值

ADDED

REMOVED

MODIFIED

TEMPORARY

对于临时资源,受影响的虚拟存储结构在临时资源存在期间一直存在。

storageResource

body

对象

对 VirtualStorage 资源的引用。

vimConnectionId (可选)

body

字符串

用于管理资源的 VIM 连接的标识符。仅当直接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。

resourceId

body

字符串

VIM 或资源提供商范围内的资源的标识符。

vimLevelResourceType (可选)

body

字符串

VIM 或资源提供商范围内的资源的类型。provider。

changedInfo (可选)

body

对象

有关更改的 VNF 实例信息,包括 VNF 可配置属性(如果适用)。

vnfInstanceName (可选)

body

字符串

如果存在,此属性表示对“VnfInstance”中的“vnfInstanceName”属性的修改。

vnfInstanceDescription (可选)

body

字符串

如果存在,此属性表示对“VnfInstance”中的“vnfInstanceDescription”属性的修改。

metadata (可选)

body

字符串

如果存在,此属性表示对“VnfInstance”中的“metadata”属性的修改。

vimConnectionInfo (可选)

body

数组

如果存在,此属性表示对“VnfInstance”中的“vimConnectionInfo”属性数组中某些条目的修改。

id

body

字符串

VIM 连接的标识符。此标识符由 NFVO 管理。

vimId (可选)

body

字符串

VIM 实例的标识符。此标识符由 NFVO 管理。

如果已通过本文档范围之外的方式配置到 VNFM,则应存在,否则应不存在。

vimType (可选)

body

字符串

VIM 信息的不同类型的区分器。

此属性的值根据 VIM 的类型确定“interfaceInfo”和“accessInfo”属性的结构。

随着新的 VIM 类型或版本的可用,允许的值集预计会随时间变化。

interfaceInfo (可选)

body

字符串

如果适用,有关与 VIM 的接口的信息,例如与 VIM 通信的接口端点的 URI。适用的键取决于 vimType 的内容。

或者,这些信息可能已配置到 VNFM 并绑定到 vimId。

endpoint

body

字符串

表示接口端点的 url。

accessInfo (可选)

body

字符串

访问 VIM 的身份验证凭据,以及其他访问相关信息,例如租户或基础设施资源组(请参阅注释)。适用的键取决于 vimType 的内容。

如果 VimConnectionInfo 结构是 HTTP 响应有效负载主体的一部分,则不应包含敏感属性(例如密码)。

如果 VimConnectionInfo 结构是 HTTP 请求有效负载主体的一部分,则如果尚未通过其他方式配置,则应存在敏感属性(例如密码)。

username

body

字符串

用于访问的用户名。

region

body

字符串

用于 VIM 连接的 OpenStack 区域。

password

body

字符串

用于访问的密码。

tenant

body

字符串

用于 VIM 连接的 OpenStack 租户。

vnfPkgId (可选)

body

字符串

如果存在,此属性表示对“VnfInstance”中的“vnfPkgId”属性的修改。

vnfdId (可选)

body

字符串

如果存在,此属性表示对“VnfInstance”中的“vnfdId”属性的修改。

vnfProvider (可选)

body

字符串

如果存在,此属性表示对“VnfInstance”中的“vnfProvider”属性的修改。

vnfProductName (可选)

body

字符串

如果存在,此属性表示对“VnfInstance”中的“vnfProductName”属性的修改。

vnfSotwareVersion (可选)

body

字符串

如果存在,此属性表示对“VnfInstance”中的“vnfSoftwareVersion”属性的修改。

vnfdVersion (可选)

body

字符串

如果存在,此属性表示对“VnfInstance”中的“vnfdVersion”属性的修改。

_links

body

对象

指向与此资源相关的资源的链接。

响应示例

[
  {
    "id": "d85c6ae4-af16-42c0-96fc-82f7c014c468",
    "operationState": "COMPLETED",
    "stateEnteredTime": "2020-08-02T06:50:50.883373",
    "startTime": "2020-08-02T06:41:34.883483",
    "vnfInstanceId": "0b7b95a9-21d5-4ac4-80c8-9ae9f7323787",
    "grantId": "3432cebe-db0a-11e8-9023-005056317abe",
    "operation": "INSTANTIATE",
    "isAutomaticInvocation": false,
    "operationParams": "{
      'flavourId': 'default',
      'instantiationLevelId': 'vnf-min',
    }",
    "isCancelPending": false,
    "resourceChanges": {
      "affectedVnfcs": [
        {
          "id": "36e24439-829c-4803-a413-385cd658d544",
          "vduId": "VDU",
          "changeType": "ADDED",
          "computeResource": {
              "vimConnectionId": "f26f181d-7891-4720-b022-b074ec1733ef",
              "resourceId": "e0510ba9-3a53-4fcf-9dcc-58dea5c048b0",
              "vimLevelResourceType": "OS::Nova::Server",
          },
          "affectedVnfcCpIds": [
            "VDU1_CP0",
            "VDU1_CP1"
          ],
          "addedStorageResourceIds": [
            "81ae44f6-b65b-47aa-a578-e53b7a50a574"
          ]
        }
      ],
      "affectedVirtualLinks": [
        {
          "id": "9836f7f2-5af4-4df5-a89f-933479448ef7",
          "vnfVirtualLinkDescId": "internalNW",
          "changeType": "ADDED",
          "networkResource": {
              "vimConnectionId": "f26f181d-7891-4720-b022-b074ec1733ef",
              "resourceId": "400692e5-b2db-478e-acb1-b77a92635ec6",
              "vimLevelResourceType": "OS::Neutron::Net"
          }
        }
      ],
      "affectedVirtualStorages": [
        {
          "id": "81ae44f6-b65b-47aa-a578-e53b7a50a574",
          "virtualStorageDescId": "Storage",
          "changeType": "ADDED",
          "storageResource": {
              "vimConnectionId": "f26f181d-7891-4720-b022-b074ec1733ef",
              "resourceId": "842f527e-0092-4f11-aede-f981ba4fd884",
              "vimLevelResourceType": "OS::Cinder::Volume"
          }
        }
      ]
    },
    "_links": {
      "self": {
        "href": "http://sample.com/vnflcm/v1/vnf_lcm_op_occs/d85c6ae4-af16-42c0-96fc-82f7c014c468"
      },
      "vnfInstance": {
        "href": "http://sample.com/vnflcm/v1/vnf_instances/0b7b95a9-21d5-4ac4-80c8-9ae9f7323787"
      },
      "grant":{
        "href":"http://sample.com/grant/v1/grants/3432cebe-db0a-11e8-9023-005056317abe"
      },
      "retry":{
        "href":"http://sample1.com/vnflcm/v1/vnf_lcm_op_occs/d85c6ae4-af16-42c0-96fc-82f7c014c468/retry"
      },
      "rollback":{
        "href":"http://sample1.com/vnflcm/v1/vnf_lcm_op_occs/d85c6ae4-af16-42c0-96fc-82f7c014c468/rollback"
      },
      "fail":{
        "href":"http://sample1.com/vnflcm/v1/vnf_lcm_op_occs/d85c6ae4-af16-42c0-96fc-82f7c014c468/fail"
      }
    }
  }
]
POST
/vnflcm/v1/vnf_lcm_op_occs/{vnfLcmOpOccId}/rollback

回滚 VNF 生命周期操作

如果操作经历了临时故障(即相关的“Individual VNF LCM operation occurrence”资源处于“FAILED_TEMP”状态),则 POST 方法启动回滚 VNF 生命周期操作。

如果成功处理异步请求,则父资源的“operationState”属性将更改为“ROLLING_BACK”,并且将发出适用的“start”通知,以指示正在尝试回滚底层的 VNF LCM 操作事件。

响应代码

成功

代码

原因

202 - Accepted

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

错误

代码

原因

401 - 未授权

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

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

409 - Conflict

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

请求参数

名称

入参

类型

描述

vnfLcmOpOccId

路径

字符串

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

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

使 VNF 生命周期操作失败

如果操作事件处于“FAILED_TEMP”状态,则 POST 方法将 VNF 生命周期管理操作事件标记为“最终失败”。

如果成功,父资源的“operationState”属性将更改为“FAILED”,并且将发出适用的“result”通知,以指示底层 VNF LCM 操作事件已最终且无法恢复地失败。

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

401 - 未授权

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

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

409 - Conflict

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

请求参数

名称

入参

类型

描述

vnfLcmOpOccId

路径

字符串

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

响应参数

名称

入参

类型

描述

id

body

字符串

此 VNF 生命周期管理操作发生的标识符。

operationState

body

字符串

LCM 操作的状态。

stateEnteredTime

body

字符串

当前状态进入的时间。

startTime

body

字符串

操作开始的时间。

vnfInstanceId

body

字符串

操作适用的 VNF 实例的标识符。

grantId (可选)

body

字符串

与此 VNF LCM 操作发生相关的授权的标识符。如果存在这样的授权,则应将其设置为表示相关“单个授权”的“id”属性的值。

operation

body

字符串

此 VNF LCM 操作发生所代表的实际 LCM 操作的类型。

isAutomaticInvocation

body

布尔值

如果此 VNF LCM 操作发生是由 VNFM 内部的自动化过程触发的(例如,由自动缩放触发的 ScaleVnf 或由自动修复触发的 HealVnf),则设置为 true。否则,设置为 false。

operationParams (可选)

body

字符串

LCM 操作的输入参数。此属性应根据相关 LCM 操作的请求数据类型进行格式化。以下是 operationType 与此属性的数据类型之间的映射

INSTANTIATE:InstantiateVnfRequest

SCALE:ScaleVnfRequest

HEAL:HealVnfRequest

TERMINATE:TerminateVnfRequest

MODIFY_INFO:VnfInfoModificationRequest

如果此数据类型在读取单个资源响应中返回,则应存在此属性,如果此数据类型在查询容器资源响应中返回,则可能存在,具体取决于所选的属性选择器参数。

错误 (可选)

body

对象

如果“operationState”为“FAILED_TEMP”或“FAILED”或“operationState”为“PROCESSING”或“ROLLING_BACK”并且“operationState”的先前值为“FAILED_TEMP”,则应存在此属性并包含错误信息,除非已通过属性选择器请求排除它。

title (可选)

body

字符串

根据 IETF RFC 3986 的 URI 引用,用于标识问题类型。鼓励在取消引用 URI 时提供人类可读的文档(例如,使用 HTML)。当未提供此成员时,其值为“about:blank”。

status

body

字符串

此问题实例的 HTTP 状态码。

详情

body

字符串

此问题实例的特定于人类的可读解释。

isCancelPending

body

布尔值

如果 VNF LCM 操作发生处于“STARTING”、“PROCESSING”或“ROLLING_BACK”状态并且正在取消操作,则应将此属性设置为 true。否则,应将其设置为 false。

_links

body

对象

指向与此资源相关的资源的链接。

resourceChanges (可选)

body

对象

此属性包含 LCM 操作自其启动以来对虚拟化资源进行的累积更改的信息(如果适用)。

affectedVnfc (可选)

body

数组

在生命周期操作期间受到影响的 VNFC 实例的信息。

id

body

字符串

VNFC 实例的标识符,标识“VnfInstance”数据类型中的适用的“vnfcResourceInfo”条目。

vduId

body

字符串

VNFD 中相关 VDU 的标识符。

changeType

body

字符串

指示更改类型。允许的值

ADDED

REMOVED

MODIFIED

TEMPORARY

对于临时资源,只要临时资源存在,就会存在 AffectedVnfc 结构。

computeResource

body

对象

对 VirtualCompute 资源的引用。

vimConnectionId (可选)

body

字符串

用于管理资源的 VIM 连接的标识符。仅当直接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。

resourceId

body

字符串

VIM 或资源提供商范围内的资源的标识符。

vimLevelResourceType (可选)

body

字符串

VIM 或资源提供商范围内的资源的类型。provider。

affectedVnfcCpIds (可选)

body

数组

受更改影响的 VNFC 实例的 CP 标识符。应存在于与 VNF 的外部 CP 关联的受影响的 CP 中。可以存在于进一步受影响的 VNFC CP 中。

addedStorageResourceIds (可选)

body

数组

已添加的 VirtualStorage 资源的引用。每个值引用 VnfInstance 中的添加到 VNFC 的 VirtualStorageResourceInfo 条目。如果至少有一个存储资源已添加到 VNFC,则应提供它。

removedStorageResourceIds (可选)

body

数组

已删除的 VirtualStorage 资源的引用。该值包含从 VNFC 中删除的 VirtualStorageResourceInfo 条目的标识符,并且可能不再存在于 VnfInstance 中。如果至少有一个存储资源已从 VNFC 中删除,则应提供它。

affectedVirtualLinks (可选)

body

数组

在生命周期操作期间受到影响的 VL 实例的信息。

id

body

字符串

虚拟链路实例的标识符,标识“VnfInstance”数据类型中的适用的“vnfVirtualLinkResourceInfo”条目。

vnfVirtualLinkDescId

body

字符串

VNFD 中的 VNF 虚拟链路描述符 (VLD) 的标识符。

changeType

body

字符串

指示更改类型。允许的值

ADDED

REMOVED

MODIFIED

TEMPORARY

LINK_PORT_ADDED

LINK_PORT_REMOVED

对于临时资源,受影响的虚拟链路结构在临时资源存在期间一直存在。

networkResource

body

对象

对 VirtualNetwork 资源的引用。

vimConnectionId (可选)

body

字符串

用于管理资源的 VIM 连接的标识符。仅当直接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。

resourceId

body

字符串

VIM 或资源提供商范围内的资源的标识符。

vimLevelResourceType (可选)

body

字符串

VIM 或资源提供商范围内的资源的类型。provider。

受影响的虚拟存储 (可选)

body

数组

有关在生命周期操作期间受到影响的虚拟化存储实例的信息。

id

body

字符串

存储实例的标识符,用于标识“VnfInstance”数据类型中的适用“virtualStorageResourceInfo”条目。

virtualStorageDescId

body

字符串

VNFD 中相关虚拟存储描述符的标识符。

changeType

body

字符串

指示更改类型。允许的值

ADDED

REMOVED

MODIFIED

TEMPORARY

对于临时资源,受影响的虚拟存储结构在临时资源存在期间一直存在。

storageResource

body

对象

对 VirtualStorage 资源的引用。

vimConnectionId (可选)

body

字符串

用于管理资源的 VIM 连接的标识符。仅当直接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。

resourceId

body

字符串

VIM 或资源提供商范围内的资源的标识符。

vimLevelResourceType (可选)

body

字符串

VIM 或资源提供商范围内的资源的类型。provider。

changedInfo (可选)

body

对象

有关更改的 VNF 实例信息,包括 VNF 可配置属性(如果适用)。

vnfInstanceName (可选)

body

字符串

如果存在,此属性表示对“VnfInstance”中的“vnfInstanceName”属性的修改。

vnfInstanceDescription (可选)

body

字符串

如果存在,此属性表示对“VnfInstance”中的“vnfInstanceDescription”属性的修改。

metadata (可选)

body

字符串

如果存在,此属性表示对“VnfInstance”中的“metadata”属性的修改。

vimConnectionInfo (可选)

body

数组

如果存在,此属性表示对“VnfInstance”中的“vimConnectionInfo”属性数组中某些条目的修改。

id

body

字符串

VIM 连接的标识符。此标识符由 NFVO 管理。

vimId (可选)

body

字符串

VIM 实例的标识符。此标识符由 NFVO 管理。

如果已通过本文档范围之外的方式配置到 VNFM,则应存在,否则应不存在。

vimType (可选)

body

字符串

VIM 信息的不同类型的区分器。

此属性的值根据 VIM 的类型确定“interfaceInfo”和“accessInfo”属性的结构。

随着新的 VIM 类型或版本的可用,允许的值集预计会随时间变化。

interfaceInfo (可选)

body

字符串

如果适用,有关与 VIM 的接口的信息,例如与 VIM 通信的接口端点的 URI。适用的键取决于 vimType 的内容。

或者,这些信息可能已配置到 VNFM 并绑定到 vimId。

endpoint

body

字符串

表示接口端点的 url。

accessInfo (可选)

body

字符串

访问 VIM 的身份验证凭据,以及其他访问相关信息,例如租户或基础设施资源组(请参阅注释)。适用的键取决于 vimType 的内容。

如果 VimConnectionInfo 结构是 HTTP 响应有效负载主体的一部分,则不应包含敏感属性(例如密码)。

如果 VimConnectionInfo 结构是 HTTP 请求有效负载主体的一部分,则如果尚未通过其他方式配置,则应存在敏感属性(例如密码)。

username

body

字符串

用于访问的用户名。

region

body

字符串

用于 VIM 连接的 OpenStack 区域。

password

body

字符串

用于访问的密码。

tenant

body

字符串

用于 VIM 连接的 OpenStack 租户。

vnfPkgId (可选)

body

字符串

如果存在,此属性表示对“VnfInstance”中的“vnfPkgId”属性的修改。

vnfdId (可选)

body

字符串

如果存在,此属性表示对“VnfInstance”中的“vnfdId”属性的修改。

vnfProvider (可选)

body

字符串

如果存在,此属性表示对“VnfInstance”中的“vnfProvider”属性的修改。

vnfProductName (可选)

body

字符串

如果存在,此属性表示对“VnfInstance”中的“vnfProductName”属性的修改。

vnfSotwareVersion (可选)

body

字符串

如果存在,此属性表示对“VnfInstance”中的“vnfSoftwareVersion”属性的修改。

vnfdVersion (可选)

body

字符串

如果存在,此属性表示对“VnfInstance”中的“vnfdVersion”属性的修改。

changedExtConnectivity (可选)

body

对象

有关更改的外部连接信息(如果适用)

id (可选)

body

字符串

外部 VL 的标识符以及相关的外部 VL 信息实例。标识符由管理此 VL 实例的 NFV-MANO 实体分配。

resourceHandle

body

对象

实现此 VL 的资源的引用。

vimConnectionId (可选)

body

字符串

用于管理资源的 VIM 连接的标识符。仅当直接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。

resourceId

body

字符串

VIM 或资源提供商范围内的资源的标识符。

vimLevelResourceType (可选)

body

字符串

VIM 或资源提供商范围内的资源的类型。provider。

extLinkPorts (可选)

body

数组

外部提供的链路端口,用于将外部连接点连接到此外部 VL。如果未提供此属性,则 VNFM 应在外部 VL 上创建链路端口。

id

body

字符串

提供此链路端口的实体提供的此链路端口的标识符。

resourceHandle

body

对象

实现此 VL 的资源的引用。

vimConnectionId (可选)

body

字符串

用于管理资源的 VIM 连接的标识符。仅当直接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。

vimLevelResourceType (可选)

body

字符串

VIM 或资源提供商范围内的资源的类型。provider。

cpInstanceId (可选)

body

字符串

要应用此配置参数集的外部连接点实例的标识符。

如果该实例已创建,则应存在。

响应示例

{
    "operation":"INSTANTIATE",
    "stateEnteredTime":"2021-01-22 13:41:30.869833+00:00",
    "id":"22962087-0494-484f-85e9-ef855e702633",
    "isCancelPending":false,
    "vnfInstanceId":"a9d0fe86-a3d0-4cbf-a117-578ff182fd7e",
    "startTime":"2021-01-22 13:41:03+00:00",
    "isAutomaticInvocation":false,
    "operationState":"FAILED",
    "operationParams":"{\"flavourId\": \"default\", \"instantiationLevelId\": \"n-msc-min\", \"additionalParams\": {\"lcm-operation-user-data\": \"./UserData/lcm_user_data.py\", \"lcm-operation-user-data-class\": \"SampleUserData\", \"sbc_name\": \"sbc\", \"slb_name\": \"slb\", \"image\": \"cirros-0.5.2-x86_64-disk\"}}",
    "error":{
        "status":500,
        "detail":"MANUAL ERROR"
    },
    "_links":{
        "self":{
            "href":"https://sample1.com/vnflcm/v1/vnf_lcm_op_occs/22962087-0494-484f-85e9-ef855e702633"
        },
        "vnfInstance":{
            "href":"https://sample1.com/vnflcm/v1/vnf_instances/a9d0fe86-a3d0-4cbf-a117-578ff182fd7e"
        },
        "retry":{
            "href":"https://sample1.com/vnflcm/v1/vnf_lcm_op_occs/22962087-0494-484f-85e9-ef855e702633/retry"
        },
        "rollback":{
            "href":"https://sample1.com/vnflcm/v1/vnf_lcm_op_occs/22962087-0494-484f-85e9-ef855e702633/rollback"
        },
        "fail":{
            "href":"https://sample1.com/vnflcm/v1/vnf_lcm_op_occs/22962087-0494-484f-85e9-ef855e702633/fail"
        }
    }
}
POST
/vnflcm/v1/subscriptions

创建新的订阅

POST 方法创建新的订阅。

成功执行此方法的结果是,已创建新的“Individual subscription”资源。此方法不会触发任何通知。

创建两个具有相同 callbackURI 和相同 filter 的“Individual subscription”资源可能会导致性能下降,并且会向 NFVO 提供重复的通知,并且只有在非常罕见的情况下才有意义。因此,VNFM 可以允许创建“Individual subscription”资源,如果另一个具有相同 filter 和 callbackUri 的 Individual subscription 资源已经存在(在这种情况下,它将返回 201 Created 响应代码),或者可以决定不创建重复的“Individual subscription”资源(在这种情况下,它将返回“303 See Other”响应代码,引用具有相同 filter 和 callbackUri 的现有“Individual subscription”资源)。

响应代码

成功

代码

原因

201 - 已创建

资源已创建并准备好使用。

错误

代码

原因

303 - See Other

服务器正在将用户代理重定向到不同的资源,如 Location 标头字段中指示的 URI,旨在为原始请求提供间接响应。

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

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

403 - 禁止

策略不允许当前用户执行此操作。

请求参数

名称

入参

类型

描述

filter (可选)

body

对象

此订阅的筛选设置,用于定义所有通知的子集。如果筛选条件匹配,或者没有筛选条件,则将通知发送给订阅者。

vnfInstanceSubscriptionFilter (可选)

body

对象

用于选择要通知的 VNF 实例的筛选标准。

notificationTypes (可选)

body

字符串

匹配特定的通知类型。允许的值

VnfLcmOperationOccurrenceNotification

VnfIdentifierCreationNotification

VnfIdentifierDeletionNotification

operationTypes (可选)

body

字符串

匹配 VnfLcmOperationOccurrenceNotification 类型的特定 VNF 生命周期操作类型。如果“notificationTypes”属性包含值“VnfLcmOperationOccurrenceNotification”,则可以存在,否则必须不存在。

operationStates (可选)

body

字符串

匹配 VnfLcmOperationOccurrenceNotification 类型的通知中报告的特定 LCM 操作状态值。如果“notificationTypes”属性包含值“VnfLcmOperationOccurrenceNotification”,则可以存在,否则必须不存在。

callbackUri

body

字符串

发送通知的端点的 URI。

authentication (可选)

body

对象

用于配置在发送与此订阅对应的通知时使用授权的身份验证参数。仅当订阅者需要通知授权时,才应存在此属性。

authType

body

字符串

定义 API 消费者在接收通知时愿意接受的身份验证/授权类型。允许的值

BASIC:在每个 HTTP 请求中,使用客户端凭据进行 HTTP Basic 身份验证。

OAUTH2_CLIENT_CREDENTIALS:在每个 HTTP 请求中,使用 OAuth 2.0 持有者令牌,该令牌使用客户端凭据授权类型获得。

TLS_CERT 不受支持。

paramsBasic (可选)

body

对象

使用 BASIC 进行身份验证/授权的参数。如果 authType 为“BASIC”且包含的信息未通过其他方式配置,则应存在。否则,应不存在。

userName (可选)

body

字符串

用于 HTTP Basic 身份验证的用户名。如果未通过其他方式配置,则应存在。

密码 (可选)

body

字符串

用于 HTTP Basic 身份验证的密码。如果未通过其他方式配置,则应存在。

paramsOauth2ClientCredentials (可选)

body

对象

使用 OAUTH2_CLIENT_CREDENTIALS 进行身份验证/授权的参数。如果 authType 为“OAUTH2_CLIENT_CREDENTIALS”且包含的信息未通过其他方式配置,则应存在。否则,应不存在。

clientId (可选)

body

字符串

OAuth 2.0 客户端凭据授权类型访问令牌请求中使用的客户端标识符。如果未通过其他方式配置,则应存在。

clientPassword (可选)

body

字符串

OAuth 2.0 客户端凭据授权类型访问令牌请求中使用的客户端密码。如果未通过其他方式配置,则应存在。

tokenEndpoint (可选)

body

字符串

可以获取访问令牌的令牌端点。如果未通过其他方式配置,则应存在。

请求示例

{
  "filter": {
    "notificationTypes": [
      "VnfLcmOperationOccurrenceNotification"
    ],
    "vnfInstanceSubscriptionFilter": {
      "vnfdIds": [],
      "vnfProductsFromProviders": {
        "vnfProvider": "Vnf Provider 1",
        "vnfProducts": [
          {
            "vnfProductName": "Vnf Product 1",
            "versions": [
              {
                  "vnfSoftwareVersion": "v1",
                  "vnfdVersions": ["vnfd.v1.1"]
              }
            ]
          }
        ]
      }
    }
  },
  "callbackUri": "http://sample1.com/notification"
}

响应参数

名称

入参

类型

描述

id

body

字符串

此订阅资源的标识符。

filter (可选)

body

对象

此订阅的筛选设置,用于定义所有通知的子集。如果筛选条件匹配,或者没有筛选条件,则将通知发送给订阅者。

notificationTypes (可选)

body

字符串

匹配特定的通知类型。允许的值

VnfLcmOperationOccurrenceNotification

VnfIdentifierCreationNotification

VnfIdentifierDeletionNotification

operationTypes (可选)

body

字符串

匹配 VnfLcmOperationOccurrenceNotification 类型的特定 VNF 生命周期操作类型。如果“notificationTypes”属性包含值“VnfLcmOperationOccurrenceNotification”,则可以存在,否则必须不存在。

callbackUri

body

字符串

发送通知的端点的 URI。

_links

body

对象

指向与此资源相关的资源的链接。

响应示例

{
  "id": "76057f8e65ab37fb82d9382dfc3f3c8b",
  "filter": {
    "vnfInstanceSubscriptionFilter": {
      "vnfdIds": [],
      "vnfProductsFromProviders": {
          "vnfProvider": "Vnf Provider 1",
          "vnfProducts": [
            {
              "vnfProductName": "Vnf Product 1",
              "versions": [
                  {
                      "vnfSoftwareVersion": "v1",
                      "vnfdVersions": ["vnfd.v1.1"]
                  }
              ]
            }
          ]
      }
    },
    "notificationTypes": [
      "VnfLcmOperationOccurrenceNotification"
    ]
  },
  "callbackUri": "http://sample1.com/notification",
  "_links": {
    "self": {
      "href": "https://sample1.com/vnflcm/v1/subscriptions/76057f8e65ab37fb82d9382dfc3f3c8b"
    }
  }
}
DELETE
/vnflcm/v1/subscriptions/{subscriptionId}

删除订阅

DELETE 方法终止单个订阅。

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

响应代码

成功

代码

原因

204 - No Content

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

错误

代码

原因

401 - 未授权

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

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

请求参数

名称

入参

类型

描述

subscriptionId

路径

字符串

订阅的标识符。

GET
/vnflcm/v1/subscriptions/{subscriptionId}

显示订阅

GET 方法通过读取“Individual subscription”资源来检索有关订阅的信息。

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

401 - 未授权

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

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

请求参数

名称

入参

类型

描述

subscriptionId

路径

字符串

订阅的标识符。

响应参数

名称

入参

类型

描述

id

body

字符串

此订阅资源的标识符。

filter (可选)

body

对象

此订阅的筛选设置,用于定义所有通知的子集。如果筛选条件匹配,或者没有筛选条件,则将通知发送给订阅者。

vnfInstanceSubscriptionFilter (可选)

body

对象

此类型表示匹配 VNF 实例的订阅筛选标准。

notificationTypes (可选)

body

字符串

匹配特定的通知类型。允许的值

VnfLcmOperationOccurrenceNotification

VnfIdentifierCreationNotification

VnfIdentifierDeletionNotification

operationTypes (可选)

body

字符串

匹配 VnfLcmOperationOccurrenceNotification 类型的特定 VNF 生命周期操作类型。如果“notificationTypes”属性包含值“VnfLcmOperationOccurrenceNotification”,则可以存在,否则必须不存在。

operationStates (可选)

body

字符串

匹配 VnfLcmOperationOccurrenceNotification 类型的通知中报告的特定 LCM 操作状态值。如果“notificationTypes”属性包含值“VnfLcmOperationOccurrenceNotification”,则可以存在,否则必须不存在。

callbackUri

body

字符串

发送通知的端点的 URI。

_links

body

对象

指向与此资源相关的资源的链接。

响应示例

{
  "id": "76057f8e65ab37fb82d9382dfc3f3c8b",
  "filter": {
    "vnfInstanceSubscriptionFilter": {
      "vnfdIds": [],
      "vnfProductsFromProviders": {
        "vnfProvider": "Vnf Provider 1",
        "vnfProducts": [
          {
            "vnfProductName": "Vnf Product 1",
            "versions": [
              {
                "vnfSoftwareVersion": "v1",
                "vnfdVersions": [
                  "vnfd.v1.1"
                ]
              }
            ]
          }
        ]
      }
    },
    "notificationTypes": [
      "VnfLcmOperationOccurrenceNotification",
      "VnfIdentifierCreationNotification",
      "VnfIdentifierDeletionNotification"
    ],
    "operationTypes": [
      "INSTANTIATE",
      "SCALE",
      "TERMINATE",
      "HEAL",
      "CHANGE_EXT_CONN",
      "MODIFY_INFO"
    ],
    "operationStates": [
      "STARTING",
      "PROCESSING",
      "COMPLETED",
      "FAILED_TEMP",
      "FAILED",
      "ROLLING_BACK",
      "ROLLED_BACK"
    ]
  },
  "callbackUri": "http://sample1.com/notification",
  "_links": {
    "self": {
      "href": "https://sample1.com/vnflcm/v1/subscriptions/76057f8e65ab37fb82d9382dfc3f3c8b"
    }
  }
}
GET
/vnflcm/v1/subscriptions

列出订阅

GET 方法查询调用该方法的函数块的活动订阅列表。它可以用于在错误情况后进行重新同步。

如果响应包含 LINK HTTP 标头(参见 IETF RFC 8288 [3]),且“rel”属性设置为“next”,则 API 消费者可以向 LINK 标头中通信的 URI 发送 GET 请求,以获取下一页结果。

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

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

403 - 禁止

策略不允许当前用户执行此操作。

响应参数

名称

入参

类型

描述

id

body

字符串

此订阅资源的标识符。

filter (可选)

body

对象

此订阅的筛选设置,用于定义所有通知的子集。如果筛选条件匹配,或者没有筛选条件,则将通知发送给订阅者。

vnfInstanceSubscriptionFilter (可选)

body

对象

用于选择要通知的 VNF 实例的筛选标准。

notificationTypes (可选)

body

字符串

匹配特定的通知类型。允许的值

VnfLcmOperationOccurrenceNotification

VnfIdentifierCreationNotification

VnfIdentifierDeletionNotification

operationTypes (可选)

body

字符串

匹配 VnfLcmOperationOccurrenceNotification 类型的特定 VNF 生命周期操作类型。如果“notificationTypes”属性包含值“VnfLcmOperationOccurrenceNotification”,则可以存在,否则必须不存在。

operationStates (可选)

body

字符串

匹配 VnfLcmOperationOccurrenceNotification 类型的通知中报告的特定 LCM 操作状态值。如果“notificationTypes”属性包含值“VnfLcmOperationOccurrenceNotification”,则可以存在,否则必须不存在。

callbackUri

body

字符串

发送通知的端点的 URI。

_links

body

对象

指向与此资源相关的资源的链接。

响应示例

[
  {
    "id": "76057f8e65ab37fb82d9382dfc3f3c8b",
    "filter": {
      "notificationTypes": [
        "VnfLcmOperationOccurrenceNotification"
      ]
    },
    "callbackUri": "http://sample1.com/notification",
    "_links": {
      "self": {
        "href": "https://sample1.com/vnflcm/v1/subscriptions/76057f8e65ab37fb82d9382dfc3f3c8b"
      }
    }
  },
  {
    "id": "4845ac30eab62a0b0b4edc00fbb930ee",
    "filter": {
      "notificationTypes": [
        "VnfLcmOperationOccurrenceNotification",
        "VnfIdentifierCreationNotification",
        "VnfIdentifierDeletionNotification"
      ],
      "notificationTypes": [
        "SCALE",
        "HEAL"
      ]
    },
    "callbackUri": "http://sample2.com/notification",
    "_links": {
      "self": {
        "href": "https://sample2.com/vnflcm/v1/subscriptions/4845ac30eab62a0b0b4edc00fbb930ee"
      }
    }
  }
]
POST
/vnflcm/v1/vnf_lcm_op_occs/{vnfLcmOpOccId}/retry

重试

POST 方法启动重试 VNF 生命周期操作,如果该操作经历了临时故障(即相关的“Individual VNF LCM operation occurrence”资源处于“FAILED_TEMP”状态)。

如果成功处理异步请求,则父资源的“operationState”属性将更改为“PROCESSING”,并且将发出适用的“start”通知,以指示底层 VNF LCM 操作事件正在进行。

响应代码

成功

代码

原因

202 - Accepted

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

错误

代码

原因

401 - 未授权

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

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

409 - Conflict

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

请求参数

名称

入参

类型

描述

vnfLcmOpOccId

路径

字符串

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