argus-alm 0.12.10__py3-none-any.whl → 0.13.0__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 (92) hide show
  1. argus/client/base.py +1 -1
  2. argus/client/driver_matrix_tests/cli.py +2 -2
  3. argus/client/driver_matrix_tests/client.py +1 -1
  4. argus/client/generic/cli.py +2 -2
  5. argus/client/sct/client.py +3 -3
  6. argus/client/sirenada/client.py +1 -1
  7. {argus_alm-0.12.10.dist-info → argus_alm-0.13.0.dist-info}/METADATA +2 -4
  8. argus_alm-0.13.0.dist-info/RECORD +20 -0
  9. argus/backend/.gitkeep +0 -0
  10. argus/backend/cli.py +0 -41
  11. argus/backend/controller/__init__.py +0 -0
  12. argus/backend/controller/admin.py +0 -20
  13. argus/backend/controller/admin_api.py +0 -354
  14. argus/backend/controller/api.py +0 -529
  15. argus/backend/controller/auth.py +0 -67
  16. argus/backend/controller/client_api.py +0 -108
  17. argus/backend/controller/main.py +0 -274
  18. argus/backend/controller/notification_api.py +0 -72
  19. argus/backend/controller/notifications.py +0 -13
  20. argus/backend/controller/team.py +0 -126
  21. argus/backend/controller/team_ui.py +0 -18
  22. argus/backend/controller/testrun_api.py +0 -482
  23. argus/backend/controller/view_api.py +0 -162
  24. argus/backend/db.py +0 -100
  25. argus/backend/error_handlers.py +0 -21
  26. argus/backend/events/event_processors.py +0 -34
  27. argus/backend/models/__init__.py +0 -0
  28. argus/backend/models/result.py +0 -138
  29. argus/backend/models/web.py +0 -389
  30. argus/backend/plugins/__init__.py +0 -0
  31. argus/backend/plugins/core.py +0 -225
  32. argus/backend/plugins/driver_matrix_tests/controller.py +0 -63
  33. argus/backend/plugins/driver_matrix_tests/model.py +0 -421
  34. argus/backend/plugins/driver_matrix_tests/plugin.py +0 -22
  35. argus/backend/plugins/driver_matrix_tests/raw_types.py +0 -62
  36. argus/backend/plugins/driver_matrix_tests/service.py +0 -60
  37. argus/backend/plugins/driver_matrix_tests/udt.py +0 -42
  38. argus/backend/plugins/generic/model.py +0 -79
  39. argus/backend/plugins/generic/plugin.py +0 -16
  40. argus/backend/plugins/generic/types.py +0 -13
  41. argus/backend/plugins/loader.py +0 -40
  42. argus/backend/plugins/sct/controller.py +0 -185
  43. argus/backend/plugins/sct/plugin.py +0 -38
  44. argus/backend/plugins/sct/resource_setup.py +0 -178
  45. argus/backend/plugins/sct/service.py +0 -491
  46. argus/backend/plugins/sct/testrun.py +0 -272
  47. argus/backend/plugins/sct/udt.py +0 -101
  48. argus/backend/plugins/sirenada/model.py +0 -113
  49. argus/backend/plugins/sirenada/plugin.py +0 -17
  50. argus/backend/service/admin.py +0 -27
  51. argus/backend/service/argus_service.py +0 -688
  52. argus/backend/service/build_system_monitor.py +0 -188
  53. argus/backend/service/client_service.py +0 -122
  54. argus/backend/service/event_service.py +0 -18
  55. argus/backend/service/jenkins_service.py +0 -240
  56. argus/backend/service/notification_manager.py +0 -150
  57. argus/backend/service/release_manager.py +0 -230
  58. argus/backend/service/results_service.py +0 -317
  59. argus/backend/service/stats.py +0 -540
  60. argus/backend/service/team_manager_service.py +0 -83
  61. argus/backend/service/testrun.py +0 -559
  62. argus/backend/service/user.py +0 -307
  63. argus/backend/service/views.py +0 -258
  64. argus/backend/template_filters.py +0 -27
  65. argus/backend/tests/__init__.py +0 -0
  66. argus/backend/tests/argus_web.test.yaml +0 -39
  67. argus/backend/tests/conftest.py +0 -44
  68. argus/backend/tests/results_service/__init__.py +0 -0
  69. argus/backend/tests/results_service/test_best_results.py +0 -70
  70. argus/backend/util/common.py +0 -65
  71. argus/backend/util/config.py +0 -38
  72. argus/backend/util/encoders.py +0 -41
  73. argus/backend/util/logsetup.py +0 -81
  74. argus/backend/util/module_loaders.py +0 -30
  75. argus/backend/util/send_email.py +0 -91
  76. argus/client/generic_result_old.py +0 -143
  77. argus/db/.gitkeep +0 -0
  78. argus/db/argus_json.py +0 -14
  79. argus/db/cloud_types.py +0 -125
  80. argus/db/config.py +0 -135
  81. argus/db/db_types.py +0 -139
  82. argus/db/interface.py +0 -370
  83. argus/db/testrun.py +0 -740
  84. argus/db/utils.py +0 -15
  85. argus_alm-0.12.10.dist-info/RECORD +0 -96
  86. /argus/{backend → common}/__init__.py +0 -0
  87. /argus/{backend/util → common}/enums.py +0 -0
  88. /argus/{backend/plugins/sct/types.py → common/sct_types.py} +0 -0
  89. /argus/{backend/plugins/sirenada/types.py → common/sirenada_types.py} +0 -0
  90. {argus_alm-0.12.10.dist-info → argus_alm-0.13.0.dist-info}/LICENSE +0 -0
  91. {argus_alm-0.12.10.dist-info → argus_alm-0.13.0.dist-info}/WHEEL +0 -0
  92. {argus_alm-0.12.10.dist-info → argus_alm-0.13.0.dist-info}/entry_points.txt +0 -0
@@ -1,16 +0,0 @@
1
- from flask import Blueprint
2
-
3
- from argus.backend.plugins.core import PluginInfoBase, PluginModelBase
4
- from argus.backend.plugins.generic.model import GenericRun
5
-
6
-
7
- class PluginInfo(PluginInfoBase):
8
- # pylint: disable=too-few-public-methods
9
- name: str = "generic"
10
- model: PluginModelBase = GenericRun
11
- controller: Blueprint = None
12
- all_models = [
13
- GenericRun
14
- ]
15
- all_types = [
16
- ]
@@ -1,13 +0,0 @@
1
- from typing import TypedDict
2
-
3
- class GenericRunSubmitRequest(TypedDict):
4
- build_id: str
5
- build_url: str
6
- run_id: str
7
- started_by: str
8
- scylla_version: str | None
9
-
10
-
11
- class GenericRunFinishRequest(TypedDict):
12
- status: str
13
- scylla_version: str | None
@@ -1,40 +0,0 @@
1
- from pathlib import Path
2
- import typing
3
- from argus.backend.plugins.core import PluginInfoBase
4
- from argus.backend.plugins.core import PluginModelBase
5
-
6
-
7
- class PluginModule(typing.Protocol):
8
- # pylint: disable=too-few-public-methods
9
- PluginInfo: PluginInfoBase
10
-
11
-
12
- def plugin_loader() -> dict[str, PluginInfoBase]:
13
- loader_path = Path(__file__).parent
14
- plugin_dirs = [p for p in loader_path.glob("*") if p.is_dir()]
15
- modules = {}
16
- parent_module = ".".join(__name__.split(".")[:-1])
17
- for directory in plugin_dirs:
18
- if (plugin_path := directory / "plugin.py").exists():
19
- rel_path = str(plugin_path.relative_to(loader_path))
20
- module_path = rel_path.replace("/", ".").replace(".py", "")
21
- module: PluginModule = __import__(
22
- f"{parent_module}.{module_path}",
23
- globals=globals(),
24
- fromlist=("PluginInfo",)
25
- )
26
- plugin = module.PluginInfo
27
- modules[plugin.name] = plugin
28
-
29
- return modules
30
-
31
-
32
- AVAILABLE_PLUGINS = plugin_loader()
33
- print(AVAILABLE_PLUGINS)
34
-
35
- def all_plugin_models(include_all=False) -> list[PluginModelBase]:
36
- return [model for plugin in AVAILABLE_PLUGINS.values() for model in plugin.all_models if issubclass(model, PluginModelBase) or include_all]
37
-
38
-
39
- def all_plugin_types():
40
- return [user_type for plugin in AVAILABLE_PLUGINS.values() for user_type in plugin.all_types]
@@ -1,185 +0,0 @@
1
- from flask import Blueprint, request
2
-
3
- from argus.backend.error_handlers import handle_api_exception
4
- from argus.backend.service.user import api_login_required
5
- from argus.backend.plugins.sct.service import SCTService
6
- from argus.backend.util.common import get_payload
7
-
8
- bp = Blueprint("sct_api", __name__, url_prefix="/sct")
9
- bp.register_error_handler(Exception, handle_api_exception)
10
-
11
-
12
- @bp.route("/<string:run_id>/packages/submit", methods=["POST"])
13
- @api_login_required
14
- def sct_submit_packages(run_id: str):
15
- payload = get_payload(request)
16
- result = SCTService.submit_packages(run_id=run_id, packages=payload["packages"])
17
- return {
18
- "status": "ok",
19
- "response": result
20
- }
21
-
22
-
23
- @bp.route("/<string:run_id>/screenshots/submit", methods=["POST"])
24
- @api_login_required
25
- def sct_submit_screenshots(run_id: str):
26
- payload = get_payload(request)
27
- result = SCTService.submit_screenshots(run_id=run_id, screenshot_links=payload["screenshot_links"])
28
- return {
29
- "status": "ok",
30
- "response": result
31
- }
32
-
33
-
34
- @bp.route("/<string:run_id>/sct_runner/set", methods=["POST"])
35
- @api_login_required
36
- def sct_set_runner(run_id: str):
37
- payload = get_payload(request)
38
- result = SCTService.set_sct_runner(
39
- run_id=run_id,
40
- public_ip=payload["public_ip"],
41
- private_ip=payload["private_ip"],
42
- region=payload["region"],
43
- backend=payload["backend"]
44
- )
45
- return {
46
- "status": "ok",
47
- "response": result
48
- }
49
-
50
-
51
- @bp.route("/<string:run_id>/resource/create", methods=["POST"])
52
- @api_login_required
53
- def sct_resource_create(run_id: str):
54
- payload = get_payload(request)
55
- result = SCTService.create_resource(run_id=run_id, resource_details=payload["resource"])
56
- return {
57
- "status": "ok",
58
- "response": result
59
- }
60
-
61
-
62
- @bp.route("/<string:run_id>/resource/<string:resource_name>/terminate", methods=["POST"])
63
- @api_login_required
64
- def sct_resource_terminate(run_id: str, resource_name: str):
65
- payload = get_payload(request)
66
- result = SCTService.terminate_resource(run_id=run_id, resource_name=resource_name, reason=payload["reason"])
67
- return {
68
- "status": "ok",
69
- "response": result
70
- }
71
-
72
-
73
- @bp.route("/<string:run_id>/resource/<string:resource_name>/shards", methods=["POST"])
74
- @api_login_required
75
- def sct_resource_update_shards(run_id: str, resource_name: str):
76
- payload = get_payload(request)
77
- result = SCTService.update_resource_shards(run_id=run_id, resource_name=resource_name, new_shards=payload["shards"])
78
- return {
79
- "status": "ok",
80
- "response": result
81
- }
82
-
83
-
84
- @bp.route("/<string:run_id>/resource/<string:resource_name>/update", methods=["POST"])
85
- @api_login_required
86
- def sct_resource_update(run_id: str, resource_name: str):
87
- payload = get_payload(request)
88
- result = SCTService.update_resource(run_id=run_id, resource_name=resource_name, update_data=payload["update_data"])
89
- return {
90
- "status": "ok",
91
- "response": result
92
- }
93
-
94
-
95
- @bp.route("/<string:run_id>/nemesis/submit", methods=["POST"])
96
- @api_login_required
97
- def sct_nemesis_submit(run_id: str):
98
- payload = get_payload(request)
99
- result = SCTService.submit_nemesis(run_id=run_id, nemesis_details=payload["nemesis"])
100
- return {
101
- "status": "ok",
102
- "response": result
103
- }
104
-
105
-
106
- @bp.route("/<string:run_id>/nemesis/finalize", methods=["POST"])
107
- @api_login_required
108
- def sct_nemesis_finalize(run_id: str):
109
- payload = get_payload(request)
110
- result = SCTService.finalize_nemesis(run_id=run_id, nemesis_details=payload["nemesis"])
111
- return {
112
- "status": "ok",
113
- "response": result
114
- }
115
-
116
-
117
- @bp.route("/<string:run_id>/events/submit", methods=["POST"])
118
- @api_login_required
119
- def sct_events_submit(run_id: str):
120
- payload = get_payload(request)
121
- result = SCTService.submit_events(run_id=run_id, events=payload["events"])
122
- return {
123
- "status": "ok",
124
- "response": result
125
- }
126
-
127
-
128
- @bp.route("/<string:run_id>/gemini/submit", methods=["POST"])
129
- @api_login_required
130
- def sct_gemini_results_submit(run_id: str):
131
- payload = get_payload(request)
132
- result = SCTService.submit_gemini_results(run_id=run_id, gemini_data=payload["gemini_data"])
133
- return {
134
- "status": "ok",
135
- "response": result
136
- }
137
-
138
- @bp.route("/<string:run_id>/performance/submit", methods=["POST"])
139
- @api_login_required
140
- def sct_performance_results_submit(run_id: str):
141
- payload = get_payload(request)
142
- result = SCTService.submit_performance_results(run_id=run_id, performance_results=payload["performance_results"])
143
- return {
144
- "status": "ok",
145
- "response": result
146
- }
147
-
148
- @bp.route("/<string:run_id>/performance/history", methods=["GET"])
149
- @api_login_required
150
- def sct_get_performance_history(run_id: str):
151
- result = SCTService.get_performance_history_for_test(run_id=run_id)
152
- return {
153
- "status": "ok",
154
- "response": result
155
- }
156
-
157
-
158
- @bp.route("/release/<string:release_name>/kernels", methods=["GET"])
159
- @api_login_required
160
- def sct_get_kernel_report(release_name: str):
161
- result = SCTService.get_scylla_version_kernels_report(release_name=release_name)
162
- return {
163
- "status": "ok",
164
- "response": result
165
- }
166
-
167
-
168
- @bp.route("/<string:run_id>/junit/submit", methods=["POST"])
169
- @api_login_required
170
- def sct_submit_junit_report(run_id: str):
171
- payload = get_payload(request)
172
- result = SCTService.junit_submit(run_id, payload["file_name"], payload["content"])
173
- return {
174
- "status": "ok",
175
- "response": result
176
- }
177
-
178
- @bp.route("/<string:run_id>/junit/get_all", methods=["GET"])
179
- @api_login_required
180
- def sct_get_junit_reports(run_id: str):
181
- result = SCTService.junit_get_all(run_id)
182
- return {
183
- "status": "ok",
184
- "response": result
185
- }
@@ -1,38 +0,0 @@
1
- from flask import Blueprint
2
-
3
- from argus.backend.plugins.sct.testrun import SCTJunitReports, SCTTestRun
4
- from argus.backend.plugins.sct.controller import bp as sct_bp
5
- from argus.backend.plugins.core import PluginInfoBase, PluginModelBase
6
- from argus.backend.plugins.sct.udt import (
7
- CloudInstanceDetails,
8
- CloudNodesInfo,
9
- CloudResource,
10
- CloudSetupDetails,
11
- EventsBySeverity,
12
- NemesisRunInfo,
13
- NodeDescription,
14
- PackageVersion,
15
- PerformanceHDRHistogram,
16
- )
17
-
18
-
19
- class PluginInfo(PluginInfoBase):
20
- # pylint: disable=too-few-public-methods
21
- name: str = "scylla-cluster-tests"
22
- model: PluginModelBase = SCTTestRun
23
- controller: Blueprint = sct_bp
24
- all_models = [
25
- SCTTestRun,
26
- SCTJunitReports,
27
- ]
28
- all_types = [
29
- NemesisRunInfo,
30
- NodeDescription,
31
- EventsBySeverity,
32
- CloudResource,
33
- CloudSetupDetails,
34
- CloudNodesInfo,
35
- CloudInstanceDetails,
36
- PackageVersion,
37
- PerformanceHDRHistogram,
38
- ]
@@ -1,178 +0,0 @@
1
- import logging
2
- from argus.backend.plugins.sct.udt import CloudNodesInfo, CloudSetupDetails
3
-
4
- LOGGER = logging.getLogger(__name__)
5
-
6
-
7
- def _get_node_amounts(config: dict) -> tuple[int, int]:
8
- num_db_node = config.get("n_db_nodes")
9
- num_db_node = sum([int(i) for i in num_db_node.split()]) if isinstance(num_db_node, str) else num_db_node
10
- num_loaders = config.get("n_loaders")
11
- num_loaders = sum([int(i) for i in num_loaders.split()]) if isinstance(num_loaders, str) else num_loaders
12
-
13
- return num_db_node, num_loaders
14
-
15
-
16
- def _prepare_aws_resource_setup(sct_config: dict) -> CloudSetupDetails:
17
- num_db_nodes, n_loaders = _get_node_amounts(sct_config)
18
- db_node_setup = CloudNodesInfo(image_id=sct_config.get("ami_id_db_scylla"),
19
- instance_type=sct_config.get("instance_type_db"),
20
- node_amount=num_db_nodes,
21
- post_behaviour=sct_config.get("post_behavior_db_nodes"))
22
- loader_node_setup = CloudNodesInfo(image_id=sct_config.get("ami_id_loader"),
23
- instance_type=sct_config.get("instance_type_loader"),
24
- node_amount=n_loaders,
25
- post_behaviour=sct_config.get("post_behavior_loader_nodes"))
26
- monitor_node_setup = CloudNodesInfo(image_id=sct_config.get("ami_id_monitor"),
27
- instance_type=sct_config.get("instance_type_monitor"),
28
- node_amount=sct_config.get("n_monitor_nodes"),
29
- post_behaviour=sct_config.get("post_behavior_monitor_nodes"))
30
- cloud_setup = CloudSetupDetails(db_node=db_node_setup, loader_node=loader_node_setup,
31
- monitor_node=monitor_node_setup, backend=sct_config.get("cluster_backend"))
32
-
33
- return cloud_setup
34
-
35
-
36
- def _prepare_gce_resource_setup(sct_config: dict) -> CloudSetupDetails:
37
- num_db_nodes, n_loaders = _get_node_amounts(sct_config)
38
- db_node_setup = CloudNodesInfo(image_id=sct_config.get("gce_image_db"),
39
- instance_type=sct_config.get("gce_instance_type_db"),
40
- node_amount=num_db_nodes,
41
- post_behaviour=sct_config.get("post_behavior_db_nodes"))
42
- loader_node_setup = CloudNodesInfo(image_id=sct_config.get("gce_image_loader"),
43
- instance_type=sct_config.get("gce_instance_type_loader"),
44
- node_amount=n_loaders,
45
- post_behaviour=sct_config.get("post_behavior_loader_nodes"))
46
- monitor_node_setup = CloudNodesInfo(image_id=sct_config.get("gce_image_monitor"),
47
- instance_type=sct_config.get("gce_instance_type_monitor"),
48
- node_amount=sct_config.get("n_monitor_nodes"),
49
- post_behaviour=sct_config.get("post_behavior_monitor_nodes"))
50
- cloud_setup = CloudSetupDetails(db_node=db_node_setup, loader_node=loader_node_setup,
51
- monitor_node=monitor_node_setup, backend=sct_config.get("cluster_backend"))
52
-
53
- return cloud_setup
54
-
55
-
56
- def _prepare_azure_resource_setup(sct_config: dict) -> CloudSetupDetails:
57
- num_db_nodes, n_loaders = _get_node_amounts(sct_config)
58
- db_node_setup = CloudNodesInfo(image_id=sct_config.get("azure_image_db"),
59
- instance_type=sct_config.get("azure_instance_type_db"),
60
- node_amount=num_db_nodes,
61
- post_behaviour=sct_config.get("post_behavior_db_nodes"))
62
- loader_node_setup = CloudNodesInfo(image_id=sct_config.get("azure_image_loader"),
63
- instance_type=sct_config.get("azure_instance_type_loader"),
64
- node_amount=n_loaders,
65
- post_behaviour=sct_config.get("post_behavior_loader_nodes"))
66
- monitor_node_setup = CloudNodesInfo(image_id=sct_config.get("azure_image_monitor"),
67
- instance_type=sct_config.get("azure_instance_type_monitor"),
68
- node_amount=sct_config.get("n_monitor_nodes"),
69
- post_behaviour=sct_config.get("post_behavior_monitor_nodes"))
70
- cloud_setup = CloudSetupDetails(db_node=db_node_setup, loader_node=loader_node_setup,
71
- monitor_node=monitor_node_setup, backend=sct_config.get("cluster_backend"))
72
-
73
- return cloud_setup
74
-
75
-
76
- def _prepare_unknown_resource_setup(sct_config: dict) -> CloudSetupDetails:
77
- LOGGER.error("Unknown backend encountered: %s", sct_config.get("cluster_backend"))
78
- db_node_setup = CloudNodesInfo(image_id="UNKNOWN",
79
- instance_type="UNKNOWN",
80
- node_amount=-1,
81
- post_behaviour="UNKNOWN")
82
- loader_node_setup = CloudNodesInfo(image_id="UNKNOWN",
83
- instance_type="UNKNOWN",
84
- node_amount=-1,
85
- post_behaviour="UNKNOWN")
86
- monitor_node_setup = CloudNodesInfo(image_id="UNKNOWN",
87
- instance_type="UNKNOWN",
88
- node_amount=-1,
89
- post_behaviour="UNKNOWN")
90
- cloud_setup = CloudSetupDetails(db_node=db_node_setup, loader_node=loader_node_setup,
91
- monitor_node=monitor_node_setup, backend=sct_config.get("cluster_backend"))
92
-
93
- return cloud_setup
94
-
95
-
96
- def _prepare_bare_metal_resource_setup(sct_config: dict) -> CloudSetupDetails:
97
- db_node_setup = CloudNodesInfo(image_id="bare_metal",
98
- instance_type="bare_metal",
99
- node_amount=sct_config.get("n_db_nodes"),
100
- post_behaviour=sct_config.get("post_behavior_db_nodes"))
101
- loader_node_setup = CloudNodesInfo(image_id="bare_metal",
102
- instance_type="bare_metal",
103
- node_amount=sct_config.get("n_loaders"),
104
- post_behaviour=sct_config.get("post_behavior_loader_nodes"))
105
- monitor_node_setup = CloudNodesInfo(image_id="bare_metal",
106
- instance_type="bare_metal",
107
- node_amount=sct_config.get("n_monitor_nodes"),
108
- post_behaviour=sct_config.get("post_behavior_monitor_nodes"))
109
- cloud_setup = CloudSetupDetails(db_node=db_node_setup, loader_node=loader_node_setup,
110
- monitor_node=monitor_node_setup, backend=sct_config.get("cluster_backend"))
111
-
112
- return cloud_setup
113
-
114
-
115
- def _prepare_k8s_gce_minikube_resource_setup(sct_config: dict) -> CloudSetupDetails:
116
- cloud_setup = _prepare_gce_resource_setup(sct_config)
117
-
118
- image_id = sct_config.get("scylla_version")
119
- cloud_setup.db_node.image_id = f"scylladb/scylladb:{image_id}"
120
- cloud_setup.db_node.instance_type = sct_config.get("gce_instance_type_minikube")
121
-
122
- return cloud_setup
123
-
124
-
125
- def _prepare_k8s_gke_resource_setup(sct_config: dict) -> CloudSetupDetails:
126
- cloud_setup = _prepare_gce_resource_setup(sct_config)
127
- image_id = sct_config.get("scylla_version")
128
- cloud_setup.db_node.image_id = f"scylladb/scylladb:{image_id}"
129
- cloud_setup.monitor_node.image_id = sct_config.get("mgmt_docker_image")
130
- cloud_setup.loader_node.image_id = f"scylladb/scylladb:{image_id}"
131
-
132
- return cloud_setup
133
-
134
-
135
- def _prepare_k8s_eks_resource_setup(sct_config: dict) -> CloudSetupDetails:
136
- cloud_setup = _prepare_aws_resource_setup(sct_config)
137
-
138
- return cloud_setup
139
-
140
-
141
- def _prepare_docker_resource_setup(sct_config: dict) -> CloudSetupDetails:
142
- db_node_setup = CloudNodesInfo(image_id=sct_config.get('docker_image'),
143
- instance_type="docker",
144
- node_amount=sct_config.get("n_db_nodes"),
145
- post_behaviour=sct_config.get("post_behavior_db_nodes"))
146
- loader_node_setup = CloudNodesInfo(image_id=sct_config.get('docker_image'),
147
- instance_type="docker",
148
- node_amount=sct_config.get("n_loaders"),
149
- post_behaviour=sct_config.get("post_behavior_loader_nodes"))
150
- monitor_node_setup = CloudNodesInfo(image_id=sct_config.get('docker_image'),
151
- instance_type="docker",
152
- node_amount=sct_config.get("n_monitor_nodes"),
153
- post_behaviour=sct_config.get("post_behavior_monitor_nodes"))
154
- cloud_setup = CloudSetupDetails(db_node=db_node_setup, loader_node=loader_node_setup,
155
- monitor_node=monitor_node_setup, backend=sct_config.get("cluster_backend"))
156
-
157
- return cloud_setup
158
-
159
-
160
- class ResourceSetup:
161
- # pylint: disable=too-few-public-methods
162
- BACKEND_MAP = {
163
- "aws": _prepare_aws_resource_setup,
164
- "aws-siren": _prepare_aws_resource_setup,
165
- "azure": _prepare_azure_resource_setup,
166
- "gce": _prepare_gce_resource_setup,
167
- "gce-siren": _prepare_gce_resource_setup,
168
- "k8s-eks": _prepare_k8s_eks_resource_setup,
169
- "k8s-gke": _prepare_k8s_gke_resource_setup,
170
- "k8s-gce-minikube": _prepare_k8s_gce_minikube_resource_setup,
171
- "baremetal": _prepare_bare_metal_resource_setup,
172
- "docker": _prepare_docker_resource_setup,
173
- "unknown": _prepare_unknown_resource_setup,
174
- }
175
-
176
- @classmethod
177
- def get_resource_setup(cls, backend: str, sct_config: dict) -> CloudSetupDetails:
178
- return cls.BACKEND_MAP.get(backend, _prepare_unknown_resource_setup)(sct_config)