X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Forg%2Fonap%2Fclamp%2Floop%2FLoop.java;h=6de2863ea77b4b5e2456b7814ebb6675ab4ff4b9;hb=785b17789adc4817e129fcd389d91046b195044a;hp=e62874a8ad9a48634bbeab14770a7e7c5756561a;hpb=d10114aeb050d7a3e1e782e48ad446dfeebf388f;p=clamp.git diff --git a/src/main/java/org/onap/clamp/loop/Loop.java b/src/main/java/org/onap/clamp/loop/Loop.java index e62874a8..6de2863e 100644 --- a/src/main/java/org/onap/clamp/loop/Loop.java +++ b/src/main/java/org/onap/clamp/loop/Loop.java @@ -23,11 +23,17 @@ package org.onap.clamp.loop; +import com.att.eelf.configuration.EELFLogger; +import com.att.eelf.configuration.EELFManager; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; import com.google.gson.JsonObject; import com.google.gson.annotations.Expose; import java.io.Serializable; +import java.util.ArrayList; import java.util.HashSet; +import java.util.List; import java.util.Set; import javax.persistence.CascadeType; @@ -41,7 +47,9 @@ import javax.persistence.JoinColumn; import javax.persistence.JoinTable; import javax.persistence.ManyToMany; import javax.persistence.OneToMany; +import javax.persistence.OrderBy; import javax.persistence.Table; +import javax.persistence.Transient; import org.hibernate.annotations.Type; import org.hibernate.annotations.TypeDef; @@ -61,6 +69,9 @@ public class Loop implements Serializable { */ private static final long serialVersionUID = -286522707701388642L; + @Transient + private static final EELFLogger logger = EELFManager.getInstance().getLogger(Loop.class); + @Id @Expose @Column(nullable = false, name = "name", unique = true) @@ -110,6 +121,7 @@ public class Loop implements Serializable { @Expose @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER, mappedBy = "loop") + @OrderBy("id DESC") private Set loopLogs = new HashSet<>(); public Loop() { @@ -134,7 +146,7 @@ public class Loop implements Serializable { this.name = name; } - String getDcaeDeploymentId() { + public String getDcaeDeploymentId() { return dcaeDeploymentId; } @@ -142,7 +154,7 @@ public class Loop implements Serializable { this.dcaeDeploymentId = dcaeDeploymentId; } - String getDcaeDeploymentStatusUrl() { + public String getDcaeDeploymentStatusUrl() { return dcaeDeploymentStatusUrl; } @@ -150,7 +162,7 @@ public class Loop implements Serializable { this.dcaeDeploymentStatusUrl = dcaeDeploymentStatusUrl; } - String getSvgRepresentation() { + public String getSvgRepresentation() { return svgRepresentation; } @@ -158,7 +170,7 @@ public class Loop implements Serializable { this.svgRepresentation = svgRepresentation; } - String getBlueprint() { + public String getBlueprint() { return blueprint; } @@ -166,7 +178,7 @@ public class Loop implements Serializable { this.blueprint = blueprint; } - LoopState getLastComputedState() { + public LoopState getLastComputedState() { return lastComputedState; } @@ -174,7 +186,7 @@ public class Loop implements Serializable { this.lastComputedState = lastComputedState; } - Set getOperationalPolicies() { + public Set getOperationalPolicies() { return operationalPolicies; } @@ -182,7 +194,7 @@ public class Loop implements Serializable { this.operationalPolicies = operationalPolicies; } - Set getMicroServicePolicies() { + public Set getMicroServicePolicies() { return microServicePolicies; } @@ -190,7 +202,7 @@ public class Loop implements Serializable { this.microServicePolicies = microServicePolicies; } - JsonObject getGlobalPropertiesJson() { + public JsonObject getGlobalPropertiesJson() { return globalPropertiesJson; } @@ -198,7 +210,7 @@ public class Loop implements Serializable { this.globalPropertiesJson = globalPropertiesJson; } - Set getLoopLogs() { + public Set getLoopLogs() { return loopLogs; } @@ -221,7 +233,7 @@ public class Loop implements Serializable { log.setLoop(this); } - String getDcaeBlueprintId() { + public String getDcaeBlueprintId() { return dcaeBlueprintId; } @@ -229,7 +241,7 @@ public class Loop implements Serializable { this.dcaeBlueprintId = dcaeBlueprintId; } - JsonObject getModelPropertiesJson() { + public JsonObject getModelPropertiesJson() { return modelPropertiesJson; } @@ -257,6 +269,47 @@ public class Loop implements Serializable { return buffer.toString().replace('.', '_').replaceAll(" ", ""); } + /** + * Generates the Json that must be sent to policy to add all policies to Active + * PDP group. + * + * @return The json, payload to send + */ + public String createPoliciesPayloadPdpGroup() { + JsonObject jsonObject = new JsonObject(); + JsonArray jsonArray = new JsonArray(); + jsonObject.add("policies", jsonArray); + + for (String policyName : this.listPolicyNamesPdpGroup()) { + JsonObject policyNode = new JsonObject(); + jsonArray.add(policyNode); + policyNode.addProperty("policy-id", policyName); + } + String payload = new GsonBuilder().setPrettyPrinting().create().toJson(jsonObject); + logger.info("PdpGroup policy payload: " + payload); + return payload; + } + + /** + * Generates the list of policy names that must be send/remove to/from active + * PDP group. + * + * @return A list of policy names + */ + public List listPolicyNamesPdpGroup() { + List policyNamesList = new ArrayList<>(); + for (OperationalPolicy opPolicy : this.getOperationalPolicies()) { + policyNamesList.add(opPolicy.getName()); + for (String guardName : opPolicy.createGuardPolicyPayloads().keySet()) { + policyNamesList.add(guardName); + } + } + for (MicroServicePolicy microServicePolicy : this.getMicroServicePolicies()) { + policyNamesList.add(microServicePolicy.getName()); + } + return policyNamesList; + } + @Override public int hashCode() { final int prime = 31;