虚拟化网络功能故障管理接口 (VNF FM) v1

虚拟化网络功能故障管理接口 (VNF FM)

此接口管理 VNF 实例的 VNF 故障管理操作。

此接口允许 NFVO 调用针对 VNFM 的 VNF 实例的 VNF 故障管理操作。此接口的详细信息在 SOL002 v3.3.1 第 7 条中描述。某些特定标准的参数需要参考 SOL013 v3.4.1 第 5 条。

GET
/vnffm/v1/alarms

获取所有告警 (v1)

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
/vnffm/v1/alarms/{alarmId}

获取单个告警 (v1)

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
/vnffm/v1/alarms/{alarmId}

修改确认状态 (v1)

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
/vnffm/v1/subscriptions

创建订阅 (v1)

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
/vnffm/v1/subscriptions

获取所有订阅 (v1)

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
/vnffm/v1/subscriptions/{subscriptionId}

获取订阅 (v1)

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
/vnffm/v1/subscriptions/{subscriptionId}

删除订阅 (v1)

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
< callbackUri (由 API 消费者提供) >

AlarmNotification

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
< callbackUri (由 API 消费者提供) >

AlarmClearedNotification

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
< callbackUri (由 API 消费者提供) >

测试通知端点 (VNF FM)

GET 方法测试通知端点。

当使用“创建订阅 (v1)”API 创建 VNF 故障管理订阅时,Tacker 会将此通知发送到配置为 callbackUri 的端点以确认通信。

响应代码

Tacker 期望从 API 消费者的端点收到“204 No Content”响应。如果返回任何其他响应代码,则将被视为错误。

成功

代码

原因

204 - No Content

通知已成功传递。