X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Forg%2Fonap%2Fclamp%2Floop%2FLoopController.java;h=a2a44631b8fb0861717d9ef50ec7ccb983e20f9e;hb=afac3121bfacc4d81903b1d8492613b0b77d3298;hp=b862780de268f290ec2f479bede25c0b0a528cd1;hpb=0cb57989949080d6cc3853c432a233605c321388;p=clamp.git diff --git a/src/main/java/org/onap/clamp/loop/LoopController.java b/src/main/java/org/onap/clamp/loop/LoopController.java index b862780d..a2a44631 100644 --- a/src/main/java/org/onap/clamp/loop/LoopController.java +++ b/src/main/java/org/onap/clamp/loop/LoopController.java @@ -26,13 +26,15 @@ package org.onap.clamp.loop; import com.google.gson.JsonArray; import com.google.gson.JsonObject; import com.google.gson.reflect.TypeToken; - +import java.io.IOException; import java.lang.reflect.Type; import java.util.List; - +import org.onap.clamp.clds.tosca.update.ToscaConverterWithDictionarySupport; import org.onap.clamp.clds.util.JsonUtils; import org.onap.clamp.policy.microservice.MicroServicePolicy; +import org.onap.clamp.policy.microservice.MicroServicePolicyService; import org.onap.clamp.policy.operational.OperationalPolicy; +import org.onap.clamp.policy.operational.OperationalPolicyService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; @@ -40,14 +42,40 @@ import org.springframework.stereotype.Controller; public class LoopController { private final LoopService loopService; + + private final ToscaConverterWithDictionarySupport toscaConverter; + + private final OperationalPolicyService operationalPolicyService; + + private final MicroServicePolicyService microServicePolicyService; + private static final Type OPERATIONAL_POLICY_TYPE = new TypeToken>() { }.getType(); + private static final Type MICROSERVICE_POLICY_TYPE = new TypeToken>() { }.getType(); + + /** + * Constructor. + * + * @param loopService loopService + * @param operationalPolicyService operationalPolicyService + * @param microServicePolicyService microServicePolicyService + * @param toscaConverter toscaConverter + */ @Autowired - public LoopController(LoopService loopService) { + public LoopController(LoopService loopService, OperationalPolicyService operationalPolicyService, + MicroServicePolicyService microServicePolicyService, + ToscaConverterWithDictionarySupport toscaConverter) { this.loopService = loopService; + this.toscaConverter = toscaConverter; + this.operationalPolicyService = operationalPolicyService; + this.microServicePolicyService = microServicePolicyService; + } + + public Loop createLoop(String loopName, String templateName) { + return loopService.createLoopFromTemplate(loopName, templateName); } public List getLoopNames() { @@ -61,40 +89,35 @@ public class LoopController { /** * Update the Operational Policy properties. * - * @param loopName - * The loop name - * @param operationalPoliciesJson - * The new Operational Policy properties + * @param loopName The loop name + * @param operationalPoliciesJson The new Operational Policy properties * @return The updated loop */ public Loop updateOperationalPolicies(String loopName, JsonArray operationalPoliciesJson) { - List operationalPolicies = JsonUtils.GSON.fromJson(operationalPoliciesJson, - OPERATIONAL_POLICY_TYPE); + List operationalPolicies = JsonUtils.GSON_JPA_MODEL.fromJson(operationalPoliciesJson, + OPERATIONAL_POLICY_TYPE); return loopService.updateAndSaveOperationalPolicies(loopName, operationalPolicies); } /** - * Update the whole array of MicroService policies properties + * Update the whole array of MicroService policies properties. * - * @param loopName - * The loop name - * @param microServicePoliciesJson - * The array of all MicroService policies properties + * @param loopName The loop name + * @param microServicePoliciesJson The array of all MicroService policies + * properties * @return The updated loop */ public Loop updateMicroservicePolicies(String loopName, JsonArray microServicePoliciesJson) { - List microservicePolicies = JsonUtils.GSON.fromJson(microServicePoliciesJson, - MICROSERVICE_POLICY_TYPE); + List microservicePolicies = JsonUtils.GSON_JPA_MODEL.fromJson(microServicePoliciesJson, + MICROSERVICE_POLICY_TYPE); return loopService.updateAndSaveMicroservicePolicies(loopName, microservicePolicies); } /** - * Update the global properties + * Update the global properties. * - * @param loopName - * The loop name - * @param globalProperties - * The updated global properties + * @param loopName The loop name + * @param globalProperties The updated global properties * @return The updated loop */ public Loop updateGlobalPropertiesJson(String loopName, JsonObject globalProperties) { @@ -102,12 +125,43 @@ public class LoopController { } /** - * Update one MicroService policy properties + * This method add an operational policy to a loop instance. + * + * @param loopName The loop name + * @param policyType The policy model type + * @param policyVersion The policy model version + * @return The loop modified + */ + public Loop addOperationalPolicy(String loopName, String policyType, String policyVersion) throws IOException { + return loopService.addOperationalPolicy(loopName, policyType, policyVersion); + } + + /** + * This method remove an operational policy to a loop instance. * - * @param loopName - * The loop name - * @param newMicroservicePolicy - * The new MicroService policy properties + * @param loopName The loop name + * @param policyType The policy model type + * @param policyVersion The policy model version + * @return The loop modified + */ + public Loop removeOperationalPolicy(String loopName, String policyType, String policyVersion) { + return loopService.removeOperationalPolicy(loopName, policyType, policyVersion); + } + + /** + * This method deletes the loop. + * + * @param loopName The loop Name + */ + public void deleteLoop(String loopName) { + loopService.deleteLoop(loopName); + } + + /** + * Update one MicroService policy properties. + * + * @param loopName The loop name + * @param newMicroservicePolicy The new MicroService policy properties * @return The updated MicroService policy */ public MicroServicePolicy updateMicroservicePolicy(String loopName, MicroServicePolicy newMicroservicePolicy) { @@ -115,13 +169,47 @@ public class LoopController { } /** - * Get the SVG representation of the loop - * - * @param loopName - * The loop name + * Get the SVG representation of the loop. + * + * @param loopName The loop name * @return The SVG representation */ - public String getSVGRepresentation(String loopName) { - return loopService.getLoop(loopName).getSvgRepresentation(); + public String getSvgRepresentation(String loopName) { + Loop loop = loopService.getLoop(loopName); + return loop != null ? loop.getSvgRepresentation() : null; + } + + /** + * Refresh the Operational Policy Json representation of the loop. + * + * @param loop The loop + * @param operationalPolicyName The operational policy name that needs a refresh + * @return The loop object + */ + public Loop refreshOperationalPolicyJsonRepresentation(Loop loop, String operationalPolicyName) { + for (OperationalPolicy operationalPolicy : loop.getOperationalPolicies()) { + if (operationalPolicy.getName().equals(operationalPolicyName)) { + this.operationalPolicyService + .refreshOperationalPolicyJsonRepresentation(operationalPolicy, toscaConverter); + } + } + return loop; + } + + /** + * Refresh the Config Policy Json representation of the loop. + * + * @param loop The loop + * @param microServicePolicyName The microservice policy name that needs a refresh + * @return The loop object + */ + public Loop refreshMicroServicePolicyJsonRepresentation(Loop loop, String microServicePolicyName) { + for (MicroServicePolicy microServicePolicy : loop.getMicroServicePolicies()) { + if (microServicePolicy.getName().equals(microServicePolicyName)) { + this.microServicePolicyService + .refreshMicroServicePolicyJsonRepresentation(microServicePolicy, toscaConverter, loop); + } + } + return loop; } }