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