tum %!s(int64=2) %!d(string=před) roky
rodič
revize
ab4931a31e
2 změnil soubory, kde provedl 35 přidání a 2 odebrání
  1. 31 2
      app/backend/views.py
  2. 4 0
      app/network_report/settings.py

+ 31 - 2
app/backend/views.py

@@ -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
+

+ 4 - 0
app/network_report/settings.py

@@ -202,4 +202,8 @@ CELERY_BEAT_SCHEDULE = {
202 202
         # # "schedule": crontab(hour="17", minute="15"),
203 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
 }