-
Notifications
You must be signed in to change notification settings - Fork 8
Expand file tree
/
Copy pathgetAllAlarm.py
More file actions
87 lines (70 loc) · 2.51 KB
/
getAllAlarm.py
File metadata and controls
87 lines (70 loc) · 2.51 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
import http.client
import ssl
import base64
import string
import json
__author__ = "Louis Jia"
__copyright__ = "Copyright (c) 2018 Cisco and/or its affiliates"
def getRestToken(username, password, serverip):
ssl._create_default_https_context = ssl._create_unverified_context
##replace server ip address here
conn = http.client.HTTPSConnection(serverip)
payload = "{\"expirationTime\" : 10000000000}\n"
## replace user name and password here
authenStr="%s:%s" % (username, password)
base64string = base64.encodestring(bytes(authenStr, 'utf-8'))
tmpstr= "Basic %s" % base64string
authorizationStr = tmpstr.replace("b\'","").replace("\\n\'","");
print(authorizationStr);
headers = {
'content-type': "application/json",
'authorization': authorizationStr,
'cache-control': "no-cache"
}
conn.request("POST", "/rest/logon", payload, headers)
res = conn.getresponse()
data = res.read()
print(data)
longstr=data.decode("utf-8")
strArr=longstr.split("\"")
return strArr[3]
def getAllAlarm(serverip, resttoken, start, end):
ssl._create_default_https_context = ssl._create_unverified_context
conn = http.client.HTTPSConnection(serverip)
rangestr="items="+str(start)+"-"+str(end)
print(rangestr);
headers = {
'dcnm-token': resttoken,
'content-type': "application/x-www-form-urlencoded",
'cache-control': "no-cache",
'Range': rangestr
}
conn.request("GET", "/fm/fmrest/alarms/alarmlist/?history=false&navId=-1", headers=headers)
res = conn.getresponse()
data = res.read()
jsonstr=data.decode("utf-8")
decoded = json.loads(jsonstr)
print("******************************************")
print(len(decoded));
for alarm in decoded :
print("=================ALARM=======================")
print(alarm['deviceName'])
print(alarm['deviceAttributes'])
print(alarm['message'])
print(alarm['lastScanTimeStamp'])
events = json.loads(alarm['associatedEvents'])
descriptionStr=''
severityStr=''
for y in events :
if 'description' in y :
descriptionStr=y['description']
if 'severity' in y :
severityStr=y['severity']
print(' ------------EVENT------------------')
print(' '+y['EventSwitch']+':'+y['EventType']+':'+descriptionStr+':'+severityStr)
return
# DCNM username, password, DCNM server ip address
restToken=getRestToken("admin", "xxxxxx", "172.23.244.229")
print(restToken)
# DCNM server ip, resetTotken start_idx end_idx
getAllAlarm("172.23.244.229", restToken, 0, 10000)