支持 NFV SOL_v3 获取 LCM 信息¶
蓝图
https://blueprints.launchpad.net/tacker/+spec/support-nfv-solv3-query-vnf-instances
https://blueprints.launchpad.net/tacker/+spec/support-nfv-solv3-query-operation-occurrences
https://blueprints.launchpad.net/tacker/+spec/support-nfv-solv3-subscriptions
此规范支持符合 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)
该过程包括以下步骤,如上述序列图所示
先决条件:已创建表示 VNF 实例的资源。
如果客户端打算查询所有 VNF 实例,它会向“VNF 实例”资源发送一个 GET 请求,URI 中包含的 API 主要版本为“v2”。
VNFM 返回一个“200 OK”响应,其中包含有效负载主体中的零个或多个“VnfInstance”类型的数据结构。
显示 VNF (GET /vnf_instances/{vnfInstanceId})
该过程包括以下步骤,如上述序列图所示
先决条件:已创建表示 VNF 实例的资源。
如果客户端打算读取特定 VNF 实例的信息,它会向“单个 VNF 实例”资源发送一个 GET 请求,该请求通过其资源 URI 中的适当 VNF 实例标识符寻址,并且 URI 中包含的 API 主要版本为“v2”。
VNFM 返回一个“200 OK”响应,其中包含有效负载主体中的一个“VnfInstance”类型的数据结构。
2) 获取操作状态操作的流程¶
列出 VNF 发生 (GET /vnf_lcm_op_occs)
该过程包括以下步骤,如上述序列图所示
客户端向“VNF LCM 操作发生”资源发送一个 GET 请求,URI 中包含的 API 主要版本为“v2”,并且可以使用符合 ETSI GS NFV SOL013 的 5.2 条款的基于属性的过滤表达式 [6]。
VNFM 返回一个“200 OK”响应,其中包含有效负载主体中的零个或多个“VnfLcmOpOcc”类型的数据结构。
显示 VNF 发生 (GET /vnf_lcm_op_occs/{vnfLcmOpOccId})
该过程包括以下步骤,如上述序列图所示
客户端向“单个 VNF LCM 操作发生”资源发送一个 GET 请求,URI 中包含的 API 主要版本为“v2”,该请求通过其资源 URI 中的适当 VNF LCM 操作发生标识符寻址。
VNFM 向客户端返回一个“200 OK”响应,并在有效负载主体中包含一个“VnfLcmOpOcc”类型的数据结构。
3) 管理订阅的流程¶
创建订阅 (POST /subscriptions)
测试通知端点 (GET)
该过程包括以下步骤,如上述序列图所示
客户端向“subscriptions”资源发送一个 POST 请求,URI 中包含的 API 主要版本为“v2”。
VNFM 发送通知以测试从创建订阅请求获得的消息通知端点。
客户端返回一个“204 No Content”响应以指示成功。
VNFM 返回一个“201 Created”响应。
列出订阅 (GET /subscriptions)
该过程包括以下步骤,如上述序列图所示
客户端向“subscriptions”资源发送一个 GET 请求,URI 中包含的 API 主要版本为“v2”。
VNFM 返回一个“200 OK”响应,其中包含客户端创建的所有现有订阅的零个或多个表示形式。
显示订阅 (GET /subscriptions/{subscriptionId})
该过程包括以下步骤,如上述序列图所示
客户端向“subscriptions”资源发送一个 GET 请求,URI 中包含的 API 主要版本为“v2”,该请求通过其资源 URI 中的适当 VNF LCM 操作发生标识符寻址。
VNFM 返回一个“200 OK”响应,其中包含该单个订阅的表示形式。
删除订阅 (DELETE /subscriptions/{subscriptionId})
该过程包括以下步骤,如上述序列图所示
客户端向“subscriptions”资源发送一个 DELETE 请求,URI 中包含的 API 主要版本为“v2”,该请求通过其资源 URI 中的适当 VNF LCM 操作发生标识符寻址。
如果订阅已成功终止,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_instancesGET 方法支持的 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_occsGET 方法支持的 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/subscriptionsGET 方法支持的 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 版本。
实现¶
负责人¶
工作项¶
将新的版本 API 端点添加到 Tacker-server。
添加新的单元和功能测试。
更新 Tacker 的 API 文档。
依赖项¶
无
测试¶
将为 VNF 实例的 VNF 生命周期管理添加单元和功能测试用例。
文档影响¶
将添加完整的用户指南,以说明如何使用示例调用 VNF 实例的 VNF 生命周期管理。