Moved functionality of K8sEmsClientDeploymentPostTranslationPlugin to K8sEmsClientDeploymentPostProcessingPlugin. Left K8sEmsClientDeploymentPostTranslationPlugin as a skeleton for future use.

Change-Id: I2b65926a0f693a76fb9643fab12ee3397c71a385
This commit is contained in:
ipatini 2024-06-04 14:11:12 +03:00
parent 82379b5013
commit 2d426cbd95
2 changed files with 79 additions and 15 deletions

View File

@ -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<String, Object> 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");
}
}

View File

@ -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");*/
}
}