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.
- argus/backend/cli.py +1 -1
- argus/backend/controller/admin_api.py +26 -0
- argus/backend/controller/api.py +26 -1
- argus/backend/controller/main.py +21 -0
- argus/backend/controller/testrun_api.py +132 -1
- argus/backend/controller/view_api.py +162 -0
- argus/backend/models/web.py +16 -0
- argus/backend/plugins/core.py +28 -5
- argus/backend/plugins/driver_matrix_tests/controller.py +39 -0
- argus/backend/plugins/driver_matrix_tests/model.py +252 -4
- argus/backend/plugins/driver_matrix_tests/raw_types.py +27 -0
- argus/backend/plugins/driver_matrix_tests/service.py +18 -0
- argus/backend/plugins/driver_matrix_tests/udt.py +14 -13
- argus/backend/plugins/generic/model.py +6 -3
- argus/backend/plugins/loader.py +2 -2
- argus/backend/plugins/sct/controller.py +31 -0
- argus/backend/plugins/sct/plugin.py +2 -1
- argus/backend/plugins/sct/service.py +101 -3
- argus/backend/plugins/sct/testrun.py +8 -2
- argus/backend/plugins/sct/types.py +18 -0
- argus/backend/plugins/sct/udt.py +6 -0
- argus/backend/plugins/sirenada/model.py +1 -1
- argus/backend/service/argus_service.py +116 -11
- argus/backend/service/build_system_monitor.py +37 -7
- argus/backend/service/jenkins_service.py +176 -1
- argus/backend/service/release_manager.py +14 -0
- argus/backend/service/stats.py +179 -21
- argus/backend/service/testrun.py +44 -5
- argus/backend/service/views.py +258 -0
- argus/backend/template_filters.py +7 -0
- argus/backend/util/common.py +14 -2
- argus/client/driver_matrix_tests/cli.py +110 -0
- argus/client/driver_matrix_tests/client.py +56 -193
- argus/client/sct/client.py +34 -0
- argus_alm-0.12.4b1.dist-info/METADATA +129 -0
- {argus_alm-0.12.2.dist-info → argus_alm-0.12.4b1.dist-info}/RECORD +39 -36
- {argus_alm-0.12.2.dist-info → argus_alm-0.12.4b1.dist-info}/WHEEL +1 -1
- {argus_alm-0.12.2.dist-info → argus_alm-0.12.4b1.dist-info}/entry_points.txt +1 -0
- argus_alm-0.12.2.dist-info/METADATA +0 -206
- {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=
|
|
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=
|
|
8
|
-
argus/backend/controller/api.py,sha256=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
24
|
-
argus/backend/plugins/driver_matrix_tests/controller.py,sha256=
|
|
25
|
-
argus/backend/plugins/driver_matrix_tests/model.py,sha256=
|
|
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=
|
|
28
|
-
argus/backend/plugins/driver_matrix_tests/service.py,sha256=
|
|
29
|
-
argus/backend/plugins/driver_matrix_tests/udt.py,sha256=
|
|
30
|
-
argus/backend/plugins/generic/model.py,sha256=
|
|
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=
|
|
34
|
-
argus/backend/plugins/sct/controller.py,sha256=
|
|
35
|
-
argus/backend/plugins/sct/plugin.py,sha256=
|
|
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=
|
|
38
|
-
argus/backend/plugins/sct/testrun.py,sha256=
|
|
39
|
-
argus/backend/plugins/sct/types.py,sha256=
|
|
40
|
-
argus/backend/plugins/sct/udt.py,sha256=
|
|
41
|
-
argus/backend/plugins/sirenada/model.py,sha256=
|
|
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=
|
|
46
|
-
argus/backend/service/build_system_monitor.py,sha256=
|
|
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=
|
|
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=
|
|
52
|
-
argus/backend/service/stats.py,sha256
|
|
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=
|
|
55
|
+
argus/backend/service/testrun.py,sha256=ZM0D38IQpbrmia1GlCfLK02ZLwp_pbpUuQPN8BwibAw,21432
|
|
55
56
|
argus/backend/service/user.py,sha256=N3t43rgKMnSsPXU5R9bigEEGbPjYrc6MsJtof3z7kDE,9027
|
|
56
|
-
argus/backend/
|
|
57
|
-
argus/backend/
|
|
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/
|
|
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=
|
|
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.
|
|
81
|
-
argus_alm-0.12.
|
|
82
|
-
argus_alm-0.12.
|
|
83
|
-
argus_alm-0.12.
|
|
84
|
-
argus_alm-0.12.
|
|
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,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
|
-
|
|
File without changes
|