|
|
@@ -12,6 +12,9 @@ from django.contrib import messages
|
|
12
|
12
|
exfo = Exfo("administrator", "exf0w0rxC@t4dm!n")
|
|
13
|
13
|
exfo.login()
|
|
14
|
14
|
|
|
|
15
|
+from datetime import datetime
|
|
|
16
|
+from dateutil import tz
|
|
|
17
|
+
|
|
15
|
18
|
mkt = Mikrotik()
|
|
16
|
19
|
|
|
17
|
20
|
def index(request):
|
|
|
@@ -253,6 +256,10 @@ def print_table(request):
|
|
253
|
256
|
def dump_fixed_results(request):
|
|
254
|
257
|
from bson.json_util import dumps
|
|
255
|
258
|
from bson.json_util import loads
|
|
|
259
|
+
|
|
|
260
|
+ from_zone = tz.gettz('UTC')
|
|
|
261
|
+ to_zone = tz.gettz('Asia/Bangkok')
|
|
|
262
|
+
|
|
256
|
263
|
col = db['fixed_results']
|
|
257
|
264
|
col.delete_many({})
|
|
258
|
265
|
tt = exfo.call_remote_api("/API/REST/Test/v1/TypeByName?list_all=false&size=0")
|
|
|
@@ -298,17 +305,25 @@ def con_human(r):
|
|
298
|
305
|
return n
|
|
299
|
306
|
except:
|
|
300
|
307
|
return r['results']
|
|
|
308
|
+
|
|
301
|
309
|
def gen_report_notebook():
|
|
302
|
|
- from datetime import datetime
|
|
|
310
|
+
|
|
303
|
311
|
import pandas as pd
|
|
304
|
312
|
|
|
|
313
|
+ from_zone = tz.gettz('UTC')
|
|
|
314
|
+ to_zone = tz.gettz('Asia/Bangkok')
|
|
|
315
|
+
|
|
305
|
316
|
c = db['fixed_results'].find()
|
|
306
|
317
|
data = []
|
|
307
|
318
|
for i in c:
|
|
308
|
319
|
#pprint(i['header'])
|
|
309
|
320
|
res = dict(zip(i['header'], i['results']))
|
|
|
321
|
+ utc = datetime.fromtimestamp(int(i['ids']['time_stamp'])/1000000000)
|
|
|
322
|
+ utc = utc.replace(tzinfo=from_zone)
|
|
|
323
|
+ dt = utc.astimezone(to_zone)
|
|
|
324
|
+
|
|
310
|
325
|
d = {'header': i['header'], 'results': i['results'], 'output': res, 'params': i['parameters'], 'ts': i['ids']['time_stamp'],
|
|
311
|
|
- 'dt': datetime.fromtimestamp(int(i['ids']['time_stamp'])/1000000000), 'test_type_name': i['ids']['fixed_results_url']}
|
|
|
326
|
+ 'dt': str(dt), 'test_type_name': i['ids']['fixed_results_url']}
|
|
312
|
327
|
d.update(i['names'])
|
|
313
|
328
|
#res.update(i['ids'])
|
|
314
|
329
|
#res.update(i[])
|
|
|
@@ -359,6 +374,7 @@ def gen_report(request):
|
|
359
|
374
|
import time
|
|
360
|
375
|
ts = int(time.time())
|
|
361
|
376
|
fn = f"report_{ts}.xlsx"
|
|
|
377
|
+
|
|
362
|
378
|
table.to_excel(f'/code/media/{fn}')
|
|
363
|
379
|
report_link = f'/media/{fn}'
|
|
364
|
380
|
|
|
|
@@ -371,3 +387,16 @@ def gen_report(request):
|
|
371
|
387
|
return render(request, 'backend/gen_report.html', {'tbl': table.head(50).to_html(\
|
|
372
|
388
|
classes=["table", "table-striped", "table-bordered", "align-middle"],\
|
|
373
|
389
|
table_id="report_tbl"), 'slas': slas, 'report_link': report_link, 'mk_ips': mk_ips, 'mk_address': mk_address, 'vrs': vrs, 'sla_name': sla_name, 'vr_name': vr_name})
|
|
|
390
|
+
|
|
|
391
|
+
|
|
|
392
|
+@shared_task
|
|
|
393
|
+def mikro_dump_task():
|
|
|
394
|
+
|
|
|
395
|
+ col = db['ip_address']
|
|
|
396
|
+ mk_address = mkt.call_remote("ip/address")
|
|
|
397
|
+ for i in mk_address:
|
|
|
398
|
+ temp = {'ts': datetime.utcnow()}
|
|
|
399
|
+ temp = temp | i
|
|
|
400
|
+ col.insert_one(temp)
|
|
|
401
|
+ pprint("dump ip complete")
|
|
|
402
|
+
|