blob: 7cdcc45898f586bdc3e3a2d05f200917d6b495c7 [file] [log] [blame]
Yi Tsengf4595712021-08-27 14:10:58 -07001from deepinsight.client import DeepInsightClient
2from drivers.common.apidriver import API
3
4class DeepInsightApiDriver( API ):
5 def __init__( self ):
6 self.name = None
7 self.serverUrl = None
8 self.accessToken = None
9 self.refreshToken = None
10 self.requestAuthHeader = None
11 self.verifySsl = False
12 self.client = None
13 super( DeepInsightApiDriver, self ).__init__()
14
15 def connect(
16 self,
17 **connectargs
18 ):
19 for key in connectargs:
20 vars(self)[key] = connectargs[key]
21 self.name = self.options["name"]
22 self.client = DeepInsightClient(
23 server_url = self.options["server_url"],
24 username = self.options["username"],
25 password = self.options["password"],
26 verify_ssl = self.options["verify_ssl"] == "True",
27 )
28 self.handle = super( DeepInsightApiDriver, self ).connect()
29 return self.handle
30
31 def disconnect( self, **connectargs ):
32 self.client.logout()
33
34 def getFlows(
35 self,
36 startTimeMs = None,
37 endTimeMs = None,
38 maxResults = 100,
39 srcIp = None,
40 dstIp = None,
41 srcPort = None,
42 dstPort = None,
43 ipProto = None,
44 ):
45 return self.client.get_flows(
46 startTimeMs,
47 endTimeMs,
48 maxResults,
49 srcIp,
50 dstIp,
51 srcPort,
52 dstPort,
53 ipProto,
54 )
55
56 def getSwitchPacketDrop(
57 self,
58 switchId,
59 egressPort = 0,
60 queueId = 0,
61 startTime = None,
62 endTime = None,
63 numBuckets = 100,
64 ):
65 return self.client.get_switch_packet_drop(
66 switchId,
67 egressPort,
68 queueId,
69 startTime,
70 endTime,
71 numBuckets,
72 )
73
74 def getSwitchAnomalies(
75 self, switchId, startTime = None, endTime = None
76 ):
77 return self.client.get_switch_anomalies(
78 switchId, startTime, endTime
79 )
80
81 def getSwitchLatencies(
82 self,
83 switchId,
84 startTime = None,
85 endTime = None,
86 granularity = 1000,
87 ):
88 return self.client.get_switch_latencies(
89 switchId,
90 startTime,
91 endTime,
92 granularity,
93 )
Yi Tsengdecb71f2021-09-15 12:36:30 -070094
95 def getAnomalyRecords(
96 self,
97 startTime = None,
98 endTime = None,
99 srcIp = None,
100 dstIp = None,
101 srcPort = None,
102 dstPort = None,
103 ipProto = None,
104 anomalyType = None,
105 ):
106 return self.client.get_anomaly_records(
107 startTime,
108 endTime,
109 srcIp,
110 dstIp,
111 srcPort,
112 dstPort,
113 ipProto,
114 anomalyType
115 )