From 2d426cbd95d22c150c4a78ad8fc03980525cbcd7 Mon Sep 17 00:00:00 2001 From: ipatini Date: Tue, 4 Jun 2024 14:11:12 +0300 Subject: [PATCH] Moved functionality of K8sEmsClientDeploymentPostTranslationPlugin to K8sEmsClientDeploymentPostProcessingPlugin. Left K8sEmsClientDeploymentPostTranslationPlugin as a skeleton for future use. Change-Id: I2b65926a0f693a76fb9643fab12ee3397c71a385 --- ...sClientDeploymentPostProcessingPlugin.java | 70 +++++++++++++++++++ ...ClientDeploymentPostTranslationPlugin.java | 24 +++---- 2 files changed, 79 insertions(+), 15 deletions(-) create mode 100644 nebulous/ems-nebulous/src/main/java/eu/nebulous/ems/k8s/K8sEmsClientDeploymentPostProcessingPlugin.java diff --git a/nebulous/ems-nebulous/src/main/java/eu/nebulous/ems/k8s/K8sEmsClientDeploymentPostProcessingPlugin.java b/nebulous/ems-nebulous/src/main/java/eu/nebulous/ems/k8s/K8sEmsClientDeploymentPostProcessingPlugin.java new file mode 100644 index 0000000..5b8817f --- /dev/null +++ b/nebulous/ems-nebulous/src/main/java/eu/nebulous/ems/k8s/K8sEmsClientDeploymentPostProcessingPlugin.java @@ -0,0 +1,70 @@ +/* + * Copyright (C) 2023-2025 Institute of Communication and Computer Systems (imu.iccs.gr) + * + * This Source Code Form is subject to the terms of the Mozilla Public License, v2.0. + * If a copy of the MPL was not distributed with this file, you can obtain one at + * https://www.mozilla.org/en-US/MPL/2.0/ + */ + +package eu.nebulous.ems.k8s; + +import eu.nebulous.ems.EmsNebulousProperties; +import gr.iccs.imu.ems.control.controller.ControlServiceRequestInfo; +import gr.iccs.imu.ems.control.controller.NodeRegistrationCoordinator; +import gr.iccs.imu.ems.control.plugin.AppModelPlugin; +import gr.iccs.imu.ems.control.plugin.PostTranslationPlugin; +import gr.iccs.imu.ems.control.util.TopicBeacon; +import gr.iccs.imu.ems.translate.TranslationContext; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.InitializingBean; +import org.springframework.context.ApplicationContext; +import org.springframework.stereotype.Service; + +import java.util.HashMap; +import java.util.Map; + +@Slf4j +@Service +@RequiredArgsConstructor +public class K8sEmsClientDeploymentPostProcessingPlugin implements AppModelPlugin, InitializingBean { + private final K8sServiceProperties properties; + private final ApplicationContext applicationContext; + private final EmsNebulousProperties emsNebulousProperties; + + private String applicationId; + + @Override + public void afterPropertiesSet() throws Exception { + applicationId = emsNebulousProperties.getApplicationId(); + log.info("K8sEmsClientDeploymentPostProcessingPlugin: Application Id (from Env.): {}", applicationId); + } + + @Override + public void postProcessingNewAppModel(String appModelId, ControlServiceRequestInfo requestInfo, TranslationContext translationContext) { + String oldAppId = this.applicationId; + this.applicationId = translationContext.getAppId(); + log.info("K8sEmsClientDeploymentPostProcessingPlugin: Set applicationId to: {} -- was: {}", applicationId, oldAppId); + + // Call control-service to deploy EMS clients + if (properties.isDeployEmsClientsOnKubernetesEnabled()) { + try { + log.info("K8sEmsClientDeploymentPostProcessingPlugin: Start deploying EMS clients..."); + String id = "dummy-" + System.currentTimeMillis(); + Map nodeInfo = new HashMap<>(Map.of( + "id", id, + "name", id, + "type", "K8S", + "provider", "Kubernetes", + "zone-id", "" + )); + applicationContext.getBean(NodeRegistrationCoordinator.class) + .registerNode("", nodeInfo, translationContext); + log.debug("K8sEmsClientDeploymentPostProcessingPlugin: EMS clients deployment started"); + } catch (Exception e) { + log.warn("K8sEmsClientDeploymentPostProcessingPlugin: EXCEPTION while starting EMS client deployment: ", e); + } + } else + log.info("K8sEmsClientDeploymentPostProcessingPlugin: EMS clients deployment is disabled"); + } +} \ No newline at end of file diff --git a/nebulous/ems-nebulous/src/main/java/eu/nebulous/ems/k8s/K8sEmsClientDeploymentPostTranslationPlugin.java b/nebulous/ems-nebulous/src/main/java/eu/nebulous/ems/k8s/K8sEmsClientDeploymentPostTranslationPlugin.java index a0d2b40..59ba606 100644 --- a/nebulous/ems-nebulous/src/main/java/eu/nebulous/ems/k8s/K8sEmsClientDeploymentPostTranslationPlugin.java +++ b/nebulous/ems-nebulous/src/main/java/eu/nebulous/ems/k8s/K8sEmsClientDeploymentPostTranslationPlugin.java @@ -8,39 +8,33 @@ package eu.nebulous.ems.k8s; -import eu.nebulous.ems.EmsNebulousProperties; -import gr.iccs.imu.ems.control.controller.NodeRegistrationCoordinator; import gr.iccs.imu.ems.control.plugin.PostTranslationPlugin; import gr.iccs.imu.ems.control.util.TopicBeacon; import gr.iccs.imu.ems.translate.TranslationContext; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.InitializingBean; -import org.springframework.context.ApplicationContext; import org.springframework.stereotype.Service; -import java.util.HashMap; -import java.util.Map; - @Slf4j @Service @RequiredArgsConstructor public class K8sEmsClientDeploymentPostTranslationPlugin implements PostTranslationPlugin, InitializingBean { - private final K8sServiceProperties properties; - private final ApplicationContext applicationContext; - private final EmsNebulousProperties emsNebulousProperties; - - private String applicationId; +// private final K8sServiceProperties properties; +// private final ApplicationContext applicationContext; +// private final EmsNebulousProperties emsNebulousProperties; +// +// private String applicationId; @Override public void afterPropertiesSet() throws Exception { - applicationId = emsNebulousProperties.getApplicationId(); - log.info("K8sEmsClientDeploymentPostTranslationPlugin: Application Id (from Env.): {}", applicationId); + /*applicationId = emsNebulousProperties.getApplicationId(); + log.info("K8sEmsClientDeploymentPostTranslationPlugin: Application Id (from Env.): {}", applicationId);*/ } @Override public void processTranslationResults(TranslationContext translationContext, TopicBeacon topicBeacon) { - String oldAppId = this.applicationId; + /*String oldAppId = this.applicationId; this.applicationId = translationContext.getAppId(); log.info("K8sEmsClientDeploymentPostTranslationPlugin: Set applicationId to: {} -- was: {}", applicationId, oldAppId); @@ -63,6 +57,6 @@ public class K8sEmsClientDeploymentPostTranslationPlugin implements PostTranslat log.warn("K8sEmsClientDeploymentPostTranslationPlugin: EXCEPTION while starting EMS client deployment: ", e); } } else - log.info("K8sEmsClientDeploymentPostTranslationPlugin: EMS clients deployment is disabled"); + log.info("K8sEmsClientDeploymentPostTranslationPlugin: EMS clients deployment is disabled");*/ } } \ No newline at end of file