Skip to content

Commit d87c8a1

Browse files
committed
MINIFICPP-2714 Move Kubernetes to modular docker tests
1 parent 35547de commit d87c8a1

29 files changed

+328
-379
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@ __pycache__/
6969
/logs
7070
packaging/msi/WixWin.wsi
7171
docker/behavex_output
72+
behavex_output_modular
7273
output
7374

7475
.vs/**

behave_framework/src/minifi_test_framework/containers/container.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -201,10 +201,10 @@ def directory_contains_file_with_regex(self, directory_path: str, regex_str: str
201201
command = (f"find {safe_dir_path} -maxdepth 1 -type f -print0 | "
202202
f"xargs -0 -r grep -l -E -- {safe_regex_str}")
203203

204-
exit_code, output = self.exec_run(f"sh -c \"{command}\"")
204+
exit_code, output = self.exec_run("sh -c {}".format(shlex.quote(command)))
205205

206206
if exit_code != 0:
207-
logging.warning(f"directory_contains_file_with_regex {output}")
207+
logging.debug("While looking for regex %s in directory %s, grep returned exit code %d, output: %s", regex_str, directory_path, exit_code, output)
208208
return exit_code == 0
209209

210210
def path_with_content_exists(self, path: str, content: str) -> bool:

behave_framework/src/minifi_test_framework/steps/checking_steps.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -144,6 +144,7 @@ def step_impl(context: MinifiTestContext, num: int, directory: str, duration: st
144144

145145

146146
@then('at least one file in "{directory}" content match the following regex: "{regex_str}" in less than {duration}')
147+
@then('the content of at least one file in the "{directory}" directory matches the \'{regex_str}\' regex in less than {duration}')
147148
def step_impl(context: MinifiTestContext, directory: str, regex_str: str, duration: str):
148149
duration_seconds = humanfriendly.parse_timespan(duration)
149150
assert wait_for_condition(

behave_framework/src/minifi_test_framework/steps/flow_building_steps.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -190,6 +190,7 @@ def step_impl(context: MinifiTestContext, processor_name: str, relationship: str
190190

191191

192192
@step("{processor_name}'s {relationship} relationship is auto-terminated")
193+
@step("the \"{relationship}\" relationship of the {processor_name} processor is auto-terminated")
193194
def step_impl(context: MinifiTestContext, processor_name: str, relationship: str):
194195
context.execute_steps(f'given {processor_name}\'s {relationship} relationship is auto-terminated in the "{DEFAULT_MINIFI_CONTAINER_NAME}" flow')
195196

docker/test/integration/cluster/ContainerStore.py

Lines changed: 1 addition & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -23,19 +23,17 @@
2323
from .containers.PostgreSQLServerContainer import PostgreSQLServerContainer
2424
from .containers.SyslogUdpClientContainer import SyslogUdpClientContainer
2525
from .containers.SyslogTcpClientContainer import SyslogTcpClientContainer
26-
from .containers.MinifiAsPodInKubernetesCluster import MinifiAsPodInKubernetesCluster
2726
from .FeatureContext import FeatureContext
2827

2928

3029
class ContainerStore:
31-
def __init__(self, network, image_store, kubernetes_proxy, feature_id):
30+
def __init__(self, network, image_store, feature_id):
3231
self.feature_id = feature_id
3332
self.minifi_options = MinifiOptions()
3433
self.containers = {}
3534
self.data_directories = {}
3635
self.network = network
3736
self.image_store = image_store
38-
self.kubernetes_proxy = kubernetes_proxy
3937
self.nifi_options = NiFiOptions()
4038

4139
def get_container_name_with_postfix(self, container_name: str):
@@ -91,17 +89,6 @@ def acquire_container(self, context, container_name: str, engine='minifi-cpp', c
9189
network=self.network,
9290
image_store=self.image_store,
9391
command=command))
94-
elif engine == 'kubernetes':
95-
return self.containers.setdefault(container_name,
96-
MinifiAsPodInKubernetesCluster(feature_context=feature_context,
97-
kubernetes_proxy=self.kubernetes_proxy,
98-
config_dir=self.data_directories["kubernetes_config_dir"],
99-
minifi_options=self.minifi_options,
100-
name=container_name,
101-
vols=self.vols,
102-
network=self.network,
103-
image_store=self.image_store,
104-
command=command))
10592
elif engine == 'http-proxy':
10693
return self.containers.setdefault(container_name,
10794
HttpProxyContainer(feature_context=feature_context,

docker/test/integration/cluster/DockerTestCluster.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ def __init__(self, context, feature_id):
3030
self.segfault = False
3131
self.vols = {}
3232
self.container_communicator = DockerCommunicator()
33-
self.container_store = ContainerStore(self.container_communicator.create_docker_network(feature_id), context.image_store, context.kubernetes_proxy, feature_id=feature_id)
33+
self.container_store = ContainerStore(self.container_communicator.create_docker_network(feature_id), context.image_store, feature_id=feature_id)
3434
self.azure_checker = AzureChecker(self.container_communicator)
3535
self.postgres_checker = PostgresChecker(self.container_communicator)
3636
self.modbus_checker = ModbusChecker(self.container_communicator)

docker/test/integration/cluster/DockerTestDirectoryBindings.py

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -45,9 +45,7 @@ def create_new_data_directories(self):
4545
"resources_dir": "/tmp/.nifi-test-resources." + self.feature_id,
4646
"system_certs_dir": "/tmp/.nifi-test-resources." + self.feature_id + "/system_certs_dir",
4747
"minifi_config_dir": "/tmp/.nifi-test-minifi-config-dir." + self.feature_id,
48-
"nifi_config_dir": "/tmp/.nifi-test-nifi-config-dir." + self.feature_id,
49-
"kubernetes_temp_dir": "/tmp/.nifi-test-kubernetes-temp-dir." + self.feature_id,
50-
"kubernetes_config_dir": "/tmp/.nifi-test-kubernetes-config-dir." + self.feature_id
48+
"nifi_config_dir": "/tmp/.nifi-test-nifi-config-dir." + self.feature_id
5149
}
5250

5351
[self.create_directory(directory) for directory in self.data_directories[self.feature_id].values()]
@@ -88,7 +86,6 @@ def get_directory_bindings(self):
8886
vols[self.data_directories[self.feature_id]["system_certs_dir"]] = {"bind": "/usr/local/share/certs", "mode": "rw"}
8987
vols[self.data_directories[self.feature_id]["minifi_config_dir"]] = {"bind": "/tmp/minifi_config", "mode": "rw"}
9088
vols[self.data_directories[self.feature_id]["nifi_config_dir"]] = {"bind": "/tmp/nifi_config", "mode": "rw"}
91-
vols[self.data_directories[self.feature_id]["kubernetes_config_dir"]] = {"bind": "/tmp/kubernetes_config", "mode": "rw"}
9289
return vols
9390

9491
@staticmethod

docker/test/integration/cluster/KubernetesProxy.py

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

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

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

docker/test/integration/features/environment.py

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@
2727
from minifi import * # noqa
2828
from cluster.ImageStore import ImageStore # noqa
2929
from cluster.DockerTestDirectoryBindings import DockerTestDirectoryBindings # noqa
30-
from cluster.KubernetesProxy import KubernetesProxy # noqa
3130

3231

3332
def inject_feature_id(context, step):
@@ -60,14 +59,11 @@ def after_scenario(context, scenario):
6059
logging.info("Integration test teardown at {time:%H:%M:%S.%f}".format(time=datetime.datetime.now()))
6160
context.test.cleanup()
6261
context.directory_bindings.cleanup_io()
63-
if context.kubernetes_proxy:
64-
context.kubernetes_proxy.delete_pods()
6562

6663

6764
def before_all(context):
6865
context.config.setup_logging()
6966
context.image_store = ImageStore()
70-
context.kubernetes_proxy = None
7167

7268

7369
def before_feature(context, feature):
@@ -86,15 +82,3 @@ def before_feature(context, feature):
8682
context.directory_bindings.create_cert_files()
8783
context.root_ca_cert = context.directory_bindings.root_ca_cert
8884
context.root_ca_key = context.directory_bindings.root_ca_key
89-
if "requires.kubernetes.cluster" in feature.tags:
90-
context.kubernetes_proxy = KubernetesProxy(
91-
context.directory_bindings.get_data_directories()["kubernetes_temp_dir"],
92-
os.path.join(os.environ['TEST_DIRECTORY'], 'resources', 'kubernetes', 'pods-etc'))
93-
context.kubernetes_proxy.create_config(context.directory_bindings.get_directory_bindings())
94-
context.kubernetes_proxy.start_cluster()
95-
96-
97-
def after_feature(context, feature):
98-
if "requires.kubernetes.cluster" in feature.tags and context.kubernetes_proxy:
99-
context.kubernetes_proxy.cleanup()
100-
context.kubernetes_proxy = None

0 commit comments

Comments
 (0)