X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Forg%2Fonap%2Fclamp%2Floop%2FLoopService.java;h=303ae683a1df523b3e79206b536ca498d883e196;hb=bcbc25bbb78876db27fc326aadf89086200c3c76;hp=91b4bdf89f38e305bbe02105c2fa16c33655ff2c;hpb=60e5cc9c7768ddda104069f7773fb636f77587e8;p=clamp.git diff --git a/src/main/java/org/onap/clamp/loop/LoopService.java b/src/main/java/org/onap/clamp/loop/LoopService.java index 91b4bdf8..303ae683 100644 --- a/src/main/java/org/onap/clamp/loop/LoopService.java +++ b/src/main/java/org/onap/clamp/loop/LoopService.java @@ -23,24 +23,32 @@ package org.onap.clamp.loop; +import com.google.gson.JsonObject; + import java.util.List; import java.util.Set; + import javax.persistence.EntityNotFoundException; -import org.onap.clamp.policy.microservice.MicroservicePolicyService; -import org.onap.clamp.policy.operational.OperationalPolicyService; + 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.stereotype.Component; import org.springframework.stereotype.Service; @Service +@Component public class LoopService { private final LoopsRepository loopsRepository; private final MicroservicePolicyService microservicePolicyService; private final OperationalPolicyService operationalPolicyService; - public LoopService(LoopsRepository loopsRepository, - MicroservicePolicyService microservicePolicyService, + /** + * Constructor. + */ + public LoopService(LoopsRepository loopsRepository, MicroservicePolicyService microservicePolicyService, OperationalPolicyService operationalPolicyService) { this.loopsRepository = loopsRepository; this.microservicePolicyService = microservicePolicyService; @@ -55,37 +63,62 @@ public class LoopService { return loopsRepository.getAllLoopNames(); } - Loop getLoop(String loopName){ - return loopsRepository - .findById(loopName) - .orElse(null); + public Loop getLoop(String loopName) { + return loopsRepository.findById(loopName).orElse(null); } - String getClosedLoopModelSVG(String loopName) { - Loop closedLoopByName = findClosedLoopByName(loopName); - return closedLoopByName.getSvgRepresentation(); + public void deleteLoop(String loopName) { + loopsRepository.deleteById(loopName); } - Loop updateOperationalPolicies(String loopName, List newOperationalPolicies) { - Loop loop = findClosedLoopByName(loopName); - Set newPolicies = operationalPolicyService - .updatePolicies(loop, newOperationalPolicies); + public void updateDcaeDeploymentFields(Loop loop, String deploymentId, String deploymentUrl) { + loop.setDcaeDeploymentId(deploymentId); + loop.setDcaeDeploymentStatusUrl(deploymentUrl); + loopsRepository.save(loop); + } + public void updateLoopState(Loop loop, String newState) { + loop.setLastComputedState(LoopState.valueOf(newState)); + loopsRepository.save(loop); + } + + Loop updateAndSaveOperationalPolicies(String loopName, List newOperationalPolicies) { + Loop loop = findClosedLoopByName(loopName); + Set newPolicies = operationalPolicyService.updatePolicies(loop, newOperationalPolicies); loop.setOperationalPolicies(newPolicies); return loopsRepository.save(loop); } - Loop updateMicroservicePolicies(String loopName, List newMicroservicePolicies) { + Loop updateAndSaveMicroservicePolicies(String loopName, List newMicroservicePolicies) { Loop loop = findClosedLoopByName(loopName); - Set newPolicies = microservicePolicyService - .updatePolicies(loop, newMicroservicePolicies); - + Set newPolicies = microservicePolicyService.updatePolicies(loop, newMicroservicePolicies); loop.setMicroServicePolicies(newPolicies); return loopsRepository.save(loop); } + Loop updateAndSaveGlobalPropertiesJson(String loopName, JsonObject newGlobalPropertiesJson) { + Loop loop = findClosedLoopByName(loopName); + loop.setGlobalPropertiesJson(newGlobalPropertiesJson); + return loopsRepository.save(loop); + } + + MicroServicePolicy updateMicroservicePolicy(String loopName, MicroServicePolicy newMicroservicePolicy) { + Loop loop = findClosedLoopByName(loopName); + return microservicePolicyService.getAndUpdateMicroServicePolicy(loop, newMicroservicePolicy); + } + private Loop findClosedLoopByName(String loopName) { return loopsRepository.findById(loopName) .orElseThrow(() -> new EntityNotFoundException("Couldn't find closed loop named: " + loopName)); } + + public Loop refreshOpPolicyJsonRepresentation(String loopName) { + Loop loop = findClosedLoopByName(loopName); + Set policyList = loop.getOperationalPolicies(); + for (OperationalPolicy policy : policyList) { + policy.updateJsonRepresentation(); + } + loop.setOperationalPolicies(policyList); + return loopsRepository.save(loop); + } }