aboutsummaryrefslogtreecommitdiffstats
path: root/src/main
diff options
context:
space:
mode:
authorXue Gao <xg353y@intl.att.com>2020-03-25 12:12:08 +0000
committerGerrit Code Review <gerrit@onap.org>2020-03-25 12:12:08 +0000
commit2dcca5a5b563e7640313e93fe617ca89bf6aa6d6 (patch)
tree3ca9fb36dfd85fbe4ceb419ddcb323d73a6c06c9 /src/main
parentf152e38d8120333a2572d0b785f4e68aedc92a04 (diff)
parent3ed8d43005f52b84ce04a7311ca97b4cb4a8b487 (diff)
Merge "Improve the policy model download"
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/org/onap/clamp/clds/client/PolicyEngineServices.java39
-rw-r--r--src/main/java/org/onap/clamp/clds/config/DefaultDictionaryElements.java4
-rw-r--r--src/main/java/org/onap/clamp/clds/sdc/controller/installer/BlueprintParser.java2
-rw-r--r--src/main/java/org/onap/clamp/loop/template/PolicyModelsService.java7
-rw-r--r--src/main/java/org/onap/clamp/policy/operational/OperationalPolicyRepresentationBuilder.java4
5 files changed, 33 insertions, 23 deletions
diff --git a/src/main/java/org/onap/clamp/clds/client/PolicyEngineServices.java b/src/main/java/org/onap/clamp/clds/client/PolicyEngineServices.java
index 5e6d9d98d..aecc8f4f5 100644
--- a/src/main/java/org/onap/clamp/clds/client/PolicyEngineServices.java
+++ b/src/main/java/org/onap/clamp/clds/client/PolicyEngineServices.java
@@ -27,7 +27,6 @@ import com.att.eelf.configuration.EELFLogger;
import com.att.eelf.configuration.EELFManager;
import com.google.gson.JsonArray;
import com.google.gson.JsonObject;
-import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.LinkedList;
import java.util.List;
@@ -38,10 +37,12 @@ import org.onap.clamp.clds.config.ClampProperties;
import org.onap.clamp.clds.sdc.controller.installer.BlueprintMicroService;
import org.onap.clamp.clds.util.JsonUtils;
import org.onap.clamp.loop.template.PolicyModel;
+import org.onap.clamp.loop.template.PolicyModelId;
import org.onap.clamp.loop.template.PolicyModelsService;
import org.onap.clamp.policy.pdpgroup.PdpGroup;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
+import org.yaml.snakeyaml.DumperOptions;
import org.yaml.snakeyaml.Yaml;
@@ -91,7 +92,14 @@ public class PolicyEngineServices {
* @return A PolicyModel created from policyEngine data
*/
public PolicyModel createPolicyModelFromPolicyEngine(String policyType, String policyVersion) {
- return new PolicyModel(policyType, this.downloadOnePolicy(policyType, policyVersion), policyVersion);
+ if (!policyModelsService.existsById(
+ new PolicyModelId(policyType, policyVersion))) {
+ return policyModelsService.savePolicyModelInNewTransaction(
+ new PolicyModel(policyType, this.downloadOnePolicy(policyType, policyVersion), policyVersion));
+ }
+ logger.info("Skipping policy model download as it exists already in the database " + policyType
+ + "/" + policyVersion);
+ return null;
}
/**
@@ -118,11 +126,9 @@ public class PolicyEngineServices {
LinkedHashMap<String, Object> policyTypesMap = (LinkedHashMap<String, Object>) loadedYaml
.get("policy_types");
- policyTypesMap.entrySet().stream().forEach(entryPolicyType -> {
- policyModelsService.createPolicyInDbIfNeeded(
- createPolicyModelFromPolicyEngine(entryPolicyType.getKey(),
- ((String) ((LinkedHashMap<String, Object>) entryPolicyType.getValue()).get("version"))));
- });
+ policyTypesMap.forEach((key, value) ->
+ this.createPolicyModelFromPolicyEngine(key,
+ ((String) ((LinkedHashMap<String, Object>) value).get("version"))));
}
/**
@@ -144,9 +150,16 @@ public class PolicyEngineServices {
* @return A string with the whole policy tosca model
*/
public String downloadOnePolicy(String policyType, String policyVersion) {
- return callCamelRoute(ExchangeBuilder.anExchange(camelContext).withProperty("policyModelName", policyType)
+ logger.info("Downloading the policy model " + policyType + "/" + policyVersion);
+ DumperOptions options = new DumperOptions();
+ options.setDefaultScalarStyle(DumperOptions.ScalarStyle.PLAIN);
+ options.setIndent(2);
+ options.setPrettyFlow(true);
+ options.setDefaultFlowStyle(DumperOptions.FlowStyle.BLOCK);
+ return (new Yaml(options)).dump(callCamelRoute(
+ ExchangeBuilder.anExchange(camelContext).withProperty("policyModelName", policyType)
.withProperty("policyModelVersion", policyVersion).build(), "direct:get-policy-model",
- "Get one policy");
+ "Get one policy"));
}
/**
@@ -167,9 +180,8 @@ public class PolicyEngineServices {
List<PdpGroup> pdpGroupList = new LinkedList<>();
JsonArray itemsArray = (JsonArray) jsonObj.get("groups");
- Iterator it = itemsArray.iterator();
- while (it.hasNext()) {
- JsonObject item = (JsonObject) it.next();
+ for (com.google.gson.JsonElement jsonElement : itemsArray) {
+ JsonObject item = (JsonObject) jsonElement;
PdpGroup pdpGroup = JsonUtils.GSON.fromJson(item.toString(), PdpGroup.class);
pdpGroupList.add(pdpGroup);
}
@@ -182,7 +194,8 @@ public class PolicyEngineServices {
Exchange exchangeResponse = camelContext.createProducerTemplate().send(camelFlow, exchange);
if (Integer.valueOf(200).equals(exchangeResponse.getIn().getHeader("CamelHttpResponseCode"))) {
return (String) exchangeResponse.getIn().getBody();
- } else {
+ }
+ else {
logger.info(logMsg + " query " + retryInterval + "ms before retrying ...");
// wait for a while and try to connect to DCAE again
try {
diff --git a/src/main/java/org/onap/clamp/clds/config/DefaultDictionaryElements.java b/src/main/java/org/onap/clamp/clds/config/DefaultDictionaryElements.java
index d9b017b56..1c52e4100 100644
--- a/src/main/java/org/onap/clamp/clds/config/DefaultDictionaryElements.java
+++ b/src/main/java/org/onap/clamp/clds/config/DefaultDictionaryElements.java
@@ -47,7 +47,7 @@ public class DefaultDictionaryElements {
preProvisionDefaultOperations();
}
- private void preProvisionDefaultActors () {
+ private void preProvisionDefaultActors() {
// Set up dictionary elements
Dictionary actorDictionary = new Dictionary();
actorDictionary.setName("DefaultActors");
@@ -92,7 +92,7 @@ public class DefaultDictionaryElements {
dictionaryService.saveOrUpdateDictionary(actorDictionary);
}
- private void preProvisionDefaultOperations () {
+ private void preProvisionDefaultOperations() {
// Set up dictionary elements
Dictionary operationDictionary = new Dictionary();
operationDictionary.setName("DefaultOperations");
diff --git a/src/main/java/org/onap/clamp/clds/sdc/controller/installer/BlueprintParser.java b/src/main/java/org/onap/clamp/clds/sdc/controller/installer/BlueprintParser.java
index 981a20416..5d5027d29 100644
--- a/src/main/java/org/onap/clamp/clds/sdc/controller/installer/BlueprintParser.java
+++ b/src/main/java/org/onap/clamp/clds/sdc/controller/installer/BlueprintParser.java
@@ -48,7 +48,7 @@ public class BlueprintParser {
static final String TCA = "TCA";
private static final String NODE_TEMPLATES = "node_templates";
private static final String DCAE_NODES = "dcae.nodes.";
- private static final String DCAE_NODES_POLICY = "dcae.nodes.policy";
+ private static final String DCAE_NODES_POLICY = ".nodes.policy";
private static final String TYPE = "type";
private static final String PROPERTIES = "properties";
private static final String NAME = "name";
diff --git a/src/main/java/org/onap/clamp/loop/template/PolicyModelsService.java b/src/main/java/org/onap/clamp/loop/template/PolicyModelsService.java
index 98b928916..a1b8f7cf2 100644
--- a/src/main/java/org/onap/clamp/loop/template/PolicyModelsService.java
+++ b/src/main/java/org/onap/clamp/loop/template/PolicyModelsService.java
@@ -145,11 +145,8 @@ public class PolicyModelsService {
* @param policyModel The policyModel to save
*/
@Transactional(propagation = Propagation.REQUIRES_NEW)
- public void createPolicyInDbIfNeeded(PolicyModel policyModel) {
- if (!policyModelsRepository.existsById(
- new PolicyModelId(policyModel.getPolicyModelType(), policyModel.getVersion()))) {
- policyModelsRepository.saveAndFlush(policyModel);
- }
+ public PolicyModel savePolicyModelInNewTransaction(PolicyModel policyModel) {
+ return policyModelsRepository.saveAndFlush(policyModel);
}
/**
diff --git a/src/main/java/org/onap/clamp/policy/operational/OperationalPolicyRepresentationBuilder.java b/src/main/java/org/onap/clamp/policy/operational/OperationalPolicyRepresentationBuilder.java
index 6577069ec..44ee11970 100644
--- a/src/main/java/org/onap/clamp/policy/operational/OperationalPolicyRepresentationBuilder.java
+++ b/src/main/java/org/onap/clamp/policy/operational/OperationalPolicyRepresentationBuilder.java
@@ -165,7 +165,7 @@ public class OperationalPolicyRepresentationBuilder {
}
/**
- * Create an anyOf array of possible structure we may have for Target
+ * Create an anyOf array of possible structure we may have for Target.
*
* @param modelJson The service object
* @return A JsonArray with everything inside
@@ -177,7 +177,7 @@ public class OperationalPolicyRepresentationBuilder {
return targetOneOfStructure;
}
- public static JsonArray createAnyOfArrayForCdsRecipe(Service modelJson) {
+ private static JsonArray createAnyOfArrayForCdsRecipe(Service modelJson) {
JsonArray anyOfStructure = new JsonArray();
anyOfStructure.addAll(createAnyOfCdsRecipe(modelJson.getResourceDetails().getAsJsonObject("VF")));
anyOfStructure.addAll(createAnyOfCdsRecipe(modelJson.getResourceDetails().getAsJsonObject("PNF")));