aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorsebdet <sebastien.determe@intl.att.com>2021-01-20 23:02:17 +0100
committerS�bastien Determe <sebastien.determe@intl.att.com>2021-01-22 08:44:46 +0000
commit078c34d0c2e439d8a148a2cd4d7545c6b7f56acb (patch)
tree3d411614b9af6b738e4289d686dd050bd61f7b1e /src
parentdabd6db614abf78508add7cdbef2120120ce3d9b (diff)
First integration of Policy model PdpGroups
Replacement of the PdpGroups clamp code by the one from policy model dependency. Issue-ID: POLICY-2924 Signed-off-by: sebdet <sebastien.determe@intl.att.com> Change-Id: I12c77704bba1c769dc2f307d91b759a3b645013f Signed-off-by: sebdet <sebastien.determe@intl.att.com>
Diffstat (limited to 'src')
-rw-r--r--src/main/docker/frontend/nginx/default.conf2
-rw-r--r--src/main/java/org/onap/policy/clamp/clds/client/PolicyEngineServices.java20
-rw-r--r--src/main/java/org/onap/policy/clamp/loop/template/PolicyModelsService.java58
-rw-r--r--src/main/java/org/onap/policy/clamp/policy/pdpgroup/PdpGroup.java92
-rw-r--r--src/main/java/org/onap/policy/clamp/policy/pdpgroup/PdpGroupsAnalyzer.java94
-rw-r--r--src/main/java/org/onap/policy/clamp/policy/pdpgroup/PdpSubgroup.java56
-rw-r--r--src/main/java/org/onap/policy/clamp/policy/pdpgroup/PolicyModelKey.java125
-rw-r--r--src/main/resources/clds/camel/routes/policy-flows.xml38
-rw-r--r--src/test/java/org/onap/policy/clamp/loop/PolicyModelServiceItCase.java58
-rw-r--r--src/test/java/org/onap/policy/clamp/policy/pdpgroup/PdpGroupAnalyzerTest.java130
-rw-r--r--src/test/java/org/onap/policy/clamp/policy/pdpgroup/PdpGroupTest.java86
-rw-r--r--src/test/java/org/onap/policy/clamp/policy/pdpgroup/PolicyModelKeyTest.java55
-rw-r--r--src/test/resources/http-cache/example/policy/api/v1/policies/.file2
13 files changed, 322 insertions, 494 deletions
diff --git a/src/main/docker/frontend/nginx/default.conf b/src/main/docker/frontend/nginx/default.conf
index b15429c74..570806034 100644
--- a/src/main/docker/frontend/nginx/default.conf
+++ b/src/main/docker/frontend/nginx/default.conf
@@ -6,7 +6,7 @@ server {
ssl_certificate_key /etc/ssl/clamp.key;
ssl_verify_client optional_no_ca;
location /restservices/clds/ {
- proxy_pass https://clamp-backend:8443;
+ proxy_pass https://policy-clamp-backend:8443;
proxy_set_header X-SSL-Cert $ssl_client_escaped_cert;
}
diff --git a/src/main/java/org/onap/policy/clamp/clds/client/PolicyEngineServices.java b/src/main/java/org/onap/policy/clamp/clds/client/PolicyEngineServices.java
index bc6a68286..46c55ea45 100644
--- a/src/main/java/org/onap/policy/clamp/clds/client/PolicyEngineServices.java
+++ b/src/main/java/org/onap/policy/clamp/clds/client/PolicyEngineServices.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP CLAMP
* ================================================================================
- * Copyright (C) 2020 AT&T Intellectual Property. All rights
+ * Copyright (C) 2020-2021 AT&T Intellectual Property. All rights
* reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -39,7 +39,8 @@ import org.onap.policy.clamp.clds.sdc.controller.installer.BlueprintMicroService
import org.onap.policy.clamp.clds.util.JsonUtils;
import org.onap.policy.clamp.loop.template.PolicyModel;
import org.onap.policy.clamp.loop.template.PolicyModelsService;
-import org.onap.policy.clamp.policy.pdpgroup.PdpGroup;
+import org.onap.policy.models.pdp.concepts.PdpGroup;
+import org.onap.policy.models.pdp.concepts.PdpGroups;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.yaml.snakeyaml.DumperOptions;
@@ -50,6 +51,8 @@ import org.yaml.snakeyaml.Yaml;
* The class implements the communication with the Policy Engine to retrieve
* policy models (tosca). It mainly delegates the physical calls to Camel
* engine.
+ * It supports a retry mechanism for these calls, configurations can be specified in the
+ * application.properties "policy.retry.interval"(default 0) and "policy.retry.limit"(default 1).
*/
@Component
public class PolicyEngineServices {
@@ -192,18 +195,7 @@ public class PolicyEngineServices {
return;
}
- JsonObject jsonObj = JsonUtils.GSON.fromJson(responseBody, JsonObject.class);
-
- List<PdpGroup> pdpGroupList = new LinkedList<>();
- JsonArray itemsArray = (JsonArray) jsonObj.get("groups");
-
- for (com.google.gson.JsonElement jsonElement : itemsArray) {
- JsonObject item = (JsonObject) jsonElement;
- PdpGroup pdpGroup = JsonUtils.GSON.fromJson(item.toString(), PdpGroup.class);
- pdpGroupList.add(pdpGroup);
- }
-
- policyModelsService.updatePdpGroupInfo(pdpGroupList);
+ policyModelsService.updatePdpGroupInfo(JsonUtils.GSON.fromJson(responseBody, PdpGroups.class));
}
private String callCamelRoute(Exchange exchange, String camelFlow, String logMsg) {
diff --git a/src/main/java/org/onap/policy/clamp/loop/template/PolicyModelsService.java b/src/main/java/org/onap/policy/clamp/loop/template/PolicyModelsService.java
index 8670ab73e..f0830360e 100644
--- a/src/main/java/org/onap/policy/clamp/loop/template/PolicyModelsService.java
+++ b/src/main/java/org/onap/policy/clamp/loop/template/PolicyModelsService.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP CLAMP
* ================================================================================
- * Copyright (C) 2020 AT&T Intellectual Property. All rights
+ * Copyright (C) 2020-2021 AT&T Intellectual Property. All rights
* reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -30,13 +30,18 @@ import java.util.Collections;
import java.util.List;
import org.onap.policy.clamp.clds.tosca.ToscaSchemaConstants;
import org.onap.policy.clamp.clds.tosca.ToscaYamlToJsonConvertor;
-import org.onap.policy.clamp.policy.pdpgroup.PdpGroup;
+import org.onap.policy.clamp.policy.pdpgroup.PdpGroupsAnalyzer;
import org.onap.policy.clamp.util.SemanticVersioning;
+import org.onap.policy.models.pdp.concepts.PdpGroup;
+import org.onap.policy.models.pdp.concepts.PdpGroups;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
+/**
+ * This class contains the methods to access the policyModel object in db.
+ */
@Service
public class PolicyModelsService {
private final PolicyModelsRepository policyModelsRepository;
@@ -44,7 +49,7 @@ public class PolicyModelsService {
@Autowired
public PolicyModelsService(PolicyModelsRepository policyModelrepo,
- ToscaYamlToJsonConvertor convertor) {
+ ToscaYamlToJsonConvertor convertor) {
policyModelsRepository = policyModelrepo;
toscaYamlToJsonConvertor = convertor;
}
@@ -78,31 +83,31 @@ public class PolicyModelsService {
public PolicyModel createNewPolicyModelFromTosca(String policyModelTosca) {
JsonObject jsonObject = toscaYamlToJsonConvertor.validateAndConvertToJson(policyModelTosca);
String policyModelTypeFromTosca = toscaYamlToJsonConvertor.getValueFromMetadata(jsonObject,
- ToscaSchemaConstants.METADATA_POLICY_MODEL_TYPE);
+ ToscaSchemaConstants.METADATA_POLICY_MODEL_TYPE);
Iterable<PolicyModel> models = getAllPolicyModelsByType(policyModelTypeFromTosca);
Collections.sort((List<PolicyModel>) models);
PolicyModel newPolicyModel = new PolicyModel(policyModelTypeFromTosca, policyModelTosca,
- SemanticVersioning.incrementMajorVersion(((ArrayList) models).isEmpty() ? null
- : ((ArrayList<PolicyModel>) models).get(0).getVersion()),
- toscaYamlToJsonConvertor.getValueFromMetadata(jsonObject,
- ToscaSchemaConstants.METADATA_ACRONYM));
+ SemanticVersioning.incrementMajorVersion(((ArrayList) models).isEmpty() ? null
+ : ((ArrayList<PolicyModel>) models).get(0).getVersion()),
+ toscaYamlToJsonConvertor.getValueFromMetadata(jsonObject,
+ ToscaSchemaConstants.METADATA_ACRONYM));
return saveOrUpdatePolicyModel(newPolicyModel);
}
/**
* Update an existing Tosca Policy Model.
*
- * @param policyModelType The policy Model type in Tosca yaml
+ * @param policyModelType The policy Model type in Tosca yaml
* @param policyModelVersion The policy Version to update
- * @param policyModelTosca The Policy Model tosca
+ * @param policyModelTosca The Policy Model tosca
* @return The Policy Model updated
*/
public PolicyModel updatePolicyModelTosca(String policyModelType, String policyModelVersion,
- String policyModelTosca) {
+ String policyModelTosca) {
JsonObject jsonObject = toscaYamlToJsonConvertor.validateAndConvertToJson(policyModelTosca);
PolicyModel thePolicyModel = getPolicyModel(policyModelType, policyModelVersion);
thePolicyModel.setPolicyAcronym(toscaYamlToJsonConvertor.getValueFromMetadata(jsonObject,
- ToscaSchemaConstants.METADATA_ACRONYM));
+ ToscaSchemaConstants.METADATA_ACRONYM));
thePolicyModel.setPolicyModelTosca(policyModelTosca);
return saveOrUpdatePolicyModel(thePolicyModel);
}
@@ -126,13 +131,13 @@ public class PolicyModelsService {
/**
* Retrieves the Tosca model Yaml string.
*
- * @param type The Policy Model Type
+ * @param type The Policy Model Type
* @param version The policy model version
* @return The Tosca model Yaml string
*/
public String getPolicyModelTosca(String type, String version) {
return policyModelsRepository.findById(new PolicyModelId(type, version))
- .orElse(new PolicyModel()).getPolicyModelTosca();
+ .orElse(new PolicyModel()).getPolicyModelTosca();
}
/**
@@ -148,26 +153,11 @@ public class PolicyModelsService {
/**
* Update the Pdp Group info in Policy Model DB.
*
- * @param pdpGroupList The list of Pdp Group info received from Policy Engine
+ * @param pdpGroups The list of Pdp Group info received from Policy Engine
*/
- public void updatePdpGroupInfo(List<PdpGroup> pdpGroupList) {
- List<PolicyModel> policyModelList = policyModelsRepository.findAll();
- for (PolicyModel policyModel : policyModelList) {
- JsonArray supportedPdpGroups = new JsonArray();
- for (PdpGroup pdpGroup : pdpGroupList) {
- JsonObject supportedPdpGroup = pdpGroup.getSupportedSubgroups(
- policyModel.getPolicyModelType(), policyModel.getVersion());
- if (supportedPdpGroup != null) {
- supportedPdpGroups.add(supportedPdpGroup);
- }
- }
-
- if (supportedPdpGroups.size() > 0) {
- JsonObject supportedPdpJson = new JsonObject();
- supportedPdpJson.add("supportedPdpGroups", supportedPdpGroups);
- policyModel.setPolicyPdpGroup(supportedPdpJson);
- policyModelsRepository.saveAndFlush(policyModel);
- }
- }
+ public void updatePdpGroupInfo(PdpGroups pdpGroups) {
+ List<PolicyModel> policyModelsList = policyModelsRepository.findAll();
+ PdpGroupsAnalyzer.updatePdpGroup(policyModelsList, pdpGroups);
+ this.policyModelsRepository.saveAll(policyModelsList);
}
}
diff --git a/src/main/java/org/onap/policy/clamp/policy/pdpgroup/PdpGroup.java b/src/main/java/org/onap/policy/clamp/policy/pdpgroup/PdpGroup.java
deleted file mode 100644
index 9cbeec109..000000000
--- a/src/main/java/org/onap/policy/clamp/policy/pdpgroup/PdpGroup.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP CLAMP
- * ================================================================================
- * Copyright (C) 2020 AT&T Intellectual Property. All rights
- * reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END============================================
- * ===================================================================
- *
- */
-
-package org.onap.policy.clamp.policy.pdpgroup;
-
-import com.google.gson.JsonArray;
-import com.google.gson.JsonObject;
-import com.google.gson.annotations.Expose;
-import java.util.List;
-
-/**
- * This class maps the get Pdp Group response to a nice pojo.
- */
-public class PdpGroup {
-
- @Expose
- private String name;
-
- @Expose
- private String pdpGroupState;
-
- @Expose
- private List<PdpSubgroup> pdpSubgroups;
-
- public String getName() {
- return name;
- }
-
- public void setName(String name) {
- this.name = name;
- }
-
- public String getPdpGroupState() {
- return pdpGroupState;
- }
-
- public void setPdpGroupState(String pdpGroupState) {
- this.pdpGroupState = pdpGroupState;
- }
-
- public List<PdpSubgroup> getPdpSubgroups() {
- return pdpSubgroups;
- }
-
- public void setPdpSubgroups(List<PdpSubgroup> pdpSubgroups) {
- this.pdpSubgroups = pdpSubgroups;
- }
-
- /**
- * Get supported subGroups based on the defined policy type and version.
- * @param policyType The policy type
- * @param version The version
- * @return The supported subGroup list in Json format
- */
- public JsonObject getSupportedSubgroups(String policyType, String version) {
- if (!pdpGroupState.equalsIgnoreCase("ACTIVE")) {
- return null;
- }
- JsonArray supportedSubgroups = new JsonArray();
- for (PdpSubgroup subGroup : pdpSubgroups) {
- if (subGroup.getSupportedPolicyTypes().contains(new PolicyModelKey(policyType, version))) {
- supportedSubgroups.add(subGroup.getPdpType());
- }
- }
- if (supportedSubgroups.size() > 0) {
- JsonObject supportedPdpGroup = new JsonObject();
- supportedPdpGroup.add(this.name, supportedSubgroups);
- return supportedPdpGroup;
- }
- return null;
- }
-}
diff --git a/src/main/java/org/onap/policy/clamp/policy/pdpgroup/PdpGroupsAnalyzer.java b/src/main/java/org/onap/policy/clamp/policy/pdpgroup/PdpGroupsAnalyzer.java
new file mode 100644
index 000000000..51cdb149e
--- /dev/null
+++ b/src/main/java/org/onap/policy/clamp/policy/pdpgroup/PdpGroupsAnalyzer.java
@@ -0,0 +1,94 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP CLAMP
+ * ================================================================================
+ * Copyright (C) 2021 AT&T Intellectual Property. All rights
+ * reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END============================================
+ * ===================================================================
+ *
+ */
+
+package org.onap.policy.clamp.policy.pdpgroup;
+
+import com.google.gson.JsonArray;
+import com.google.gson.JsonObject;
+import java.util.List;
+import java.util.Objects;
+import java.util.stream.Collectors;
+import org.onap.policy.clamp.loop.template.PolicyModel;
+import org.onap.policy.models.pdp.concepts.PdpGroup;
+import org.onap.policy.models.pdp.concepts.PdpGroups;
+import org.onap.policy.models.pdp.concepts.PdpSubGroup;
+import org.onap.policy.models.pdp.enums.PdpState;
+import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicyTypeIdentifier;
+import org.onap.sdc.toscaparser.api.elements.PolicyType;
+
+/**
+ * This is an utility class to do searching in pdp groups.
+ */
+public class PdpGroupsAnalyzer {
+ /**
+ * Get supported subGroups based on the defined policy type and version for s specific PDPgroup.
+ * It returns null if the Group is not ACTIVE or if the policytype/version has not been found in the PDPSubgroups.
+ *
+ * @param pdpGroup The pdpGroup that must be analyzed
+ * @param policyType The policy type
+ * @param version The version
+ * @return The supported subGroups list in Json format
+ * @see org.onap.policy.models.pdp.concepts.PdpGroup
+ * @see org.onap.policy.models.pdp.enums.PdpState
+ */
+ private static JsonObject getSupportedSubgroups(PdpGroup pdpGroup, String policyType, String version) {
+ if (!PdpState.ACTIVE.equals(pdpGroup.getPdpGroupState())) {
+ return null;
+ }
+ JsonObject supportedPdpGroup = new JsonObject();
+ JsonArray supportedSubgroups = new JsonArray();
+ supportedPdpGroup.add(pdpGroup.getName(), supportedSubgroups);
+ pdpGroup.getPdpSubgroups().stream().forEach(pdpSubGroup -> {
+ if (pdpSubGroup.getSupportedPolicyTypes().stream().anyMatch(policyTypeIdentifier ->
+ policyType.matches(policyTypeIdentifier.getName().replace(".", "\\.").replace("*", ".*"))
+ && version.equals(policyTypeIdentifier.getVersion()))) {
+ supportedSubgroups.add(pdpSubGroup.getPdpType());
+ }
+ });
+ if (supportedSubgroups.size() == 0) {
+ return null;
+ }
+ return supportedPdpGroup;
+ }
+
+ /**
+ * This method updates each element in the policyModelsList given in argument based on the pdpGroups given.
+ *
+ * @param policyModelsList The list of Policy Models where each PolicyModel will be updated
+ * @param pdpGroups The PdpGroups containing all PDP group definition
+ */
+ public static void updatePdpGroup(List<PolicyModel> policyModelsList, PdpGroups pdpGroups) {
+ policyModelsList.parallelStream().forEach(policyModel -> {
+ JsonObject jsonResult = new JsonObject();
+ JsonArray supportedPdpGroups = new JsonArray();
+ jsonResult.add("supportedPdpGroups", supportedPdpGroups);
+ policyModel.setPolicyPdpGroup(jsonResult);
+ pdpGroups.getGroups().stream().map(pdpGroup -> PdpGroupsAnalyzer.getSupportedSubgroups(pdpGroup,
+ policyModel.getPolicyModelType(), policyModel.getVersion())).filter(Objects::nonNull)
+ .forEach(jsonPdpGroup -> supportedPdpGroups.add(jsonPdpGroup));
+ if (supportedPdpGroups.size() == 0) {
+ policyModel.setPolicyPdpGroup(null);
+ }
+ });
+ }
+} \ No newline at end of file
diff --git a/src/main/java/org/onap/policy/clamp/policy/pdpgroup/PdpSubgroup.java b/src/main/java/org/onap/policy/clamp/policy/pdpgroup/PdpSubgroup.java
deleted file mode 100644
index 890f90775..000000000
--- a/src/main/java/org/onap/policy/clamp/policy/pdpgroup/PdpSubgroup.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP CLAMP
- * ================================================================================
- * Copyright (C) 2020 AT&T Intellectual Property. All rights
- * reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END============================================
- * ===================================================================
- *
- */
-
-package org.onap.policy.clamp.policy.pdpgroup;
-
-import com.google.gson.annotations.Expose;
-import java.util.List;
-
-/**
- * This class maps the Policy get PDP Group response to a nice pojo.
- */
-public class PdpSubgroup {
-
- @Expose
- private String pdpType;
-
- @Expose
- private List<PolicyModelKey> supportedPolicyTypes;
-
- public String getPdpType() {
- return pdpType;
- }
-
- public void setPdpType(String pdpType) {
- this.pdpType = pdpType;
- }
-
- public List<PolicyModelKey> getSupportedPolicyTypes() {
- return supportedPolicyTypes;
- }
-
- public void setSupportedPolicyTypes(List<PolicyModelKey> supportedPolicyTypes) {
- this.supportedPolicyTypes = supportedPolicyTypes;
- }
-
-}
diff --git a/src/main/java/org/onap/policy/clamp/policy/pdpgroup/PolicyModelKey.java b/src/main/java/org/onap/policy/clamp/policy/pdpgroup/PolicyModelKey.java
deleted file mode 100644
index df92bfdf9..000000000
--- a/src/main/java/org/onap/policy/clamp/policy/pdpgroup/PolicyModelKey.java
+++ /dev/null
@@ -1,125 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP CLAMP
- * ================================================================================
- * Copyright (C) 2020 AT&T Intellectual Property. All rights
- * reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END============================================
- * ===================================================================
- *
- */
-
-package org.onap.policy.clamp.policy.pdpgroup;
-
-import com.google.gson.annotations.Expose;
-import java.io.Serializable;
-
-public class PolicyModelKey implements Serializable {
-
- /**
- * The serial version ID.
- */
- private static final long serialVersionUID = 3307410842013230886L;
-
- @Expose
- private String name;
-
- @Expose
- private String version;
-
- /**
- * Constructor.
- */
- public PolicyModelKey(String name, String version) {
- this.name = name;
- this.version = version;
- }
-
- /**
- * name getter.
- *
- * @return the name
- */
- public String getName() {
- return name;
- }
-
- /**
- * name setter.
- *
- * @param name the name to set
- */
- public void setName(String name) {
- this.name = name;
- }
-
- /**
- * version getter.
- *
- * @return the version
- */
- public String getVersion() {
- return version;
- }
-
- /**
- * version setter.
- *
- * @param version the version to set
- */
- public void setVersion(String version) {
- this.version = version;
- }
-
- @Override
- public int hashCode() {
- final int prime = 31;
- int result = 1;
- result = prime * result + ((name == null) ? 0 : name.hashCode());
- result = prime * result + ((version == null) ? 0 : version.hashCode());
- return result;
- }
-
- @Override
- public boolean equals(Object obj) {
- if (this == obj) {
- return true;
- }
- if (obj == null) {
- return false;
- }
- if (getClass() != obj.getClass()) {
- return false;
- }
- PolicyModelKey other = (PolicyModelKey) obj;
- if (name == null) {
- if (other.name != null) {
- return false;
- }
- } else if (!name.equals(other.name)) {
- if (!name.matches(other.name)) {
- return false;
- }
- }
- if (version == null) {
- if (other.version != null) {
- return false;
- }
- } else if (!version.equals(other.version)) {
- return false;
- }
- return true;
- }
-}
diff --git a/src/main/resources/clds/camel/routes/policy-flows.xml b/src/main/resources/clds/camel/routes/policy-flows.xml
index 0ee386eb4..4d1eba614 100644
--- a/src/main/resources/clds/camel/routes/policy-flows.xml
+++ b/src/main/resources/clds/camel/routes/policy-flows.xml
@@ -109,7 +109,7 @@
<log loggingLevel="INFO"
message="Endpoint to get policy deployment status: {{clamp.config.policy.pap.url}}/policy/pap/v1/policies/deployed/${exchangeProperty[policyName]}/1.0.0"></log>
<toD
- uri="{{clamp.config.policy.pap.url}}/policy/pap/v1/policies/deployed/${exchangeProperty[policyName]}/1.0.0?bridgeEndpoint=true&amp;useSystemProperties=true&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;authMethod=Basic&amp;authUsername={{clamp.config.policy.api.userName}}&amp;authPassword={{clamp.config.policy.api.password}}&amp;httpClient.connectTimeout=10000&amp;httpClient.socketTimeout=20000&amp;authenticationPreemptive=true&amp;connectionClose=true"/>
+ uri="{{clamp.config.policy.pap.url}}/policy/pap/v1/policies/deployed/${exchangeProperty[policyName]}/1.0.0?bridgeEndpoint=true&amp;useSystemProperties=true&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;authMethod=Basic&amp;authUsername={{clamp.config.policy.pap.userName}}&amp;authPassword={{clamp.config.policy.pap.password}}&amp;httpClient.connectTimeout=10000&amp;httpClient.socketTimeout=20000&amp;authenticationPreemptive=true&amp;connectionClose=true"/>
<doCatch>
<exception>java.lang.Exception</exception>
<handled>
@@ -427,7 +427,41 @@
<log loggingLevel="INFO"
message="Endpoint to get policy model: {{clamp.config.policy.pap.url}}/policy/pap/v1/pdps"></log>
<toD
- uri="{{clamp.config.policy.pap.url}}/policy/pap/v1/pdps?bridgeEndpoint=true&amp;useSystemProperties=true&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;authMethod=Basic&amp;authUsername={{clamp.config.policy.api.userName}}&amp;authPassword={{clamp.config.policy.api.password}}&amp;httpClient.connectTimeout=10000&amp;httpClient.socketTimeout=20000&amp;authenticationPreemptive=true&amp;connectionClose=true"/>
+ uri="{{clamp.config.policy.pap.url}}/policy/pap/v1/pdps?bridgeEndpoint=true&amp;useSystemProperties=true&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;authMethod=Basic&amp;authUsername={{clamp.config.policy.pap.userName}}&amp;authPassword={{clamp.config.policy.pap.password}}&amp;httpClient.connectTimeout=10000&amp;httpClient.socketTimeout=20000&amp;authenticationPreemptive=true&amp;connectionClose=true"/>
+ <convertBodyTo type="java.lang.String"/>
+ <doFinally>
+ <to uri="direct:reset-raise-http-exception-flag"/>
+ <to
+ uri="bean:org.onap.policy.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()"/>
+ </doFinally>
+ </doTry>
+ </route>
+ <route id="get-all-policies">
+ <from uri="direct:get-all-policies"/>
+ <doTry>
+ <log loggingLevel="INFO"
+ message="Getting the policies list"/>
+ <to
+ uri="bean:org.onap.policy.clamp.flow.log.FlowLogOperation?method=invokeLog('Policy', 'Getting the policies list')"/>
+ <setHeader headerName="CamelHttpMethod">
+ <constant>GET</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 get policies list: {{clamp.config.policy.api.url}}/policy/api/v1/policies"></log>
+ <toD
+ uri="{{clamp.config.policy.api.url}}/policy/api/v1/policies?bridgeEndpoint=true&amp;useSystemProperties=true&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;authMethod=Basic&amp;authUsername={{clamp.config.policy.api.userName}}&amp;authPassword={{clamp.config.policy.api.password}}&amp;httpClient.connectTimeout=10000&amp;httpClient.socketTimeout=20000&amp;authenticationPreemptive=true&amp;connectionClose=true"/>
<convertBodyTo type="java.lang.String"/>
<doFinally>
<to uri="direct:reset-raise-http-exception-flag"/>
diff --git a/src/test/java/org/onap/policy/clamp/loop/PolicyModelServiceItCase.java b/src/test/java/org/onap/policy/clamp/loop/PolicyModelServiceItCase.java
index e7df80cd8..a98291be0 100644
--- a/src/test/java/org/onap/policy/clamp/loop/PolicyModelServiceItCase.java
+++ b/src/test/java/org/onap/policy/clamp/loop/PolicyModelServiceItCase.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP CLAMP
* ================================================================================
- * Copyright (C) 2019 AT&T Intellectual Property. All rights
+ * Copyright (C) 2019, 2021 AT&T Intellectual Property. All rights
* reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -43,9 +43,11 @@ import org.onap.policy.clamp.loop.template.PolicyModel;
import org.onap.policy.clamp.loop.template.PolicyModelId;
import org.onap.policy.clamp.loop.template.PolicyModelsRepository;
import org.onap.policy.clamp.loop.template.PolicyModelsService;
-import org.onap.policy.clamp.policy.pdpgroup.PdpGroup;
-import org.onap.policy.clamp.policy.pdpgroup.PdpSubgroup;
-import org.onap.policy.clamp.policy.pdpgroup.PolicyModelKey;
+import org.onap.policy.models.pdp.concepts.PdpGroup;
+import org.onap.policy.models.pdp.concepts.PdpGroups;
+import org.onap.policy.models.pdp.concepts.PdpSubGroup;
+import org.onap.policy.models.pdp.enums.PdpState;
+import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicyTypeIdentifier;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
@@ -242,54 +244,54 @@ public class PolicyModelServiceItCase {
@Test
@Transactional
public void shouldAddPdpGroupInfo() {
- PolicyModel policyModel1 = getPolicyModel(POLICY_MODEL_TYPE_1, "yaml",
- POLICY_MODEL_TYPE_1_VERSION_1, "TEST", "VARIANT", "user");
- policyModelsService.saveOrUpdatePolicyModel(policyModel1);
- PolicyModel policyModel2 = getPolicyModel(POLICY_MODEL_TYPE_2, "yaml",
- POLICY_MODEL_TYPE_2_VERSION_2, "TEST", "VARIANT", "user");
- policyModelsService.saveOrUpdatePolicyModel(policyModel2);
- PolicyModel policyModel3 = getPolicyModel(POLICY_MODEL_TYPE_3, "yaml",
- POLICY_MODEL_TYPE_3_VERSION_1, "TEST", "VARIANT", "user");
- policyModelsService.saveOrUpdatePolicyModel(policyModel3);
+ policyModelsService.saveOrUpdatePolicyModel(getPolicyModel(POLICY_MODEL_TYPE_1, "yaml",
+ POLICY_MODEL_TYPE_1_VERSION_1, "TEST", "VARIANT", "user"));
+ policyModelsService.saveOrUpdatePolicyModel(getPolicyModel(POLICY_MODEL_TYPE_2, "yaml",
+ POLICY_MODEL_TYPE_2_VERSION_2, "TEST", "VARIANT", "user"));
+ policyModelsService.saveOrUpdatePolicyModel(getPolicyModel(POLICY_MODEL_TYPE_3, "yaml",
+ POLICY_MODEL_TYPE_3_VERSION_1, "TEST", "VARIANT", "user"));
- PolicyModelKey type1 = new PolicyModelKey("org.onap.testos", "1.0.0");
- PolicyModelKey type2 = new PolicyModelKey("org.onap.testos2", "2.0.0");
+ ToscaPolicyTypeIdentifier type1 = new ToscaPolicyTypeIdentifier("org.onap.testos", "1.0.0");
+ ToscaPolicyTypeIdentifier type2 = new ToscaPolicyTypeIdentifier("org.onap.testos2", "2.0.0");
- PdpSubgroup pdpSubgroup1 = new PdpSubgroup();
+ PdpSubGroup pdpSubgroup1 = new PdpSubGroup();
pdpSubgroup1.setPdpType("subGroup1");
- List<PolicyModelKey> pdpTypeList = new LinkedList<PolicyModelKey>();
+ List<ToscaPolicyTypeIdentifier> pdpTypeList = new LinkedList<>();
pdpTypeList.add(type1);
pdpTypeList.add(type2);
pdpSubgroup1.setSupportedPolicyTypes(pdpTypeList);
- PolicyModelKey type3 = new PolicyModelKey("org.onap.testos3", "2.0.0");
- PdpSubgroup pdpSubgroup2 = new PdpSubgroup();
+ ToscaPolicyTypeIdentifier type3 = new ToscaPolicyTypeIdentifier("org.onap.testos3", "2.0.0");
+ PdpSubGroup pdpSubgroup2 = new PdpSubGroup();
pdpSubgroup2.setPdpType("subGroup2");
- List<PolicyModelKey> pdpTypeList2 = new LinkedList<PolicyModelKey>();
+ List<ToscaPolicyTypeIdentifier> pdpTypeList2 = new LinkedList<>();
pdpTypeList2.add(type2);
pdpTypeList2.add(type3);
pdpSubgroup2.setSupportedPolicyTypes(pdpTypeList2);
- List<PdpSubgroup> pdpSubgroupList = new LinkedList<PdpSubgroup>();
+ List<PdpSubGroup> pdpSubgroupList = new LinkedList<>();
pdpSubgroupList.add(pdpSubgroup1);
PdpGroup pdpGroup1 = new PdpGroup();
pdpGroup1.setName("pdpGroup1");
- pdpGroup1.setPdpGroupState("ACTIVE");
+ pdpGroup1.setPdpGroupState(PdpState.ACTIVE);
pdpGroup1.setPdpSubgroups(pdpSubgroupList);
- List<PdpSubgroup> pdpSubgroupList2 = new LinkedList<PdpSubgroup>();
+ List<PdpSubGroup> pdpSubgroupList2 = new LinkedList<>();
pdpSubgroupList2.add(pdpSubgroup1);
pdpSubgroupList2.add(pdpSubgroup2);
PdpGroup pdpGroup2 = new PdpGroup();
pdpGroup2.setName("pdpGroup2");
- pdpGroup2.setPdpGroupState("ACTIVE");
+ pdpGroup2.setPdpGroupState(PdpState.ACTIVE);
pdpGroup2.setPdpSubgroups(pdpSubgroupList2);
- List<PdpGroup> pdpGroupList = new LinkedList<PdpGroup>();
- pdpGroupList.add(pdpGroup1);
- pdpGroupList.add(pdpGroup2);
- policyModelsService.updatePdpGroupInfo(pdpGroupList);
+ List<PdpGroup> pdpGroupsList = new LinkedList<>();
+ pdpGroupsList.add(pdpGroup1);
+ pdpGroupsList.add(pdpGroup2);
+
+ PdpGroups pdpGroups = new PdpGroups();
+ pdpGroups.setGroups(pdpGroupsList);
+ policyModelsService.updatePdpGroupInfo(pdpGroups);
JsonObject res1 =
policyModelsService.getPolicyModel("org.onap.testos", "1.0.0").getPolicyPdpGroup();
diff --git a/src/test/java/org/onap/policy/clamp/policy/pdpgroup/PdpGroupAnalyzerTest.java b/src/test/java/org/onap/policy/clamp/policy/pdpgroup/PdpGroupAnalyzerTest.java
new file mode 100644
index 000000000..1af048da5
--- /dev/null
+++ b/src/test/java/org/onap/policy/clamp/policy/pdpgroup/PdpGroupAnalyzerTest.java
@@ -0,0 +1,130 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP CLAMP
+ * ================================================================================
+ * Copyright (C) 2021 AT&T Intellectual Property. All rights
+ * reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END============================================
+ * ===================================================================
+ *
+ */
+
+package org.onap.policy.clamp.policy.pdpgroup;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+import com.google.gson.Gson;
+import com.google.gson.JsonObject;
+import java.util.Arrays;
+import java.util.LinkedList;
+import java.util.List;
+import javax.transaction.Transactional;
+import org.junit.Test;
+import org.onap.policy.clamp.clds.util.JsonUtils;
+import org.onap.policy.clamp.loop.template.PolicyModel;
+import org.onap.policy.models.pdp.concepts.PdpGroup;
+import org.onap.policy.models.pdp.concepts.PdpGroups;
+import org.onap.policy.models.pdp.concepts.PdpSubGroup;
+import org.onap.policy.models.pdp.enums.PdpState;
+import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicyTypeIdentifier;
+
+/**
+ * This test class validates the PdpGroupAnalyzer class.
+ */
+public class PdpGroupAnalyzerTest {
+
+ private PolicyModel createPolicyModel(String policyType, String policyModelTosca, String version,
+ String policyAcronym, String policyVariant, String createdBy) {
+ PolicyModel policyModel = new PolicyModel();
+ policyModel.setCreatedBy(createdBy);
+ policyModel.setPolicyAcronym(policyAcronym);
+ policyModel.setPolicyModelTosca(policyModelTosca);
+ policyModel.setPolicyModelType(policyType);
+ policyModel.setUpdatedBy(createdBy);
+ policyModel.setVersion(version);
+ return policyModel;
+ }
+
+ /**
+ * This tests the pdpgroup GSON encode/decode and saving.
+ */
+ @Test
+ @Transactional
+ public void testUpdatePdpGroup() {
+ // Create policyModel
+ PolicyModel policyModel = new PolicyModel();
+ policyModel.setCreatedBy("user");
+ policyModel.setPolicyAcronym("TEST");
+ policyModel.setPolicyModelTosca("yaml");
+ policyModel.setPolicyModelType("org.onap.test");
+ policyModel.setUpdatedBy("user");
+ policyModel.setVersion("1.0.0");
+
+ // Create Pdp Groups
+ // Those that do not work first
+ PdpSubGroup pdpSubgroupBad = new PdpSubGroup();
+ pdpSubgroupBad.setPdpType("subGroupBad");
+ pdpSubgroupBad.setSupportedPolicyTypes(Arrays.asList(new ToscaPolicyTypeIdentifier("org.onap.test", "2.0.0"),
+ new ToscaPolicyTypeIdentifier("org.onap.test.*", "1.0.0"),
+ new ToscaPolicyTypeIdentifier("org.onip.testos", "1.0.0"),
+ new ToscaPolicyTypeIdentifier("org.onap.testos3", "2.0.0"),
+ new ToscaPolicyTypeIdentifier("org.onap.tes", "1.0.0"),
+ new ToscaPolicyTypeIdentifier("org.onap", "1.0.0")
+ ));
+
+
+ PdpSubGroup pdpSubgroup1 = new PdpSubGroup();
+ pdpSubgroup1.setPdpType("subGroup1");
+ pdpSubgroup1.setSupportedPolicyTypes(
+ Arrays.asList(new ToscaPolicyTypeIdentifier("org.onap.*", "1.0.0")));
+
+ PdpSubGroup pdpSubgroup2 = new PdpSubGroup();
+ pdpSubgroup2.setPdpType("subGroup2");
+ pdpSubgroup2.setSupportedPolicyTypes(Arrays.asList(new ToscaPolicyTypeIdentifier("org.onap.test", "1.0.0")));
+
+ PdpSubGroup pdpSubgroup3 = new PdpSubGroup();
+ pdpSubgroup3.setPdpType("subGroup3");
+ pdpSubgroup3.setSupportedPolicyTypes(Arrays.asList(new ToscaPolicyTypeIdentifier("org.onap.test*", "1.0.0")));
+
+
+ PdpGroup pdpGroup1 = new PdpGroup();
+ pdpGroup1.setName("pdpGroup1");
+ pdpGroup1.setPdpGroupState(PdpState.ACTIVE);
+ pdpGroup1.setPdpSubgroups(Arrays.asList(pdpSubgroup1, pdpSubgroupBad));
+
+ PdpGroup pdpGroup2 = new PdpGroup();
+ pdpGroup2.setName("pdpGroup2");
+ pdpGroup2.setPdpGroupState(PdpState.ACTIVE);
+ pdpGroup2.setPdpSubgroups(Arrays.asList(pdpSubgroup1, pdpSubgroup2, pdpSubgroup3, pdpSubgroupBad));
+
+ PdpGroup pdpGroup3 = new PdpGroup();
+ pdpGroup3.setName("pdpGroup3");
+ pdpGroup3.setPdpGroupState(PdpState.ACTIVE);
+ pdpGroup3.setPdpSubgroups(Arrays.asList(pdpSubgroupBad));
+
+ PdpGroup pdpGroup4 = new PdpGroup();
+ pdpGroup4.setName("pdpGroup4");
+ pdpGroup4.setPdpGroupState(PdpState.PASSIVE);
+ pdpGroup4.setPdpSubgroups(Arrays.asList(pdpSubgroup1));
+
+ PdpGroups pdpGroups = new PdpGroups();
+ pdpGroups.setGroups(Arrays.asList(pdpGroup1, pdpGroup2, pdpGroup3, pdpGroup4));
+ PdpGroupsAnalyzer.updatePdpGroup(Arrays.asList(policyModel), pdpGroups);
+
+ assertThat(policyModel.getPolicyPdpGroup().toString()).isEqualTo(
+ "{\"supportedPdpGroups\":[{\"pdpGroup1\":[\"subGroup1\"]},"
+ + "{\"pdpGroup2\":[\"subGroup1\",\"subGroup2\",\"subGroup3\"]}]}");
+ }
+}
diff --git a/src/test/java/org/onap/policy/clamp/policy/pdpgroup/PdpGroupTest.java b/src/test/java/org/onap/policy/clamp/policy/pdpgroup/PdpGroupTest.java
deleted file mode 100644
index 699693de0..000000000
--- a/src/test/java/org/onap/policy/clamp/policy/pdpgroup/PdpGroupTest.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP CLAMP
- * ================================================================================
- * Copyright (C) 2020 AT&T Intellectual Property. All rights
- * reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END============================================
- * ===================================================================
- *
- */
-
-package org.onap.policy.clamp.policy.pdpgroup;
-
-import static org.assertj.core.api.Assertions.assertThat;
-
-import com.google.gson.JsonArray;
-import com.google.gson.JsonObject;
-import java.io.IOException;
-import java.util.LinkedList;
-import java.util.List;
-import org.junit.Test;
-
-public class PdpGroupTest {
-
-
- @Test
- public void testGetSupportedSubgroups() throws IOException {
- PdpGroup pdpGroup1 = new PdpGroup();
- pdpGroup1.setName("pdpGroup1");
- pdpGroup1.setPdpGroupState("INACTIVE");
- assertThat(pdpGroup1.getSupportedSubgroups("test", "1.0.0")).isNull();
-
- PdpGroup pdpGroup2 = new PdpGroup();
- pdpGroup2.setName("pdpGroup2");
- pdpGroup2.setPdpGroupState("ACTIVE");
-
- PolicyModelKey type1 = new PolicyModelKey("type1", "1.0.0");
- PolicyModelKey type2 = new PolicyModelKey("type2", "2.0.0");
-
- PdpSubgroup pdpSubgroup1 = new PdpSubgroup();
- pdpSubgroup1.setPdpType("subGroup1");
- List<PolicyModelKey> pdpTypeList = new LinkedList<PolicyModelKey>();
- pdpTypeList.add(type1);
- pdpTypeList.add(type2);
- pdpSubgroup1.setSupportedPolicyTypes(pdpTypeList);
-
- PolicyModelKey type3 = new PolicyModelKey("type3", "1.0.0");
- PdpSubgroup pdpSubgroup2 = new PdpSubgroup();
- pdpSubgroup2.setPdpType("subGroup2");
- List<PolicyModelKey> pdpTypeList2 = new LinkedList<PolicyModelKey>();
- pdpTypeList2.add(type2);
- pdpTypeList2.add(type3);
- pdpSubgroup2.setSupportedPolicyTypes(pdpTypeList2);
-
- List<PdpSubgroup> pdpSubgroupList = new LinkedList<PdpSubgroup>();
- pdpSubgroupList.add(pdpSubgroup1);
- pdpSubgroupList.add(pdpSubgroup2);
- pdpGroup2.setPdpSubgroups(pdpSubgroupList);
-
- JsonObject res1 = pdpGroup2.getSupportedSubgroups("type2", "2.0.0");
- assertThat(res1.get("pdpGroup2")).isNotNull();
- JsonArray resSubList = res1.getAsJsonArray("pdpGroup2");
- assertThat(resSubList.size()).isEqualTo(2);
- assertThat(resSubList.toString().contains("subGroup1")).isTrue();
- assertThat(resSubList.toString().contains("subGroup2")).isTrue();
-
- JsonObject res2 = pdpGroup2.getSupportedSubgroups("type1", "1.0.0");
- assertThat(res2.get("pdpGroup2")).isNotNull();
- JsonArray resSubList2 = res2.getAsJsonArray("pdpGroup2");
- assertThat(resSubList2.size()).isEqualTo(1);
-
- assertThat(pdpGroup2.getSupportedSubgroups("type3", "1.0.1")).isNull();
- }
-}
diff --git a/src/test/java/org/onap/policy/clamp/policy/pdpgroup/PolicyModelKeyTest.java b/src/test/java/org/onap/policy/clamp/policy/pdpgroup/PolicyModelKeyTest.java
deleted file mode 100644
index d4cf27392..000000000
--- a/src/test/java/org/onap/policy/clamp/policy/pdpgroup/PolicyModelKeyTest.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP CLAMP
- * ================================================================================
- * Copyright (C) 2020 AT&T Intellectual Property. All rights
- * reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END============================================
- * ===================================================================
- *
- */
-
-package org.onap.policy.clamp.policy.pdpgroup;
-
-import static org.assertj.core.api.Assertions.assertThat;
-
-import java.io.IOException;
-import org.junit.Test;
-
-public class PolicyModelKeyTest {
-
- @Test
- public void testEqualsMethod() throws IOException {
- PolicyModelKey key1 = new PolicyModelKey("name1", "1.0.0");
- PolicyModelKey key2 = new PolicyModelKey(null, "1.0.0");
- PolicyModelKey key3 = new PolicyModelKey("name1", null);
-
- assertThat(key1.equals(null)).isFalse();
- assertThat(key1.equals("key2")).isFalse();
-
- assertThat(key2.equals(key1)).isFalse();
- assertThat(key3.equals(key1)).isFalse();
-
- PolicyModelKey key4 = new PolicyModelKey("name2", "1.0.0");
- PolicyModelKey key5 = new PolicyModelKey("name1", "2.0.0");
- assertThat(key1.equals(key4)).isFalse();
- assertThat(key1.equals(key5)).isFalse();
-
- PolicyModelKey key6 = new PolicyModelKey("name(.*)", "1.0.0");
- PolicyModelKey key7 = new PolicyModelKey("name1", "1.0.0");
- assertThat(key1.equals(key6)).isTrue();
- assertThat(key1.equals(key7)).isTrue();
- }
-}
diff --git a/src/test/resources/http-cache/example/policy/api/v1/policies/.file b/src/test/resources/http-cache/example/policy/api/v1/policies/.file
index 431de3e7c..91c3c87de 100644
--- a/src/test/resources/http-cache/example/policy/api/v1/policies/.file
+++ b/src/test/resources/http-cache/example/policy/api/v1/policies/.file
@@ -19,7 +19,7 @@
"thresholdValue": 200,
"closedLoopEventStatus": "ONSET",
"closedLoopControlName": "LOOP_test",
- "direction": "LESS_OR_ElsQUAL",
+ "direction": "LESS_OR_EQUAL",
"fieldPath": "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedTotalPacketsDelta"
}
],