X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Forg%2Fonap%2Fclamp%2Fpolicy%2Foperational%2FOperationalPolicy.java;h=82cfcf4ef51d1d1f8e05dec5089c39f989e5b0c9;hb=897a3e004a858ef68d989dad15dde91a69e151a5;hp=aab30bfb6cfde83294e3f82a227c0610c77c7b1f;hpb=f0e00e7c9ea8dd15a4aacdd880aa648539caf087;p=clamp.git diff --git a/src/main/java/org/onap/clamp/policy/operational/OperationalPolicy.java b/src/main/java/org/onap/clamp/policy/operational/OperationalPolicy.java index aab30bfb..82cfcf4e 100644 --- a/src/main/java/org/onap/clamp/policy/operational/OperationalPolicy.java +++ b/src/main/java/org/onap/clamp/policy/operational/OperationalPolicy.java @@ -50,6 +50,8 @@ import javax.persistence.Table; import javax.persistence.Transient; import org.hibernate.annotations.TypeDef; import org.hibernate.annotations.TypeDefs; +import org.onap.clamp.clds.tosca.ToscaYamlToJsonConvertor; +import org.onap.clamp.clds.util.JsonUtils; import org.onap.clamp.dao.model.jsontype.StringJsonUserType; import org.onap.clamp.loop.Loop; import org.onap.clamp.loop.template.LoopElementModel; @@ -79,12 +81,6 @@ public class OperationalPolicy extends Policy implements Serializable { @JoinColumn(name = "loop_id", nullable = false) private Loop loop; - @Expose - @ManyToOne(fetch = FetchType.EAGER) - @JoinColumns({@JoinColumn(name = "policy_model_type", referencedColumnName = "policy_model_type"), - @JoinColumn(name = "policy_model_version", referencedColumnName = "version")}) - private PolicyModel policyModel; - public OperationalPolicy() { // Serialization } @@ -110,16 +106,32 @@ public class OperationalPolicy extends Policy implements Serializable { this.setPdpGroup(pdpGroup); this.setPdpSubgroup(pdpSubgroup); this.setLoopElementModel(loopElementModel); - if (policyModel != null && policyModel.getPolicyModelType().contains("legacy")) { - LegacyOperationalPolicy.preloadConfiguration(configurationsJson, loop); + this.setJsonRepresentation(this.generateJsonRepresentation(policyModel)); + + } + + private JsonObject generateJsonRepresentation(PolicyModel policyModel) { + JsonObject jsonReturned = new JsonObject(); + if (policyModel == null) { + return new JsonObject(); } try { - this.setJsonRepresentation( - OperationalPolicyRepresentationBuilder.generateOperationalPolicySchema(loop.getModelService())); + if (isLegacy()) { + // Op policy Legacy case + LegacyOperationalPolicy.preloadConfiguration(jsonReturned, loop); + this.setJsonRepresentation( + OperationalPolicyRepresentationBuilder.generateOperationalPolicySchema(loop.getModelService())); + } else { + // Generic Case + this.setJsonRepresentation(JsonUtils.GSON + .fromJson(new ToscaYamlToJsonConvertor().parseToscaYaml(policyModel.getPolicyModelTosca(), + policyModel.getPolicyModelType()), JsonObject.class)); + } } catch (JsonSyntaxException | IOException | NullPointerException e) { logger.error("Unable to generate the operational policy Schema ... ", e); this.setJsonRepresentation(new JsonObject()); } + return jsonReturned; } public void setLoop(Loop loopName) { @@ -145,24 +157,6 @@ public class OperationalPolicy extends Policy implements Serializable { this.name = name; } - /** - * policyModel getter. - * - * @return the policyModel - */ - public PolicyModel getPolicyModel() { - return policyModel; - } - - /** - * policyModel setter. - * - * @param policyModel the policyModel to set - */ - public void setPolicyModel(PolicyModel policyModel) { - this.policyModel = policyModel; - } - @Override public int hashCode() { final int prime = 31; @@ -193,6 +187,10 @@ public class OperationalPolicy extends Policy implements Serializable { return true; } + public Boolean isLegacy() { + return (this.getPolicyModel() != null) && this.getPolicyModel().getPolicyModelType().contains("legacy"); + } + /** * Create policy Yaml from json defined here. * @@ -235,17 +233,22 @@ public class OperationalPolicy extends Policy implements Serializable { @Override public String createPolicyPayload() throws UnsupportedEncodingException { - // Now using the legacy payload fo Dublin - JsonObject payload = new JsonObject(); - payload.addProperty("policy-id", this.getName()); - payload.addProperty("content", - URLEncoder.encode( - LegacyOperationalPolicy - .createPolicyPayloadYamlLegacy(this.getConfigurationsJson().get("operational_policy")), - StandardCharsets.UTF_8.toString())); - String opPayload = new GsonBuilder().setPrettyPrinting().create().toJson(payload); - logger.info("Operational policy payload: " + opPayload); - return opPayload; + if (isLegacy()) { + // Now using the legacy payload fo Dublin + JsonObject payload = new JsonObject(); + payload.addProperty("policy-id", this.getName()); + payload.addProperty("content", + URLEncoder.encode( + LegacyOperationalPolicy + .createPolicyPayloadYamlLegacy( + this.getConfigurationsJson().get("operational_policy")), + StandardCharsets.UTF_8.toString())); + String opPayload = new GsonBuilder().setPrettyPrinting().create().toJson(payload); + logger.info("Operational policy payload: " + opPayload); + return opPayload; + } else { + return super.createPolicyPayload(); + } } /**