|
|
@@ -4,8 +4,9 @@ from exfo.lib import Exfo, Mikrotik
|
|
4
|
4
|
from pprint import pprint
|
|
5
|
5
|
|
|
6
|
6
|
from ttp import ttp
|
|
7
|
|
-from django.http import JsonResponse
|
|
8
|
|
-
|
|
|
7
|
+from django.http import JsonResponse, HttpResponse
|
|
|
8
|
+from datetime import datetime
|
|
|
9
|
+from celery import shared_task
|
|
9
|
10
|
|
|
10
|
11
|
exfo = Exfo("administrator", "exf0w0rxC@t4dm!n")
|
|
11
|
12
|
exfo.login()
|
|
|
@@ -154,4 +155,97 @@ def reports(request):
|
|
154
|
155
|
except:
|
|
155
|
156
|
test_status[r['ids']['sla_name']] = {}
|
|
156
|
157
|
return render(request, 'backend/reports2.html', {'days': days, 'sla': sla.json(), 'sla_results': sla_results, 'test_status': test_status, 'service_results': service_results })
|
|
|
158
|
+
|
|
|
159
|
+def dump_api(request):
|
|
|
160
|
+ from bson.json_util import dumps
|
|
|
161
|
+ from bson.json_util import loads
|
|
|
162
|
+ col = db['exfo_api']
|
|
|
163
|
+ # col.delete_many({})
|
|
|
164
|
+ sla = exfo.call_api("sla")
|
|
|
165
|
+ sla_json = sla.json()
|
|
|
166
|
+ temp = sla_json['result']
|
|
|
167
|
+ for t in temp:
|
|
|
168
|
+ sla_uri = t['ids']['sla_uri']
|
|
|
169
|
+ sla_name = t['ids']['sla_name']
|
|
|
170
|
+ r = exfo.call_remote_api(sla_uri).json()
|
|
|
171
|
+ t['sla_uri_result'] = r['result']
|
|
|
172
|
+ service_result = []
|
|
|
173
|
+ for si in r['result']['service_instances']:
|
|
|
174
|
+ c = exfo.call_remote_api(si['service_uri']).json()['result']
|
|
|
175
|
+ service_result.append(c)
|
|
|
176
|
+
|
|
|
177
|
+ test_instance_class_result = []
|
|
|
178
|
+ test_status_result = []
|
|
|
179
|
+
|
|
|
180
|
+ for si in r['result']['tests']:
|
|
|
181
|
+ c = exfo.call_remote_api(si['test_instance_class_uri']).json()['result']
|
|
|
182
|
+ service = c['service']
|
|
|
183
|
+ target = None
|
|
|
184
|
+ if 'target' in c:
|
|
|
185
|
+ target = c['target']
|
|
|
186
|
+ test_instance_class_result.append(c)
|
|
|
187
|
+ c = exfo.call_remote_api(si['test_status_uri']).json()['result']
|
|
|
188
|
+ test_status_result.append({'sla_name':sla_name, 'test_instance_id': si['test_instance_id'],\
|
|
|
189
|
+ 'service': service, 'target': target, \
|
|
|
190
|
+ 'type_type_name': si['test_type_name'],\
|
|
|
191
|
+ 'test_instance_class_id': si['test_instance_class_id'] , 'status': c, })
|
|
|
192
|
+
|
|
|
193
|
+ t['test_instance_class_result'] = test_instance_class_result
|
|
|
194
|
+ t['test_status_result'] = test_status_result
|
|
|
195
|
+ t['created'] = datetime.utcnow()
|
|
|
196
|
+ col.insert_one(t)
|
|
|
197
|
+
|
|
|
198
|
+ # pprint(temp)
|
|
|
199
|
+ #col.insert_many(temp)
|
|
|
200
|
+ results = col.find({})
|
|
|
201
|
+ data = dumps(list(results), indent=4)
|
|
|
202
|
+ return HttpResponse(data, content_type='application/json')
|
|
|
203
|
+
|
|
|
204
|
+
|
|
|
205
|
+@shared_task
|
|
|
206
|
+def dump_api_task():
|
|
|
207
|
+ from bson.json_util import dumps
|
|
|
208
|
+ from bson.json_util import loads
|
|
|
209
|
+ col = db['exfo_api']
|
|
|
210
|
+ # col.delete_many({})
|
|
|
211
|
+ sla = exfo.call_api("sla")
|
|
|
212
|
+ sla_json = sla.json()
|
|
|
213
|
+ temp = sla_json['result']
|
|
|
214
|
+ for t in temp:
|
|
|
215
|
+ sla_uri = t['ids']['sla_uri']
|
|
|
216
|
+ sla_name = t['ids']['sla_name']
|
|
|
217
|
+ r = exfo.call_remote_api(sla_uri).json()
|
|
|
218
|
+ t['sla_uri_result'] = r['result']
|
|
|
219
|
+ service_result = []
|
|
|
220
|
+ for si in r['result']['service_instances']:
|
|
|
221
|
+ c = exfo.call_remote_api(si['service_uri']).json()['result']
|
|
|
222
|
+ service_result.append(c)
|
|
|
223
|
+
|
|
|
224
|
+ test_instance_class_result = []
|
|
|
225
|
+ test_status_result = []
|
|
|
226
|
+
|
|
|
227
|
+ for si in r['result']['tests']:
|
|
|
228
|
+ c = exfo.call_remote_api(si['test_instance_class_uri']).json()['result']
|
|
|
229
|
+ service = c['service']
|
|
|
230
|
+ target = None
|
|
|
231
|
+ if 'target' in c:
|
|
|
232
|
+ target = c['target']
|
|
|
233
|
+ test_instance_class_result.append(c)
|
|
|
234
|
+ c = exfo.call_remote_api(si['test_status_uri']).json()['result']
|
|
|
235
|
+ test_status_result.append({'sla_name':sla_name, 'test_instance_id': si['test_instance_id'],\
|
|
|
236
|
+ 'service': service, 'target': target, \
|
|
|
237
|
+ 'type_type_name': si['test_type_name'],\
|
|
|
238
|
+ 'test_instance_class_id': si['test_instance_class_id'] , 'status': c, })
|
|
|
239
|
+
|
|
|
240
|
+ t['test_instance_class_result'] = test_instance_class_result
|
|
|
241
|
+ t['test_status_result'] = test_status_result
|
|
|
242
|
+ t['created'] = datetime.utcnow()
|
|
|
243
|
+ col.insert_one(t)
|
|
|
244
|
+
|
|
|
245
|
+ pprint("Dump API ... Finished")
|
|
|
246
|
+
|
|
|
247
|
+def print_table(request):
|
|
|
248
|
+ return render(request, 'backend/print_table.html')
|
|
|
249
|
+
|
|
|
250
|
+
|
|
157
|
251
|
|