From c3a093638083a470417795c0c53fce4aa38214ab Mon Sep 17 00:00:00 2001 From: Nikita Korolev <141920865+universal-itengineer@users.noreply.github.com> Date: Wed, 21 Aug 2024 13:35:18 +0300 Subject: [PATCH] chore(core): hardcoded module name (#299) Hardcoded module name in hook --------- Signed-off-by: Nikita korolev --- hooks/Taskfile.yaml | 17 ++++++++++- hooks/copy_custom_certificate.py | 3 +- hooks/discovery_clusterip_service_for_dvcr.py | 6 ++-- hooks/generate_secret_for_dvcr.py | 8 ++++-- hooks/lib/hooks/common.py | 1 - hooks/lib/hooks/copy_custom_certificate.py | 5 ++-- hooks/lib/hooks/hook.py | 9 ------ hooks/lib/hooks/internal_tls.py | 4 +-- hooks/lib/hooks/manage_tenant_secrets.py | 5 ++-- hooks/lib/module/module.py | 28 ------------------- hooks/manage_tenant_secrets_for_cdi.py | 1 + 11 files changed, 34 insertions(+), 53 deletions(-) diff --git a/hooks/Taskfile.yaml b/hooks/Taskfile.yaml index fa08ffd2b..abe8d3023 100644 --- a/hooks/Taskfile.yaml +++ b/hooks/Taskfile.yaml @@ -3,10 +3,25 @@ version: "3" tasks: test: cmds: - - python3 -m venv .venv + - task test:prepare + - task test:run + - task test:clean + + test:prepare: + cmds: - | + python3 -m venv .venv source .venv/bin/activate pip3 install -r ../lib/python/requirements.txt + deactivate + + test:run: + cmds: + - | + source .venv/bin/activate python3 -m unittest discover -s . -v deactivate + + test:clean: + cmds: - rm -rf .venv diff --git a/hooks/copy_custom_certificate.py b/hooks/copy_custom_certificate.py index 4d047764e..82c383f02 100755 --- a/hooks/copy_custom_certificate.py +++ b/hooks/copy_custom_certificate.py @@ -15,7 +15,8 @@ # limitations under the License. from lib.hooks.copy_custom_certificate import CopyCustomCertificatesHook +import common if __name__ == "__main__": - hook = CopyCustomCertificatesHook() + hook = CopyCustomCertificatesHook(common.MODULE_NAME) hook.run() diff --git a/hooks/discovery_clusterip_service_for_dvcr.py b/hooks/discovery_clusterip_service_for_dvcr.py index 72473894c..58c0492a9 100755 --- a/hooks/discovery_clusterip_service_for_dvcr.py +++ b/hooks/discovery_clusterip_service_for_dvcr.py @@ -23,8 +23,8 @@ class DiscoveryClusterIPServiceHook(Hook): SNAPSHOT_NAME = "discovery-service" - def __init__(self, module_name: str = None): - super().__init__(module_name=module_name) + def __init__(self, module_name: str): + self.module_name = module_name self.namespace = common.NAMESPACE self.service_name = "dvcr" self.value_path = f"{self.module_name}.internal.dvcr.serviceIP" @@ -69,5 +69,5 @@ def r(ctx: hook.Context): if __name__ == "__main__": - h = DiscoveryClusterIPServiceHook() + h = DiscoveryClusterIPServiceHook(common.MODULE_NAME) h.run() diff --git a/hooks/generate_secret_for_dvcr.py b/hooks/generate_secret_for_dvcr.py index 591575315..c3cf875cd 100755 --- a/hooks/generate_secret_for_dvcr.py +++ b/hooks/generate_secret_for_dvcr.py @@ -51,8 +51,9 @@ def __init__(self, *keys: Key, secret_name: str, namespace: str, - module_name: str = None): - super().__init__(module_name=module_name) + module_name: str, + ): + self.module_name = module_name self.keys = keys self.secret_name = secret_name self.namespace = namespace @@ -136,6 +137,7 @@ def r(ctx: Context): Key(name="salt", value_path=f"{common.MODULE_NAME}.internal.dvcr.salt"), secret_name="dvcr-secrets", - namespace=common.NAMESPACE + namespace=common.NAMESPACE, + module_name=common.MODULE_NAME ) hook.run() diff --git a/hooks/lib/hooks/common.py b/hooks/lib/hooks/common.py index c1a7256d3..9487b8da1 100644 --- a/hooks/lib/hooks/common.py +++ b/hooks/lib/hooks/common.py @@ -16,7 +16,6 @@ PUBLIC_DOMAIN_PREFIX = "%PUBLIC_DOMAIN%://" CLUSTER_DOMAIN_PREFIX = "%CLUSTER_DOMAIN%://" - def cluster_domain_san(san: str) -> str: """ Create template to enrich specified san with a cluster domain diff --git a/hooks/lib/hooks/copy_custom_certificate.py b/hooks/lib/hooks/copy_custom_certificate.py index 03b3f7a36..0ea265af6 100644 --- a/hooks/lib/hooks/copy_custom_certificate.py +++ b/hooks/lib/hooks/copy_custom_certificate.py @@ -22,9 +22,8 @@ class CopyCustomCertificatesHook(Hook): CUSTOM_CERTIFICATES_SNAPSHOT_NAME = "custom_certificates" - def __init__(self, - module_name: str = None): - super().__init__(module_name=module_name) + def __init__(self, module_name: str): + self.module_name = module_name self.queue = f"/modules/{self.module_name}/copy-custom-certificates" def generate_config(self) -> dict: diff --git a/hooks/lib/hooks/hook.py b/hooks/lib/hooks/hook.py index 0b91d1b37..e19e3b546 100644 --- a/hooks/lib/hooks/hook.py +++ b/hooks/lib/hooks/hook.py @@ -21,9 +21,6 @@ class Hook: - def __init__(self, module_name: str = None) -> None: - self.module_name = self.get_module_name(module_name) - def generate_config(self): pass @@ -39,12 +36,6 @@ def set_value(path: str, values: dict, value) -> None: def delete_value(path: str, values: dict) -> None: return module_values.delete_value(path, values) - @staticmethod - def get_module_name(module_name: str) -> str: - if module_name is not None: - return module_name - return module.get_module_name() - def reconcile(self) -> Callable[[hook.Context], None]: def r(ctx: hook.Context) -> None: pass diff --git a/hooks/lib/hooks/internal_tls.py b/hooks/lib/hooks/internal_tls.py index 67ba975ce..bef29ac22 100644 --- a/hooks/lib/hooks/internal_tls.py +++ b/hooks/lib/hooks/internal_tls.py @@ -254,10 +254,10 @@ class GenerateCertificatesHook(Hook): def __init__(self, *certificate_requests: CertitifacteRequest, namespace: str, - module_name: str = None, + module_name: str, algo: str = "rsa", ca_request: CACertitifacteRequest = None) -> None: - super().__init__(module_name=module_name) + self.module_name=module_name self.namespace = namespace self.algo = algo self.ca_request = ca_request diff --git a/hooks/lib/hooks/manage_tenant_secrets.py b/hooks/lib/hooks/manage_tenant_secrets.py index 0871df0b8..5ae3d1478 100644 --- a/hooks/lib/hooks/manage_tenant_secrets.py +++ b/hooks/lib/hooks/manage_tenant_secrets.py @@ -27,10 +27,11 @@ class ManageTenantSecretsHook(Hook): def __init__(self, source_namespace: str, source_secret_name: str, + module_name: str, pod_labels_to_follow: dict, destination_secret_labels: dict = {}, - module_name: str = None): - super().__init__(module_name=module_name) + ): + self.module_name = module_name self.source_namespace = source_namespace self.source_secret_name = source_secret_name self.pod_labels_to_follow = pod_labels_to_follow diff --git a/hooks/lib/module/module.py b/hooks/lib/module/module.py index c6ac2bcb0..a6d011551 100644 --- a/hooks/lib/module/module.py +++ b/hooks/lib/module/module.py @@ -14,8 +14,6 @@ # limitations under the License. from lib.module import values as module_values -import re -import os def get_values_first_defined(values: dict, *keys): @@ -36,29 +34,3 @@ def get_https_mode(module_name: str, values: dict) -> str: if https_mode is not None: return str(https_mode) raise Exception("https mode is not defined") - - -def get_module_name() -> str: - module = "" - file_path = os.path.abspath(__file__) - external_modules_dir = os.getenv("EXTERNAL_MODULES_DIR") - for dir in os.getenv("MODULES_DIR").split(":"): - if dir.startswith(external_modules_dir): - dir = external_modules_dir - if file_path.startswith(dir): - module = re.sub(f"{dir}/?\d?\d?\d?-?", "", - file_path, 1).split("/")[0] - # /deckhouse/external-modules/virtualization/mr/hooks/hook_name.py - # {-------------------------- file_path --------------------------} - # {------ MODULES_DIR ------}{---------- regexp result ----------}} - # virtualization/mr/hooks/hook_name.py - # {-module-name-}{---------------------} - # or - # /deckhouse/modules/900-virtualization/hooks/hook_name.py - # {---------------------- file_path ----------------------} - # {-- MODULES_DIR --}{---{-------- regexp result --------}} - # virtualization/hooks/hook_name.py - # {-module-name-}{-----------------} - - break - return module diff --git a/hooks/manage_tenant_secrets_for_cdi.py b/hooks/manage_tenant_secrets_for_cdi.py index 98a4fa35c..43a055ea0 100755 --- a/hooks/manage_tenant_secrets_for_cdi.py +++ b/hooks/manage_tenant_secrets_for_cdi.py @@ -22,6 +22,7 @@ def main(): hook = ManageTenantSecretsHook(source_namespace=common.NAMESPACE, source_secret_name="virtualization-module-registry", + module_name=common.MODULE_NAME, pod_labels_to_follow={ "app": "containerized-data-importer", "app.kubernetes.io/managed-by": "cdi-controller"