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.java61
1 files changed, 54 insertions, 7 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 c804f2b20..7382a77a1 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
@@ -38,6 +38,7 @@ 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.components.CreateNewOptimizationModel;
public class ImportService {
private static final Logger logger = FlexLogger.getLogger(ImportService.class);
@@ -50,6 +51,7 @@ public class ImportService {
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");
@@ -59,7 +61,7 @@ public class ImportService {
if(serviceName == null || serviceName.isEmpty() || !serviceName.matches(REGEX)){
response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
- response.addHeader(errorMsg, "missing");
+ response.addHeader(errorMsg, MISSING);
response.addHeader(operation, importHeader);
response.addHeader(service, invalidServiceName);
return;
@@ -78,7 +80,7 @@ public class ImportService {
logger.error(e);
PolicyLogger.error(errorMessage);
response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
- response.addHeader(errorMsg, "missing");
+ response.addHeader(errorMsg, MISSING);
response.addHeader(operation, importHeader);
response.addHeader(service, serviceName);
}
@@ -88,12 +90,16 @@ public class ImportService {
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")){
+ 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;
@@ -107,9 +113,9 @@ public class ImportService {
PolicyLogger.error(errorMessage);
return;
}
- PolicyLogger.info("XML request from API for import new Service");
+ PolicyLogger.info("Request from API to 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+type), "utf-8"))) {
writer.write(xmi);
} catch (IOException e) {
logger.error(e);
@@ -138,13 +144,54 @@ public class ImportService {
}
}
}
+
newMS = new CreateNewMicroServiceModel(fileName, serviceName, "API", version, randomID);
- successMap = newMS.addValuesToNewModel();
+
+ 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
@@ -166,7 +213,7 @@ public class ImportService {
response.addHeader(service, serviceName);
}else if (successMap.get(errorMsg).contains("MISSING")){
response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
- response.addHeader(errorMsg, "missing");
+ response.addHeader(errorMsg, MISSING);
response.addHeader(operation, importHeader);
response.addHeader(service, serviceName);
}else if (successMap.get(errorMsg).contains("VALIDATION")){