ETSI NFV-SOL VNF 更新

本文档描述了如何在 Tacker v2 API 中更新 VNF。

注意

本文档的内容已确认使用以下 VNF 包有效。

先决条件

应安装以下软件包

  • tacker

  • python-tackerclient

使用 LCM 操作用户数据进行 ETSI NFV-SOL VNF 部署为 VM 的过程中,在“创建 VNF”或“实例化 VNF”之前执行。

VNF 更新流程

如前提条件中所述,必须先创建 VNF 才能执行更新。

CLI 命令的详细信息请参阅 使用 v2 Tacker 进行 VNF 生命周期管理

要更新 VNF 实例,您需要准备一个 JSON 格式的定义文件。

{
  "vnfInstanceName": "sample"
}

注意

sample_param_file.json 包含 VNF 名称作为示例。更新操作可以更新以下内容:

  • vnfInstanceName

  • vnfInstanceDescription

  • vnfId

  • vnfConfigurableProperties

  • metadata

  • extensions

  • vnfcInfoModifications

  • vimConnectionInfo

注意

更新操作可以更改与现有 VNF 实例关联的 vimConnectionInfo。即使更新操作指定了与一个 VNF 实例关联的多个 vimConnectionInfo,也只会使用其中一个用于生命周期管理操作。无法删除已注册的 vimConnectionInfo 的键。

如何更新 VNF

执行更新 CLI 命令,并在更新前后检查 VNF 实例的名称。这是为了确认更新后 VNF 实例的名称已更改。有关 Heat CLI 命令的详细信息,请参阅 Heat CLI 参考

更新前的 VNF 实例名称

$ openstack vnflcm show VNF_INSTANCE_ID \
  -c 'VNF Instance Name' --os-tacker-api-version 2

结果

+-------------------+-------+
| Field             | Value |
+-------------------+-------+
| VNF Instance Name |       |
+-------------------+-------+

可以通过以下 CLI 命令执行更新 VNF:

$ openstack vnflcm update VNF_INSTANCE_ID \
  --I sample_param_file.json --os-tacker-api-version 2

结果

Update vnf:df9150a0-8679-4b14-8cbc-9d2d6606ca7c

操作后的 VNF 实例名称

$ openstack vnflcm show VNF_INSTANCE_ID \
  -c 'VNF Instance Name' --os-tacker-api-version 2

结果

+-------------------+--------+
| Field             | Value  |
+-------------------+--------+
| VNF Instance Name | sample |
+-------------------+--------+

您可以确认 VNF 实例名称已通过更新操作更改。

通过使用请求参数中设置的值与当前值进行 JSON Merge Patch,来更新以下属性。

  • vnfConfigurableProperties

  • metadata

  • extensions

如果通过更新操作请求更改 vnfdId,除了请求参数中设置的属性之外,VNF 实例的以下属性也应更新。这些属性将使用与新的 vnfdId 关联的 VNFD 中获得的值进行更新。

  • vnfProvider

  • vnfProductName

  • vnfSoftwareVersion

  • vnfdVersion

注意

如果在“实例化”之后更新 VNF 实例的 vnfdId,则在执行“扩展”或“修复”之前,实际资源不会更新。