X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=POLICY-SDK-APP%2Fsrc%2Fmain%2Fjava%2Forg%2Fonap%2Fpolicy%2Fcontroller%2FPolicyExportAndImportController.java;h=7618989ef34ca14dd2b1c8482d17f0fb9940fb5b;hb=cac5ee759fee5db51a32838c7e25b878468a27e0;hp=a6c6bf6acc04a4bce96365ca4dc10fff934d67f0;hpb=7ea81288603904f0cb6f57936da44d6a3dd521a6;p=policy%2Fengine.git diff --git a/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/PolicyExportAndImportController.java b/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/PolicyExportAndImportController.java index a6c6bf6ac..7618989ef 100644 --- a/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/PolicyExportAndImportController.java +++ b/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/PolicyExportAndImportController.java @@ -21,9 +21,11 @@ package org.onap.policy.controller; +import java.io.BufferedWriter; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; +import java.io.FileWriter; import java.io.IOException; import java.io.PrintWriter; import java.util.ArrayList; @@ -47,6 +49,7 @@ import org.apache.poi.ss.usermodel.Workbook; import org.json.JSONObject; import org.onap.policy.common.logging.flexlogger.FlexLogger; import org.onap.policy.common.logging.flexlogger.Logger; +import org.onap.policy.model.Roles; import org.onap.policy.rest.adapter.PolicyExportAdapter; import org.onap.policy.rest.dao.CommonClassDao; import org.onap.policy.rest.jpa.ActionBodyEntity; @@ -56,9 +59,8 @@ import org.onap.policy.rest.jpa.PolicyEntity; import org.onap.policy.rest.jpa.PolicyVersion; import org.onap.policy.rest.jpa.UserInfo; import org.onap.policy.xacml.api.XACMLErrorConstants; -import org.openecomp.policy.model.Roles; -import org.openecomp.portalsdk.core.controller.RestrictedBaseController; -import org.openecomp.portalsdk.core.web.support.UserUtils; +import org.onap.portalsdk.core.controller.RestrictedBaseController; +import org.onap.portalsdk.core.web.support.UserUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @@ -114,12 +116,14 @@ public class PolicyExportAndImportController extends RestrictedBaseController { PolicyExportAndImportController.commonClassDao = commonClassDao; } - public PolicyExportAndImportController(){} + public PolicyExportAndImportController(){ + // Empty constructor + } @RequestMapping(value={"/policy_download/exportPolicy.htm"}, method={org.springframework.web.bind.annotation.RequestMethod.POST}) public void exportPolicy(HttpServletRequest request, HttpServletResponse response) throws IOException{ try{ - String file = null; + String file; selectedPolicy = new ArrayList<>(); ObjectMapper mapper = new ObjectMapper(); mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); @@ -193,7 +197,7 @@ public class PolicyExportAndImportController extends RestrictedBaseController { request.setCharacterEncoding("UTF-8"); PrintWriter out = response.getWriter(); - String successMap = file.toString().substring(file.toString().lastIndexOf("webapps")+8); + String successMap = file.substring(file.lastIndexOf("webapps")+8); String responseString = mapper.writeValueAsString(successMap); JSONObject j = new JSONObject("{data: " + responseString + "}"); out.write(j.toString()); @@ -207,8 +211,8 @@ public class PolicyExportAndImportController extends RestrictedBaseController { boolean configExists = false; boolean actionExists = false; String configName = null; - String scope = null; - boolean finalColumn = false; + String scope; + boolean finalColumn; PolicyController controller = policyController != null ? getPolicyController() : new PolicyController(); String userId = UserUtils.getUserSession(request).getOrgUserId(); UserInfo userInfo = (UserInfo) commonClassDao.getEntityItem(UserInfo.class, "userLoginId", userId); @@ -237,6 +241,7 @@ public class PolicyExportAndImportController extends RestrictedBaseController { Iterator rowIterator = datatypeSheet.iterator(); while (rowIterator.hasNext()) { + finalColumn = false; policyEntity = new PolicyEntity(); configurationDataEntity = new ConfigurationDataEntity(); actionBodyEntity = new ActionBodyEntity(); @@ -248,19 +253,19 @@ public class PolicyExportAndImportController extends RestrictedBaseController { Iterator cellIterator = currentRow.cellIterator(); while (cellIterator.hasNext()) { Cell cell = cellIterator.next(); - if (getCellHeaderName(cell).equalsIgnoreCase("policyName")) { + if ("policyName".equalsIgnoreCase(getCellHeaderName(cell))) { policyEntity.setPolicyName(cell.getStringCellValue()); } - if (getCellHeaderName(cell).equalsIgnoreCase("scope")) { + if ("scope".equalsIgnoreCase(getCellHeaderName(cell))) { policyEntity.setScope(cell.getStringCellValue()); } - if (getCellHeaderName(cell).equalsIgnoreCase("policyData")) { + if ("policyData".equalsIgnoreCase(getCellHeaderName(cell))) { policyEntity.setPolicyData(cell.getStringCellValue()); } - if (getCellHeaderName(cell).equalsIgnoreCase("description")) { + if ("description".equalsIgnoreCase(getCellHeaderName(cell))) { policyEntity.setDescription(cell.getStringCellValue()); } - if (getCellHeaderName(cell).equalsIgnoreCase("configurationbody")) { + if ("configurationbody".equalsIgnoreCase(getCellHeaderName(cell))) { if(policyEntity.getPolicyName().contains("Config_")){ configExists = true; configurationDataEntity.setConfigBody(cell.getStringCellValue()); @@ -269,7 +274,7 @@ public class PolicyExportAndImportController extends RestrictedBaseController { actionBodyEntity.setActionBody(cell.getStringCellValue()); } } - if (getCellHeaderName(cell).equalsIgnoreCase("configurationName")) { + if ("configurationName".equalsIgnoreCase(getCellHeaderName(cell))) { finalColumn = true; configName = cell.getStringCellValue(); if(policyEntity.getPolicyName().contains("Config_")){ @@ -309,11 +314,11 @@ public class PolicyExportAndImportController extends RestrictedBaseController { } if (roles.contains(ADMIN) || roles.contains(EDITOR)) { if(scopes.isEmpty()){ - //return error("No Scopes has been Assigned to the User. Please, Contact Super-Admin"); + logger.error("No Scopes has been Assigned to the User. Please, Contact Super-Admin"); }else{ //1. if Role contains admin, then check if parent scope has role admin, if not don't create a scope and add to list. if(roles.contains(ADMIN)){ - String scopeCheck = scope.substring(0, scope.lastIndexOf(".")); + String scopeCheck = scope.substring(0, scope.lastIndexOf('.')); if(scopes.contains(scopeCheck)){ PolicyEditorScopes policyEditorScopeEntity = new PolicyEditorScopes(); policyEditorScopeEntity.setScopeName(scope); @@ -343,12 +348,26 @@ public class PolicyExportAndImportController extends RestrictedBaseController { configurationDataEntity.setCreatedBy(userId); configurationDataEntity.setModifiedBy(userId); commonClassDao.save(configurationDataEntity); + try(FileWriter fw = new FileWriter(PolicyController.getConfigHome() + File.separator + configName)){ + BufferedWriter bw = new BufferedWriter(fw); + bw.write(configurationDataEntity.getConfigBody()); + bw.close(); + } catch (IOException e) { + logger.error("Exception Occured While cloning the configuration file",e); + } } if(actionExists){ actionBodyEntity.setDeleted(false); actionBodyEntity.setCreatedBy(userId); actionBodyEntity.setModifiedBy(userId); commonClassDao.save(actionBodyEntity); + try(FileWriter fw = new FileWriter(PolicyController.getActionHome() + File.separator + actionBodyEntity.getActionBodyName())) { + BufferedWriter bw = new BufferedWriter(fw); + bw.write(actionBodyEntity.getActionBody()); + bw.close(); + } catch (IOException e) { + logger.error("Exception Occured While cloning the configuration file",e); + } } if(configName != null){ if(configName.contains("Config_")){ @@ -366,8 +385,8 @@ public class PolicyExportAndImportController extends RestrictedBaseController { policyVersion = new PolicyVersion(); String policyName = policyEntity.getPolicyName().replace(".xml", ""); - int version = Integer.parseInt(policyName.substring(policyName.lastIndexOf(".")+1)); - policyName = policyName.substring(0, policyName.lastIndexOf(".")); + int version = Integer.parseInt(policyName.substring(policyName.lastIndexOf('.')+1)); + policyName = policyName.substring(0, policyName.lastIndexOf('.')); policyVersion.setPolicyName(scope.replace(".", File.separator) + File.separator + policyName); policyVersion.setActiveVersion(version); @@ -383,7 +402,6 @@ public class PolicyExportAndImportController extends RestrictedBaseController { //return the column header name value private String getCellHeaderName(Cell cell){ - String cellHeaderName = cell.getSheet().getRow(0).getCell(cell.getColumnIndex()).getRichStringCellValue().toString(); - return cellHeaderName; + return cell.getSheet().getRow(0).getCell(cell.getColumnIndex()).getRichStringCellValue().toString(); } }