支持 NFV SOL_v3 获取 LCM 信息

蓝图

此规范支持符合 ETSI NFV SOL v3 的新型 VNF 生命周期管理 API。它添加了与获取 LCM 信息相关的 API 的新版本。

问题描述

ETSI 规范在 NFV 架构框架内 [1] 描述了基于行业需求、SDN/NFV 供应商和电信运营商反馈的 NFV 开发和使用的主要方面。这些规范包括 REST API 和数据模型架构,这些架构被 NFV 用户和开发人员用于相关产品。

支持关键的 ETSI NFV 规范将显著减少 Tacker 集成到电信生产网络的工作量,并简化未来标准的进一步开发和支持。在 Wallaby 版本中,ETSI NFV SOL002 v2.6.1 [2] 和 SOL003 v2.6.1 [3] 中定义的 VNF 生命周期管理操作已得到支持。然而,NFV 持续开发新的规范,它应符合多个版本的 ETSI NFV SOL 规范。Tacker 将支持 ETSI NFV SOL002 v3.3.1 [4] 和 SOL003 v3.3.1 [5] 中定义的 VNF 生命周期管理操作。

提议的变更

由于 ETSI NFV SOL v3 中指定的 VNF 生命周期管理接口版本为“2.0.0”,因此 URI 中包含的 API 主要版本应设置为“v2”。支持 v2 API 涉及更改某些属性的数据类型以及添加或删除属性。为了避免对现有实现产生影响,与“v1”对应的 API 应该实现为独立于“v1”的过程。

此接口支持以下与获取生命周期管理操作信息相关的 API。

  • 列出 VNF 实例 (GET /vnf_instances)

  • 显示 VNF 实例 (GET /vnf_instances/{vnfInstanceId})

  • 列出 VNF 发生 (GET /vnf_lcm_op_occs)

  • 显示 VNF 发生 (GET /vnf_lcm_op_occs/{vnfLcmOpOccId})

  • 创建订阅 (POST /subscriptions)

  • 列出订阅 (GET /subscriptions)

  • 显示订阅 (GET /subscriptions/{subscriptionId})

  • 删除订阅 (DELETE /subscriptions/{subscriptionId})

  • 通知端点 (POST)

  • 测试通知端点 (GET)

如下所示,v1 API 和 v2 API 的流程之间没有区别。

1) 查询 VNF 操作的流程

  • 列出 VNF 实例 (GET /vnf_instances)

../../_images/0135.png

该过程包括以下步骤,如上述序列图所示

先决条件:已创建表示 VNF 实例的资源。

  1. 如果客户端打算查询所有 VNF 实例,它会向“VNF 实例”资源发送一个 GET 请求,URI 中包含的 API 主要版本为“v2”。

  2. VNFM 返回一个“200 OK”响应,其中包含有效负载主体中的零个或多个“VnfInstance”类型的数据结构。

  • 显示 VNF (GET /vnf_instances/{vnfInstanceId})

../../_images/0222.png

该过程包括以下步骤,如上述序列图所示

先决条件:已创建表示 VNF 实例的资源。

  1. 如果客户端打算读取特定 VNF 实例的信息,它会向“单个 VNF 实例”资源发送一个 GET 请求,该请求通过其资源 URI 中的适当 VNF 实例标识符寻址,并且 URI 中包含的 API 主要版本为“v2”。

  2. VNFM 返回一个“200 OK”响应,其中包含有效负载主体中的一个“VnfInstance”类型的数据结构。

2) 获取操作状态操作的流程

  • 列出 VNF 发生 (GET /vnf_lcm_op_occs)

../../_images/0311.png

该过程包括以下步骤,如上述序列图所示

  1. 客户端向“VNF LCM 操作发生”资源发送一个 GET 请求,URI 中包含的 API 主要版本为“v2”,并且可以使用符合 ETSI GS NFV SOL013 的 5.2 条款的基于属性的过滤表达式 [6]

  2. VNFM 返回一个“200 OK”响应,其中包含有效负载主体中的零个或多个“VnfLcmOpOcc”类型的数据结构。

  • 显示 VNF 发生 (GET /vnf_lcm_op_occs/{vnfLcmOpOccId})

../../_images/047.png

该过程包括以下步骤,如上述序列图所示

  1. 客户端向“单个 VNF LCM 操作发生”资源发送一个 GET 请求,URI 中包含的 API 主要版本为“v2”,该请求通过其资源 URI 中的适当 VNF LCM 操作发生标识符寻址。

  2. VNFM 向客户端返回一个“200 OK”响应,并在有效负载主体中包含一个“VnfLcmOpOcc”类型的数据结构。

3) 管理订阅的流程

  • 创建订阅 (POST /subscriptions)

  • 测试通知端点 (GET)

../../_images/056.png

该过程包括以下步骤,如上述序列图所示

  1. 客户端向“subscriptions”资源发送一个 POST 请求,URI 中包含的 API 主要版本为“v2”。

  2. VNFM 发送通知以测试从创建订阅请求获得的消息通知端点。

  3. 客户端返回一个“204 No Content”响应以指示成功。

  4. VNFM 返回一个“201 Created”响应。

  • 列出订阅 (GET /subscriptions)

../../_images/063.png

该过程包括以下步骤,如上述序列图所示

  1. 客户端向“subscriptions”资源发送一个 GET 请求,URI 中包含的 API 主要版本为“v2”。

  2. VNFM 返回一个“200 OK”响应,其中包含客户端创建的所有现有订阅的零个或多个表示形式。

  • 显示订阅 (GET /subscriptions/{subscriptionId})

../../_images/071.png

该过程包括以下步骤,如上述序列图所示

  1. 客户端向“subscriptions”资源发送一个 GET 请求,URI 中包含的 API 主要版本为“v2”,该请求通过其资源 URI 中的适当 VNF LCM 操作发生标识符寻址。

  2. VNFM 返回一个“200 OK”响应,其中包含该单个订阅的表示形式。

  • 删除订阅 (DELETE /subscriptions/{subscriptionId})

../../_images/081.png

该过程包括以下步骤,如上述序列图所示

  1. 客户端向“subscriptions”资源发送一个 DELETE 请求,URI 中包含的 API 主要版本为“v2”,该请求通过其资源 URI 中的适当 VNF LCM 操作发生标识符寻址。

  2. 如果订阅已成功终止,VNFM 返回一个“204 No Content”响应。

4) 发送通知的流程

  • 通知端点 (POST)
    • 先决条件:请求节点之前已订阅与 VNF 生命周期管理相关的通知。

    • 当 LCM 请求被接受时,操作状态会发送到通过“Subscription API”注册订阅的消费者。这将为每个注册发送。

    • 可以通知以下操作状态:STARTING/PROCESSING/COMPLETED/ROLLINGBACK/ROLLEDBACK/FAILED_TEMP

    • STARTING 状态从 Tacker Server 发送,其他 Operation_state 通知从 Tacker-Conductor 发送。

    • 修改 VNF 不会发送 STARTING 状态。

    • 收到通知信息的客户端向 Tacker 发送“204 No Content”。

数据模型影响

在本规范中,使用 ETSI NFV SOL002 v3.3.1 [4] 和 SOL003 v3.3.1 [5],应在 API 验证中支持所有定义的属性。此外,应在数据库中实现响应中的所有数据模型,以便在 VNF 生命周期管理中灵活地更改逻辑。

从上述观点来看,更改数据库表有两个动机。

第一种是来自支持 v2 API 中的新属性。根据 SOL v3,从 v2 API 中添加了新的属性。但是,由于所有新属性都在当前 JSON 数据类型中描述,因此不需要更改数据模型。

第二种是来自支持 SOL 文档中定义的所有属性。在 v1 API 中,有限的属性在 API 验证中受支持并存储在数据库中。需要更改数据库表以存储其他受支持的属性。

以下显示了 v2 API 的数据库表。作为参考信息,还显示了与 v1 API 的区别。

注意

由于 Tacker 为每个主要版本管理一个单独的数据库,因此它们的设计或更改不会相互影响。

  • VnfInstance

    v1 API (vnf_instances)

    v2 API (VnfInstanceV2)

    从 v1 API 的更改

    数据类型

    id

    id

    数据类型已更改

    varchar(36) NOT NULL -> varchar(255) NOT NULL

    vnf_instance_name

    vnfInstanceName

    已重命名

    <no_changed>

    vnf_instance_description

    vnfInstanceDescription

    已重命名且数据类型已更改

    varchar(1024) DEFAULT NULL -> text DEFAULT NULL

    vnfd_id

    vnfdId

    已重命名且数据类型已更改

    varchar(36) NOT NULL -> varchar(255) NOT NULL

    vnf_provider

    vnfProvider

    已重命名

    <no_changed>

    vnf_product_name

    vnfProductName

    已重命名

    <no_changed>

    vnf_software_version

    vnfSoftwareVersion

    已重命名

    <no_changed>

    vnfd_version

    vnfdVersion

    已重命名

    <no_changed>

    vnfConfigurableProperties

    已添加

    json DEFAULT NULL

    vim_connection_info

    vimConnectionInfo

    已重命名

    <no_changed>

    instantiation_state

    instantiationState

    数据类型已更改

    varchar(255) NOT NULL -> enum(‘NOT_INSTANTIATED’,’INSTANTIATED’) NOT NULL

    instantiatedVnfInfo

    已添加
    instantiatedVnfInfo 字段对应于 v1 API 中的 vnf_instantiated_info 已合并到 VnfInstanceV2 表中,并直接存储 json 数据。

    json DEFAULT NULL

    vnf_metadata

    metadata

    已重命名

    <no_changed>

    extensions

    已添加

    json DEFAULT NULL

    task_state

    已删除

    tenant_id

    已删除

    vnf_pkg_id

    已删除

    created_at

    已删除

    updated_at

    已删除

    deleted_at

    已删除

    deleted

    已删除

  • VnfLcmOpOcc

    v1 API (vnf_lcm_op_occs)

    v2 API (VnfLcmOpOccV2)

    从 v1 API 的更改

    数据类型

    id

    id

    数据类型已更改

    varchar(36) NOT NULL -> varchar(255) NOT NULL

    operation_state

    operationState

    已重命名且数据类型已更改

    varchar(16) DEFAULT NULL -> enum(‘STARTING’,’PROCESSING’,’COMPLETED’,’FAILED_TEMP’,’FAILED’,’ROLLING_BACK’,’ROLLED_BACK’) NOT NULL

    state_entered_time

    stateEnteredTime

    已重命名

    <no_changed>

    start_time

    startTime

    已重命名

    <no_changed>

    vnf_instance_id

    vnfInstanceId

    已重命名且数据类型已更改

    varchar(36) NOT NULL -> varchar(255) NOT NULL

    grant_id

    grantId

    数据类型已更改

    varchar(36) NOT NULL -> varchar(255) NOT NULL

    operation

    operation

    数据类型已更改

    varchar(16) DEFAULT NULL -> enum(‘INSTANTIATE’,’SCALE’,’SCALE_TO_LEVEL’,’CHANGE_FLAVOUR’,’TERMINATE’,’HEAL’,’OPERATE’,’CHANGE_EXT_CONN’,’MODIFY_INFO’,’CREATE_SNAPSHOT’,’REVERT_TO_SNAPSHOT’,’CHANGE_VNFPKG’) NOT NULL

    is_automatic_invocation

    isAutomaticInvocation

    已重命名

    <no_changed>

    operation_params

    operationParams

    已重命名

    <no_changed>

    is_cancel_pending

    isCancelPending

    已重命名

    <no_changed>

    cancelMode

    已添加

    enum(‘GRACEFUL’,’FORCEFUL’) DEFAULT NULL

    error

    error

    <no_changed>

    <no_changed>

    resource_changes

    resourceChanges

    已重命名

    <no_changed>

    changed_info

    changedInfo

    已重命名

    <no_changed>

    changed_ext_connectivity

    changedExtConnectivity

    已重命名

    <no_changed>

    modificationsTriggeredByVnfPkgChange

    已添加
    SOL003 v3.3.1 [5] “F.2.1 FEAT02: VNF 软件修改”中定义的新字段。

    json DEFAULT NULL

    vnfSnapshotInfoId

    已添加
    SOL003 v3.3.1 [5] “F.2.4 FEAT15: VNF 快照”中定义的新字段。

    varchar(255) DEFAULT NULL

    error_point

    已删除

    created_at

    已删除

    updated_at

    已删除

    deleted_at

    已删除

    deleted

    已删除

  • LccnSubscription

    v1 API (vnf_lcm_subscriptions)

    v2 API (LccnSubscriptionV2)

    从 v1 API 的更改

    数据类型

    id

    id

    数据类型已更改

    varchar(36) NOT NULL -> varchar(255) NOT NULL

    filter

    已添加
    在 v2 API 数据模型中,filter 字段合并到 LccnSubscriptionV2 表中。
    filter 字段表示 v1 API 中的 vnf_lcm_filters 表。

    json DEFAULT NULL

    callback_uri

    callbackUri

    已重命名

    <no_changed>

    详细程度

    已添加
    SOL003 v3.3.1 [5] “F.2.5.3 VNF LCM 操作发生通知的详细程度”中定义的新字段。

    enum(‘FULL’,’SHORT’) NOT NULL,

    subscription_authentication

    authentication

    已重命名

    <no_changed>

    created_at

    已删除

    updated_at

    已删除

    deleted_at

    已删除

    deleted

    已删除

REST API 影响

在本规范中,使用 ETSI NFV SOL002 v3.3.1 [4] 和 SOL003 v3.3.1 [5],应在 API 验证中支持所有定义的属性。此外,应在数据库中实现响应中的所有数据模型,以便在 VNF 生命周期管理中灵活地更改逻辑。

“_link”属性是唯一的例外,因为并非 VNF 生命周期管理接口中的所有操作都已实现。应过滤到未实现操作的某些链接。

  • 名称: 列出 VNF 实例
    描述: 查询 VNF 实例资源
    方法类型: GET
    资源的 URL: /vnflcm/v2/vnf_instances
    GET 方法支持的 URI 查询参数:

    URI 查询参数

    基数

    API v2 (Xena) 中支持

    API v1 (Wallaby) 中支持

    filter

    0..1

    all_fields

    0..1

    fields

    0..1

    exclude_fields

    0..1

    exclude_default

    0..1

    nextpage_opaque_marker

    0..1

    响应:

    数据类型

    基数

    响应代码

    描述

    VnfInstance

    0..N

    成功: 200

    已成功查询零个或多个 VNF 实例的信息。

    ProblemDetails

    1

    错误: 400

    无效的基于属性的过滤表达式。

    ProblemDetails

    1

    错误: 400

    无效的属性选择器。

    ProblemDetails

    1

    错误: 400

    响应过大。

    ProblemDetails

    请参阅 [6] 的 6.4 条款

    错误:4xx、5xx

    可以返回 ETSI GS NFV-SOL 013 [6] 的 6.4 条款中定义的任何常见错误响应代码。

    属性名称

    数据类型

    基数

    API v2 (Xena) 中支持

    API v1 (Wallaby) 中支持

    描述

    id

    标识符

    1

    vnfInstanceName

    字符串

    0..1

    vnfInstanceDescription

    字符串

    0..1

    vnfdId

    标识符

    1

    vnfProvider

    字符串

    1

    vnfProductName

    字符串

    1

    vnfSoftwareVersion

    版本

    1

    vnfdVersion

    版本

    1

    vnfConfigurableProperties

    KeyValuePairs

    0..1

    vimConnectionInfo

    map(VimConnectionInfo)

    0..N

    在 API v2 中,数据类型已从 VimConnectionInfo 更改为 map(VimConnectionInfo)。

    instantiationState

    Enum

    1

    instantiatedVnfInfo

    结构 (内联)

    0..1

    >flavourId

    IdentifierInVnfd

    1

    >vnfState

    VnfOperationalStateType

    1

    >scaleStatus

    ScaleInfo

    0..N

    >maxScaleLevels

    ScaleInfo

    0..N

    未定义

    API v2 中的新属性。

    >extCpInfo

    VnfExtCpInfo

    1..N

    >extVirtualLinkInfo

    ExtVirtualLinkInfo

    0..N

    >extManagedVirtualLinkInfo

    ExtManagedVirtualLinkInfo

    0..N

    >monitoringParameters

    MonitoringParameter

    0..N

    >localizationLanguage

    字符串

    0..1

    >vnfcResourceInfo

    VnfcResourceInfo

    0..N

    >vnfVirtualLinkResourceInfo

    VnfVirtualLinkResourceInfo

    0..N

    >virtualStorageResourceInfo

    VirtualStorageResourceInfo

    0..N

    >vnfcInfo

    VnfcInfo

    0..N

    metadata

    KeyValuePairs

    0..1

    extensions

    KeyValuePairs

    0..1

    _links

    结构 (内联)

    1

    >self

    链接

    1

    >indicators

    链接

    0..1

    >instantiate

    链接

    0..1

    >terminate

    链接

    0..1

    >scale

    链接

    0..1

    >scaleToLevel

    链接

    0..1

    >changeFlavour

    链接

    0..1

    >heal

    链接

    0..1

    >operate

    链接

    0..1

    >changeExtConn

    链接

    0..1

    >createSnapshot

    链接

    0..1

    未定义

    API v2 中的新属性。

    >revertToSnapshot

    链接

    0..1

    未定义

    API v2 中的新属性。

  • 名称: 显示 VNF 实例
    描述: 查询单个 VNF 实例资源
    方法类型: GET
    资源的 URL: /vnflcm/v2/vnf_instances/{vnfInstanceId}
    此资源的资源 URI 变量:

    名称

    描述

    vnfInstanceId

    vnfInstance 的标识符。

    响应:

    数据类型

    基数

    响应代码

    描述

    VnfInstance

    1

    成功: 200

    已成功读取单个 VNF 实例的信息。

    ProblemDetails

    请参阅 [6] 的 6.4 条款

    错误:4xx、5xx

    可以返回 ETSI GS NFV-SOL 013 [6] 的 6.4 条款中定义的任何常见错误响应代码。

    此 API 在有效负载主体中返回“VndInstance”类型的数据。 “VnfInstance” 的支持属性与“列出 VNF 实例”的属性相同。

  • 名称: 列出 VNF LCM 操作发生
    描述: 请求 VNF 生命周期管理操作发生
    方法类型: GET
    资源的 URL: /vnflcm/v2/vnf_lcm_op_occs
    GET 方法支持的 URI 查询参数:

    URI 查询参数

    基数

    API v2 (Xena) 中支持

    API v1 (Wallaby) 中支持

    filter

    0..1

    all_fields

    0..1

    fields

    0..1

    exclude_fields

    0..1

    exclude_default

    0..1

    nextpage_opaque_marker

    0..1

    响应:

    数据类型

    基数

    响应代码

    描述

    VnfLcmOpOcc

    0..N

    成功: 200

    已成功查询零个或多个 VNF 生命周期管理操作发生的的状态信息。

    ProblemDetails

    1

    错误: 400

    无效的基于属性的过滤表达式。

    ProblemDetails

    1

    错误: 400

    无效的属性选择器。

    ProblemDetails

    1

    错误: 400

    响应过大。

    ProblemDetails

    请参阅 [6] 的 6.4 条款

    错误:4xx、5xx

    可以返回 ETSI GS NFV-SOL 013 [6] 的 6.4 条款中定义的任何常见错误响应代码。

    属性名称

    数据类型

    基数

    API v2 (Xena) 中支持

    API v1 (Wallaby) 中支持

    描述

    id

    标识符

    1

    operationState

    LcmOperationStateType

    1

    stateEnteredTime

    DateTime

    1

    startTime

    DateTime

    1

    vnfInstanceId

    标识符

    1

    grantId

    标识符

    0..1

    operation

    LcmOperationType

    1

    isAutomaticInvocation

    布尔值

    1

    operationParams

    Object

    0..1

    isCancelPending

    布尔值

    1

    cancelMode

    CancelModeType

    0..1

    error

    ProblemDetails

    0..1

    resourceChanges

    结构 (内联)

    0..1

    >affectedVnfcs

    AffectedVnfc

    0..N

    >affectedVirtualLinks

    AffectedVirtualLink

    0..N

    >affectedExtLinkPorts

    AffectedExtLinkPort

    0..N

    未定义

    API v2 中的新属性。

    >affectedVirtualStorages

    AffectedVirtualStorage

    0..N

    changedInfo

    VnfInfoModifications

    0..1

    changedExtConnectivity

    ExtVirtualLinkInfo

    0..N

    modificationsTriggeredByVnfPkgChange

    ModificationsTriggeredByVnfPkgChange

    0..1

    未定义

    API v2 中的新属性。

    vnfSnapshotInfoId

    标识符

    0..1

    未定义

    API v2 中的新属性。

    _links

    结构 (内联)

    1

    >self

    链接

    1

    >vnfInstance

    链接

    1

    >grant

    链接

    0..1

    >cancel

    链接

    0..1

    >retry

    链接

    0..1

    >rollback

    链接

    0..1

    >fail

    链接

    0..1

    >vnfSnapshot

    链接

    0..1

  • 名称: 显示 LCM 操作发生
    描述: 请求 VNF 生命周期管理操作发生
    方法类型: GET
    资源的 URL: /vnflcm/v2/vnf_lcm_op_occs/{vnfLcmOpOccId}
    此资源的资源 URI 变量:

    名称

    描述

    vnfLcmOpOccId

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

    响应:

    数据类型

    基数

    响应代码

    描述

    VnfLcmOpOcc

    1

    成功: 200

    VNF 生命周期管理操作发生的状态信息。

    ProblemDetails

    请参阅 [6] 的 6.4 条款

    错误:4xx、5xx

    可以返回 ETSI GS NFV-SOL 013 [6] 的 6.4 条款中定义的任何常见错误响应代码。

    此 API 在有效负载主体中返回“VnfLcmOpOcc”类型的数据。 “VnfLcmOpOcc” 的支持属性与“列出 Lcm 操作发生”的属性相同。

  • 名称:创建订阅
    描述: 订阅与 VNF 生命周期管理相关的通知
    方法类型: POST
    资源的 URL:/vnflcm/v2/subscriptions
    请求:

    数据类型

    基数

    描述

    LccnSubscriptionRequest

    1

    订阅的参数。

    属性名称

    数据类型

    基数

    API v2 (Xena) 中支持

    API v1 (Wallaby) 中支持

    描述

    filter

    LifecycleChangeNotificationFilter

    0..1

    callbackUri

    Uri

    1

    authentication

    SubscriptionAuthentication

    0..1

    详细程度

    LcmOpOccNotificationVerbosityType

    0..1

    未定义

    API v2 中的新属性。

    响应:

    数据类型

    基数

    响应代码

    描述

    LccnSubscription

    1

    成功: 201

    已成功创建订阅。

    ProblemDetails

    1

    错误: 422

    有效负载体的内容类型受支持,并且请求的有效负载体包含语法上正确的数据,但无法处理该数据。

    ProblemDetails

    请参阅 [6] 的 6.4 条。

    错误:4xx、5xx

    可以返回 ETSI GS NFV-SOL 013 的 6.4 条中定义的任何常见错误响应代码 [6]

    注意

    如果另一个具有相同过滤器和回调 URI 的“单个订阅”资源已存在,Tacker 允许创建“单个订阅”资源(在这种情况下,它将返回“201 Created”响应代码)。

    属性名称

    数据类型

    基数

    API v2 (Xena) 中支持

    API v1 (Wallaby) 中支持

    描述

    id

    标识符

    1

    filter

    LifecycleChangeNotificationFilter

    0..1

    callbackUri

    Uri

    1

    详细程度

    LcmOpOccNotificationVerbosityType

    0..1

    未定义

    API v2 中的新属性。

    _links

    结构 (内联)

    1

    >self

    链接

    1

  • 名称:列出订阅
    描述:请求列出所有现有订阅
    方法类型: GET
    资源的 URL:/vnflcm/v2/subscriptions
    GET 方法支持的 URI 查询参数:

    URI 查询参数

    基数

    API v2 (Xena) 中支持

    API v1 (Wallaby) 中支持

    filter

    0..1

    nextpage_opaque_marker

    0..1

    响应:

    数据类型

    基数

    响应代码

    描述

    LccnSubscription

    0..N

    成功: 200

    已成功查询订阅列表。

    ProblemDetails

    1

    错误: 400

    无效的基于属性的过滤表达式。

    ProblemDetails

    1

    错误: 400

    响应过大。

    ProblemDetails

    请参阅 [6] 的 6.4 条。

    错误:4xx、5xx

    可以返回 ETSI GS NFV-SOL 013 的 6.4 条中定义的任何常见错误响应代码 [6]

    此 API 在有效载荷主体中返回“LccnSubscription”数据类型。“LccnSubscription”的支持属性与创建订阅的属性相同。

  • 名称:查询订阅
    描述:请求通过其 ID 显示单个订阅资源
    方法类型: GET
    资源的 URL:/vnflcm/v2/subscriptions/{subscriptionId}
    此资源的资源 URI 变量:

    名称

    描述

    subscriptionId

    订阅的标识符。

    响应:

    数据类型

    基数

    响应代码

    描述

    LccnSubscription

    1

    成功: 200

    操作已成功完成。

    ProblemDetails

    请参阅 [6] 的 6.4 条。

    错误:4xx、5xx

    可以返回 ETSI GS NFV-SOL 013 的 6.4 条中定义的任何常见错误响应代码 [6]

    此 API 在有效载荷主体中返回“LccnSubscription”数据类型。“LccnSubscription”的支持属性与创建订阅的属性相同。

  • 名称:删除订阅
    描述:请求通过其 ID 删除单个订阅资源
    方法类型:DELETE
    资源的 URL:/vnflcm/v2/subscriptions/{subscriptionId}
    此资源的资源 URI 变量:

    名称

    描述

    subscriptionId

    订阅的标识符。

    响应:

    数据类型

    基数

    响应代码

    描述

    n/a

    成功:204

    单个订阅资源已成功删除。

    ProblemDetails

    请参阅 [6] 的 6.4 条。

    错误:4xx、5xx

    可以返回 ETSI GS NFV-SOL 013 的 6.4 条中定义的任何常见错误响应代码 [6]

  • 名称: 通知端点
    描述:发送与 VNF 生命周期更改相关的通知

    注意

    此 API 由 Tacker 调用至客户端。

    方法类型: POST
    资源的 URL:资源 URI 由客户端在创建订阅时提供。
    请求:

    数据类型

    基数

    描述

    VnfLcmOperationOccurrenceNotification

    1

    关于由 VNF LCM 操作发生触发的生命周期变化的通知。

    VnfIdentifierCreationNotification

    1

    关于 VNF 标识符的创建以及相关的单个 VNF 实例资源的通知。

    VnfIdentifierDeletionNotification

    1

    关于 VNF 标识符及其相关的单个 VNF 实例资源的删除的通知。

    • VnfLcmOperationOccurrenceNotification

    属性名称

    数据类型

    基数

    API v2 (Xena) 中支持

    API v1 (Wallaby) 中支持

    描述

    id

    标识符

    1

    notificationType

    字符串

    1

    subscriptionId

    标识符

    1

    timeStamp

    DateTime

    1

    notificationStatus

    Enum

    1

    operationState

    LcmOperationStateType

    1

    vnfInstanceId

    标识符

    1

    operation

    LcmOperationType

    1

    isAutomaticInvocation

    布尔值

    1

    详细程度

    LcmOpOccNotificationVerbosityType

    0..1

    未定义

    API v2 中的新属性。

    vnfLcmOpOccId

    标识符

    1

    affectedVnfcs

    AffectedVnfc

    0..N

    affectedVirtualLinks

    AffectedVirtualLink

    0..N

    affectedExtLinkPorts

    AffectedExtLinkPort

    0..N

    未定义

    API v2 中的新属性。

    affectedVirtualStorages

    AffectedVirtualStorage

    0..N

    changedInfo

    VnfInfoModifications

    0..1

    changedExtConnectivity

    ExtVirtualLinkInfo

    0..N

    modificationsTriggeredByVnfPkgChange

    ModificationsTriggeredByVnfPkgChange

    0..1

    未定义

    API v2 中的新属性。

    error

    ProblemDetails

    0..1

    _links

    LccnLinks

    1

    • VnfIdentifierCreationNotification

    属性名称

    数据类型

    基数

    API v2 (Xena) 中支持

    API v1 (Wallaby) 中支持

    描述

    id

    标识符

    1

    notificationType

    字符串

    1

    subscriptionId

    标识符

    1

    timeStamp

    DateTime

    1

    vnfInstanceId

    标识符

    1

    _links

    LccnLinks

    1

    • VnfIdentifierDeletionNotification

    属性名称

    数据类型

    基数

    API v2 (Xena) 中支持

    API v1 (Wallaby) 中支持

    描述

    id

    标识符

    1

    notificationType

    字符串

    1

    subscriptionId

    标识符

    1

    timeStamp

    DateTime

    1

    vnfInstanceId

    标识符

    1

    _links

    LccnLinks

    1

    响应:

    数据类型

    基数

    响应代码

    描述

    n/a

    成功:204

    通知已成功传递。

    ProblemDetails

    请参阅 [6] 的 6.4 条。

    错误:4xx、5xx

    可以返回 ETSI GS NFV-SOL 013 的 6.4 条中定义的任何常见错误响应代码 [6]

  • 名称:测试通知端点
    描述:该方法允许服务器测试客户端提供的通知端点。

    注意

    此 API 由 Tacker 调用至客户端。

    方法类型: GET
    资源的 URL:资源 URI 由客户端在创建订阅时提供。
    响应:

    数据类型

    基数

    响应代码

    描述

    n/a

    成功:204

    通知端点已成功测试。

    ProblemDetails

    请参阅 [6] 的 6.4 条。

    错误:4xx、5xx

    可以返回 ETSI GS NFV-SOL 013 的 6.4 条中定义的任何常见错误响应代码 [6]

    注意

    如果此 API 返回错误响应,则触发它的订阅 API 将返回 400 错误响应。

安全影响

通知影响

其他最终用户影响

CLI 选项可以更改以在 v1 API 和 v2 API 之间切换。

性能影响

其他部署者影响

开发人员影响

  • python-tackerclient 需要支持新的属性来设置 API 版本。

实现

负责人

野口宏文 <hirofumi.noguchi.rs@hco.ntt.co.jp>

工作项

  • 将新的版本 API 端点添加到 Tacker-server。

  • 添加新的单元和功能测试。

  • 更新 Tacker 的 API 文档。

依赖项

测试

将为 VNF 实例的 VNF 生命周期管理添加单元和功能测试用例。

文档影响

将添加完整的用户指南,以说明如何使用示例调用 VNF 实例的 VNF 生命周期管理。

参考资料