Tum %!s(int64=8) %!d(string=před) měsíci
rodič
revize
ca78c91b48

+ 4 - 3
Dockerfile

@@ -1,12 +1,12 @@
1 1
 # syntax=docker/dockerfile:1
2
-FROM python:3 as base
2
+FROM python:3.11 as base
3 3
 ENV PYTHONDONTWRITEBYTECODE=1
4 4
 ENV PYTHONUNBUFFERED=1
5 5
 RUN apt-get update && apt-get install apt-transport-https
6 6
 RUN apt-get install -y libjpeg62 libjpeg62-turbo-dev  zlib1g-dev gettext entr poppler-utils gettext xfonts-thai vim
7 7
 
8
-RUN wget ftp://ftp.psu.ac.th/pub/thaifonts/sipa-fonts/*ttf -P /usr/share/fonts/truetype/thai
9
-COPY fonts/*ttf  /usr/share/fonts/truetype/thai/
8
+#RUN wget ftp://ftp.psu.ac.th/pub/thaifonts/sipa-fonts/*ttf -P /usr/share/fonts/truetype/thai
9
+#COPY fonts/*ttf  /usr/share/fonts/truetype/thai/
10 10
 
11 11
 RUN \
12 12
         echo "Installing Node and Yarn" && \
@@ -22,6 +22,7 @@ RUN \
22 22
 FROM base as install_package
23 23
 WORKDIR /code
24 24
 COPY requirements.txt /code/
25
+RUN  python -m pip install --upgrade pip
25 26
 RUN  pip install -r requirements.txt
26 27
 COPY app /code/
27 28
 #RUN chmod a+x server-entrypoint.sh

binární
app/Output/excel_out_test_excel_formatter_update.xlsx


+ 30 - 27
app/backend/views.py

@@ -23,7 +23,7 @@ def index(request):
23 23
 
24 24
     rapi = exfo.list_api()
25 25
     sla = exfo.call_api("sla")
26
-   
26
+
27 27
     data_to_parse = """
28 28
     interface Loopback0
29 29
      description Router-id-loopback
@@ -105,8 +105,8 @@ interface {{ interface | contains("Vlan") }}
105 105
     # results = parser.result(format='xlsx')[0]
106 106
     # pprint(results)
107 107
     try:
108
-        mk_ips = mkt.call_remote("ip/route") 
109
-        mk_address = mkt.call_remote("ip/address") 
108
+        mk_ips = mkt.call_remote("ip/route")
109
+        mk_address = mkt.call_remote("ip/address")
110 110
     except:
111 111
         mk_ips = []
112 112
         mk_address = []
@@ -252,7 +252,7 @@ def print_table(request):
252 252
     return render(request, 'backend/print_table.html')
253 253
 
254 254
 
255
-    
255
+
256 256
 def dump_fixed_results(request):
257 257
     from bson.json_util import dumps
258 258
     from bson.json_util import loads
@@ -312,7 +312,7 @@ def gen_report_notebook():
312 312
 
313 313
     from_zone = tz.gettz('UTC')
314 314
     to_zone = tz.gettz('Asia/Bangkok')
315
-    
315
+
316 316
     c = db['fixed_results'].find()
317 317
     c2  = db['ip_address']
318 318
 
@@ -325,14 +325,14 @@ def gen_report_notebook():
325 325
         yest = utc - timedelta(minutes=4)
326 326
         dt = utc.astimezone(to_zone)
327 327
 
328
-        d = {'header': i['header'], 'results': i['results'], 'output': res, 'params': i['parameters'], 'ts': i['ids']['time_stamp'], 
328
+        d = {'header': i['header'], 'results': i['results'], 'output': res, 'params': i['parameters'], 'ts': i['ids']['time_stamp'],
329 329
              'dt': str(dt), 'test_type_name': i['ids']['fixed_results_url']}
330 330
 
331
-                
331
+
332 332
 
333 333
         d.update(i['names'])
334 334
         if not d['sla_name']:
335
-            continue 
335
+            continue
336 336
 
337 337
         sla_splt = d['sla_name'].split('-')
338 338
         if len(sla_splt) > 1:
@@ -351,7 +351,7 @@ def gen_report_notebook():
351 351
                 pprint("Found Target")
352 352
                 pprint(target_address)
353 353
                 d.update(target_address)
354
- 
354
+
355 355
         #res.update(i['ids'])
356 356
         #res.update(i[])
357 357
         #pprint(d)
@@ -366,11 +366,11 @@ def gen_report_notebook():
366 366
 
367 367
     df1 = df1.query('sla_name == sla_name')
368 368
     #pprint(df1['sla_name'].unique())
369
-    
369
+
370 370
     #df1['results_text'] = df1['results'].apply(con_human)
371 371
     df1['results_text'] = df1.apply(con_human, axis=1)
372 372
     try:
373
-        df1['network_str'] = df1['network'] + " / " + df1['interface'] 
373
+        df1['network_str'] = df1['network'] + " / " + df1['interface']
374 374
     except:
375 375
         df1['network_str'] = "N/A"
376 376
 
@@ -382,33 +382,33 @@ def gen_report(request):
382 382
     pprint("report notebook ...")
383 383
     if request.GET.get('clear', None):
384 384
         return redirect("/backend/dump_fixed_results/?redir=/backend/gen_report/")
385
-   
385
+
386 386
     try:
387 387
         table,df = gen_report_notebook()
388 388
     except Exception as e:
389 389
         messages.error(request, str(e))
390 390
         return render(request, 'backend/gen_report.html', {'dump_again': True})
391
-    
391
+
392 392
     slas = list(df['sla_name'].unique())
393 393
     vrs = list(df['verifier_name'].unique())
394 394
     sla_name = request.GET.getlist('sla_name')
395 395
     vr_name = request.GET.getlist('vr_name')
396
-    
396
+
397 397
     pprint("--- sla_name ---")
398 398
     pprint(sla_name)
399 399
     if len(sla_name) > 0:
400 400
         sla_filter = ", ".join(f"'{w}'" for w in sla_name)
401 401
         table = table.query(f"sla_name in ({sla_filter})")
402
-    
402
+
403 403
     if len(vr_name) > 0:
404 404
         vr_filter = ", ".join(f"'{w}'" for w in vr_name)
405 405
         table = table.query(f"verifier_name in ({vr_filter})")
406
-    
406
+
407 407
     table = table.dropna(how='all', axis=0)
408 408
     table = table.dropna(how='all', axis=1)
409 409
 
410 410
     gen_report = request.GET.get('genReport', None)
411
-    
411
+
412 412
     report_link = None
413 413
     if gen_report:
414 414
         import time
@@ -422,8 +422,8 @@ def gen_report(request):
422 422
         report_link = f'/media/{fn}'
423 423
 
424 424
     try:
425
-        mk_ips = mkt.call_remote("ip/route") 
426
-        mk_address = mkt.call_remote("ip/address") 
425
+        mk_ips = mkt.call_remote("ip/route")
426
+        mk_address = mkt.call_remote("ip/address")
427 427
     except:
428 428
         mk_ips = []
429 429
         mk_address = []
@@ -436,12 +436,15 @@ def gen_report(request):
436 436
 def mikro_dump_task():
437 437
     #look at only pppoe only ( excloude pppoe5 )
438 438
     col  = db['ip_address']
439
-    mk_address = mkt.call_remote("ip/address") 
440
-    for i in mk_address:
441
-        temp = {'ts': datetime.utcnow()}
442
-        temp = temp | i
443
-        col.insert_one(temp)
444
-    pprint("dump ip complete")
439
+    try:
440
+        mk_address = mkt.call_remote("ip/address")
441
+        for i in mk_address:
442
+            temp = {'ts': datetime.utcnow()}
443
+            temp = temp | i
444
+            col.insert_one(temp)
445
+        pprint("dump ip complete")
446
+    except Exception as e:
447
+        pprint(f"error = {e}")
445 448
 
446 449
 @shared_task
447 450
 def gen_report_task():
@@ -464,9 +467,9 @@ def gen_report_task():
464 467
 def list_reports(request):
465 468
     import os
466 469
     from django.conf import settings
467
-    
470
+
468 471
     mr = settings.MEDIA_ROOT
469
-    file_list =os.listdir(mr)  
472
+    file_list =os.listdir(mr)
470 473
 
471 474
     def get_creation_time(item):
472 475
         item_path = os.path.join(mr, item)

+ 4 - 6
docker-compose.prod.yml

@@ -2,8 +2,6 @@ services:
2 2
   redis:
3 3
     restart: unless-stopped
4 4
     image: redis:7.0.5-alpine
5
-    expose:
6
-      - 6379
7 5
     ports:
8 6
       - "127.0.0.1:6379:6379"
9 7
   db:
@@ -21,7 +19,7 @@ services:
21 19
     image: tum/network-report-image
22 20
     #command: python -X dev manage.py  runserver 0.0.0.0:8000
23 21
     #command: python manage.py  runserver 0.0.0.0:8000
24
-    command: gunicorn kacee.wsgi:application --bind 0.0.0.0:8000 --workers=4 --timeout 1000
22
+    command: gunicorn network_report.wsgi:application --bind 0.0.0.0:8000 --workers=4 --timeout 1000
25 23
     #entrypoint: ./server-entrypoint.sh
26 24
     volumes:
27 25
       - ./app:/code
@@ -33,7 +31,7 @@ services:
33 31
       - POSTGRES_USER=postgres
34 32
       - POSTGRES_PASSWORD=postgres
35 33
       - PYTHONMALLOC=debug
36
-      - DJANGO_SETTINGS_MODULE=kacee.settings
34
+      - DJANGO_SETTINGS_MODULE=network_report.settings
37 35
       - MODE=${MODE}
38 36
     depends_on:
39 37
       - db
@@ -79,8 +77,8 @@ services:
79 77
     image: rabbitmq:3-management-alpine
80 78
     container_name: 'rabbitmq3'
81 79
     ports:
82
-      - "5672:5672"
83
-      - "15672:15672"
80
+      - "127.0.0.1:5672:5672"
81
+      - "127.0.0.1:15672:15672"
84 82
     volumes:
85 83
         - ./rabbitmq/data/:/var/lib/rabbitmq/
86 84
         - ./rabbitmq/log/:/var/log/rabbitmq

+ 2 - 2
docker-compose.yml

@@ -3,13 +3,13 @@ services:
3 3
     restart: unless-stopped
4 4
     image: redis:7.0.5-alpine
5 5
     ports:
6
-      - "6379"
6
+      - "127.0.0.1:6379:6379"
7 7
   db:
8 8
     image: postgres:15.5-alpine3.19
9 9
     volumes:
10 10
       - ./data/db:/var/lib/postgresql/data
11 11
     ports:
12
-      - "5432"
12
+      - "127.0.0.1:5432:5432"
13 13
     environment:
14 14
       - POSTGRES_DB=postgres
15 15
       - POSTGRES_USER=postgres

+ 2 - 2
requirements.txt

@@ -72,7 +72,7 @@ sorl-thumbnail-serializer-field
72 72
 django-debug-permissions
73 73
 pdf2image
74 74
 django-resized
75
-django-allauth
75
+django-allauth==0.54
76 76
 django-mjml
77 77
 django-fullurl
78 78
 xhtml2pdf
@@ -86,7 +86,7 @@ django-pandas
86 86
 django-markdownx
87 87
 django-qr-code
88 88
 python-barcode
89
-gunicorn==21.2.0
89
+gunicorn
90 90
 django-autotranslate
91 91
 pymongo
92 92
 dnspython