aboutsummaryrefslogtreecommitdiffstats
path: root/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/controller/PushPolicyController.java
diff options
context:
space:
mode:
Diffstat (limited to 'ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/controller/PushPolicyController.java')
-rw-r--r--ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/controller/PushPolicyController.java63
1 files changed, 34 insertions, 29 deletions
diff --git a/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/controller/PushPolicyController.java b/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/controller/PushPolicyController.java
index 227be1bdf..eec34b642 100644
--- a/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/controller/PushPolicyController.java
+++ b/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/controller/PushPolicyController.java
@@ -7,9 +7,9 @@
* 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.
@@ -55,31 +55,33 @@ import com.fasterxml.jackson.databind.ObjectMapper;
@Controller
public class PushPolicyController {
- private static final Logger LOGGER = FlexLogger.getLogger(PushPolicyController.class);
+ private static final Logger LOGGER = FlexLogger.getLogger(PushPolicyController.class);
private static CommonClassDao commonClassDao;
private static String policyNames = "policyName";
- private static String errorMsg = "error";
+ private static String errorMsg = "error";
private static String operation = "operation";
private static String messageContent = "message";
private static final String REGEX = "[0-9a-zA-Z._ ]*";
@Autowired
- public PushPolicyController(CommonClassDao commonClassDao){
+ public PushPolicyController(CommonClassDao commonClassDao) {
PushPolicyController.commonClassDao = commonClassDao;
}
- public void setCommonClassDao(CommonClassDao commonClassDao){
+ public void setCommonClassDao(CommonClassDao commonClassDao) {
PushPolicyController.commonClassDao = commonClassDao;
}
+
/*
* This is an empty constructor
*/
- public PushPolicyController(){}
+ public PushPolicyController() {
+ }
- @RequestMapping(value="/pushPolicy", method=RequestMethod.POST)
- public void pushPolicy(HttpServletRequest request, HttpServletResponse response){
+ @RequestMapping(value = "/pushPolicy", method = RequestMethod.POST)
+ public void pushPolicy(HttpServletRequest request, HttpServletResponse response) {
ObjectMapper mapper = new ObjectMapper();
mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
try {
@@ -89,38 +91,39 @@ public class PushPolicyController {
String policyName = root.get(policyNames).asText();
String pdpGroup = root.get("pdpGroup").asText();
String requestID = request.getHeader("X-ECOMP-RequestID");
- if(requestID==null){
+ if (requestID == null) {
requestID = UUID.randomUUID().toString();
LOGGER.info("No request ID provided, sending generated ID: " + requestID);
}
LOGGER.info("Push policy Request to get the selectedPolicy : " + root.asText());
String policyVersionName = policyScope.replace(".", File.separator) + File.separator
+ filePrefix + policyName;
- List<?> policyVersionObject = commonClassDao.getDataById(PolicyVersion.class, policyNames, policyVersionName);
- if(policyVersionObject!=null){
+ List<?> policyVersionObject =
+ commonClassDao.getDataById(PolicyVersion.class, policyNames, policyVersionName);
+ if (policyVersionObject != null) {
PolicyVersion policyVersion = (PolicyVersion) policyVersionObject.get(0);
String policyID = policyVersionName.replace(File.separator, "."); // This is before adding version.
policyVersionName += "." + policyVersion.getActiveVersion() + ".xml";
- addPolicyToGroup(policyScope, policyID, policyVersionName.replace(File.separator, "."), pdpGroup, response);
- }else{
+ addPolicyToGroup(policyScope, policyID, policyVersionName.replace(File.separator, "."), pdpGroup,
+ response);
+ } else {
String message = "Unknown Policy '" + policyName + "'";
PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE + " " + message);
response.addHeader(errorMsg, "unknownPolicy");
response.addHeader(operation, "push");
response.addHeader(messageContent, message);
response.setStatus(HttpServletResponse.SC_NOT_FOUND);
- return;
}
} catch (NullPointerException | IOException e) {
LOGGER.error(e);
response.setStatus(HttpServletResponse.SC_NOT_FOUND);
response.addHeader(errorMsg, "unknown");
response.addHeader(operation, "push");
- return;
}
}
- private void addPolicyToGroup(String policyScope, String policyID, String policyName, String pdpGroup, HttpServletResponse response) {
+ private void addPolicyToGroup(String policyScope, String policyID, String policyName, String pdpGroup,
+ HttpServletResponse response) {
StdPDPGroup selectedPDPGroup = null;
StdPDPPolicy selectedPolicy = null;
//Get the selected PDP Group to push the policy
@@ -129,9 +132,9 @@ public class PushPolicyController {
} catch (PAPException e1) {
PolicyLogger.error(e1);
}
- if(selectedPDPGroup==null){
+ if (selectedPDPGroup == null) {
String message = "Unknown groupId '" + selectedPDPGroup + "'";
- if(!message.matches(REGEX) ){
+ if (!message.matches(REGEX)) {
message = "Unknown groupId";
}
PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE + " " + message);
@@ -143,15 +146,18 @@ public class PushPolicyController {
}
//Get PolicyEntity from DB;
EntityManager em = XACMLPapServlet.getEmf().createEntityManager();
- Query createPolicyQuery = em.createQuery("SELECT p FROM PolicyEntity p WHERE p.scope=:scope AND p.policyName=:policyName");
+ Query createPolicyQuery =
+ em.createQuery("SELECT p FROM PolicyEntity p WHERE p.scope=:scope AND p.policyName=:policyName");
createPolicyQuery.setParameter("scope", policyScope);
- createPolicyQuery.setParameter(policyNames, policyName.substring(policyScope.length()+1));
+ createPolicyQuery.setParameter(policyNames, policyName.substring(policyScope.length() + 1));
List<?> createPolicyQueryList = createPolicyQuery.getResultList();
PolicyEntity policyEntity = null;
- if(!createPolicyQueryList.isEmpty()){
- policyEntity = (PolicyEntity)createPolicyQueryList.get(0);
- }else{
- PolicyLogger.error("Somehow, more than one policy with the same scope, name, and deleted status were found in the database");
+ if (!createPolicyQueryList.isEmpty()) {
+ policyEntity = (PolicyEntity) createPolicyQueryList.get(0);
+ } else {
+ PolicyLogger
+ .error("Somehow, more than one policy with the same scope, name, and deleted status were found in" +
+ " the database");
String message = "Unknown Policy '" + policyName + "'";
PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE + " " + message);
response.addHeader(errorMsg, "unknownPolicy");
@@ -161,13 +167,13 @@ public class PushPolicyController {
return;
}
File temp = new File(policyName);
- try (BufferedWriter bw = new BufferedWriter(new FileWriter(temp))){
+ try (BufferedWriter bw = new BufferedWriter(new FileWriter(temp))) {
bw.write(policyEntity.getPolicyData());
URI selectedURI = temp.toURI();
// Create the policy Object
selectedPolicy = new StdPDPPolicy(policyName, true, policyID, selectedURI);
} catch (IOException e) {
- LOGGER.error("Unable to get policy '" + policyName + "': "+ e.getMessage(),e);
+ LOGGER.error("Unable to get policy '" + policyName + "': " + e.getMessage(), e);
}
try {
new ObjectOutputStream(response.getOutputStream()).writeObject(selectedPolicy);
@@ -178,11 +184,10 @@ public class PushPolicyController {
response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
return;
}
- response.addHeader("Content-Type","application/json");
+ response.addHeader("Content-Type", "application/json");
response.setStatus(HttpServletResponse.SC_ACCEPTED);
response.addHeader(operation, "push");
response.addHeader("policyId", policyName);
- return;
// TODO : Check point to push policies within PAP.
}
}