ETSI NFV-SOL VNF 更新

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

注意

这是 Tacker v1 API 的文档。请参阅 ETSI NFV-SOL VNF 更新 获取 Tacker v2 API 的文档。

先决条件

应安装以下软件包

  • tacker

  • python-tackerclient

应根据 VIM 管理 注册默认 VIM。

下面使用的 VNF 包(sample_vnf_package_csar.zip)是通过参考 VNF 包 准备的。

ETSI NFV-SOL VNF 部署为使用 TOSCA 的 VM 的过程中,在“实例化 VNF”之前执行。

VNF 更新流程

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

CLI 命令的详细信息在 使用 v1 Tacker 进行 VNF 生命周期管理 中描述。

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

{
  "vnfInstanceName": "sample"
}

注意

sample_param_file.json 包含 VNF 名称作为示例。对于 v1 更新操作,不支持以下 VnfInfoModificationRequest 的属性:

  • vnfConfigurableProperties

  • extensions

  • vnfcInfoModifications

  • vimConnectionInfoDeleteIds

注意

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

如何更新 VNF

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

更新前的 VNF 实例名称

$ openstack vnflcm show VNF_INSTANCE_ID -c 'VNF Instance Name'

结果

+-------------------+------------------------------------------+
| Field             | Value                                    |
+-------------------+------------------------------------------+
| VNF Instance Name | vnf-810d8c9b-e467-4b06-9265-ac9dce015fce |
+-------------------+------------------------------------------+

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

$ openstack vnflcm update VNF_INSTANCE_ID --I sample_param_file.json

结果

Update vnf:810d8c9b-e467-4b06-9265-ac9dce015fce

注意

创建描述要更改的资源信息的文件。

操作后的 VNF 实例名称

$ openstack vnflcm show VNF_INSTANCE_ID -c 'VNF Instance Name'

结果

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

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

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

如果更新操作没有更改 vnfdId,则应使用请求参数更新当前值。

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

  • vnfProvider

  • vnfProductName

  • vnfSoftwareVersion

  • vnfdVersion