CloudOS物理设备告警通知
订阅消息接口
接口功能
用来获得CloudOS硬件告警关联的CloudOS中的主机id,使用者可以通过该主机id去CloudOS里查询该硬件告警所影响的虚机。当前只支持E9000服务器。
如果只是想获得物理设备告警,可以通过订阅告警变更消息通知实现。
URI路径
/rest/openapi/notification/server/hwalarm/risk
访问方法
PUT
参数说明
参数名 |
必选/可选 |
参数位置 |
参数类型 |
参数说明 |
---|---|---|---|---|
openid |
必选 |
请求头参数列表 |
String |
会话标识,用于Open API的鉴权。 说明:
该参数由第三方调用安全管理登录接口获取openid。 |
systemID |
必选 |
请求实体参数列表 |
String |
第三方系统标识。 说明:
可为IP地址,1~64个字符,字符集合为英文半角:0-9a-zA-Z@_-(),.^$~`! |
openID |
必选 |
请求实体参数列表 |
String |
网管主动连接第三方系统的认证凭证,由第三方系统分配和利用此字符串认证。 说明:
1~1024个字符,字符集同 systemID。 |
url |
必选 |
请求实体参数列表 |
String |
网管以 POST 方式向该 URL发送通知消息。 说明:
例如 http://10.10.10.10:8080/device。需要通知消息订阅者确保URL的正确性,IP地址为OpenAPI白名单列表中地址。长度1~1024,字符串符合HTTP URL编码规范。 |
dataType |
可选 |
请求实体参数列表 |
String |
通知报文的 data 字段类型。 说明:
目前仅支持“JSON”,缺省为“JSON”。 |
desc |
可选 |
请求实体参数列表 |
String |
第三方系统描述。 说明:
缺省为null 不设置。如设置长度限制0~1024字符,字符集合不限制。 |
返回结果
字段名 |
类型 |
说明 |
---|---|---|
code |
int |
操作返回码。可以是如下值之一:
|
data |
String |
此处为 null。 |
description |
String |
接口调用结果的描述信息。 |
注意事项
无。
调用示例
数据段 |
值 |
---|---|
请求 URL |
PUT https://eSightIP: port/rest/openapi/notification/server/hwalarm/risk HTTP/1.1 |
请求头 |
openid: 775c47f9-9a1b-43f9-a24b-2c3db1a55622; |
请求实体 |
systemID=example%40system&openID=1b7a6992-5d5f-4091-a49f-ec2e09640a05&url=https%3A%2F%2FdemoIP%3AdemoPort%2Fnotification&dataType=JSON&desc=eSight+DesignIn+Demo |
响应实体 |
{"code":0,"data":null,"description":"Operation success."} |
退订消息接口
接口功能
退订CloudOS硬件物理设备告警消息通知。
URI路径
/rest/openapi/notification/server/hwalarm/risk
访问方法
DELETE
参数说明
参数名 |
必选/可选 |
参数位置 |
参数类型 |
参数说明 |
---|---|---|---|---|
openid |
必选 |
消息头参数列表 |
String |
会话标识,用于Open API的鉴权。 说明:
该参数由第三方调用安全管理登录接口获取openid。 |
systemID |
必选 |
URL 参数列表 |
String |
第三方系统标识。 说明:
可为IP地址,1~64个字符,字符集合为英文半角:0-9a-zA-Z@_-(),.^$~`! |
desc |
可选 |
URL 参数列表 |
String |
三方系统描述。 说明:
缺省为null 不设置。如设置长度限制0~1024字符,字符集合不限制。 |
返回结果
字段名 |
类型 |
说明 |
---|---|---|
code |
int |
操作返回码。可以是如下值之一:
|
data |
String |
此处为 null。 |
description |
String |
接口调用结果的描述信息。 |
注意事项
MIME type 为 application/x-www-form-urlencoded 的请求中,空格将会编码为加号,加号则编码为%2B。
调用示例
数据段 |
值 |
---|---|
请求 URL |
DELETE https://eSightIP:port/rest/openapi/notification/server/hwalarm/risk?systemID=example%40system&desc=eSight+DesignIn+Demo+Unsubscription. HTTP/1.1 |
请求头 |
openid: 775c47f9-9a1b-43f9-a24b-2c3db1a55622; |
请求实体 |
N/A |
响应实体 |
{"code":0,"data":null,"description":"Operation success."} |
发送消息通知
消息数据
字段名 |
类型 |
说明 |
---|---|---|
resourceURI |
String |
资源类型 URI,与订阅消息的URI定义一致,该变更通知固定为“/rest/openapi/notification/server/hwalarm/risk”字符串。 |
msgType |
int |
消息类型。取值范围:
|
data |
list |
以 JSON 数组形式描述的数据对象。告警相关数据的结构,参见下面定义 说明: 如果消息接收地址为 HTTP 协议,则 data 的值为加密字符串,需要第三方系统根据配置文件中的 KEY 和 IV 值解密,之后再解析数据对象。 |
extendedData |
String |
以字符串表示的 JSON 附加数据对象,此处为空对象 “{}”。 |
description |
String |
消息通知描述。 |
timestamp |
String |
消息发出的时间戳,eSight 服务器协调时间格式。 |
data中的每一个信息包含以下字段:
字段名 |
类型 |
说明 |
---|---|---|
rackDn |
String |
机架DN |
rackIP |
String |
机架地址bmcIP地址 |
deviceDn |
String |
刀片DN |
deviceIndex |
String |
刀片的槽位号 |
deviceBMCIP |
String |
刀片的BMC管理地址 |
hostIP |
String |
主机在openstack资源池的管理地址 |
hostId |
String |
主机Id |
hostName |
String |
主机名称 |
virtualType |
int |
主机虚拟化类型:
|
platformDn |
String |
云平台dn |
platformDomain |
String |
云平台域名(FusionSphere是域名,其他是IP) |
platformType |
int |
云平台类型:
|
alarmGroupID |
String |
告警组id |
alarmCode |
String |
告警码id |
alarmName |
String |
告警名称 |
alarmLevel |
String |
告警级别。可以是如下值之一:
|
eventTime |
String |
告警首次发生时间 |
isClear |
int |
清除类型:
|
alarmLocation |
String |
告警位置 |
通知示例
消息通知以 POST 方式提交,所有通知数据都保存在 HTTP 报文 Body 中。假设第三方系统 WebService 提供 javax.servlet.http.HttpServletRequest 的实现 request 实例(其他语言也有类似库实现),可如下获取消息数据:
调用方法 |
取得的值 |
---|---|
request.getParameter("resourceURI") |
"/rest/openapi/notification/server/hwalarm/risk" |
request.getParameter("msgType") |
1 |
request.getParameter("data") |
"[{ \"rackDn\": \"NE=34603009\", \"rackIP\":\"192.168.11.20\", \"deviceDn\": \"NE=34605715\", \"deviceIndex\": \"10\", \"deviceBMCIP\": \"192.168.13.20\", \"hostIP\": \"10.10.10.1\", \"hostId\": \"host1\", \"hostName\": \"host1\", \"platformDn\": \"NE=34603110\", \"platformDomain\": \"h.h.com\", \"virtualType\": 0, \"platformType\": 1, \"alarmGroupID\": \"278413609\", \"alarmCode\": \"117506047\", \"alarmName\": \"test=\", \"alarmLevel\": \"2\", \"eventTime\": \"1480153460709\", \"isClear\": 0, \"alarmLocation\": \",部件=blade10\" }]" |
request.getParameter("description") |
"" |
request.getParameter("timestamp") |
"2016-11-26 17:44:20" |
request.getParameter("extendedData") |
"{}" |
返回值为“null”时,表示属性实际值为空。