argus-alm 0.12.9__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 (93) 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/generic_result.py +3 -2
  6. argus/client/sct/client.py +3 -3
  7. argus/client/sirenada/client.py +1 -1
  8. {argus_alm-0.12.9.dist-info → argus_alm-0.13.0.dist-info}/METADATA +2 -4
  9. argus_alm-0.13.0.dist-info/RECORD +20 -0
  10. argus/backend/.gitkeep +0 -0
  11. argus/backend/cli.py +0 -41
  12. argus/backend/controller/__init__.py +0 -0
  13. argus/backend/controller/admin.py +0 -20
  14. argus/backend/controller/admin_api.py +0 -354
  15. argus/backend/controller/api.py +0 -529
  16. argus/backend/controller/auth.py +0 -67
  17. argus/backend/controller/client_api.py +0 -108
  18. argus/backend/controller/main.py +0 -274
  19. argus/backend/controller/notification_api.py +0 -72
  20. argus/backend/controller/notifications.py +0 -13
  21. argus/backend/controller/team.py +0 -126
  22. argus/backend/controller/team_ui.py +0 -18
  23. argus/backend/controller/testrun_api.py +0 -482
  24. argus/backend/controller/view_api.py +0 -162
  25. argus/backend/db.py +0 -100
  26. argus/backend/error_handlers.py +0 -21
  27. argus/backend/events/event_processors.py +0 -34
  28. argus/backend/models/__init__.py +0 -0
  29. argus/backend/models/result.py +0 -138
  30. argus/backend/models/web.py +0 -389
  31. argus/backend/plugins/__init__.py +0 -0
  32. argus/backend/plugins/core.py +0 -225
  33. argus/backend/plugins/driver_matrix_tests/controller.py +0 -63
  34. argus/backend/plugins/driver_matrix_tests/model.py +0 -421
  35. argus/backend/plugins/driver_matrix_tests/plugin.py +0 -22
  36. argus/backend/plugins/driver_matrix_tests/raw_types.py +0 -62
  37. argus/backend/plugins/driver_matrix_tests/service.py +0 -60
  38. argus/backend/plugins/driver_matrix_tests/udt.py +0 -42
  39. argus/backend/plugins/generic/model.py +0 -79
  40. argus/backend/plugins/generic/plugin.py +0 -16
  41. argus/backend/plugins/generic/types.py +0 -13
  42. argus/backend/plugins/loader.py +0 -40
  43. argus/backend/plugins/sct/controller.py +0 -185
  44. argus/backend/plugins/sct/plugin.py +0 -38
  45. argus/backend/plugins/sct/resource_setup.py +0 -178
  46. argus/backend/plugins/sct/service.py +0 -491
  47. argus/backend/plugins/sct/testrun.py +0 -272
  48. argus/backend/plugins/sct/udt.py +0 -101
  49. argus/backend/plugins/sirenada/model.py +0 -113
  50. argus/backend/plugins/sirenada/plugin.py +0 -17
  51. argus/backend/service/admin.py +0 -27
  52. argus/backend/service/argus_service.py +0 -688
  53. argus/backend/service/build_system_monitor.py +0 -188
  54. argus/backend/service/client_service.py +0 -122
  55. argus/backend/service/event_service.py +0 -18
  56. argus/backend/service/jenkins_service.py +0 -240
  57. argus/backend/service/notification_manager.py +0 -150
  58. argus/backend/service/release_manager.py +0 -230
  59. argus/backend/service/results_service.py +0 -317
  60. argus/backend/service/stats.py +0 -540
  61. argus/backend/service/team_manager_service.py +0 -83
  62. argus/backend/service/testrun.py +0 -559
  63. argus/backend/service/user.py +0 -307
  64. argus/backend/service/views.py +0 -258
  65. argus/backend/template_filters.py +0 -27
  66. argus/backend/tests/__init__.py +0 -0
  67. argus/backend/tests/argus_web.test.yaml +0 -39
  68. argus/backend/tests/conftest.py +0 -44
  69. argus/backend/tests/results_service/__init__.py +0 -0
  70. argus/backend/tests/results_service/test_best_results.py +0 -70
  71. argus/backend/util/common.py +0 -65
  72. argus/backend/util/config.py +0 -38
  73. argus/backend/util/encoders.py +0 -41
  74. argus/backend/util/logsetup.py +0 -81
  75. argus/backend/util/module_loaders.py +0 -30
  76. argus/backend/util/send_email.py +0 -91
  77. argus/client/generic_result_old.py +0 -143
  78. argus/db/.gitkeep +0 -0
  79. argus/db/argus_json.py +0 -14
  80. argus/db/cloud_types.py +0 -125
  81. argus/db/config.py +0 -135
  82. argus/db/db_types.py +0 -139
  83. argus/db/interface.py +0 -370
  84. argus/db/testrun.py +0 -740
  85. argus/db/utils.py +0 -15
  86. argus_alm-0.12.9.dist-info/RECORD +0 -96
  87. /argus/{backend → common}/__init__.py +0 -0
  88. /argus/{backend/util → common}/enums.py +0 -0
  89. /argus/{backend/plugins/sct/types.py → common/sct_types.py} +0 -0
  90. /argus/{backend/plugins/sirenada/types.py → common/sirenada_types.py} +0 -0
  91. {argus_alm-0.12.9.dist-info → argus_alm-0.13.0.dist-info}/LICENSE +0 -0
  92. {argus_alm-0.12.9.dist-info → argus_alm-0.13.0.dist-info}/WHEEL +0 -0
  93. {argus_alm-0.12.9.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)