aboutsummaryrefslogtreecommitdiffstats
path: root/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/service/ImportService.java
diff options
context:
space:
mode:
Diffstat (limited to 'ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/service/ImportService.java')
-rw-r--r--ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/service/ImportService.java362
1 files changed, 181 insertions, 181 deletions
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 7382a77a1..5e4b4ee7d 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
@@ -41,187 +41,187 @@ import org.onap.policy.pap.xacml.rest.components.CreateNewMicroServiceModel;
import org.onap.policy.pap.xacml.rest.components.CreateNewOptimizationModel;
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._ ]*";
- private static final String MISSING = "missing";
-
- public void doImportMicroServicePut(HttpServletRequest request, HttpServletResponse response) {
- 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;
- }
+ 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._ ]*";
+ private static final String MISSING = "missing";
- String description = request.getParameter("description");
- Map<String, String> successMap = new HashMap<>();
- if(("BRMSPARAM").equals(importServiceCreation)){
- StringBuilder builder = new StringBuilder();
- int ch;
- try {
- while((ch = request.getInputStream().read()) != -1){
- builder.append((char)ch);
- }
- } catch (IOException e) {
- logger.error(e);
- PolicyLogger.error(errorMessage);
- response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
- response.addHeader(errorMsg, MISSING);
- response.addHeader(operation, importHeader);
- response.addHeader(service, serviceName);
- }
- CreateBRMSRuleTemplate brmsRuleTemplate = new CreateBRMSRuleTemplate();
- successMap = brmsRuleTemplate.addRule(builder.toString(), serviceName, description, "API");
- }
- else if(("MICROSERVICE").equals(importServiceCreation)){
- CreateNewMicroServiceModel newMS = null;
- String randomID = UUID.randomUUID().toString();
- String type = ".xmi";
- if ( fileName != null) {
- File extracDir = new File(extractDir);
- if (!extracDir.exists()){
- extracDir.mkdirs();
- }
- if (fileName.contains(".xmi") || fileName.contains(".yml")){
- if(fileName.contains(".yml")){
- type = ".yml";
- }
- // get the request content into a String
- String xmi = null;
- java.util.Scanner scanner;
- try {
- scanner = new java.util.Scanner(request.getInputStream());
- scanner.useDelimiter("\\A");
- xmi = scanner.hasNext() ? scanner.next() : "";
- scanner.close();
- } catch (IOException e1) {
- logger.error(e1);
- PolicyLogger.error(errorMessage);
- return;
- }
- PolicyLogger.info("Request from API to import new Service");
- try (Writer writer = new BufferedWriter(new OutputStreamWriter(
- new FileOutputStream(extractDir + File.separator + randomID+type), "utf-8"))) {
- writer.write(xmi);
- } catch (IOException e) {
- logger.error(e);
- PolicyLogger.error(errorMessage);
- return;
- }
- }else{
- InputStream inputStream = null;
- try(FileOutputStream outputStream = new FileOutputStream(extractDir + File.separator + randomID+".zip")) {
- inputStream = request.getInputStream();
- byte[] buffer = new byte[4096];
- int bytesRead = -1 ;
- while ((bytesRead = inputStream.read(buffer)) != -1) {
- outputStream.write(buffer, 0, bytesRead) ;
- }
- } catch (IOException e) {
- PolicyLogger.error("Error in reading in Zip File from API call"+e);
- return;
- }finally{
- try {
- if(inputStream != null){
- inputStream.close();
- }
- } catch (IOException e) {
- PolicyLogger.error("Exception Occured while closing the input/output stream"+e);
- }
- }
- }
-
- newMS = new CreateNewMicroServiceModel(fileName, serviceName, "API", version, randomID);
-
- successMap = newMS.addValuesToNewModel(type);
-
- if (successMap.containsKey(successMessage)) {
- successMap.clear();
- successMap = newMS.saveImportService();
- }
- }
- } else if(("OPTIMIZATION").equals(importServiceCreation)){
- CreateNewOptimizationModel newOOF = null;
- String randomID = UUID.randomUUID().toString();
- if ( fileName != null) {
- File extracDir = new File(extractDir);
- if (!extracDir.exists()){
- extracDir.mkdirs();
- }
-
- String type = ".yml";
-
- // get the request content into a String
- String yml = null;
- try (java.util.Scanner scanner = new java.util.Scanner(request.getInputStream());){
- scanner.useDelimiter("\\A");
- yml = scanner.hasNext() ? scanner.next() : "";
- } catch (IOException e1) {
- logger.error(e1);
- PolicyLogger.error(errorMessage);
- return;
- }
- PolicyLogger.info("Request from API to import new Optimization Service Model");
- try (Writer writer = new BufferedWriter(new OutputStreamWriter(
- new FileOutputStream(extractDir + File.separator + randomID+type), "utf-8"))) {
- writer.write(yml);
- } catch (IOException e) {
- logger.error(e);
- PolicyLogger.error(errorMessage);
- return;
- }
-
- newOOF = new CreateNewOptimizationModel(fileName, serviceName, "API Import Service", version, randomID);
- successMap = newOOF.addValuesToNewModel();
- if (successMap.containsKey(successMessage)) {
- successMap.clear();
- successMap = newOOF.saveImportService();
- }
- }
- }
-
- // return a response to the PAP
- if (successMap.containsKey(successMessage)) {
- response.setStatus(HttpServletResponse.SC_OK);
- 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(errorMsg, "modelExistsDB");
- }else{
- response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
- response.addHeader(errorMsg, "importDB");
- }
- response.addHeader(operation, importHeader);
- response.addHeader(service, serviceName);
- }else if (successMap.get(errorMsg).contains("MISSING")){
- response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
- 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(errorMsg, "validation");
- response.addHeader(operation, importHeader);
- response.addHeader(service, serviceName);
- }
- }
+ public void doImportMicroServicePut(HttpServletRequest request, HttpServletResponse response) {
+ 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<String, String> successMap = new HashMap<>();
+ if(("BRMSPARAM").equals(importServiceCreation)){
+ StringBuilder builder = new StringBuilder();
+ int ch;
+ try {
+ while((ch = request.getInputStream().read()) != -1){
+ builder.append((char)ch);
+ }
+ } catch (IOException e) {
+ logger.error(e);
+ PolicyLogger.error(errorMessage);
+ response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
+ response.addHeader(errorMsg, MISSING);
+ response.addHeader(operation, importHeader);
+ response.addHeader(service, serviceName);
+ }
+ CreateBRMSRuleTemplate brmsRuleTemplate = new CreateBRMSRuleTemplate();
+ successMap = brmsRuleTemplate.addRule(builder.toString(), serviceName, description, "API");
+ }
+ else if(("MICROSERVICE").equals(importServiceCreation)){
+ CreateNewMicroServiceModel newMS = null;
+ String randomID = UUID.randomUUID().toString();
+ String type = ".xmi";
+ if ( fileName != null) {
+ File extracDir = new File(extractDir);
+ if (!extracDir.exists()){
+ extracDir.mkdirs();
+ }
+ if (fileName.contains(".xmi") || fileName.contains(".yml")){
+ if(fileName.contains(".yml")){
+ type = ".yml";
+ }
+ // get the request content into a String
+ String xmi = null;
+ java.util.Scanner scanner;
+ try {
+ scanner = new java.util.Scanner(request.getInputStream());
+ scanner.useDelimiter("\\A");
+ xmi = scanner.hasNext() ? scanner.next() : "";
+ scanner.close();
+ } catch (IOException e1) {
+ logger.error(e1);
+ PolicyLogger.error(errorMessage);
+ return;
+ }
+ PolicyLogger.info("Request from API to import new Service");
+ try (Writer writer = new BufferedWriter(new OutputStreamWriter(
+ new FileOutputStream(extractDir + File.separator + randomID+type), "utf-8"))) {
+ writer.write(xmi);
+ } catch (IOException e) {
+ logger.error(e);
+ PolicyLogger.error(errorMessage);
+ return;
+ }
+ }else{
+ InputStream inputStream = null;
+ try(FileOutputStream outputStream = new FileOutputStream(extractDir + File.separator + randomID+".zip")) {
+ inputStream = request.getInputStream();
+ byte[] buffer = new byte[4096];
+ int bytesRead = -1 ;
+ while ((bytesRead = inputStream.read(buffer)) != -1) {
+ outputStream.write(buffer, 0, bytesRead) ;
+ }
+ } catch (IOException e) {
+ PolicyLogger.error("Error in reading in Zip File from API call"+e);
+ return;
+ }finally{
+ try {
+ if(inputStream != null){
+ inputStream.close();
+ }
+ } catch (IOException e) {
+ PolicyLogger.error("Exception Occured while closing the input/output stream"+e);
+ }
+ }
+ }
+
+ newMS = new CreateNewMicroServiceModel(fileName, serviceName, "API", version, randomID);
+
+ successMap = newMS.addValuesToNewModel(type);
+
+ if (successMap.containsKey(successMessage)) {
+ successMap.clear();
+ successMap = newMS.saveImportService();
+ }
+ }
+ } else if(("OPTIMIZATION").equals(importServiceCreation)){
+ CreateNewOptimizationModel newOOF = null;
+ String randomID = UUID.randomUUID().toString();
+ if ( fileName != null) {
+ File extracDir = new File(extractDir);
+ if (!extracDir.exists()){
+ extracDir.mkdirs();
+ }
+
+ String type = ".yml";
+
+ // get the request content into a String
+ String yml = null;
+ try (java.util.Scanner scanner = new java.util.Scanner(request.getInputStream());){
+ scanner.useDelimiter("\\A");
+ yml = scanner.hasNext() ? scanner.next() : "";
+ } catch (IOException e1) {
+ logger.error(e1);
+ PolicyLogger.error(errorMessage);
+ return;
+ }
+ PolicyLogger.info("Request from API to import new Optimization Service Model");
+ try (Writer writer = new BufferedWriter(new OutputStreamWriter(
+ new FileOutputStream(extractDir + File.separator + randomID+type), "utf-8"))) {
+ writer.write(yml);
+ } catch (IOException e) {
+ logger.error(e);
+ PolicyLogger.error(errorMessage);
+ return;
+ }
+
+ newOOF = new CreateNewOptimizationModel(fileName, serviceName, "API Import Service", version, randomID);
+ successMap = newOOF.addValuesToNewModel();
+ if (successMap.containsKey(successMessage)) {
+ successMap.clear();
+ successMap = newOOF.saveImportService();
+ }
+ }
+ }
+
+ // return a response to the PAP
+ if (successMap.containsKey(successMessage)) {
+ response.setStatus(HttpServletResponse.SC_OK);
+ 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(errorMsg, "modelExistsDB");
+ }else{
+ response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
+ response.addHeader(errorMsg, "importDB");
+ }
+ response.addHeader(operation, importHeader);
+ response.addHeader(service, serviceName);
+ }else if (successMap.get(errorMsg).contains("MISSING")){
+ response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
+ 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(errorMsg, "validation");
+ response.addHeader(operation, importHeader);
+ response.addHeader(service, serviceName);
+ }
+ }
} \ No newline at end of file