summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/main/java/org/onap/clamp/loop/components/external/PolicyComponent.java9
-rw-r--r--src/main/java/org/onap/clamp/loop/template/LoopElementModel.java4
-rw-r--r--src/main/java/org/onap/clamp/policy/operational/OperationalPolicy.java21
-rw-r--r--src/main/java/org/onap/clamp/policy/operational/OperationalPolicyRepresentationBuilder.java98
-rw-r--r--src/main/resources/clds/camel/rest/clamp-api-v2.xml49
-rw-r--r--src/main/resources/clds/camel/routes/loop-flows.xml26
-rw-r--r--src/main/resources/clds/camel/routes/policy-flows.xml95
-rw-r--r--src/main/resources/clds/json-schema/operational_policies/operational_policy.json152
-rw-r--r--src/test/java/org/onap/clamp/loop/LoopControllerTestItCase.java2
-rw-r--r--src/test/java/org/onap/clamp/policy/microservice/OperationalPolicyPayloadTest.java26
-rw-r--r--src/test/resources/tosca/operational-policy-cds-payload-with-list.json152
-rw-r--r--src/test/resources/tosca/operational-policy-json-schema.json152
-rw-r--r--src/test/resources/tosca/operational-policy-properties.json31
-rw-r--r--src/test/resources/tosca/pdp-group-policy-payload.json4
14 files changed, 66 insertions, 755 deletions
diff --git a/src/main/java/org/onap/clamp/loop/components/external/PolicyComponent.java b/src/main/java/org/onap/clamp/loop/components/external/PolicyComponent.java
index 227f40a72..4ea5b7118 100644
--- a/src/main/java/org/onap/clamp/loop/components/external/PolicyComponent.java
+++ b/src/main/java/org/onap/clamp/loop/components/external/PolicyComponent.java
@@ -85,13 +85,6 @@ public class PolicyComponent extends ExternalComponent {
updatePdpGroupMap(opPolicy.getPdpGroup(), opPolicy.getPdpSubgroup(),
opPolicy.getName(),
"1.0.0", pdpGroupMap);
- if (opPolicy.isLegacy()) {
- for (String guardName:opPolicy.createGuardPolicyPayloads().keySet()) {
- updatePdpGroupMap(opPolicy.getPdpGroup(), opPolicy.getPdpSubgroup(),
- guardName,
- "1.0.0", pdpGroupMap);
- }
- }
}
for (MicroServicePolicy msPolicy : loop.getMicroServicePolicies()) {
@@ -186,7 +179,7 @@ public class PolicyComponent extends ExternalComponent {
/**
* This is a method that expect the results of the queries getPolicy and
- * getPolicyDeployed for a unique policy (op,guard, config, etc ...). It
+ * getPolicyDeployed for a unique policy (op, config, etc ...). It
* re-computes the global policy state for each policy results given. Therefore
* this method is called multiple times from the camel route and must be reset
* for a new global policy state retrieval. The state to compute the global
diff --git a/src/main/java/org/onap/clamp/loop/template/LoopElementModel.java b/src/main/java/org/onap/clamp/loop/template/LoopElementModel.java
index 4a46a9544..35fdf43cd 100644
--- a/src/main/java/org/onap/clamp/loop/template/LoopElementModel.java
+++ b/src/main/java/org/onap/clamp/loop/template/LoopElementModel.java
@@ -75,8 +75,8 @@ public class LoopElementModel extends AuditEntity implements Serializable {
@Column(columnDefinition = "MEDIUMTEXT", name = "blueprint_yaml")
private String blueprint;
- public static String MICRO_SERVICE_TYPE = "MICRO_SERVICE_TYPE";
- public static String OPERATIONAL_POLICY_TYPE = "OPERATIONAL_POLICY_TYPE";
+ public static final String MICRO_SERVICE_TYPE = "MICRO_SERVICE_TYPE";
+ public static final String OPERATIONAL_POLICY_TYPE = "OPERATIONAL_POLICY_TYPE";
/**
* The type of element.
*/
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 1e721ce24..b4020c18e 100644
--- a/src/main/java/org/onap/clamp/policy/operational/OperationalPolicy.java
+++ b/src/main/java/org/onap/clamp/policy/operational/OperationalPolicy.java
@@ -293,25 +293,4 @@ public class OperationalPolicy extends Policy implements Serializable {
return super.createPolicyPayload();
}
}
-
- /**
- * Return a map containing all Guard policies indexed by Guard policy Name.
- *
- * @return The Guards map
- */
- public Map<String, String> createGuardPolicyPayloads() {
- Map<String, String> result = new HashMap<>();
-
- if (this.getConfigurationsJson() != null) {
- JsonElement guardsList = this.getConfigurationsJson().get("guard_policies");
- if (guardsList != null) {
- for (JsonElement guardElem : guardsList.getAsJsonArray()) {
- result.put(guardElem.getAsJsonObject().get("policy-id").getAsString(),
- new GsonBuilder().create().toJson(guardElem));
- }
- }
- }
- logger.info("Guard policy payload: " + result);
- return result;
- }
}
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 b1aa4ad18..8bd8aac75 100644
--- a/src/main/java/org/onap/clamp/policy/operational/OperationalPolicyRepresentationBuilder.java
+++ b/src/main/java/org/onap/clamp/policy/operational/OperationalPolicyRepresentationBuilder.java
@@ -45,9 +45,19 @@ public class OperationalPolicyRepresentationBuilder {
EELFManager.getInstance().getLogger(OperationalPolicyRepresentationBuilder.class);
public static final String PROPERTIES = "properties";
+ public static final String ITEMS = "items";
+ public static final String ANY_OF = "anyOf";
+ public static final String TITLE = "title";
+ public static final String RECIPE = "recipe";
+ public static final String DEFAULT = "default";
+ public static final String STRING = "string";
public static final String TYPE = "type";
public static final String TYPE_LIST = "list";
+ private OperationalPolicyRepresentationBuilder() {
+ throw new IllegalStateException("This is Utility class, not supposed to be initiated.");
+ }
+
/**
* This method generates the operational policy json representation that will be
* used by ui for rendering. It uses the model (VF and VFModule) defined in the
@@ -65,21 +75,21 @@ public class OperationalPolicyRepresentationBuilder {
ResourceFileUtil
.getResourceAsString("clds/json-schema/operational_policies/operational_policy.json"),
JsonObject.class);
- jsonSchema.get("properties").getAsJsonObject()
- .get("operational_policy").getAsJsonObject().get("properties").getAsJsonObject().get("policies")
- .getAsJsonObject().get("items").getAsJsonObject().get("properties").getAsJsonObject().get("target")
- .getAsJsonObject().get("anyOf").getAsJsonArray().addAll(createAnyOfArray(modelJson, true));
+ jsonSchema.get(PROPERTIES).getAsJsonObject()
+ .get("operational_policy").getAsJsonObject().get(PROPERTIES).getAsJsonObject().get("policies")
+ .getAsJsonObject().get(ITEMS).getAsJsonObject().get(PROPERTIES).getAsJsonObject().get("target")
+ .getAsJsonObject().get(ANY_OF).getAsJsonArray().addAll(createAnyOfArray(modelJson, true));
// update CDS recipe and payload information to schema
- JsonArray actors = jsonSchema.get("properties").getAsJsonObject()
- .get("operational_policy").getAsJsonObject().get("properties").getAsJsonObject().get("policies")
- .getAsJsonObject().get("items").getAsJsonObject().get("properties").getAsJsonObject().get("actor")
- .getAsJsonObject().get("anyOf").getAsJsonArray();
+ JsonArray actors = jsonSchema.get(PROPERTIES).getAsJsonObject()
+ .get("operational_policy").getAsJsonObject().get(PROPERTIES).getAsJsonObject().get("policies")
+ .getAsJsonObject().get(ITEMS).getAsJsonObject().get(PROPERTIES).getAsJsonObject().get("actor")
+ .getAsJsonObject().get(ANY_OF).getAsJsonArray();
for (JsonElement actor : actors) {
- if ("CDS".equalsIgnoreCase(actor.getAsJsonObject().get("title").getAsString())) {
- actor.getAsJsonObject().get("properties").getAsJsonObject().get("recipe").getAsJsonObject()
- .get("anyOf").getAsJsonArray()
+ if ("CDS".equalsIgnoreCase(actor.getAsJsonObject().get(TITLE).getAsString())) {
+ actor.getAsJsonObject().get(PROPERTIES).getAsJsonObject().get(RECIPE).getAsJsonObject()
+ .get(ANY_OF).getAsJsonArray()
.addAll(createAnyOfArrayForCdsRecipe(modelJson));
}
}
@@ -93,9 +103,9 @@ public class OperationalPolicyRepresentationBuilder {
private static JsonObject createSchemaProperty(String title, String type, String defaultValue, String readOnlyFlag,
String[] enumArray) {
JsonObject property = new JsonObject();
- property.addProperty("title", title);
- property.addProperty("type", type);
- property.addProperty("default", defaultValue);
+ property.addProperty(TITLE, title);
+ property.addProperty(TYPE, type);
+ property.addProperty(DEFAULT, defaultValue);
property.addProperty("readOnly", readOnlyFlag);
if (enumArray != null) {
@@ -114,15 +124,15 @@ public class OperationalPolicyRepresentationBuilder {
for (Entry<String, JsonElement> entry : modelVnfs.entrySet()) {
JsonObject vnfOneOfSchema = new JsonObject();
- vnfOneOfSchema.addProperty("title", "VNF" + "-" + entry.getKey());
+ vnfOneOfSchema.addProperty(TITLE, "VNF" + "-" + entry.getKey());
JsonObject properties = new JsonObject();
if (generateType) {
- properties.add("type", createSchemaProperty("Type", "string", "VNF", "True", null));
+ properties.add(TYPE, createSchemaProperty("Type", STRING, "VNF", "True", null));
}
- properties.add("resourceID", createSchemaProperty("Resource ID", "string",
+ properties.add("resourceID", createSchemaProperty("Resource ID", STRING,
modelVnfs.get(entry.getKey()).getAsJsonObject().get("name").getAsString(), "True", null));
- vnfOneOfSchema.add("properties", properties);
+ vnfOneOfSchema.add(PROPERTIES, properties);
vnfSchemaArray.add(vnfOneOfSchema);
}
return vnfSchemaArray;
@@ -143,39 +153,39 @@ public class OperationalPolicyRepresentationBuilder {
for (Entry<String, JsonElement> entry : modelVfModules.entrySet()) {
JsonObject vfModuleOneOfSchema = new JsonObject();
- vfModuleOneOfSchema.addProperty("title", "VFMODULE" + "-" + entry.getKey());
+ vfModuleOneOfSchema.addProperty(TITLE, "VFMODULE" + "-" + entry.getKey());
JsonObject properties = new JsonObject();
if (generateType) {
- properties.add("type", createSchemaProperty("Type", "string", "VFMODULE", "True", null));
+ properties.add(TYPE, createSchemaProperty("Type", STRING, "VFMODULE", "True", null));
}
properties.add("resourceID",
- createSchemaProperty("Resource ID", "string",
+ createSchemaProperty("Resource ID", STRING,
modelVfModules.get(entry.getKey()).getAsJsonObject().get("vfModuleModelName").getAsString(),
"True", null));
properties.add("modelInvariantId",
- createSchemaProperty("Model Invariant Id (ModelInvariantUUID)", "string",
+ createSchemaProperty("Model Invariant Id (ModelInvariantUUID)", STRING,
modelVfModules.get(entry.getKey()).getAsJsonObject().get("vfModuleModelInvariantUUID")
.getAsString(),
"True", null));
properties.add("modelVersionId",
- createSchemaProperty("Model Version Id (ModelUUID)", "string",
+ createSchemaProperty("Model Version Id (ModelUUID)", STRING,
modelVfModules.get(entry.getKey()).getAsJsonObject().get("vfModuleModelUUID").getAsString(),
"True", null));
properties.add("modelName",
- createSchemaProperty("Model Name", "string",
+ createSchemaProperty("Model Name", STRING,
modelVfModules.get(entry.getKey()).getAsJsonObject().get("vfModuleModelName").getAsString(),
"True", null));
- properties.add("modelVersion", createSchemaProperty("Model Version", "string",
+ properties.add("modelVersion", createSchemaProperty("Model Version", STRING,
modelVfModules.get(entry.getKey()).getAsJsonObject().get("vfModuleModelVersion").getAsString(),
"True", null));
properties
.add("modelCustomizationId",
- createSchemaProperty("Customization ID", "string",
+ createSchemaProperty("Customization ID", STRING,
modelVfModules.get(entry.getKey()).getAsJsonObject()
.get("vfModuleModelCustomizationUUID").getAsString(), "True",
null));
- vfModuleOneOfSchema.add("properties", properties);
+ vfModuleOneOfSchema.add(PROPERTIES, properties);
vfModuleOneOfSchemaArray.add(vfModuleOneOfSchema);
}
return vfModuleOneOfSchemaArray;
@@ -213,9 +223,9 @@ public class OperationalPolicyRepresentationBuilder {
JsonObject workflows = controllerProperties.getAsJsonObject("workflows");
for (Entry<String, JsonElement> workflowsEntry : workflows.entrySet()) {
JsonObject obj = new JsonObject();
- obj.addProperty("title", workflowsEntry.getKey());
- obj.addProperty("type", "object");
- obj.add("properties", createPayloadProperty(workflowsEntry.getValue().getAsJsonObject(),
+ obj.addProperty(TITLE, workflowsEntry.getKey());
+ obj.addProperty(TYPE, "object");
+ obj.add(PROPERTIES, createPayloadProperty(workflowsEntry.getValue().getAsJsonObject(),
controllerProperties, workflowsEntry.getKey()));
schemaArray.add(obj);
}
@@ -228,21 +238,21 @@ public class OperationalPolicyRepresentationBuilder {
private static JsonObject createPayloadProperty(JsonObject workFlow,
JsonObject controllerProperties, String workFlowName) {
JsonObject payload = new JsonObject();
- payload.addProperty("title", "Payload");
- payload.addProperty("type", "object");
- payload.add("properties", createInputPropertiesForPayload(workFlow,
+ payload.addProperty(TITLE, "Payload");
+ payload.addProperty(TYPE, "object");
+ payload.add(PROPERTIES, createInputPropertiesForPayload(workFlow,
controllerProperties));
JsonObject properties = new JsonObject();
- properties.add("recipe", createRecipeForCdsWorkflow(workFlowName));
+ properties.add(RECIPE, createRecipeForCdsWorkflow(workFlowName));
properties.add("payload", payload);
return properties;
}
private static JsonObject createRecipeForCdsWorkflow(String workflow) {
JsonObject recipe = new JsonObject();
- recipe.addProperty("title", "recipe");
- recipe.addProperty("type", "string");
- recipe.addProperty("default", workflow);
+ recipe.addProperty(TITLE, RECIPE);
+ recipe.addProperty(TYPE, STRING);
+ recipe.addProperty(DEFAULT, workflow);
JsonObject options = new JsonObject();
options.addProperty("hidden", true);
recipe.add("options", options);
@@ -264,18 +274,18 @@ public class OperationalPolicyRepresentationBuilder {
JsonObject inputs = workFlow.getAsJsonObject("inputs");
JsonObject jsonObject = new JsonObject();
jsonObject.add("artifact_name", createSchemaProperty(
- "artifact name", "string", artifactName, "True", null));
+ "artifact name", STRING, artifactName, "True", null));
jsonObject.add("artifact_version", createSchemaProperty(
- "artifact version", "string", artifactVersion, "True", null));
+ "artifact version", STRING, artifactVersion, "True", null));
jsonObject.add("mode", createCdsInputProperty(
- "mode", "string", "async" ,null));
+ "mode", STRING, "async" ,null));
jsonObject.add("data", createDataProperty(inputs));
return jsonObject;
}
private static JsonObject createDataProperty(JsonObject inputs) {
JsonObject data = new JsonObject();
- data.addProperty("title", "data");
+ data.addProperty(TITLE, "data");
JsonObject dataObj = new JsonObject();
addDataFields(inputs, dataObj);
data.add(PROPERTIES, dataObj);
@@ -305,7 +315,7 @@ public class OperationalPolicyRepresentationBuilder {
String defaultValue,
JsonObject cdsProperty) {
JsonObject property = new JsonObject();
- property.addProperty("title", title);
+ property.addProperty(TITLE, title);
if (TYPE_LIST.equalsIgnoreCase(type)) {
property.addProperty(TYPE, "array");
@@ -315,14 +325,14 @@ public class OperationalPolicyRepresentationBuilder {
dataObject);
JsonObject listProperties = new JsonObject();
listProperties.add(PROPERTIES, dataObject);
- property.add("items", listProperties);
+ property.add(ITEMS, listProperties);
}
} else {
property.addProperty(TYPE, type);
}
if (defaultValue != null) {
- property.addProperty("default", defaultValue);
+ property.addProperty(DEFAULT, defaultValue);
}
return property;
}
diff --git a/src/main/resources/clds/camel/rest/clamp-api-v2.xml b/src/main/resources/clds/camel/rest/clamp-api-v2.xml
index 97768e403..86a64f665 100644
--- a/src/main/resources/clds/camel/rest/clamp-api-v2.xml
+++ b/src/main/resources/clds/camel/rest/clamp-api-v2.xml
@@ -157,7 +157,7 @@
<to
uri="bean:org.onap.clamp.loop.LoopController?method=updateOperationalPolicies(${header.loopName},${header.OperationalPoliciesArray})" />
<to
- uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLog('Operational and Guard policies UPDATED','INFO',${exchangeProperty[loopObject]})" />
+ uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLog('Operational policies UPDATED','INFO',${exchangeProperty[loopObject]})" />
<to
uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=endLog()" />
<doCatch>
@@ -536,29 +536,6 @@
<to uri="direct:delete-policy" />
<to uri="direct:create-policy" />
- <choice>
- <when>
- <simple>${exchangeProperty['policy'].isLegacy()} == true
- </simple>
- <log loggingLevel="INFO"
- message="Processing all GUARD policies (LEGACY) defined in loop ${exchangeProperty[loopObject].getName()}" />
- <split>
- <simple>${exchangeProperty[operationalPolicy].createGuardPolicyPayloads().entrySet()}
- </simple>
- <setProperty propertyName="guardPolicy">
- <simple>${body}</simple>
- </setProperty>
- <log loggingLevel="INFO"
- message="Processing Guard Policy: ${exchangeProperty[guardPolicy].getKey()}" />
-
- <setProperty propertyName="raiseHttpExceptionFlag">
- <simple resultType="java.lang.Boolean">false</simple>
- </setProperty>
- <to uri="direct:delete-guard-policy" />
- <to uri="direct:create-guard-policy" />
- </split>
- </when>
- </choice>
</split>
<delay>
@@ -638,27 +615,6 @@
<simple resultType="java.lang.Boolean">false</simple>
</setProperty>
<to uri="direct:delete-policy" />
- <choice>
- <when>
- <simple>${exchangeProperty['policy'].isLegacy()} == true
- </simple>
- <log loggingLevel="INFO"
- message="Deleting all GUARD policies (LEGACY) defined in loop ${exchangeProperty[loopObject].getName()}" />
- <split>
- <simple>${exchangeProperty[operationalPolicy].createGuardPolicyPayloads().entrySet()}
- </simple>
- <setProperty propertyName="guardPolicy">
- <simple>${body}</simple>
- </setProperty>
- <log loggingLevel="INFO"
- message="Deleting Guard Policy: ${exchangeProperty[guardPolicy].getKey()}" />
- <setProperty propertyName="raiseHttpExceptionFlag">
- <simple resultType="java.lang.Boolean">false</simple>
- </setProperty>
- <to uri="direct:delete-guard-policy" />
- </split>
- </when>
- </choice>
</split>
<to
uri="bean:org.onap.clamp.loop.LoopController?method=deleteLoop(${header.loopName})" />
@@ -763,8 +719,9 @@
<constant>500</constant>
</setHeader>
<setBody>
- <simple>ADD Operational policy request FAILED</simple>
+ <simple>ADD Operational policy request FAILED for loop: ${header.loopName}, ${exception.message}"</simple>
</setBody>
+
</doCatch>
</doTry>
</route>
diff --git a/src/main/resources/clds/camel/routes/loop-flows.xml b/src/main/resources/clds/camel/routes/loop-flows.xml
index 2f4d9c8cf..691656d81 100644
--- a/src/main/resources/clds/camel/routes/loop-flows.xml
+++ b/src/main/resources/clds/camel/routes/loop-flows.xml
@@ -87,32 +87,8 @@
<constant>null</constant>
</setBody>
<log loggingLevel="INFO"
- message="Processing Micro Service Policy: ${exchangeProperty[policyName]} of type ${exchangeProperty[policyType]}" />
+ message="Processing Operational Policy: ${exchangeProperty[policyName]} of type ${exchangeProperty[policyType]}" />
<to uri="direct:verify-one-policy" />
- <log loggingLevel="INFO"
- message="Processing all GUARD policies defined in loop ${exchangeProperty[loopObject].getName()}" />
- <split>
- <simple>${exchangeProperty[operationalPolicy].createGuardPolicyPayloads().entrySet()}
- </simple>
- <setProperty propertyName="policyName">
- <simple>${body.getKey()}</simple>
- </setProperty>
- <setProperty propertyName="policyType">
- <simple>onap.policies.controlloop.Guard</simple>
- </setProperty>
- <setProperty propertyName="policyTypeVersion">
- <simple>1.0.0</simple>
- </setProperty>
- <setProperty propertyName="policyVersion">
- <simple>1</simple>
- </setProperty>
- <setBody>
- <constant>null</constant>
- </setBody>
- <log loggingLevel="INFO"
- message="Processing Guard Policy: ${exchangeProperty[policyName]} of type ${exchangeProperty[policyType]}" />
- <to uri="direct:verify-one-policy" />
- </split>
</split>
<setProperty propertyName="policyState">
<simple> ${exchangeProperty[policyComponent].getState()}
diff --git a/src/main/resources/clds/camel/routes/policy-flows.xml b/src/main/resources/clds/camel/routes/policy-flows.xml
index 1731308ee..f597bdc08 100644
--- a/src/main/resources/clds/camel/routes/policy-flows.xml
+++ b/src/main/resources/clds/camel/routes/policy-flows.xml
@@ -313,101 +313,6 @@
</doFinally>
</doTry>
</route>
- <route id="create-guard-policy">
- <from uri="direct:create-guard-policy"/>
- <doTry>
- <log loggingLevel="INFO"
- message="Creating Guard Policy: ${exchangeProperty[guardPolicy].getKey()}"/>
- <to
- uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('Policy', 'Create Guard Policy')"/>
- <setBody>
- <simple>${exchangeProperty[guardPolicy].getValue()}
- </simple>
- </setBody>
- <setHeader headerName="CamelHttpMethod">
- <constant>POST</constant>
- </setHeader>
- <setHeader headerName="Content-Type">
- <constant>application/json</constant>
- </setHeader>
- <setHeader headerName="X-ONAP-RequestID">
- <simple>${exchangeProperty[X-ONAP-RequestID]}
- </simple>
- </setHeader>
- <setHeader headerName="X-ONAP-InvocationID">
- <simple>${exchangeProperty[X-ONAP-InvocationID]}
- </simple>
- </setHeader>
- <setHeader headerName="X-ONAP-PartnerName">
- <simple>${exchangeProperty[X-ONAP-PartnerName]}
- </simple>
- </setHeader>
- <log loggingLevel="INFO"
- message="Endpoint to create guard policy: {{clamp.config.policy.api.url}}/policy/api/v1/policytypes/onap.policies.controlloop.Guard/versions/1.0.0/policies"></log>
- <toD
- uri="{{clamp.config.policy.api.url}}/policy/api/v1/policytypes/onap.policies.controlloop.Guard/versions/1.0.0/policies?bridgeEndpoint=true&amp;useSystemProperties=true&amp;mapHttpMessageHeaders=false&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;authUsername={{clamp.config.policy.api.userName}}&amp;authPassword={{clamp.config.policy.api.password}}&amp;connectionTimeToLive=5000&amp;httpClient.connectTimeout=10000&amp;httpClient.socketTimeout=20000&amp;authenticationPreemptive=true&amp;connectionClose=true"/>
- <doFinally>
- <to uri="direct:reset-raise-http-exception-flag"/>
- <to
- uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()"/>
- <setProperty propertyName="logMessage">
- <simple>${exchangeProperty[guardPolicy].getKey()} creation status
- </simple>
- </setProperty>
- <setProperty propertyName="logComponent">
- <simple>POLICY</simple>
- </setProperty>
- <to uri="direct:dump-loop-log-http-response"/>
- </doFinally>
- </doTry>
- </route>
-
- <route id="delete-guard-policy">
- <from uri="direct:delete-guard-policy"/>
- <doTry>
- <log loggingLevel="INFO"
- message="Deleting Guard Policy: ${exchangeProperty[guardPolicy].getKey()}"/>
- <to
- uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('Policy', 'Delete Guard Policy')"/>
- <setBody>
- <constant>null</constant>
- </setBody>
- <setHeader headerName="CamelHttpMethod">
- <constant>DELETE</constant>
- </setHeader>
- <setHeader headerName="X-ONAP-RequestID">
- <simple>${exchangeProperty[X-ONAP-RequestID]}
- </simple>
- </setHeader>
- <setHeader headerName="X-ONAP-InvocationID">
- <simple>${exchangeProperty[X-ONAP-InvocationID]}
- </simple>
- </setHeader>
- <setHeader headerName="X-ONAP-PartnerName">
- <simple>${exchangeProperty[X-ONAP-PartnerName]}
- </simple>
- </setHeader>
- <log loggingLevel="INFO"
- message="Endpoint to delete guard policy: {{clamp.config.policy.api.url}}/policy/api/v1/policytypes/onap.policies.controlloop.Guard/versions/1.0.0/policies/${exchangeProperty[guardPolicy].getKey()}/versions/1"></log>
- <toD
- uri="{{clamp.config.policy.api.url}}/policy/api/v1/policytypes/onap.policies.controlloop.Guard/versions/1.0.0/policies/${exchangeProperty[guardPolicy].getKey()}/versions/1?bridgeEndpoint=true&amp;useSystemProperties=true&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;deleteWithBody=false&amp;mapHttpMessageBody=false&amp;mapHttpMessageFormUrlEncodedBody=false&amp;authUsername={{clamp.config.policy.api.userName}}&amp;authPassword={{clamp.config.policy.api.password}}&amp;connectionTimeToLive=5000&amp;httpClient.connectTimeout=10000&amp;httpClient.socketTimeout=20000&amp;authenticationPreemptive=true&amp;connectionClose=true"/>
-
- <doFinally>
- <to uri="direct:reset-raise-http-exception-flag"/>
- <to
- uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()"/>
- <setProperty propertyName="logMessage">
- <simple>${exchangeProperty[guardPolicy].getKey()} removal status
- </simple>
- </setProperty>
- <setProperty propertyName="logComponent">
- <simple>POLICY</simple>
- </setProperty>
- <to uri="direct:dump-loop-log-http-response"/>
- </doFinally>
- </doTry>
- </route>
-
<route id="add-all-to-active-pdp-group">
<from uri="direct:add-all-to-active-pdp-group"/>
<doTry>
diff --git a/src/main/resources/clds/json-schema/operational_policies/operational_policy.json b/src/main/resources/clds/json-schema/operational_policies/operational_policy.json
index 7214b022c..973028316 100644
--- a/src/main/resources/clds/json-schema/operational_policies/operational_policy.json
+++ b/src/main/resources/clds/json-schema/operational_policies/operational_policy.json
@@ -2,8 +2,7 @@
"type": "object",
"title": "Configuration",
"required": [
- "operational_policy",
- "guard_policies"
+ "operational_policy"
],
"properties": {
"operational_policy": {
@@ -315,155 +314,6 @@
}
}
}
- },
- "guard_policies": {
- "type": "array",
- "format": "tabs-top",
- "title": "Associated Guard policies",
- "items": {
- "headerTemplate": "{{self.policy-id}} - {{self.content.recipe}}",
- "anyOf": [
- {
- "title": "Guard MinMax",
- "type": "object",
- "properties": {
- "policy-id": {
- "type": "string",
- "default": "guard.minmax.new",
- "pattern": "^(guard.minmax\\..*)$"
- },
- "content": {
- "properties": {
- "actor": {
- "type": "string",
- "enum": [
- "APPC",
- "SO",
- "VFC",
- "SDNC",
- "SDNR"
- ]
- },
- "recipe": {
- "type": "string",
- "enum": [
- "Restart",
- "Rebuild",
- "Migrate",
- "Health-Check",
- "ModifyConfig",
- "VF Module Create",
- "VF Module Delete",
- "Reroute"
- ]
- },
- "targets": {
- "type": "string",
- "default": ".*"
- },
- "clname": {
- "type": "string",
- "template": "{{loopName}}",
- "watch": {
- "loopName": "operational_policy.controlLoop.controlLoopName"
- }
- },
- "guardActiveStart": {
- "type": "string",
- "default": "00:00:00Z"
- },
- "guardActiveEnd": {
- "type": "string",
- "default": "10:00:00Z"
- },
- "min": {
- "type": "string",
- "default": "0"
- },
- "max": {
- "type": "string",
- "default": "1"
- }
- }
- }
- }
- },
- {
- "title": "Guard Frequency",
- "type": "object",
- "properties": {
- "policy-id": {
- "type": "string",
- "default": "guard.frequency.new",
- "pattern": "^(guard.frequency\\..*)$"
- },
- "content": {
- "properties": {
- "actor": {
- "type": "string",
- "enum": [
- "APPC",
- "SO",
- "VFC",
- "SDNC",
- "SDNR"
- ]
- },
- "recipe": {
- "type": "string",
- "enum": [
- "Restart",
- "Rebuild",
- "Migrate",
- "Health-Check",
- "ModifyConfig",
- "VF Module Create",
- "VF Module Delete",
- "Reroute"
- ]
- },
- "targets": {
- "type": "string",
- "default": ".*"
- },
- "clname": {
- "type": "string",
- "template": "{{loopName}}",
- "watch": {
- "loopName": "operational_policy.controlLoop.controlLoopName"
- }
- },
- "guardActiveStart": {
- "type": "string",
- "default": "00:00:00Z"
- },
- "guardActiveEnd": {
- "type": "string",
- "default": "10:00:00Z"
- },
- "limit": {
- "type": "string"
- },
- "timeWindow": {
- "type": "string"
- },
- "timeUnits": {
- "type": "string",
- "enum": [
- "minute",
- "hour",
- "day",
- "week",
- "month",
- "year"
- ]
- }
- }
- }
- }
- }
- ]
- }
}
}
}
diff --git a/src/test/java/org/onap/clamp/loop/LoopControllerTestItCase.java b/src/test/java/org/onap/clamp/loop/LoopControllerTestItCase.java
index 4d51bb27c..26db6b013 100644
--- a/src/test/java/org/onap/clamp/loop/LoopControllerTestItCase.java
+++ b/src/test/java/org/onap/clamp/loop/LoopControllerTestItCase.java
@@ -94,7 +94,7 @@ public class LoopControllerTestItCase {
public void testUpdateOperationalPolicies() {
saveTestLoopToDb();
String policy = "[{\"name\":\"OPERATIONAL_CLholmes31_v1_0_vFW_PG_T10_k8s-holmes-rules\","
- + "\"configurationsJson\":{\"guard_policies\":{},"
+ + "\"configurationsJson\":{"
+ "\"operational_policy\":{\"controlLoop\":{\"trigger_policy\":\"unique-policy-id-1-modifyConfig\","
+ "\"timeout\":\"3600\",\"abatement\":\"false\","
+ "\"controlLoopName\":\"LOOP_CLholmes31_v1_0_vFW_PG_T10_k8s-holmes-rules\"},"
diff --git a/src/test/java/org/onap/clamp/policy/microservice/OperationalPolicyPayloadTest.java b/src/test/java/org/onap/clamp/policy/microservice/OperationalPolicyPayloadTest.java
index 58a432d34..cef82e501 100644
--- a/src/test/java/org/onap/clamp/policy/microservice/OperationalPolicyPayloadTest.java
+++ b/src/test/java/org/onap/clamp/policy/microservice/OperationalPolicyPayloadTest.java
@@ -59,30 +59,4 @@ public class OperationalPolicyPayloadTest {
assertThat(LegacyOperationalPolicy.createPolicyPayloadYamlLegacy(jsonConfig.get("operational_policy")))
.isEqualTo(ResourceFileUtil.getResourceAsString("tosca/operational-policy-payload-legacy.yaml"));
}
-
- @Test
- public void testGuardPolicyEmptyPayloadConstruction() throws IOException {
- JsonObject jsonConfig = new GsonBuilder().create().fromJson(
- ResourceFileUtil.getResourceAsString("tosca/operational-policy-no-guard-properties.json"),
- JsonObject.class);
- OperationalPolicy policy = new OperationalPolicy("testPolicy", jsonConfig, null, null, null, null, null);
- Map<String, String> guardsMap = policy.createGuardPolicyPayloads();
- assertThat(guardsMap).isEmpty();
- assertThat(guardsMap.entrySet()).isEmpty();
- }
-
- @Test
- public void testGuardPolicyPayloadConstruction() throws IOException {
- JsonObject jsonConfig = new GsonBuilder().create().fromJson(
- ResourceFileUtil.getResourceAsString("tosca/operational-policy-properties.json"), JsonObject.class);
- OperationalPolicy policy = new OperationalPolicy("testPolicy", jsonConfig, null, null, null, null, null);
-
- Map<String, String> guardsMap = policy.createGuardPolicyPayloads();
-
- JSONAssert.assertEquals(ResourceFileUtil.getResourceAsString("tosca/guard1-policy-payload.json"),
- guardsMap.get("guard.minmax.new"), false);
-
- JSONAssert.assertEquals(ResourceFileUtil.getResourceAsString("tosca/guard2-policy-payload.json"),
- guardsMap.get("guard.frequency.new"), false);
- }
}
diff --git a/src/test/resources/tosca/operational-policy-cds-payload-with-list.json b/src/test/resources/tosca/operational-policy-cds-payload-with-list.json
index 81f21d07b..190636c4b 100644
--- a/src/test/resources/tosca/operational-policy-cds-payload-with-list.json
+++ b/src/test/resources/tosca/operational-policy-cds-payload-with-list.json
@@ -2,8 +2,7 @@
"type": "object",
"title": "Configuration",
"required": [
- "operational_policy",
- "guard_policies"
+ "operational_policy"
],
"properties": {
"operational_policy": {
@@ -586,155 +585,6 @@
}
}
}
- },
- "guard_policies": {
- "type": "array",
- "format": "tabs-top",
- "title": "Associated Guard policies",
- "items": {
- "headerTemplate": "{{self.policy-id}} - {{self.content.recipe}}",
- "anyOf": [
- {
- "title": "Guard MinMax",
- "type": "object",
- "properties": {
- "policy-id": {
- "type": "string",
- "default": "guard.minmax.new",
- "pattern": "^(guard.minmax\\..*)$"
- },
- "content": {
- "properties": {
- "actor": {
- "type": "string",
- "enum": [
- "APPC",
- "SO",
- "VFC",
- "SDNC",
- "SDNR"
- ]
- },
- "recipe": {
- "type": "string",
- "enum": [
- "Restart",
- "Rebuild",
- "Migrate",
- "Health-Check",
- "ModifyConfig",
- "VF Module Create",
- "VF Module Delete",
- "Reroute"
- ]
- },
- "targets": {
- "type": "string",
- "default": ".*"
- },
- "clname": {
- "type": "string",
- "template": "{{loopName}}",
- "watch": {
- "loopName": "operational_policy.controlLoop.controlLoopName"
- }
- },
- "guardActiveStart": {
- "type": "string",
- "default": "00:00:00Z"
- },
- "guardActiveEnd": {
- "type": "string",
- "default": "10:00:00Z"
- },
- "min": {
- "type": "string",
- "default": "0"
- },
- "max": {
- "type": "string",
- "default": "1"
- }
- }
- }
- }
- },
- {
- "title": "Guard Frequency",
- "type": "object",
- "properties": {
- "policy-id": {
- "type": "string",
- "default": "guard.frequency.new",
- "pattern": "^(guard.frequency\\..*)$"
- },
- "content": {
- "properties": {
- "actor": {
- "type": "string",
- "enum": [
- "APPC",
- "SO",
- "VFC",
- "SDNC",
- "SDNR"
- ]
- },
- "recipe": {
- "type": "string",
- "enum": [
- "Restart",
- "Rebuild",
- "Migrate",
- "Health-Check",
- "ModifyConfig",
- "VF Module Create",
- "VF Module Delete",
- "Reroute"
- ]
- },
- "targets": {
- "type": "string",
- "default": ".*"
- },
- "clname": {
- "type": "string",
- "template": "{{loopName}}",
- "watch": {
- "loopName": "operational_policy.controlLoop.controlLoopName"
- }
- },
- "guardActiveStart": {
- "type": "string",
- "default": "00:00:00Z"
- },
- "guardActiveEnd": {
- "type": "string",
- "default": "10:00:00Z"
- },
- "limit": {
- "type": "string"
- },
- "timeWindow": {
- "type": "string"
- },
- "timeUnits": {
- "type": "string",
- "enum": [
- "minute",
- "hour",
- "day",
- "week",
- "month",
- "year"
- ]
- }
- }
- }
- }
- }
- ]
- }
}
}
} \ No newline at end of file
diff --git a/src/test/resources/tosca/operational-policy-json-schema.json b/src/test/resources/tosca/operational-policy-json-schema.json
index f6c180aae..32adce9bd 100644
--- a/src/test/resources/tosca/operational-policy-json-schema.json
+++ b/src/test/resources/tosca/operational-policy-json-schema.json
@@ -2,8 +2,7 @@
"type": "object",
"title": "Configuration",
"required": [
- "operational_policy",
- "guard_policies"
+ "operational_policy"
],
"properties": {
"operational_policy": {
@@ -944,155 +943,6 @@
}
}
}
- },
- "guard_policies": {
- "type": "array",
- "format": "tabs-top",
- "title": "Associated Guard policies",
- "items": {
- "headerTemplate": "{{self.policy-id}} - {{self.content.recipe}}",
- "anyOf": [
- {
- "title": "Guard MinMax",
- "type": "object",
- "properties": {
- "policy-id": {
- "type": "string",
- "default": "guard.minmax.new",
- "pattern": "^(guard.minmax\\..*)$"
- },
- "content": {
- "properties": {
- "actor": {
- "type": "string",
- "enum": [
- "APPC",
- "SO",
- "VFC",
- "SDNC",
- "SDNR"
- ]
- },
- "recipe": {
- "type": "string",
- "enum": [
- "Restart",
- "Rebuild",
- "Migrate",
- "Health-Check",
- "ModifyConfig",
- "VF Module Create",
- "VF Module Delete",
- "Reroute"
- ]
- },
- "targets": {
- "type": "string",
- "default": ".*"
- },
- "clname": {
- "type": "string",
- "template": "{{loopName}}",
- "watch": {
- "loopName": "operational_policy.controlLoop.controlLoopName"
- }
- },
- "guardActiveStart": {
- "type": "string",
- "default": "00:00:00Z"
- },
- "guardActiveEnd": {
- "type": "string",
- "default": "10:00:00Z"
- },
- "min": {
- "type": "string",
- "default": "0"
- },
- "max": {
- "type": "string",
- "default": "1"
- }
- }
- }
- }
- },
- {
- "title": "Guard Frequency",
- "type": "object",
- "properties": {
- "policy-id": {
- "type": "string",
- "default": "guard.frequency.new",
- "pattern": "^(guard.frequency\\..*)$"
- },
- "content": {
- "properties": {
- "actor": {
- "type": "string",
- "enum": [
- "APPC",
- "SO",
- "VFC",
- "SDNC",
- "SDNR"
- ]
- },
- "recipe": {
- "type": "string",
- "enum": [
- "Restart",
- "Rebuild",
- "Migrate",
- "Health-Check",
- "ModifyConfig",
- "VF Module Create",
- "VF Module Delete",
- "Reroute"
- ]
- },
- "targets": {
- "type": "string",
- "default": ".*"
- },
- "clname": {
- "type": "string",
- "template": "{{loopName}}",
- "watch": {
- "loopName": "operational_policy.controlLoop.controlLoopName"
- }
- },
- "guardActiveStart": {
- "type": "string",
- "default": "00:00:00Z"
- },
- "guardActiveEnd": {
- "type": "string",
- "default": "10:00:00Z"
- },
- "limit": {
- "type": "string"
- },
- "timeWindow": {
- "type": "string"
- },
- "timeUnits": {
- "type": "string",
- "enum": [
- "minute",
- "hour",
- "day",
- "week",
- "month",
- "year"
- ]
- }
- }
- }
- }
- }
- ]
- }
}
}
} \ No newline at end of file
diff --git a/src/test/resources/tosca/operational-policy-properties.json b/src/test/resources/tosca/operational-policy-properties.json
index aaf9dc378..a38334b55 100644
--- a/src/test/resources/tosca/operational-policy-properties.json
+++ b/src/test/resources/tosca/operational-policy-properties.json
@@ -128,34 +128,5 @@
}
}
]
- },
- "guard_policies": [
- {
- "policy-id": "guard.minmax.new",
- "content": {
- "actor": "APPC",
- "recipe": "Restart",
- "targets": ".*",
- "clname": "LOOP_ASJOy_v1_0_ResourceInstanceName1_tca",
- "guardActiveStart": "00:00:00Z",
- "guardActiveEnd": "10:00:00Z",
- "min": "0",
- "max": "1"
- }
- },
- {
- "policy-id": "guard.frequency.new",
- "content": {
- "actor": "APPC",
- "recipe": "Rebuild",
- "targets": ".*",
- "clname": "LOOP_ASJOy_v1_0_ResourceInstanceName1_tca",
- "guardActiveStart": "00:00:00Z",
- "guardActiveEnd": "10:00:00Z",
- "limit": "1",
- "timeWindow": "2",
- "timeUnits": "minute"
- }
- }
- ]
+ }
}
diff --git a/src/test/resources/tosca/pdp-group-policy-payload.json b/src/test/resources/tosca/pdp-group-policy-payload.json
index dce740fcd..17535ecbb 100644
--- a/src/test/resources/tosca/pdp-group-policy-payload.json
+++ b/src/test/resources/tosca/pdp-group-policy-payload.json
@@ -27,10 +27,6 @@
"version": "1.0.0"
},
{
- "name": "guard1",
- "version": "1.0.0"
- },
- {
"name": "opPolicy",
"version": "1.0.0"
}