-
Notifications
You must be signed in to change notification settings - Fork 8
Expand file tree
/
Copy pathgetAllEtherInterfaceStats.py
More file actions
80 lines (54 loc) · 2.14 KB
/
getAllEtherInterfaceStats.py
File metadata and controls
80 lines (54 loc) · 2.14 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
import http.client
import ssl
import base64
import string
import json
__author__ = "Louis Jia"
__copyright__ = "Copyright (C) 2018 Cisco System"
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.encodebytes(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()
longstr=data.decode("utf-8")
strArr=longstr.split("\"")
return strArr[3]
def getAllEtherInterfaceStats(serverip, resttoken):
ssl._create_default_https_context = ssl._create_unverified_context
conn = http.client.HTTPSConnection(serverip)
headers = {
'dcnm-token': resttoken,
'content-type': "application/x-www-form-urlencoded",
'cache-control': "no-cache"
}
conn.request("GET", "/fm/fmrest/statistics/LanEthernetStat?interval=Day&navId=-1", headers=headers)
res = conn.getresponse()
data = res.read()
jsonstr=data.decode("utf-8")
decoded = json.loads(jsonstr)
for x in decoded :
print(" entity"+":"+ x['entityName'] +":"+"swIfName"+":"+ x['swIfName'] +":"+"avgDiscardStr"+":"+ x['avgDiscardStr'] +":")
print(" maxRxStr"+":"+ x['maxRxStr'] +":"+"maxTxStr"+":"+ x['maxTxStr'] +":"+"speedStr"+":"+ x['speedStr'] +":")
print(" avgRxStr"+":"+ x['avgRxStr'] +":"+"avgTxStr"+":"+ x['avgTxStr'] +":"+"errorStr"+":"+ x['errorStr'] +":")
return
#serverip
server="10.157.34.138"
# DCNM username, password, DCNM server ip address
restToken=getRestToken("admin", "xxxxxxx", server)
print(restToken)
#serverip fabric-id interface-id restToken
getAllEtherInterfaceStats(server, restToken)