Skip to content

Commit a85a6ab

Browse files
committed
MINIFICPP-2678 Move Grafana Loki tests to modular docker tests
1 parent 22d54f3 commit a85a6ab

File tree

21 files changed

+444
-432
lines changed

21 files changed

+444
-432
lines changed

behave_framework/src/minifi_test_framework/containers/docker_image_builder.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,14 +24,15 @@
2424

2525

2626
class DockerImageBuilder:
27-
def __init__(self, image_tag: str, dockerfile_content: str | None = None, build_context_path: str | None = None):
27+
def __init__(self, image_tag: str, dockerfile_content: str | None = None, files_on_context: dict[str, bytes] | None = None, build_context_path: str | None = None):
2828
if not dockerfile_content and not build_context_path:
2929
raise ValueError("Either 'dockerfile_content' or 'build_context_path' must be provided.")
3030
if dockerfile_content and build_context_path:
3131
raise ValueError("Provide either 'dockerfile_content' or 'build_context_path', not both.")
3232

3333
self.image_tag: str = image_tag
3434
self.dockerfile_content: str | None = dockerfile_content
35+
self.files_on_context: dict[str, str] | None = files_on_context
3536
self.build_context_path: str | None = build_context_path
3637
self.client = docker.from_env()
3738
self.image: Image | None = None
@@ -46,6 +47,12 @@ def build(self) -> Image:
4647
with open(dockerfile_path, 'w') as f:
4748
f.write(self.dockerfile_content)
4849

50+
if self.files_on_context:
51+
for filename, content in self.files_on_context.items():
52+
file_path = os.path.join(context_path, filename)
53+
with open(file_path, 'wb') as f:
54+
f.write(content)
55+
4956
logging.info(f"Building Docker image '{self.image_tag}' from context '{context_path}'...")
5057
try:
5158
self.image, build_logs = self.client.images.build(path=context_path, tag=self.image_tag, rm=True, forcerm=True)

docker/RunBehaveTests.sh

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -204,4 +204,5 @@ exec \
204204
"${docker_dir}/../extensions/couchbase/tests/features" \
205205
"${docker_dir}/../extensions/elasticsearch/tests/features" \
206206
"${docker_dir}/../extensions/splunk/tests/features" \
207-
"${docker_dir}/../extensions/gcp/tests/features"
207+
"${docker_dir}/../extensions/gcp/tests/features" \
208+
"${docker_dir}/../extensions/grafana-loki/tests/features"

docker/test/integration/cluster/ContainerStore.py

Lines changed: 0 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -29,17 +29,13 @@
2929
from .containers.MinifiAsPodInKubernetesCluster import MinifiAsPodInKubernetesCluster
3030
from .containers.PrometheusContainer import PrometheusContainer
3131
from .containers.MinifiC2ServerContainer import MinifiC2ServerContainer
32-
from .containers.GrafanaLokiContainer import GrafanaLokiContainer
33-
from .containers.GrafanaLokiContainer import GrafanaLokiOptions
34-
from .containers.ReverseProxyContainer import ReverseProxyContainer
3532
from .FeatureContext import FeatureContext
3633

3734

3835
class ContainerStore:
3936
def __init__(self, network, image_store, kubernetes_proxy, feature_id):
4037
self.feature_id = feature_id
4138
self.minifi_options = MinifiOptions()
42-
self.grafana_loki_options = GrafanaLokiOptions()
4339
self.containers = {}
4440
self.data_directories = {}
4541
self.network = network
@@ -212,23 +208,6 @@ def acquire_container(self, context, container_name: str, engine='minifi-cpp', c
212208
image_store=self.image_store,
213209
command=command,
214210
ssl=True))
215-
elif engine == "grafana-loki-server":
216-
return self.containers.setdefault(container_name,
217-
GrafanaLokiContainer(feature_context=feature_context,
218-
name=container_name,
219-
vols=self.vols,
220-
network=self.network,
221-
image_store=self.image_store,
222-
options=self.grafana_loki_options,
223-
command=command))
224-
elif engine == "reverse-proxy":
225-
return self.containers.setdefault(container_name,
226-
ReverseProxyContainer(feature_context=feature_context,
227-
name=container_name,
228-
vols=self.vols,
229-
network=self.network,
230-
image_store=self.image_store,
231-
command=command))
232211
else:
233212
raise Exception('invalid flow engine: \'%s\'' % engine)
234213

@@ -345,12 +324,6 @@ def get_app_log(self, container_name):
345324
def get_container_names(self, engine=None):
346325
return [key for key in self.containers.keys() if not engine or self.containers[key].get_engine() == engine]
347326

348-
def enable_ssl_in_grafana_loki(self):
349-
self.grafana_loki_options.enable_ssl = True
350-
351-
def enable_multi_tenancy_in_grafana_loki(self):
352-
self.grafana_loki_options.enable_multi_tenancy = True
353-
354327
def enable_ssl_in_nifi(self):
355328
self.nifi_options.use_ssl = True
356329

docker/test/integration/cluster/DockerTestCluster.py

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@
2020
import os
2121
import gzip
2222
import shutil
23-
from typing import List
2423

2524
from .LogSource import LogSource
2625
from .ContainerStore import ContainerStore
@@ -30,7 +29,6 @@
3029
from .checkers.AzureChecker import AzureChecker
3130
from .checkers.PostgresChecker import PostgresChecker
3231
from .checkers.PrometheusChecker import PrometheusChecker
33-
from .checkers.GrafanaLokiChecker import GrafanaLokiChecker
3432
from .checkers.ModbusChecker import ModbusChecker
3533
from .checkers.MqttHelper import MqttHelper
3634
from utils import get_peak_memory_usage, get_minifi_pid, get_memory_usage, retry_check
@@ -46,7 +44,6 @@ def __init__(self, context, feature_id):
4644
self.azure_checker = AzureChecker(self.container_communicator)
4745
self.postgres_checker = PostgresChecker(self.container_communicator)
4846
self.prometheus_checker = PrometheusChecker()
49-
self.grafana_loki_checker = GrafanaLokiChecker()
5047
self.minifi_controller_executor = MinifiControllerExecutor(self.container_communicator)
5148
self.modbus_checker = ModbusChecker(self.container_communicator)
5249
self.mqtt_helper = MqttHelper()
@@ -108,12 +105,6 @@ def disable_openssl_fips_mode_in_minifi(self):
108105
def enable_sql_in_minifi(self):
109106
self.container_store.enable_sql_in_minifi()
110107

111-
def enable_ssl_in_grafana_loki(self):
112-
self.container_store.enable_ssl_in_grafana_loki()
113-
114-
def enable_multi_tenancy_in_grafana_loki(self):
115-
self.container_store.enable_multi_tenancy_in_grafana_loki()
116-
117108
def use_nifi_python_processors_with_system_python_packages_installed_in_minifi(self):
118109
self.container_store.use_nifi_python_processors_with_system_python_packages_installed_in_minifi()
119110

@@ -386,9 +377,6 @@ def debug_bundle_can_be_retrieved_through_minifi_controller(self, container_name
386377

387378
return True
388379

389-
def wait_for_lines_on_grafana_loki(self, lines: List[str], timeout_seconds: int, ssl: bool, tenant_id: str):
390-
return self.grafana_loki_checker.wait_for_lines_on_grafana_loki(lines, timeout_seconds, ssl, tenant_id)
391-
392380
def set_value_on_plc_with_modbus(self, container_name, modbus_cmd):
393381
return self.modbus_checker.set_value_on_plc_with_modbus(container_name, modbus_cmd)
394382

docker/test/integration/cluster/ImageStore.py

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -67,8 +67,6 @@ def get_image(self, container_engine):
6767
image = self.__build_mqtt_broker_image()
6868
elif container_engine == "kinesis-server":
6969
image = self.__build_kinesis_image()
70-
elif container_engine == "reverse-proxy":
71-
image = self.__build_reverse_proxy_image()
7270
else:
7371
raise Exception("There is no associated image for " + container_engine)
7472

@@ -293,9 +291,6 @@ def __build_mqtt_broker_image(self):
293291
def __build_kinesis_image(self):
294292
return self.__build_image_by_path(self.test_dir + "/resources/kinesis-mock", 'kinesis-server')
295293

296-
def __build_reverse_proxy_image(self):
297-
return self.__build_image_by_path(self.test_dir + "/resources/reverse-proxy", 'reverse-proxy')
298-
299294
def __build_image(self, dockerfile, context_files=[]):
300295
conf_dockerfile_buffer = BytesIO()
301296
docker_context_buffer = BytesIO()

docker/test/integration/cluster/checkers/GrafanaLokiChecker.py

Lines changed: 0 additions & 54 deletions
This file was deleted.

docker/test/integration/cluster/containers/GrafanaLokiContainer.py

Lines changed: 0 additions & 176 deletions
This file was deleted.

0 commit comments

Comments
 (0)