tum %!s(int64=2) %!d(string=hace) años
padre
commit
ab4931a31e
Se han modificado 2 ficheros con 35 adiciones y 2 borrados
  1. 31 2
      app/backend/views.py
  2. 4 0
      app/network_report/settings.py

+ 31 - 2
app/backend/views.py

12
 exfo = Exfo("administrator", "exf0w0rxC@t4dm!n")
12
 exfo = Exfo("administrator", "exf0w0rxC@t4dm!n")
13
 exfo.login()
13
 exfo.login()
14
 
14
 
15
+from datetime import datetime
16
+from dateutil import tz
17
+
15
 mkt = Mikrotik()
18
 mkt = Mikrotik()
16
 
19
 
17
 def index(request):
20
 def index(request):
253
 def dump_fixed_results(request):
256
 def dump_fixed_results(request):
254
     from bson.json_util import dumps
257
     from bson.json_util import dumps
255
     from bson.json_util import loads
258
     from bson.json_util import loads
259
+
260
+    from_zone = tz.gettz('UTC')
261
+    to_zone = tz.gettz('Asia/Bangkok')
262
+
256
     col  = db['fixed_results']
263
     col  = db['fixed_results']
257
     col.delete_many({})
264
     col.delete_many({})
258
     tt = exfo.call_remote_api("/API/REST/Test/v1/TypeByName?list_all=false&size=0")
265
     tt = exfo.call_remote_api("/API/REST/Test/v1/TypeByName?list_all=false&size=0")
298
             return n
305
             return n
299
     except:
306
     except:
300
         return r['results']
307
         return r['results']
308
+
301
 def gen_report_notebook():
309
 def gen_report_notebook():
302
-    from datetime import datetime
310
+
303
     import pandas as pd
311
     import pandas as pd
304
 
312
 
313
+    from_zone = tz.gettz('UTC')
314
+    to_zone = tz.gettz('Asia/Bangkok')
315
+    
305
     c = db['fixed_results'].find()
316
     c = db['fixed_results'].find()
306
     data = []
317
     data = []
307
     for i in c:
318
     for i in c:
308
         #pprint(i['header'])
319
         #pprint(i['header'])
309
         res = dict(zip(i['header'], i['results']))
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
         d = {'header': i['header'], 'results': i['results'], 'output': res, 'params': i['parameters'], 'ts': i['ids']['time_stamp'], 
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
         d.update(i['names'])
327
         d.update(i['names'])
313
         #res.update(i['ids'])
328
         #res.update(i['ids'])
314
         #res.update(i[])
329
         #res.update(i[])
359
         import time
374
         import time
360
         ts = int(time.time())
375
         ts = int(time.time())
361
         fn = f"report_{ts}.xlsx"
376
         fn = f"report_{ts}.xlsx"
377
+
362
         table.to_excel(f'/code/media/{fn}')
378
         table.to_excel(f'/code/media/{fn}')
363
         report_link = f'/media/{fn}'
379
         report_link = f'/media/{fn}'
364
 
380
 
371
     return render(request, 'backend/gen_report.html', {'tbl': table.head(50).to_html(\
387
     return render(request, 'backend/gen_report.html', {'tbl': table.head(50).to_html(\
372
         classes=["table", "table-striped", "table-bordered", "align-middle"],\
388
         classes=["table", "table-striped", "table-bordered", "align-middle"],\
373
         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})
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
+

+ 4 - 0
app/network_report/settings.py

202
         # # "schedule": crontab(hour="17", minute="15"),
202
         # # "schedule": crontab(hour="17", minute="15"),
203
         # "schedule": crontab(minute="*/3", hour="17-21"),
203
         # "schedule": crontab(minute="*/3", hour="17-21"),
204
     # },
204
     # },
205
+    "mikro_dump": {
206
+        "task": "backend.views.mikro_dump_task",
207
+        "schedule": crontab(minute="*/3"),
208
+    },
205
 }
209
 }