虚拟化网络功能故障管理接口 (VNF FM) v1¶
虚拟化网络功能故障管理接口 (VNF FM)¶
此接口管理 VNF 实例的 VNF 故障管理操作。
此接口允许 NFVO 调用针对 VNFM 的 VNF 实例的 VNF 故障管理操作。此接口的详细信息在 SOL002 v3.3.1 第 7 条中描述。某些特定标准的参数需要参考 SOL013 v3.4.1 第 5 条。
GET 方法获取所有告警,允许用户根据请求中的查询参数过滤告警。
如果 API 消费者打算查询所有告警,则它向“Alarms”资源发送 GET 请求。VNFM 向 API 消费者返回“200 OK”响应,并在有效负载主体中包含零个或多个“Alarm”类型的数据结构。
属性选择器允许 API 消费者选择响应中包含哪些属性。可以设置 *all_fields*、*fields*、*exclude_fields* 和 *exclude_default* 作为查询参数。
基于属性的过滤表达式。Tacker 在基于属性的过滤表达式中应支持以下属性名称:id, managedObjectId, rootCauseFaultyResource/faultyResourceType, eventType, perceivedSeverity, probableCause。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
401 - 未授权 |
用户必须在发出请求之前进行身份验证。 |
406 - 不可接受 |
不可接受,请求的资源只能生成根据请求中发送的“Accept”标头不可接受的内容。 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
id |
body |
字符串 |
此告警信息元素的标识符。 |
managedObjectId |
body |
字符串 |
受影响 VNF 实例的标识符。 |
vnfcInstanceIds (可选) |
body |
数组 |
受影响的 VNFC 实例的标识符。 |
rootCauseFaultyResource (可选) |
body |
对象 |
导致 VNF 故障的虚拟化资源。如果告警影响虚拟化资源,则应存在。 |
faultyResource |
body |
对象 |
识别有故障的资源实例及其管理实体的相关信息。 |
vimConnectionId (可选) |
body |
字符串 |
用于管理资源的 VIM 连接的标识符。仅当直接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。通过 vimConnectionId 引用,可以从“VnfInstance”结构体的“vimConnectionInfo”属性中获取适用的“VimConnectionInfo”结构。 |
resourceProviderId (可选) |
body |
字符串 |
负责资源管理的实体的标识符。仅当间接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。标识方案超出本文档的范围。 |
resourceId |
body |
字符串 |
VIM 或资源提供商范围内的资源的标识符。 |
vimLevelResourceType (可选) |
body |
字符串 |
VIM 或资源提供商范围内的资源类型。 |
faultyResourceType |
body |
对象 |
有故障的资源的类型。COMPUTE:虚拟计算资源,STORAGE:虚拟存储资源,NETWORK:虚拟网络资源。 |
alarmRaisedTime |
body |
字符串 |
指示由被管理对象引发告警的时间戳。 |
alarmChangedTime (可选) |
body |
字符串 |
指示上次更改告警的时间戳。如果已更新告警,则应存在。 |
alarmClearedTime (可选) |
body |
字符串 |
指示清除告警的时间戳。如果已清除告警,则应存在。 |
alarmAcknowledgedTime (可选) |
body |
字符串 |
指示确认告警的时间戳。如果已确认告警,则应存在。 |
ackState |
body |
字符串 |
告警的确认状态。允许的值:UNACKNOWLEDGED, ACKNOWLEDGED。 |
perceivedSeverity |
body |
对象 |
被管理对象故障的感知严重程度。CRITICAL,MAJOR,MINOR, WARNING,INDETERMINATE,CLEARED。 |
eventTime |
body |
字符串 |
指示观察到故障的时间戳。 |
eventType |
body |
对象 |
事件类型。 |
faultType (可选) |
body |
字符串 |
用于澄清故障类型的附加信息。 |
probableCause |
body |
字符串 |
有关故障的可能原因的信息。 |
isRootCause |
body |
bool |
属性指示此故障是否是其他相关告警的根本原因。如果为 true,则属性“correlatedAlarmIds”中列出的告警是由此故障引起的。 |
correlatedAlarmIds (可选) |
body |
数组 |
与此故障相关的其他告警的标识符列表。 |
faultDetails (可选) |
body |
数组 |
提供有关故障的附加信息。 |
_links |
body |
对象 |
此资源的链接。 |
self |
body |
对象 |
此资源的 URI。 |
objectInstance (可选) |
body |
对象 |
链接到表示与通知的告警相关的 VNF 实例的资源。如果 VNF 实例信息可以作为资源访问,则应存在。 |
响应示例¶
[
{
"id": "78a39661-60a8-4824-b989-88c1b0c3534a",
"managedObjectId": "c61314d0-f583-4ab3-a457-46426bce02d3",
"rootCauseFaultyResource": {
"faultyResource": {
"vimConnectionId": "vim1",
"resourceId": "4e6ccbe1-38ec-4b1b-a278-64de09ba01b3",
"vimLevelResourceType": "OS::Nova::Server"
},
"faultyResourceType": "COMPUTE"
},
"alarmRaisedTime": "2021-09-06T10:21:03Z",
"alarmChangedTime": "2021-09-06T10:21:03Z",
"alarmClearedTime": "2021-09-06T10:21:03Z",
"alarmAcknowledgedTime": "2021-09-06T10:21:03Z",
"ackState": "UNACKNOWLEDGED",
"perceivedSeverity": "WARNING",
"eventTime": "2021-09-06T10:21:03Z",
"eventType": "EQUIPMENT_ALARM",
"faultType": "Fault Type",
"probableCause": "The server cannot be connected.",
"isRootCause": false,
"correlatedAlarmIds": [
"c88b624e-e997-4b17-b674-10ca2bab62e0",
"c16d41fd-12e2-49a6-bb17-72faf702353f"
],
"faultDetails": [
"Fault",
"Details"
],
"_links": {
"self": {
"href": "/vnffm/v1/alarms/78a39661-60a8-4824-b989-88c1b0c3534a"
},
"objectInstance": {
"href": "/vnflcm/v1/vnf_instances/0e5f3086-4e79-47ed-a694-54c29155fa26"
}
}
}
]
GET 方法获取 Tacker 中指定的告警。
如果 API 消费者打算读取特定告警,则它向资源 URI 中适当的告警标识符寻址的“Individual alarm”资源发送 GET 请求。VNFM 向 API 消费者返回“200 OK”响应,并在有效负载主体中包含“Alarm”类型的数据结构。如果发生故障,则在响应中提供适当的错误信息。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
401 - 未授权 |
用户必须在发出请求之前进行身份验证。 |
404 - Not Found |
找不到请求的资源。 |
406 - 不可接受 |
不可接受,请求的资源只能生成根据请求中发送的“Accept”标头不可接受的内容。 |
请求参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
alarmId |
路径 |
字符串 |
此告警信息元素的标识符。 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
id |
body |
字符串 |
此告警信息元素的标识符。 |
managedObjectId |
body |
字符串 |
受影响 VNF 实例的标识符。 |
vnfcInstanceIds (可选) |
body |
数组 |
受影响的 VNFC 实例的标识符。 |
rootCauseFaultyResource (可选) |
body |
对象 |
导致 VNF 故障的虚拟化资源。如果告警影响虚拟化资源,则应存在。 |
faultyResource |
body |
对象 |
识别有故障的资源实例及其管理实体的相关信息。 |
vimConnectionId (可选) |
body |
字符串 |
用于管理资源的 VIM 连接的标识符。仅当直接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。通过 vimConnectionId 引用,可以从“VnfInstance”结构体的“vimConnectionInfo”属性中获取适用的“VimConnectionInfo”结构。 |
resourceProviderId (可选) |
body |
字符串 |
负责资源管理的实体的标识符。仅当间接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。标识方案超出本文档的范围。 |
resourceId |
body |
字符串 |
VIM 或资源提供商范围内的资源的标识符。 |
vimLevelResourceType (可选) |
body |
字符串 |
VIM 或资源提供商范围内的资源类型。 |
faultyResourceType |
body |
对象 |
有故障的资源的类型。COMPUTE:虚拟计算资源,STORAGE:虚拟存储资源,NETWORK:虚拟网络资源。 |
alarmRaisedTime |
body |
字符串 |
指示由被管理对象引发告警的时间戳。 |
alarmChangedTime (可选) |
body |
字符串 |
指示上次更改告警的时间戳。如果已更新告警,则应存在。 |
alarmClearedTime (可选) |
body |
字符串 |
指示清除告警的时间戳。如果已清除告警,则应存在。 |
alarmAcknowledgedTime (可选) |
body |
字符串 |
指示确认告警的时间戳。如果已确认告警,则应存在。 |
ackState |
body |
字符串 |
告警的确认状态。允许的值:UNACKNOWLEDGED, ACKNOWLEDGED。 |
perceivedSeverity |
body |
对象 |
被管理对象故障的感知严重程度。CRITICAL,MAJOR,MINOR, WARNING,INDETERMINATE,CLEARED。 |
eventTime |
body |
字符串 |
指示观察到故障的时间戳。 |
eventType |
body |
对象 |
事件类型。 |
faultType (可选) |
body |
字符串 |
用于澄清故障类型的附加信息。 |
probableCause |
body |
字符串 |
有关故障的可能原因的信息。 |
isRootCause |
body |
bool |
属性指示此故障是否是其他相关告警的根本原因。如果为 true,则属性“correlatedAlarmIds”中列出的告警是由此故障引起的。 |
correlatedAlarmIds (可选) |
body |
数组 |
与此故障相关的其他告警的标识符列表。 |
faultDetails (可选) |
body |
数组 |
提供有关故障的附加信息。 |
_links |
body |
对象 |
此资源的链接。 |
self |
body |
对象 |
此资源的 URI。 |
objectInstance (可选) |
body |
对象 |
链接到表示与通知的告警相关的 VNF 实例的资源。如果 VNF 实例信息可以作为资源访问,则应存在。 |
响应示例¶
{
"id": "78a39661-60a8-4824-b989-88c1b0c3534a",
"managedObjectId": "c61314d0-f583-4ab3-a457-46426bce02d3",
"rootCauseFaultyResource": {
"faultyResource": {
"vimConnectionId": "vim1",
"resourceId": "4e6ccbe1-38ec-4b1b-a278-64de09ba01b3",
"vimLevelResourceType": "OS::Nova::Server"
},
"faultyResourceType": "COMPUTE"
},
"alarmRaisedTime": "2021-09-06T10:21:03Z",
"alarmChangedTime": "2021-09-06T10:21:03Z",
"alarmClearedTime": "2021-09-06T10:21:03Z",
"alarmAcknowledgedTime": "2021-09-06T10:21:03Z",
"ackState": "UNACKNOWLEDGED",
"perceivedSeverity": "WARNING",
"eventTime": "2021-09-06T10:21:03Z",
"eventType": "EQUIPMENT_ALARM",
"faultType": "Fault Type",
"probableCause": "The server cannot be connected.",
"isRootCause": false,
"correlatedAlarmIds": [
"c88b624e-e997-4b17-b674-10ca2bab62e0",
"c16d41fd-12e2-49a6-bb17-72faf702353f"
],
"faultDetails": [
"Fault",
"Details"
],
"_links": {
"self": {
"href": "/vnffm/v1/alarms/78a39661-60a8-4824-b989-88c1b0c3534a"
},
"objectInstance": {
"href": "/vnflcm/v1/vnf_instances/0e5f3086-4e79-47ed-a694-54c29155fa26"
}
}
}
PATCH 方法修改 Tacker 中指定的告警的确认状态。
API 消费者向单个告警发送 PATCH 请求。VNFM 向 API 消费者返回“200 OK”响应,并在有效负载主体中包含“AlarmModifications”类型的数据结构。如果发生故障,则在响应中提供适当的错误信息。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
401 - 未授权 |
用户必须在发出请求之前进行身份验证。 |
404 - Not Found |
找不到请求的资源。 |
406 - 不可接受 |
不可接受,请求的资源只能生成根据请求中发送的“Accept”标头不可接受的内容。 |
409 - Conflict |
此操作与此资源的另一个操作冲突。 |
请求参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
alarmId |
路径 |
字符串 |
此告警信息元素的标识符。 |
ackState |
body |
字符串 |
告警的确认状态。允许的值:UNACKNOWLEDGED, ACKNOWLEDGED。 |
请求示例¶
{
"ackState": "ACKNOWLEDGED"
}
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
ackState |
body |
字符串 |
告警的确认状态。允许的值:UNACKNOWLEDGED, ACKNOWLEDGED。 |
响应示例¶
{
"ackState": "ACKNOWLEDGED"
}
POST 方法创建一个新的 VNF FM 订阅。
成功执行此方法后,应已创建新的 VNF FM 订阅,并返回详细的 FM 订阅数据。如果发生故障,包括无效的通知端点,则在响应中提供适当的错误信息。
响应码¶
成功¶
代码 |
原因 |
|---|---|
201 - 已创建 |
资源已创建并准备好使用。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
401 - 未授权 |
用户必须在发出请求之前进行身份验证。 |
406 - 不可接受 |
不可接受,请求的资源只能生成根据请求中发送的“Accept”标头不可接受的内容。 |
422 - 无法处理的实体 |
有效负载体的 content type 受支持,并且请求的有效负载体包含语法上正确的数据(例如,格式良好的 JSON),但无法处理该数据(例如,因为它无法通过模式验证)。 |
请求参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
filter (可选) |
body |
对象 |
此订阅的筛选设置,用于定义所有通知的子集。如果筛选条件匹配,或者没有筛选条件,则将通知发送给订阅者。 |
vnfInstanceSubscriptionFilter (可选) |
body |
对象 |
用于选择要通知的 VNF 实例的筛选标准。 |
vnfdIds (可选) |
body |
数组 |
如果存在,则匹配基于 VNFD 创建的 VNF 实例,VNFD 由此属性中列出的 vnfdId 值之一标识。 |
vnfProductsFromProviders (可选) |
body |
数组 |
如果存在,则匹配属于某些提供商的 VNF 产品 VNF 实例。 |
vnfProvider |
body |
字符串 |
如果存在,则匹配属于某些提供商的 VNF 产品 VNF 实例。 |
vnfProducts (可选) |
body |
数组 |
如果存在,则匹配属于某些提供商的 VNF 产品 VNF 实例。 |
vnfProductName |
body |
字符串 |
要匹配的 VNF 产品名称。 |
versions (可选) |
body |
数组 |
如果存在,则匹配属于具有特定版本和特定产品名称的 VNF 产品 VNF 实例,来自特定的提供商。 |
vnfSoftwareVersion |
body |
对象 |
软件版本以匹配。 |
vnfdVersions (可选) |
body |
数组 |
软件版本以匹配。 |
vnfInstanceIds (可选) |
body |
数组 |
如果存在,则匹配具有此属性中列出的实例标识符的 VNF 实例。 |
vnfInstanceNames (可选) |
body |
数组 |
如果存在,则匹配具有此属性中列出的 VNF 实例名称的 VNF 实例。 |
notificationTypes (可选) |
body |
数组 |
匹配特定的通知类型。允许的值:AlarmNotification, AlarmClearedNotification, AlarmListRebuiltNotification。 |
faultyResourceTypes (可选) |
body |
数组 |
匹配具有有故障的资源类型的 VNF 告警。COMPUTE, STORAGE, NETWORK。 |
perceivedSeverities (可选) |
body |
数组 |
匹配具有感知严重程度的 VNF 告警。CRITICAL,MAJOR,MINOR,WARNING, INDETERMINATE,CLEARED。 |
eventTypes (可选) |
body |
数组 |
匹配具有事件类型的 VNF 告警。COMMUNICATIONS_ALARM, PROCESSING_ERROR_ALARM, ENVIRONMENTAL_ALARM, QOS_ALARM, EQUIPMENT_ALARM。 |
probableCauses (可选) |
body |
数组 |
匹配具有此属性中列出的可能原因的 VNF 告警。 |
callbackUri |
body |
字符串 |
发送通知的端点的 URI。 |
authentication (可选) |
body |
字符串 |
用于配置发送与此订阅对应的通知时使用授权的身份验证参数。 |
authType |
body |
数组 |
定义 API 消费者在接收通知时愿意接受的身份验证/授权类型。允许的值 BASIC:在每个 HTTP 请求中,使用客户端凭据进行 HTTP Basic 身份验证。 OAUTH2_CLIENT_CREDENTIALS:在向通知端点发送的每个 HTTP 请求中,使用使用客户端凭据授权类型在向令牌端点使用客户端标识符和客户端密码进行身份验证后获得的 OAuth 2.0 令牌。 OAUTH2_CLIENT_CERT:在向通知端点发送的每个 HTTP 请求中,使用使用客户端凭据授权类型在向令牌端点使用客户端标识符和 X.509 证书进行相互身份验证后获得的 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 |
字符串 |
可以获取访问令牌的令牌端点。如果未通过其他方式配置,则应存在。 |
paramsOauth2ClientCert (可选) |
body |
对象 |
用于使用 OAUTH2_CLIENT_CERT 进行身份验证/授权的参数。如果 authType 为“OAUTH2_CLIENT_CERT”且包含的信息未通过其他方式配置,则应存在。否则,应不存在。 |
clientId |
body |
字符串 |
OAuth 2.0 客户端凭据授权类型访问令牌请求中使用的客户端标识符。如果未通过其他方式配置,则应存在。 |
certificateRef |
body |
对象 |
客户端证书的指纹。哈希函数应使用 SHA256 或更高版本。如果未通过其他方式配置,则应存在。 |
type |
body |
字符串 |
指纹类型。允许的值 x5t#S256:根据 IETF RFC 7515 第 4.1.8 节定义的 X.509 证书的 SHA-256 拇指码。 |
value |
body |
字符串 |
根据类型定义的指纹值。如果未通过其他方式配置,则应存在。 |
tokenEndpoint |
body |
字符串 |
可以获取访问令牌的令牌端点。如果未通过其他方式配置,则应存在。 |
请求示例¶
{
"filter": {
"vnfInstanceSubscriptionFilter": {
"vnfdIds": [
"dummy-vnfdId-1"
],
"vnfProductsFromProviders": [
{
"vnfProvider": "Company",
"vnfProducts": [
{
"vnfProductName": "Sample VNF",
"versions": [
{
"vnfSoftwareVersion": "1.0",
"vnfdVersions": ["1.0", "2.0"]
}
]
}
]
}
],
"vnfInstanceIds": [
"b0314420-0c9e-40e0-975e-4bf23b07d0c1"
],
"vnfInstanceNames": [
"test"
]
},
"notificationTypes": [
"AlarmNotification",
"AlarmClearedNotification"
],
"faultyResourceTypes": [
"COMPUTE"
],
"perceivedSeverities": [
"WARNING"
],
"eventTypes": [
"PROCESSING_ERROR_ALARM"
],
"probableCauses": [
"Process Terminated"
]
},
"callbackUri": "/nfvo/notify/alarm",
"authentication": {
"authType": [
"BASIC"
],
"paramsBasic": {
"password": "ubuntu",
"userName": "ubuntu"
}
}
}
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
id |
body |
字符串 |
此订阅的标识符。 |
filter (可选) |
body |
对象 |
此订阅的筛选设置,用于定义所有通知的子集。如果筛选条件匹配,或者没有筛选条件,则将通知发送给订阅者。 |
vnfInstanceSubscriptionFilter (可选) |
body |
对象 |
用于选择要通知的 VNF 实例的筛选标准。 |
vnfdIds (可选) |
body |
数组 |
如果存在,则匹配基于 VNFD 创建的 VNF 实例,VNFD 由此属性中列出的 vnfdId 值之一标识。 |
vnfProductsFromProviders (可选) |
body |
数组 |
如果存在,则匹配属于某些提供商的 VNF 产品 VNF 实例。 |
vnfProvider |
body |
字符串 |
如果存在,则匹配属于某些提供商的 VNF 产品 VNF 实例。 |
vnfProducts (可选) |
body |
数组 |
如果存在,则匹配属于某些提供商的 VNF 产品 VNF 实例。 |
vnfProductName |
body |
字符串 |
要匹配的 VNF 产品名称。 |
versions (可选) |
body |
数组 |
如果存在,则匹配属于具有特定版本和特定产品名称的 VNF 产品 VNF 实例,来自特定的提供商。 |
vnfSoftwareVersion |
body |
对象 |
软件版本以匹配。 |
vnfdVersions (可选) |
body |
数组 |
软件版本以匹配。 |
vnfInstanceIds (可选) |
body |
数组 |
如果存在,则匹配具有此属性中列出的实例标识符的 VNF 实例。 |
vnfInstanceNames (可选) |
body |
数组 |
如果存在,则匹配具有此属性中列出的 VNF 实例名称的 VNF 实例。 |
notificationTypes (可选) |
body |
数组 |
匹配特定的通知类型。允许的值:AlarmNotification, AlarmClearedNotification, AlarmListRebuiltNotification。 |
faultyResourceTypes (可选) |
body |
数组 |
匹配具有有故障的资源类型的 VNF 告警。COMPUTE, STORAGE, NETWORK。 |
perceivedSeverities (可选) |
body |
数组 |
匹配具有感知严重程度的 VNF 告警。CRITICAL,MAJOR,MINOR,WARNING, INDETERMINATE,CLEARED。 |
eventTypes (可选) |
body |
数组 |
匹配具有事件类型的 VNF 告警。COMMUNICATIONS_ALARM, PROCESSING_ERROR_ALARM, ENVIRONMENTAL_ALARM, QOS_ALARM, EQUIPMENT_ALARM。 |
probableCauses (可选) |
body |
数组 |
匹配具有此属性中列出的可能原因的 VNF 告警。 |
callbackUri |
body |
字符串 |
发送通知的端点的 URI。 |
_links |
body |
对象 |
此资源的链接。 |
self |
body |
对象 |
此资源的 URI。 |
响应示例¶
{
"id": "78a39661-60a8-4824-b989-88c1b0c3534a",
"filter": {
"vnfInstanceSubscriptionFilter": {
"vnfdIds": [
"dummy-vnfdId-1"
],
"vnfProductsFromProviders": [
{
"vnfProvider": "dummy-vnfProvider-1",
"vnfProducts": [
{
"vnfProductName": "dummy-vnfProductName-1-1",
"versions": [
{
"vnfSoftwareVersion": "1.0",
"vnfdVersions": ["1.0", "2.0"]
}
]
}
]
}
],
"vnfInstanceIds": [
"dummy-vnfInstanceId-1"
],
"vnfInstanceNames": [
"dummy-vnfInstanceName-1"
]
},
"notificationTypes": [
"AlarmNotification",
"AlarmClearedNotification"
],
"faultyResourceTypes": [
"COMPUTE"
],
"perceivedSeverities": [
"WARNING"
],
"eventTypes": [
"EQUIPMENT_ALARM"
],
"probableCauses": [
"The server cannot be connected."
]
},
"callbackUri": "/nfvo/notify/alarm",
"_links": {
"self": {
"href": "/vnffm/v1/subscriptions/78a39661-60a8-4824-b989-88c1b0c3534a"
}
}
}
GET 方法允许用户根据请求中的查询参数过滤订阅。
如果需要,例如从错误情况中恢复,API 消费者可以通过向“Subscriptions”资源发送 GET 请求来查询其订阅的信息。在这种情况下,VNFM 返回一个“200 OK”响应,其中包含所有现有订阅的表示形式列表,这些订阅是由 API 消费者创建的,并在有效负载主体中包含零个或多个“FmSubscription”类型的数据结构。
属性选择器允许 API 消费者选择响应中包含哪些属性。可以设置 *all_fields*、*fields*、*exclude_fields* 和 *exclude_default* 作为查询参数。
基于属性的过滤表达式。Tacker 在基于属性的过滤表达式中应支持以下属性名称。VNFM 在过滤表达式中应支持 FmSubscription 中出现的所有属性名称以及从中引用的数据类型中的所有属性名称。例如,以下 URI 查询参数将匹配 perceivedSeverity=WARNING 的告警
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
401 - 未授权 |
用户必须在发出请求之前进行身份验证。 |
404 - Not Found |
找不到请求的资源。 |
406 - 不可接受 |
不可接受,请求的资源只能生成根据请求中发送的“Accept”标头不可接受的内容。 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
id |
body |
字符串 |
此订阅的标识符。 |
filter (可选) |
body |
对象 |
此订阅的筛选设置,用于定义所有通知的子集。如果筛选条件匹配,或者没有筛选条件,则将通知发送给订阅者。 |
vnfInstanceSubscriptionFilter (可选) |
body |
对象 |
用于选择要通知的 VNF 实例的筛选标准。 |
vnfdIds (可选) |
body |
数组 |
如果存在,则匹配基于 VNFD 创建的 VNF 实例,VNFD 由此属性中列出的 vnfdId 值之一标识。 |
vnfProductsFromProviders (可选) |
body |
数组 |
如果存在,则匹配属于某些提供商的 VNF 产品 VNF 实例。 |
vnfProvider |
body |
字符串 |
如果存在,则匹配属于某些提供商的 VNF 产品 VNF 实例。 |
vnfProducts (可选) |
body |
数组 |
如果存在,则匹配属于某些提供商的 VNF 产品 VNF 实例。 |
vnfProductName |
body |
字符串 |
要匹配的 VNF 产品名称。 |
versions (可选) |
body |
数组 |
如果存在,则匹配属于具有特定版本和特定产品名称的 VNF 产品 VNF 实例,来自特定的提供商。 |
vnfSoftwareVersion |
body |
对象 |
软件版本以匹配。 |
vnfdVersions (可选) |
body |
数组 |
软件版本以匹配。 |
vnfInstanceIds (可选) |
body |
数组 |
如果存在,则匹配具有此属性中列出的实例标识符的 VNF 实例。 |
vnfInstanceNames (可选) |
body |
数组 |
如果存在,则匹配具有此属性中列出的 VNF 实例名称的 VNF 实例。 |
notificationTypes (可选) |
body |
数组 |
匹配特定的通知类型。允许的值:AlarmNotification, AlarmClearedNotification, AlarmListRebuiltNotification。 |
faultyResourceTypes (可选) |
body |
数组 |
匹配具有有故障的资源类型的 VNF 告警。COMPUTE, STORAGE, NETWORK。 |
perceivedSeverities (可选) |
body |
数组 |
匹配具有感知严重程度的 VNF 告警。CRITICAL,MAJOR,MINOR,WARNING, INDETERMINATE,CLEARED。 |
eventTypes (可选) |
body |
数组 |
匹配具有事件类型的 VNF 告警。COMMUNICATIONS_ALARM, PROCESSING_ERROR_ALARM, ENVIRONMENTAL_ALARM, QOS_ALARM, EQUIPMENT_ALARM。 |
probableCauses (可选) |
body |
数组 |
匹配具有此属性中列出的可能原因的 VNF 告警。 |
callbackUri |
body |
字符串 |
发送通知的端点的 URI。 |
_links |
body |
对象 |
此资源的链接。 |
self |
body |
对象 |
此资源的 URI。 |
响应示例¶
[
{
"id": "78a39661-60a8-4824-b989-88c1b0c3534a",
"filter": {
"vnfInstanceSubscriptionFilter": {
"vnfdIds": [
"dummy-vnfdId-1"
],
"vnfProductsFromProviders": [
{
"vnfProvider": "dummy-vnfProvider-1",
"vnfProducts": [
{
"vnfProductName": "dummy-vnfProductName-1-1",
"versions": [
{
"vnfSoftwareVersion": "1.0",
"vnfdVersions": ["1.0", "2.0"]
}
]
}
]
}
],
"vnfInstanceIds": [
"dummy-vnfInstanceId-1"
],
"vnfInstanceNames": [
"dummy-vnfInstanceName-1"
]
},
"notificationTypes": [
"AlarmNotification",
"AlarmClearedNotification"
],
"faultyResourceTypes": [
"COMPUTE"
],
"perceivedSeverities": [
"WARNING"
],
"eventTypes": [
"EQUIPMENT_ALARM"
],
"probableCauses": [
"The server cannot be connected."
]
},
"callbackUri": "/nfvo/notify/alarm",
"_links": {
"self": {
"href": "/vnffm/v1/subscriptions/78a39661-60a8-4824-b989-88c1b0c3534a"
}
}
}
]
GET 方法获取 Tacker 中的订阅。
如果需要,例如从错误情况中恢复,API 消费者可以通过向表示该单个订阅的资源发送 GET 请求来读取特定订阅的信息。在这种情况下,VNFM 返回一个“200 OK”响应,其中包含该单个订阅的表示形式。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
401 - 未授权 |
用户必须在发出请求之前进行身份验证。 |
404 - Not Found |
找不到请求的资源。 |
406 - 不可接受 |
不可接受,请求的资源只能生成根据请求中发送的“Accept”标头不可接受的内容。 |
请求参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
subscriptionId |
路径 |
字符串 |
此订阅的标识符。 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
id |
body |
字符串 |
此订阅的标识符。 |
filter (可选) |
body |
对象 |
此订阅的筛选设置,用于定义所有通知的子集。如果筛选条件匹配,或者没有筛选条件,则将通知发送给订阅者。 |
vnfInstanceSubscriptionFilter (可选) |
body |
对象 |
用于选择要通知的 VNF 实例的筛选标准。 |
vnfdIds (可选) |
body |
数组 |
如果存在,则匹配基于 VNFD 创建的 VNF 实例,VNFD 由此属性中列出的 vnfdId 值之一标识。 |
vnfProductsFromProviders (可选) |
body |
数组 |
如果存在,则匹配属于某些提供商的 VNF 产品 VNF 实例。 |
vnfProvider |
body |
字符串 |
如果存在,则匹配属于某些提供商的 VNF 产品 VNF 实例。 |
vnfProducts (可选) |
body |
数组 |
如果存在,则匹配属于某些提供商的 VNF 产品 VNF 实例。 |
vnfProductName |
body |
字符串 |
要匹配的 VNF 产品名称。 |
versions (可选) |
body |
数组 |
如果存在,则匹配属于具有特定版本和特定产品名称的 VNF 产品 VNF 实例,来自特定的提供商。 |
vnfSoftwareVersion |
body |
对象 |
软件版本以匹配。 |
vnfdVersions (可选) |
body |
数组 |
软件版本以匹配。 |
vnfInstanceIds (可选) |
body |
数组 |
如果存在,则匹配具有此属性中列出的实例标识符的 VNF 实例。 |
vnfInstanceNames (可选) |
body |
数组 |
如果存在,则匹配具有此属性中列出的 VNF 实例名称的 VNF 实例。 |
notificationTypes (可选) |
body |
数组 |
匹配特定的通知类型。允许的值:AlarmNotification, AlarmClearedNotification, AlarmListRebuiltNotification。 |
faultyResourceTypes (可选) |
body |
数组 |
匹配具有有故障的资源类型的 VNF 告警。COMPUTE, STORAGE, NETWORK。 |
perceivedSeverities (可选) |
body |
数组 |
匹配具有感知严重程度的 VNF 告警。CRITICAL,MAJOR,MINOR,WARNING, INDETERMINATE,CLEARED。 |
eventTypes (可选) |
body |
数组 |
匹配具有事件类型的 VNF 告警。COMMUNICATIONS_ALARM, PROCESSING_ERROR_ALARM, ENVIRONMENTAL_ALARM, QOS_ALARM, EQUIPMENT_ALARM。 |
probableCauses (可选) |
body |
数组 |
匹配具有此属性中列出的可能原因的 VNF 告警。 |
callbackUri |
body |
字符串 |
发送通知的端点的 URI。 |
_links |
body |
对象 |
此资源的链接。 |
self |
body |
对象 |
此资源的 URI。 |
请求示例¶
{
"id": "78a39661-60a8-4824-b989-88c1b0c3534a",
"filter": {
"vnfInstanceSubscriptionFilter": {
"vnfdIds": [
"dummy-vnfdId-1"
],
"vnfProductsFromProviders": [
{
"vnfProvider": "dummy-vnfProvider-1",
"vnfProducts": [
{
"vnfProductName": "dummy-vnfProductName-1-1",
"versions": [
{
"vnfSoftwareVersion": "1.0",
"vnfdVersions": ["1.0", "2.0"]
}
]
}
]
}
],
"vnfInstanceIds": [
"dummy-vnfInstanceId-1"
],
"vnfInstanceNames": [
"dummy-vnfInstanceName-1"
]
},
"notificationTypes": [
"AlarmNotification",
"AlarmClearedNotification"
],
"faultyResourceTypes": [
"COMPUTE"
],
"perceivedSeverities": [
"WARNING"
],
"eventTypes": [
"EQUIPMENT_ALARM"
],
"probableCauses": [
"The server cannot be connected."
]
},
"callbackUri": "/nfvo/notify/alarm",
"_links": {
"self": {
"href": "/vnffm/v1/subscriptions/78a39661-60a8-4824-b989-88c1b0c3534a"
}
}
}
DELETE 方法删除 Tacker 中的订阅
当 API 消费者不再需要订阅时,它通过向表示单个订阅的资源发送 DELETE 请求来终止订阅。VNFM 通过返回“204 No Content”响应来确认订阅的成功终止。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
204 - No Content |
服务器已通过删除资源来满足请求。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
401 - 未授权 |
用户必须在发出请求之前进行身份验证。 |
404 - Not Found |
找不到请求的资源。 |
406 - 不可接受 |
不可接受,请求的资源只能生成根据请求中发送的“Accept”标头不可接受的内容。 |
409 - Conflict |
此操作与此资源的另一个操作冲突。 |
请求参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
subscriptionId |
路径 |
字符串 |
此订阅的标识符。 |
虚拟化网络功能故障管理通知接口¶
此接口是关于 VNF 故障管理的通知。
此接口是当事件发生且匹配订阅中包含的过滤条件时,或在创建 VNF 故障管理订阅时发送到配置为回调 URI 的端点的通知。此接口的详细信息在 SOL002 v3.3.1 第 7 条中描述。
POST 方法从 Tacker 向 API 消费者传递有关 VNF 告警的信息的通知。
当配置为使用 VNF 故障管理订阅监视的 VNF 上发生错误或警告时,Tacker 会将此通知发送到“创建订阅 (v1)”API 的 callbackUri 中配置的端点。
响应代码¶
Tacker 期望从 API 消费者的端点收到“204 No Content”响应。如果返回任何其他响应代码,则将被视为错误。
成功¶
代码 |
原因 |
|---|---|
204 - No Content |
通知已成功传递。 |
请求参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
id |
body |
字符串 |
此通知的标识符。 |
notificationType |
body |
字符串 |
不同通知类型的区分符。对于此通知类型,设置为“AlarmNotification”。 |
subscriptionId |
body |
字符串 |
此通知相关的订阅的标识符。 |
timeStamp |
body |
字符串 |
生成通知的日期时间。 |
alarm |
body |
对象 |
有关告警的信息,包括 AlarmId、受影响的 VNF 标识符和 FaultDetails。 |
id |
body |
字符串 |
此告警信息元素的标识符。 |
managedObjectId |
body |
字符串 |
受影响 VNF 实例的标识符。 |
vnfcInstanceIds (可选) |
body |
数组 |
受影响的 VNFC 实例的标识符。 |
rootCauseFaultyResource (可选) |
body |
对象 |
导致 VNF 故障的虚拟化资源。如果告警影响虚拟化资源,则应存在。 |
faultyResource |
body |
对象 |
识别有故障的资源实例及其管理实体的相关信息。 |
vimConnectionId (可选) |
body |
字符串 |
用于管理资源的 VIM 连接的标识符。仅当直接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。 |
resourceProviderId (可选) |
body |
字符串 |
负责资源管理的实体的标识符。仅当间接模式下的 VNF 相关资源管理适用时,才应支持并存在此属性。标识方案超出本文档的范围。 |
resourceId |
body |
字符串 |
VIM 或资源提供商范围内的资源的标识符。 |
vimLevelResourceType (可选) |
body |
字符串 |
VIM 或资源提供商范围内的资源类型。 |
faultyResourceType |
body |
对象 |
有故障的资源的类型。COMPUTE:虚拟计算资源,STORAGE:虚拟存储资源,NETWORK:虚拟网络资源。 |
alarmRaisedTime |
body |
字符串 |
指示由被管理对象引发告警的时间戳。 |
alarmChangedTime (可选) |
body |
字符串 |
指示上次更改告警的时间戳。如果已更新告警,则应存在。 |
alarmClearedTime (可选) |
body |
字符串 |
指示清除告警的时间戳。如果已清除告警,则应存在。 |
alarmAcknowledgedTime (可选) |
body |
字符串 |
指示确认告警的时间戳。如果已确认告警,则应存在。 |
ackState |
body |
字符串 |
告警的确认状态。允许的值:UNACKNOWLEDGED, ACKNOWLEDGED。 |
perceivedSeverity |
body |
对象 |
被管理对象故障的感知严重程度。 |
eventTime |
body |
字符串 |
指示观察到故障的时间戳。 |
eventType |
body |
对象 |
事件类型。 |
faultType (可选) |
body |
字符串 |
用于澄清故障类型的附加信息。 |
probableCause |
body |
字符串 |
有关故障的可能原因的信息。 |
isRootCause |
body |
bool |
属性指示此故障是否是其他相关告警的根本原因。如果为 true,则属性“correlatedAlarmIds”中列出的告警是由此故障引起的。 |
correlatedAlarmIds (可选) |
body |
数组 |
与此故障相关的其他告警的标识符列表。 |
faultDetails (可选) |
body |
数组 |
提供有关故障的附加信息。 |
_links |
body |
对象 |
此资源的链接。 |
self |
body |
对象 |
此资源的 URI。 |
objectInstance (可选) |
body |
对象 |
链接到表示与通知的告警相关的 VNF 实例的资源。如果 VNF 实例信息可以作为资源访问,则应存在。 |
_links |
body |
对象 |
与此通知相关的资源的链接。 |
subscription |
body |
对象 |
链接到相关的订阅。 |
请求示例¶
{
"id": "0ab777dc-b3a0-42d6-85c1-e5f80711b988",
"notificationType": "AlarmNotification",
"subscriptionId": "0155c914-8573-463c-a97a-aef5a3ca9c72",
"timeStamp": "2023-12-08T13:16:30Z",
"alarm": {
"id": "de8e74e8-1845-40dd-892c-cb7a67c26f9f",
"managedObjectId": "c21fd71b-2866-45f6-89d0-70c458a5c32e",
"vnfcInstanceIds": ["VDU1-curry-probe-test001-798d577c96-5624p"],
"alarmRaisedTime": "2023-12-08T13:16:30+00:00",
"ackState": "UNACKNOWLEDGED",
"perceivedSeverity": "CRITICAL",
"eventTime": "2023-12-08T13:16:00Z",
"eventType": "PROCESSING_ERROR_ALARM",
"faultType": "fault_type",
"probableCause": "Process Terminated",
"isRootCause": false,
"faultDetails": [
"fingerprint: 5ee739bb8840a190",
"detail: fault_details"
],
"_links": {
"self": {
"href": "http://127.0.0.1:9890/vnffm/v1/alarms/de8e74e8-1845-40dd-892c-cb7a67c26f9f"
},
"objectInstance":{
"href": "http://127.0.0.1:9890/vnflcm/v2/vnf_instances/c21fd71b-2866-45f6-89d0-70c458a5c32e"
}
}
},
"_links": {
"subscription": {
"href": "http://127.0.0.1:9890/vnffm/v1/subscriptions/0155c914-8573-463c-a97a-aef5a3ca9c72"
}
}
}
POST 方法从 Tacker 向 API 消费者传递有关 VNF 告警清除信息的通知。
当配置为使用 VNF 故障管理订阅监视的 VNF 的错误或警告得到解决时,Tacker 会将此通知发送到“创建订阅 (v1)”API 的 callbackUri 中配置的端点。
响应代码¶
Tacker 期望从 API 消费者的端点收到“204 No Content”响应。如果返回任何其他响应代码,则将被视为错误。
成功¶
代码 |
原因 |
|---|---|
204 - No Content |
通知已成功传递。 |
请求参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
id |
body |
字符串 |
此通知的标识符。 |
notificationType |
body |
字符串 |
不同通知类型的区分符。对于此通知类型,设置为“AlarmClearedNotification”。 |
subscriptionId |
body |
字符串 |
此通知相关的订阅的标识符。 |
timeStamp |
body |
字符串 |
生成通知的日期时间。 |
alarmId |
body |
字符串 |
告警标识符。 |
alarmClearedTime |
body |
字符串 |
指示清除告警的时间戳。 |
_links |
body |
对象 |
与此通知相关的资源的链接。 |
subscription |
body |
对象 |
链接到相关的订阅。 |
alarm |
body |
对象 |
链接到表示相关告警的资源。 |
请求示例¶
{
"id": "0ab777dc-b3a0-42d6-85c1-e5f80711b988",
"notificationType": "AlarmClearedNotification",
"subscriptionId": "0155c914-8573-463c-a97a-aef5a3ca9c72",
"timeStamp": "2023-12-08T13:16:30Z",
"alarmId": "de8e74e8-1845-40dd-892c-cb7a67c26f9f",
"alarmClearedTime": "2023-12-08T13:16:30Z",
"_links": {
"subscription": {
"href": "http://127.0.0.1:9890/vnffm/v1/subscriptions/0155c914-8573-463c-a97a-aef5a3ca9c72"
},
"alarm": {
"href": "http://127.0.0.1:9890/vnffm/v1/alarms/de8e74e8-1845-40dd-892c-cb7a67c26f9f"
}
}
}
GET 方法测试通知端点。
当使用“创建订阅 (v1)”API 创建 VNF 故障管理订阅时,Tacker 会将此通知发送到配置为 callbackUri 的端点以确认通信。
响应代码¶
Tacker 期望从 API 消费者的端点收到“204 No Content”响应。如果返回任何其他响应代码,则将被视为错误。
成功¶
代码 |
原因 |
|---|---|
204 - No Content |
通知已成功传递。 |