* ================================================================================
* Copyright (C) 2019 AT&T Intellectual Property. All rights
* reserved.
+ * Modifications Copyright (C) 2020 Huawei Technologies Co., Ltd.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
-import javax.persistence.JoinColumns;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.persistence.Transient;
import org.hibernate.annotations.TypeDef;
import org.hibernate.annotations.TypeDefs;
+import org.onap.clamp.clds.tosca.update.UnknownComponentException;
import org.onap.clamp.dao.model.jsontype.StringJsonUserType;
import org.onap.clamp.loop.Loop;
import org.onap.clamp.loop.template.LoopElementModel;
@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
}
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()));
- } catch (JsonSyntaxException | IOException | NullPointerException e) {
+ if (isLegacy()) {
+ // Op policy Legacy case
+ LegacyOperationalPolicy.preloadConfiguration(jsonReturned, loop);
+ jsonReturned =
+ OperationalPolicyRepresentationBuilder.generateOperationalPolicySchema(loop.getModelService());
+ } else {
+ // Generic Case
+ jsonReturned = Policy.generateJsonRepresentationFromToscaModel(policyModel.getPolicyModelTosca(),
+ policyModel.getPolicyModelType());
+ }
+ } catch (UnknownComponentException | IOException | NullPointerException e) {
logger.error("Unable to generate the operational policy Schema ... ", e);
- this.setJsonRepresentation(new JsonObject());
}
+ return jsonReturned;
}
public void setLoop(Loop loopName) {
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;
return true;
}
+ public Boolean isLegacy() {
+ return (this.getPolicyModel() != null) && this.getPolicyModel().getPolicyModelType().contains("legacy");
+ }
+
/**
* Create policy Yaml from json defined here.
*
metadata.addProperty("policy-id", this.name);
operationalPolicyDetails.add("properties", LegacyOperationalPolicy
- .reworkPayloadAttributes(this.getConfigurationsJson().get("operational_policy").deepCopy()));
+ .reworkActorAttributes(this.getConfigurationsJson().get("operational_policy").deepCopy()));
DumperOptions options = new DumperOptions();
options.setIndent(2);
@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();
+ }
}
/**