argus-alm 0.12.2__py3-none-any.whl → 0.12.4b1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. argus/backend/cli.py +1 -1
  2. argus/backend/controller/admin_api.py +26 -0
  3. argus/backend/controller/api.py +26 -1
  4. argus/backend/controller/main.py +21 -0
  5. argus/backend/controller/testrun_api.py +132 -1
  6. argus/backend/controller/view_api.py +162 -0
  7. argus/backend/models/web.py +16 -0
  8. argus/backend/plugins/core.py +28 -5
  9. argus/backend/plugins/driver_matrix_tests/controller.py +39 -0
  10. argus/backend/plugins/driver_matrix_tests/model.py +252 -4
  11. argus/backend/plugins/driver_matrix_tests/raw_types.py +27 -0
  12. argus/backend/plugins/driver_matrix_tests/service.py +18 -0
  13. argus/backend/plugins/driver_matrix_tests/udt.py +14 -13
  14. argus/backend/plugins/generic/model.py +6 -3
  15. argus/backend/plugins/loader.py +2 -2
  16. argus/backend/plugins/sct/controller.py +31 -0
  17. argus/backend/plugins/sct/plugin.py +2 -1
  18. argus/backend/plugins/sct/service.py +101 -3
  19. argus/backend/plugins/sct/testrun.py +8 -2
  20. argus/backend/plugins/sct/types.py +18 -0
  21. argus/backend/plugins/sct/udt.py +6 -0
  22. argus/backend/plugins/sirenada/model.py +1 -1
  23. argus/backend/service/argus_service.py +116 -11
  24. argus/backend/service/build_system_monitor.py +37 -7
  25. argus/backend/service/jenkins_service.py +176 -1
  26. argus/backend/service/release_manager.py +14 -0
  27. argus/backend/service/stats.py +179 -21
  28. argus/backend/service/testrun.py +44 -5
  29. argus/backend/service/views.py +258 -0
  30. argus/backend/template_filters.py +7 -0
  31. argus/backend/util/common.py +14 -2
  32. argus/client/driver_matrix_tests/cli.py +110 -0
  33. argus/client/driver_matrix_tests/client.py +56 -193
  34. argus/client/sct/client.py +34 -0
  35. argus_alm-0.12.4b1.dist-info/METADATA +129 -0
  36. {argus_alm-0.12.2.dist-info → argus_alm-0.12.4b1.dist-info}/RECORD +39 -36
  37. {argus_alm-0.12.2.dist-info → argus_alm-0.12.4b1.dist-info}/WHEEL +1 -1
  38. {argus_alm-0.12.2.dist-info → argus_alm-0.12.4b1.dist-info}/entry_points.txt +1 -0
  39. argus_alm-0.12.2.dist-info/METADATA +0 -206
  40. {argus_alm-0.12.2.dist-info → argus_alm-0.12.4b1.dist-info}/LICENSE +0 -0
@@ -1,60 +1,62 @@
1
1
  argus/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
2
  argus/backend/.gitkeep,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
3
3
  argus/backend/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
- argus/backend/cli.py,sha256=EZFI70CIaHNt93ARvEkNanbC0_nB7loIPq9giEQ3P2s,1342
4
+ argus/backend/cli.py,sha256=fWSS1m0mhQeCwfH58Qfs4Cicxc95IKi9vwmQn3SUYs0,1346
5
5
  argus/backend/controller/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
6
6
  argus/backend/controller/admin.py,sha256=2z29RX7ZQO_VTklSKH9RrEj-Ag2SsvyOaIzWDKr0ahQ,575
7
- argus/backend/controller/admin_api.py,sha256=9CkewYmnqKJpSKoXyKDMxuMziyAWQ1lRD3dMSh5R3PI,6249
8
- argus/backend/controller/api.py,sha256=_hLJcO__jFMB4kFonkwVgUkYdLLQTSvCrCLQKKrvgr8,13450
7
+ argus/backend/controller/admin_api.py,sha256=I2eQbU5f5rlQeL7eI4t9mRoxM3SJ5O-6fqLsHf0wcEU,6975
8
+ argus/backend/controller/api.py,sha256=HvjpR4ug5NXiTdBlrFTBeq57YQ5Vl_jca-IT35sAuas,14203
9
9
  argus/backend/controller/auth.py,sha256=nwF_5uZLxPOCLm2ljLyw2OxGur6fmPM7WAAoGJLI_kk,2030
10
10
  argus/backend/controller/client_api.py,sha256=SM6HRlnoguxkPrqHzm42b5JsoQ2b8-1hTtfLWe832hc,3007
11
- argus/backend/controller/main.py,sha256=XQLwGPXm0MlDIq-Bb84xYiiksmbE0oSjDAwMdDd14BE,8296
11
+ argus/backend/controller/main.py,sha256=gYA0pqUBlLhpedkOetUX0V82qfe489frOEHPEtM-iHQ,8992
12
12
  argus/backend/controller/notification_api.py,sha256=wz7V4nE6Mxclpq78P8gNnCyeQ7xA9BBJjZ-dPhLLd2I,1964
13
13
  argus/backend/controller/notifications.py,sha256=zMSJln72BGU6Q_nQvJesMnuvJ57Ucbov4M2ZI-37Bxo,290
14
14
  argus/backend/controller/team.py,sha256=G6LdIBaYgfG0Qr4RhNQ53MZVdh4wcuotsIIpFwhTJ3w,3101
15
15
  argus/backend/controller/team_ui.py,sha256=B7N1_Kzl6Rac8BV3FbKj55pGAS_dht47rYhAi94PC8A,589
16
- argus/backend/controller/testrun_api.py,sha256=JhSzstTWkcYPiMKQikeWaYjTPSlvNyHHRany11TQUGo,9070
16
+ argus/backend/controller/testrun_api.py,sha256=92VI_FngMxr9SpKMhlEdSzambvbL4dpMtfx26Z3_Eso,12264
17
+ argus/backend/controller/view_api.py,sha256=rI7LwcS7keK37nYx76D9StFV_rLHcNkHan8OhFgBrhM,4106
17
18
  argus/backend/db.py,sha256=bBiraYD05Qex28yZHjSP1bRlcMsc6oTYGt792zXmaHo,4101
18
19
  argus/backend/error_handlers.py,sha256=IEjz7Vzfldv1PTOeHrpRWmRsgBrHtAW0PXHUJZDovAE,480
19
20
  argus/backend/events/event_processors.py,sha256=bsmBayiXvlGn3aqiT2z9WgwnVBRtn2cRqkgn4pLodck,1291
20
21
  argus/backend/models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
21
- argus/backend/models/web.py,sha256=dUWQQaw5TivSCOuGQqAxIH9yVraGXX7sayNBloIS3n8,12206
22
+ argus/backend/models/web.py,sha256=nl9sCOaPT53UKcZwguQB1DVm523Scgw7d2Rs4xaC9x4,12943
22
23
  argus/backend/plugins/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
23
- argus/backend/plugins/core.py,sha256=Tit-JlybrFCSsqoKjp_BFmtaxRk_AiocGOKqMfBovj4,7604
24
- argus/backend/plugins/driver_matrix_tests/controller.py,sha256=9Q6QCripzM528SGsQnYupM6k7HW7hUzkNyjJFiXXfEw,739
25
- argus/backend/plugins/driver_matrix_tests/model.py,sha256=Ay_Q6EAF4CwAW0fejdia4zyKcZOc943eZWT5nWIefYM,6822
24
+ argus/backend/plugins/core.py,sha256=kMp2zrEcgAZP0D4yw_dzY5uD8DcC19CoZ_E7urH0f0k,8608
25
+ argus/backend/plugins/driver_matrix_tests/controller.py,sha256=GdPpProzsVXQw8A4h2IS8inUPdr_Q4IN93i6ocOThS8,2213
26
+ argus/backend/plugins/driver_matrix_tests/model.py,sha256=Wqot8rOYqroYV7cn60ltlarnuIuYrL2qyrk13NwLeT4,15419
26
27
  argus/backend/plugins/driver_matrix_tests/plugin.py,sha256=72ESU7s8C6ovVMfJTlYwtaokdvRp_HJF1_czm1UMhKg,745
27
- argus/backend/plugins/driver_matrix_tests/raw_types.py,sha256=A108HCnv5q0RHfNRhUJrTpRy3fG7sPxr9Sk4gfsbooU,600
28
- argus/backend/plugins/driver_matrix_tests/service.py,sha256=dxb8VGTJLIyVqVrZ4RtzCXgnmS2qg2RAGhcp_SARt9I,1737
29
- argus/backend/plugins/driver_matrix_tests/udt.py,sha256=6lydzF3AQHm3GR5bKEDu1xLPYsLaBL3o-wu9NpabbqA,1134
30
- argus/backend/plugins/generic/model.py,sha256=y5-eJRxMm8L2zDRVXcG-ZK7mrslZ5rGPTv-ihXFt9Yc,3096
28
+ argus/backend/plugins/driver_matrix_tests/raw_types.py,sha256=KwbwsvS52RzOZb7_PT7kkYkChNzRH-MpKoO_eeZNDIk,1153
29
+ argus/backend/plugins/driver_matrix_tests/service.py,sha256=98m6IyPsbenq0O-EtGaW0tiQVuM2yGX41xNCO3icmnc,2524
30
+ argus/backend/plugins/driver_matrix_tests/udt.py,sha256=WRtnJU1dZcLXZJQgfU0mgjNzK_DyVhNgLTzr-aXX8K8,1394
31
+ argus/backend/plugins/generic/model.py,sha256=QLVO7QhGr38Hz0VO-BlDYF7LhRX7Pl049vw4W_VMT8o,3302
31
32
  argus/backend/plugins/generic/plugin.py,sha256=5URbQVUCizrk-KZqb6I0P_8nLUekjYh-Js7ZLKVoBAA,407
32
33
  argus/backend/plugins/generic/types.py,sha256=jlZUcQ7r153ziyl3ZJmix7AzL2G1aX9N_z-4Kw9trWc,267
33
- argus/backend/plugins/loader.py,sha256=0MmGNBVle51tIyH7lA7Lz2L8PcGKGub9vyFuwnLm840,1320
34
- argus/backend/plugins/sct/controller.py,sha256=ek4gNiraDzd81QMpHKCzpugUSkwbXCHKAPsjD9ol6CE,4791
35
- argus/backend/plugins/sct/plugin.py,sha256=3TlX5NAd7bv4aMI9FJNJLkf8o2bcahZhZobAV4xAbzU,965
34
+ argus/backend/plugins/loader.py,sha256=6PUrMjXKoCSDazMRkUHt8qxpniRhuqhY8Tof8lzeunk,1390
35
+ argus/backend/plugins/sct/controller.py,sha256=NF11JLoUJ13whghlxRrVex9rLMgFtlkczUAAKAM9vYg,5738
36
+ argus/backend/plugins/sct/plugin.py,sha256=_sOMcXLoFfeG9jwj_t48C4IFvY87juK8ApR6tfSw6q4,1007
36
37
  argus/backend/plugins/sct/resource_setup.py,sha256=hwfAOu-oKOH42tjtzJhiqwq_MtUE9_HevoFyql8JKqY,10120
37
- argus/backend/plugins/sct/service.py,sha256=fiwnIE4guVOnw5c8g8xwOSr5BoTI_AoyVzJkWYhnQ5A,17632
38
- argus/backend/plugins/sct/testrun.py,sha256=qU-81IRs7UYTs5ozcDlATLZWGUp6I8X3XOIVJoz9RFc,9416
39
- argus/backend/plugins/sct/types.py,sha256=avLL3fzug_n6GbtlW8bcPewcDGi1DxHFD0vp-JZ7hdQ,969
40
- argus/backend/plugins/sct/udt.py,sha256=oP2xzUGy2o4fVICcZyGyvLWapR2Rox-Myp_FTXHmxlQ,2879
41
- argus/backend/plugins/sirenada/model.py,sha256=ku9jITNf9wU0YZJ9JwkopJYCC2MKek1M1Q7aPKZzt5M,4683
38
+ argus/backend/plugins/sct/service.py,sha256=ygAL85BkyyovJ1xHktlCQJdJS8CrerJZ_Tbr3EXqsg4,22021
39
+ argus/backend/plugins/sct/testrun.py,sha256=NopC3Gnzf2m65S_E4DedAlgnbFvyaMQH5aLJip6ZPrE,9660
40
+ argus/backend/plugins/sct/types.py,sha256=Gw1y4iqYguqNqTh_GopLDFho8vuGaOGuK7fjaHYhAOQ,1326
41
+ argus/backend/plugins/sct/udt.py,sha256=V_x8_yw8rV7Q_QRBYayqtTNsPdZvjzOxWpRhXP1XAzs,3119
42
+ argus/backend/plugins/sirenada/model.py,sha256=KVnI75BacuBryc5lR_Aai-mEOs7CB9xxhb7J-YRU3bc,4705
42
43
  argus/backend/plugins/sirenada/plugin.py,sha256=AlQAakwy3u-OqAqqK3RonUR5oDm-JoiwBUDUF3YEVP4,447
43
44
  argus/backend/plugins/sirenada/types.py,sha256=Gm3XMK9YJoozVaeM9XE7n8iRxA6PKBrS23Mo2vJfdLs,697
44
45
  argus/backend/service/admin.py,sha256=_VnWl3CkZBOAie_pPbd9sbXZUpBf2SApyNoFZLfB_QI,637
45
- argus/backend/service/argus_service.py,sha256=o415BalaQ-FP5CDSjeypiXJ4ejaVVXqive25syPhRdM,24192
46
- argus/backend/service/build_system_monitor.py,sha256=_Bxugk4CCh2z-I-i74QMPe7M8j0dmBMDri2dd3WGVew,7328
46
+ argus/backend/service/argus_service.py,sha256=d1NrCQmcE_1NmkV761dheBL43Vk0n-oP0S4IZtQzJUQ,28832
47
+ argus/backend/service/build_system_monitor.py,sha256=E8Ro1HBMfktxqcCHLPuXwzohkdgrls7pYro-VSG_CMs,8248
47
48
  argus/backend/service/client_service.py,sha256=CS5esppd9s-SgUYE-HVLkfz-MrN8zxPouf9e4VlPV_M,2326
48
49
  argus/backend/service/event_service.py,sha256=iYeqxN2QCYTjYB1WPPv4BEFLXG0Oz3TvskkaK4v9pVY,654
49
- argus/backend/service/jenkins_service.py,sha256=BnUvVi1iUvvD99lnscs-kxPGA9LExxNUsgwfO-46tq8,2518
50
+ argus/backend/service/jenkins_service.py,sha256=PKmu44kAEWl-Dw7f8gXkKhwRkV4yWy-B4CmFxv7c6-8,9685
50
51
  argus/backend/service/notification_manager.py,sha256=h00Ej_-hH9H7pq0wah_1TH8dnpPyPNsgVJNO1rwJi7o,7011
51
- argus/backend/service/release_manager.py,sha256=DymV5OI53ClRdc4p7jlCGT6xPqrjIxHjs8EDiyWffqQ,7362
52
- argus/backend/service/stats.py,sha256=4WEtd5gdzT-dzOjD1NUHdBfVurxnwXcawjseu-kqxHw,15167
52
+ argus/backend/service/release_manager.py,sha256=d1J6llBb4aKgFPrsPTPYpV9NnGx772jeORZjs-ojYGE,7771
53
+ argus/backend/service/stats.py,sha256=-V94A8EUlQBvwG53oJTL4U1EzR4vciEF7Niu-efTL6Y,22713
53
54
  argus/backend/service/team_manager_service.py,sha256=zY5dvy3ffvQbJuXBvlWKE5dS5LQ3ss6tkFE-cwFZsdw,3010
54
- argus/backend/service/testrun.py,sha256=ggjTcWjyvsPXSSv_v80rrp3bHaqCOjcxYEewXrW9AXg,19706
55
+ argus/backend/service/testrun.py,sha256=ZM0D38IQpbrmia1GlCfLK02ZLwp_pbpUuQPN8BwibAw,21432
55
56
  argus/backend/service/user.py,sha256=N3t43rgKMnSsPXU5R9bigEEGbPjYrc6MsJtof3z7kDE,9027
56
- argus/backend/template_filters.py,sha256=hD8eDyBYp-X6JVoyQhM-TWYv3MuyorAv0Emz728iGcU,523
57
- argus/backend/util/common.py,sha256=fmE9cKnJ1CX_Cz4Mw1d_M-T-jwPh8DkKr_fLAx8LY9M,1458
57
+ argus/backend/service/views.py,sha256=amkyOQgHSP3YEDqiFHAhOiNzNCLk2sLkruTB2_IagDQ,11244
58
+ argus/backend/template_filters.py,sha256=04PHl0DiN4PBHQ82HMAmTfww09fGMXcYy-I5BU_b1s4,682
59
+ argus/backend/util/common.py,sha256=vLMit9ZBBN8S4-dw32LIhjtaEOX_5hwWneHILS_SNBg,1723
58
60
  argus/backend/util/config.py,sha256=Sm0LCRkabYaSUkXNPglyjMr45GCDBNXqJLkmB_s51f0,860
59
61
  argus/backend/util/encoders.py,sha256=VxOnUanHP9FjcaobYupV-pZ3Udzrrrq7zZcbNpVXaKM,646
60
62
  argus/backend/util/enums.py,sha256=EhTQrgedlEz5sDYJ1gFnE2eC2nc1neQCRgzOgssQvWY,749
@@ -63,10 +65,11 @@ argus/backend/util/module_loaders.py,sha256=AcIlX-VRmUQ2THFKT8DLefLSE62Eub2hCxIo
63
65
  argus/backend/util/send_email.py,sha256=Bb2Hta7WlBCvDKga0_WPFWgxWJEfKpectOGypgf9xzo,3217
64
66
  argus/client/__init__.py,sha256=bO9_j5_jK5kvTHR46KEZ0Y-p0li7CBW8QSd-K5Ez4vA,42
65
67
  argus/client/base.py,sha256=-R-BINTolY06lUQLOLGlsWzza4fBdtLBW-4V3NT64vg,6755
66
- argus/client/driver_matrix_tests/client.py,sha256=ekuTkEZbcVqhg6DAC6PvGuC9bXuu4DSOjk96vcLzmuQ,7817
68
+ argus/client/driver_matrix_tests/cli.py,sha256=YOhXL6yS2jBJoiSmVfwWKAosvrad7jIwTvC7XXtRj-8,6321
69
+ argus/client/driver_matrix_tests/client.py,sha256=UPryBku2rg6IV2wKKDkclXHnH3r6EYwWdds65wLC-KU,2748
67
70
  argus/client/generic/cli.py,sha256=IJkgEZ5VOAeqp5SlLM13Y5m8e34Cqnyz8WkfeKoN7so,2208
68
71
  argus/client/generic/client.py,sha256=l4PDjDy65Mm2OI9ZLSnyd8_2i4Ei1Pp9yRt3bRX8s2Y,1114
69
- argus/client/sct/client.py,sha256=0xRIeYtjTFGfDS03klSTFie3uxrQqB51xkeOW223MiQ,10204
72
+ argus/client/sct/client.py,sha256=DtRA0Ra3ycUcedDYfZZW1jER0nc8vdYHaY6DT0te4x0,11341
70
73
  argus/client/sct/types.py,sha256=VLgVe7qPmJtCLqtPnuX8N8kMKZq-iY3SKz68nvU6nJ4,371
71
74
  argus/client/sirenada/client.py,sha256=ilcyLXJb-0gKbmb9WSPr-Yvldh73joGBhRDoilQoSJ4,6220
72
75
  argus/db/.gitkeep,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -77,8 +80,8 @@ argus/db/db_types.py,sha256=iLbmrUaDzrBw0kDCnvW0FSZ9-kNc3uQY-fsbIPymV4E,3612
77
80
  argus/db/interface.py,sha256=HroyA1Yijz5cXLdYbxorHCEu0GH9VeMMqB36IHTlcew,17146
78
81
  argus/db/testrun.py,sha256=0YG7FIH5FLQeNlYULxC6rhhyru2rziSMe3qKtYzTBnc,26014
79
82
  argus/db/utils.py,sha256=YAWsuLjUScSgKgdaL5aF4Sgr13gqH29Mb5cLctX4V_w,337
80
- argus_alm-0.12.2.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
81
- argus_alm-0.12.2.dist-info/METADATA,sha256=RCkJF9S0qfgVoZYNzby251ebAl13rN_5Mzk64Ng_XaQ,6862
82
- argus_alm-0.12.2.dist-info/WHEEL,sha256=Zb28QaM1gQi8f4VCBhsUklF61CTlNYfs9YAZn-TOGFk,88
83
- argus_alm-0.12.2.dist-info/entry_points.txt,sha256=zEqrAK95P8AAhKbwO4lgrQzKBWqCzHH9zlUPCaCVHoQ,69
84
- argus_alm-0.12.2.dist-info/RECORD,,
83
+ argus_alm-0.12.4b1.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
84
+ argus_alm-0.12.4b1.dist-info/METADATA,sha256=8--mwnEtPjOCF5SIHNZLfk7YtoLKsyBJfoSq75nJo2I,3510
85
+ argus_alm-0.12.4b1.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
86
+ argus_alm-0.12.4b1.dist-info/entry_points.txt,sha256=pcYW8nxZuDaymxE8tn86K0dq8eEodUdiS0sSvwEQ_zU,137
87
+ argus_alm-0.12.4b1.dist-info/RECORD,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: poetry-core 1.6.1
2
+ Generator: poetry-core 1.9.0
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
@@ -1,3 +1,4 @@
1
1
  [console_scripts]
2
2
  argus-client-generic=argus.client.generic.cli:cli
3
+ argus-driver-matrix-client=argus.client.driver_matrix_tests.cli:cli
3
4
 
@@ -1,206 +0,0 @@
1
- Metadata-Version: 2.1
2
- Name: argus-alm
3
- Version: 0.12.2
4
- Summary: Argus
5
- Home-page: https://github.com/scylladb/argus
6
- License: Apache-2.0
7
- Author: Alexey Kartashov
8
- Author-email: alexey.kartashov@scylladb.com
9
- Requires-Python: >=3.10,<4.0
10
- Classifier: License :: OSI Approved :: Apache Software License
11
- Classifier: Programming Language :: Python :: 3
12
- Classifier: Programming Language :: Python :: 3.10
13
- Classifier: Programming Language :: Python :: 3.11
14
- Requires-Dist: click (>=8.1.3,<9.0.0)
15
- Requires-Dist: requests (>=2.26.0,<3.0.0)
16
- Project-URL: Repository, https://github.com/scylladb/argus
17
- Description-Content-Type: text/markdown
18
-
19
- # Argus
20
-
21
- ## Description
22
-
23
- Argus is a test tracking system intended to provide observability into automated test pipelines which use long-running resources. It allows observation of a test status, its events and its allocated resources. It also allows easy comparison between particular runs of a specific test.
24
-
25
- ## Installation notes
26
-
27
- ### Prerequisites
28
-
29
- - Python >=3.10.0 (system-wide or pyenv)
30
-
31
- - NodeJS >=16 (with npm)
32
-
33
- - Yarn (can be installed globally with `npm -g install yarn`)
34
-
35
- - nginx
36
-
37
- - poetry >=1.2.0b1
38
-
39
- ### From source
40
-
41
- #### Production
42
-
43
- Perform the following steps:
44
-
45
- Create a user that will be used by uwsgi:
46
-
47
- ```bash
48
- useradd -m -s /bin/bash argus
49
- sudo -iu argus
50
- ```
51
-
52
- (Optional) Install pyenv and create a virtualenv for this user:
53
-
54
- ```bash
55
- pyenv install 3.10.0
56
- pyenv virtualenv argus
57
- pyenv activate argus
58
- ```
59
-
60
- Clone the project into a directory somewhere where user has full write permissions
61
-
62
- ```bash
63
- git clone https://github.com/scylladb/argus ~/app
64
- cd ~/app
65
- ```
66
-
67
- Install project dependencies:
68
-
69
- ```bash
70
- poetry install --with default,dev,web-backend,docker-image
71
- yarn install
72
- ```
73
-
74
- Compile frontend files from `/frontend` into `/public/dist`
75
-
76
- ```bash
77
- yarn webpack
78
- ```
79
-
80
- Create a `argus.local.yaml` configuration file (used to configure database connection) and a `argus_web.yaml` (used for webapp secrets) in your application install directory.
81
-
82
- ```bash
83
- cp argus_web.example.yaml argus_web.yaml
84
- cp argus.yaml argus.local.yaml
85
- ```
86
-
87
- Open `argus.local.yaml` and add the database connection information (contact_points, user, password and keyspace name).
88
-
89
- Open `argus_web.yaml` and change the `SECRET_KEY` value to something secure, like a sha512 digest of random bytes. Fill out GITHUB_* variables with their respective values.
90
-
91
- Copy nginx configuration file from `docs/configs/argus.nginx.conf` to nginx virtual hosts directory:
92
-
93
- Ubuntu:
94
-
95
- ```bash
96
- sudo cp docs/configs/argus.nginx.conf /etc/nginx/sites-available/argus
97
- sudo ln -s /etc/nginx/sites-enabled/argus /etc/nginx/sites-available/argus
98
- ```
99
-
100
- RHEL/Centos/Alma/Fedora:
101
-
102
- ```bash
103
- sudo cp docs/configs/argus.nginx.conf /etc/nginx/conf.d/argus.conf
104
- ```
105
-
106
- Adjust the webhost settings in that file as necessary, particularly `listen` and `server_name` directives.
107
-
108
- Copy systemd service file from `docs/config/argus.service` to `/etc/systemd/system` directory:
109
-
110
- ```bash
111
- sudo cp docs/config/argus.service /etc/systemd/system
112
- ```
113
-
114
- Open it and adjust the path to the `start_argus.sh` script in the `ExecStart=` directive and the user/group, then reload systemd daemon configuration and enable (and optionally start) the service.
115
-
116
- WARNING: `start_argus.sh` assumes pyenv is installed into `~/.pyenv`
117
-
118
- ```bash
119
- sudo systemctl daemon-reload
120
- sudo systemctl enable --now argus.service
121
- ```
122
-
123
- #### Development
124
-
125
- Clone the project into a directory somewhere
126
-
127
- ```bash
128
- git clone https://github.com/scylladb/argus
129
- cd argus
130
- ```
131
-
132
- Install project dependencies:
133
-
134
- ```bash
135
- poetry install --with default,dev,web-backend,docker-image
136
- yarn install
137
- ```
138
-
139
- Compile frontend files from `/frontend` into `/public/dist`. Add --watch to recompile files on change.
140
-
141
- ```bash
142
- yarn webpack --watch
143
- ```
144
- ##### Configuration
145
- Create a `argus.local.yaml` configuration file (used to configure database connection) and a `argus_web.yaml` (used for webapp secrets) in your application install directory.
146
-
147
- See `Production` section for more details.
148
- To configure Github authentication follow steps:
149
- 1. Authorize OAuth App
150
- 1. go to your Account Settings (top right corner) -> Developer settings (left pane) -> OAuth Apps
151
- 2. Click Create New OAuth App button
152
- 3. Fill the fields (app name: `argus-dev`, homepage URL `http://localhost:5000`, Auth callback URL: `http://localhost:5000/profile/oauth/github`)
153
- 4. Confirm and get the tokens/ids required for config
154
- 2. Create Jenkins token for your account
155
- 1. Go to `Configure` in top right corner
156
- 2. Click `Add new Token`
157
- 3. Get it and paste to config to `JENKINS_API_TOKEN` param
158
- ##### Database Initialization
159
-
160
- You can initialize a scylla cluster in any way you like, either using docker image with docker-compose or using cassandra cluster manager. You will need to create the keyspace manually before you can sync database models.
161
-
162
- Create keyspace according to your configuration.
163
- e.g. (need to test if it works with RF=1 if not, make it 3)
164
- ```
165
- CREATE KEYSPACE argus WITH replication = {'class': 'SimpleStrategy', 'replication_factor' : 1}
166
- ```
167
-
168
- Initial sync can be done as follows:
169
-
170
- ```py
171
- from argus.backend.db import ScyllaCluster
172
- from argus.db.testrun import TestRun
173
- db = ScyllaCluster.get()
174
-
175
- db.sync_models() # Syncronizes Object Mapper models
176
- TestRun.init_own_table() # Syncronizes TestRun table (separate from python-driver Object Mapper)
177
-
178
- ```
179
-
180
- You can also use `flask sync-models` afterwards during development when making small changes to models.
181
-
182
- It is recommended to set up jenkins api key and run `flask scan-jenkins` afterwards to get basic release/group/test structure.
183
-
184
- There are scripts in `./scripts` directory that can be used to download data from production, upload them into your dev db and fix their relations to other models in your instance of the application. Specifically, `download_runs_from_prod.py` requires additional config, `argus.local.prod.yaml` which is the config used to connect to the production cluster. The scripts are split to prevent mistakes and accidentally affecting production cluster.
185
-
186
- ##### Configuration
187
-
188
- Create a `argus.local.yaml` configuration file (used to configure database connection) and a `argus_web.yaml` (used for webapp secrets) in your application install directory.
189
-
190
- ```bash
191
- cp argus_web.example.yaml argus_web.yaml
192
- cp argus.yaml argus.local.yaml
193
- ```
194
-
195
- Open `argus.local.yaml` and add the database connection information (contact_points, user, password and keyspace name).
196
-
197
- Open `argus_web.yaml` and change the `SECRET_KEY` value to something secure, like a sha512 digest of random bytes. Fill out GITHUB_* and JENKINS_* variables with their respective values.
198
-
199
- Run the application from CLI using:
200
-
201
- ```bash
202
- FLASK_ENV="development" FLASK_APP="argus_backend:start_server" FLASK_DEBUG=1 CQLENG_ALLOW_SCHEMA_MANAGEMENT=1 flask run
203
- ```
204
-
205
- Omit `FLASK_DEBUG` if running your own debugger (pdb, pycharm, vscode)
206
-