X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=ONAP-PAP-REST%2Fsrc%2Fmain%2Fjava%2Forg%2Fonap%2Fpolicy%2Fpap%2Fxacml%2Frest%2Fservice%2FImportService.java;h=c804f2b2074810736cf5ed8a78b5ca054b94c271;hb=5ba143338d6fbc2b4d1e36c0efcbbabe15c65301;hp=16672071405de3db877de434a2245cb2011b0897;hpb=6f2b3f2dd0e80895acd0f77aa5784e717be33696;p=policy%2Fengine.git diff --git a/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/service/ImportService.java b/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/service/ImportService.java index 166720714..c804f2b20 100644 --- a/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/service/ImportService.java +++ b/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/service/ImportService.java @@ -2,7 +2,7 @@ * ============LICENSE_START======================================================= * ONAP-PAP-REST * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * Copyright (C) 2017-2018 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. @@ -38,19 +38,36 @@ import org.onap.policy.common.logging.flexlogger.FlexLogger; import org.onap.policy.common.logging.flexlogger.Logger; import org.onap.policy.pap.xacml.rest.components.CreateBRMSRuleTemplate; import org.onap.policy.pap.xacml.rest.components.CreateNewMicroServiceModel; -import org.onap.policy.pap.xacml.rest.model.PDPPolicyContainer; public class ImportService { private static final Logger logger = FlexLogger.getLogger(ImportService.class); + private static String errorMessage = "Error in reading in file from API call"; + private static String errorMsg = "error"; + private static String operation = "operation"; + private static String importHeader = "import"; + private static String service = "service"; + private static String extractDir = "ExtractDir"; + private static String successMessage = "success"; + private static String invalidServiceName = "Invalid ServiceName"; + private static final String REGEX = "[0-9a-zA-Z._ ]*"; + public void doImportMicroServicePut(HttpServletRequest request, HttpServletResponse response) { - String importServiceCreation = request.getParameter("importService");; + String importServiceCreation = request.getParameter("importService"); String fileName = request.getParameter("fileName"); String version = request.getParameter("version"); String serviceName = request.getParameter("serviceName"); + + if(serviceName == null || serviceName.isEmpty() || !serviceName.matches(REGEX)){ + response.setStatus(HttpServletResponse.SC_BAD_REQUEST); + response.addHeader(errorMsg, "missing"); + response.addHeader(operation, importHeader); + response.addHeader(service, invalidServiceName); + return; + } + String description = request.getParameter("description"); Map successMap = new HashMap<>(); - switch(importServiceCreation){ - case "BRMSPARAM": + if(("BRMSPARAM").equals(importServiceCreation)){ StringBuilder builder = new StringBuilder(); int ch; try { @@ -59,20 +76,20 @@ public class ImportService { } } catch (IOException e) { logger.error(e); - PolicyLogger.error("Error in reading in file from API call"); + PolicyLogger.error(errorMessage); response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); - response.addHeader("error", "missing"); - response.addHeader("operation", "import"); - response.addHeader("service", serviceName); + response.addHeader(errorMsg, "missing"); + response.addHeader(operation, importHeader); + response.addHeader(service, serviceName); } CreateBRMSRuleTemplate brmsRuleTemplate = new CreateBRMSRuleTemplate(); successMap = brmsRuleTemplate.addRule(builder.toString(), serviceName, description, "API"); - break; - case "MICROSERVICE": + } + else if(("MICROSERVICE").equals(importServiceCreation)){ CreateNewMicroServiceModel newMS = null; String randomID = UUID.randomUUID().toString(); if ( fileName != null) { - File extracDir = new File("ExtractDir"); + File extracDir = new File(extractDir); if (!extracDir.exists()){ extracDir.mkdirs(); } @@ -87,21 +104,21 @@ public class ImportService { scanner.close(); } catch (IOException e1) { logger.error(e1); - PolicyLogger.error("Error in reading in file from API call"); + PolicyLogger.error(errorMessage); return; } PolicyLogger.info("XML request from API for import new Service"); try (Writer writer = new BufferedWriter(new OutputStreamWriter( - new FileOutputStream("ExtractDir" + File.separator + randomID+".xmi"), "utf-8"))) { + new FileOutputStream(extractDir + File.separator + randomID+".xmi"), "utf-8"))) { writer.write(xmi); } catch (IOException e) { logger.error(e); - PolicyLogger.error("Error in reading in file from API call"); + PolicyLogger.error(errorMessage); return; } }else{ InputStream inputStream = null; - try(FileOutputStream outputStream = new FileOutputStream("ExtractDir" + File.separator + randomID+".zip")) { + try(FileOutputStream outputStream = new FileOutputStream(extractDir + File.separator + randomID+".zip")) { inputStream = request.getInputStream(); byte[] buffer = new byte[4096]; int bytesRead = -1 ; @@ -123,41 +140,41 @@ public class ImportService { } newMS = new CreateNewMicroServiceModel(fileName, serviceName, "API", version, randomID); successMap = newMS.addValuesToNewModel(); - if (successMap.containsKey("success")) { + if (successMap.containsKey(successMessage)) { successMap.clear(); successMap = newMS.saveImportService(); } } - break; } + // return a response to the PAP - if (successMap.containsKey("success")) { + if (successMap.containsKey(successMessage)) { response.setStatus(HttpServletResponse.SC_OK); - response.addHeader("successMapKey", "success"); - response.addHeader("operation", "import"); - response.addHeader("service", serviceName); + response.addHeader("successMapKey", successMessage); + response.addHeader(operation, importHeader); + response.addHeader(service, serviceName); } else if (successMap.containsKey("DBError")) { if (successMap.get("DBError").contains("EXISTS")){ response.setStatus(HttpServletResponse.SC_CONFLICT); - response.addHeader("service", serviceName); - response.addHeader("error", "modelExistsDB"); + response.addHeader(service, serviceName); + response.addHeader(errorMsg, "modelExistsDB"); }else{ response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); - response.addHeader("error", "importDB"); + response.addHeader(errorMsg, "importDB"); } - response.addHeader("operation", "import"); - response.addHeader("service", serviceName); - }else if (successMap.get("error").contains("MISSING")){ + response.addHeader(operation, importHeader); + response.addHeader(service, serviceName); + }else if (successMap.get(errorMsg).contains("MISSING")){ response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); - response.addHeader("error", "missing"); - response.addHeader("operation", "import"); - response.addHeader("service", serviceName); - }else if (successMap.get("error").contains("VALIDATION")){ + response.addHeader(errorMsg, "missing"); + response.addHeader(operation, importHeader); + response.addHeader(service, serviceName); + }else if (successMap.get(errorMsg).contains("VALIDATION")){ response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); - response.addHeader("error", "validation"); - response.addHeader("operation", "import"); - response.addHeader("service", serviceName); + response.addHeader(errorMsg, "validation"); + response.addHeader(operation, importHeader); + response.addHeader(service, serviceName); } } -} +} \ No newline at end of file