aboutsummaryrefslogtreecommitdiffstats
path: root/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/components/CreateNewMicroServiceModel.java
diff options
context:
space:
mode:
Diffstat (limited to 'ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/components/CreateNewMicroServiceModel.java')
-rw-r--r--ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/components/CreateNewMicroServiceModel.java180
1 files changed, 104 insertions, 76 deletions
diff --git a/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/components/CreateNewMicroServiceModel.java b/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/components/CreateNewMicroServiceModel.java
index 86455aa30..103928cbc 100644
--- a/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/components/CreateNewMicroServiceModel.java
+++ b/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/components/CreateNewMicroServiceModel.java
@@ -8,9 +8,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.
@@ -21,6 +21,7 @@
package org.onap.policy.pap.xacml.rest.components;
+import com.google.gson.Gson;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
@@ -35,7 +36,6 @@ import java.util.List;
import java.util.Map;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;
-
import org.apache.commons.io.FileUtils;
import org.apache.commons.lang.StringUtils;
import org.onap.policy.common.logging.eelf.MessageCodes;
@@ -50,12 +50,10 @@ import org.onap.policy.rest.util.MSAttributeObject;
import org.onap.policy.rest.util.MSModelUtils;
import org.onap.policy.rest.util.MSModelUtils.MODEL_TYPE;
-import com.google.gson.Gson;
-
public class CreateNewMicroServiceModel {
private static final Logger logger = FlexLogger.getLogger(CreateNewMicroServiceModel.class);
private MicroServiceModels newModel = null;
- private HashMap<String,MSAttributeObject > classMap = new HashMap<>();
+ private HashMap<String, MSAttributeObject> classMap = new HashMap<>();
private MSModelUtils utils = new MSModelUtils(XACMLPapServlet.getMsOnapName(), XACMLPapServlet.getMsPolicyName());
@@ -64,7 +62,17 @@ public class CreateNewMicroServiceModel {
super();
}
- public CreateNewMicroServiceModel(String importFile, String modelName, String description, String version, String randomID) {
+ /**
+ * Instantiates a new creates the new micro service model.
+ *
+ * @param importFile the import file
+ * @param modelName the model name
+ * @param description the description
+ * @param version the version
+ * @param randomID the random ID
+ */
+ public CreateNewMicroServiceModel(String importFile, String modelName, String description, String version,
+ String randomID) {
this.newModel = new MicroServiceModels();
this.newModel.setVersion(version);
@@ -75,24 +83,24 @@ public class CreateNewMicroServiceModel {
String cleanUpFile = null;
Map<String, MSAttributeObject> tempMap = new HashMap<>();
- //Need to delete the file
- if (importFile.contains(".zip")){
+ // Need to delete the file
+ if (importFile.contains(".zip")) {
extractFolder(randomID + ".zip");
File directory = new File("ExtractDir" + File.separator + randomID);
List<File> fileList = listModelFiles(directory.toString());
- //get all the files from a director
+ // get all the files from a director
processFiles(modelName, fileList);
doCleanUpFiles(randomID);
- }else {
- if(importFile.contains(".yml")){
+ } else {
+ if (importFile.contains(".yml")) {
- processYmlModel("ExtractDir" + File.separator + randomID+".yml", modelName);
- cleanUpFile = "ExtractDir" + File.separator + randomID+".yml";
+ processYmlModel("ExtractDir" + File.separator + randomID + ".yml", modelName);
+ cleanUpFile = "ExtractDir" + File.separator + randomID + ".yml";
- }else{
- tempMap = utils.processEpackage("ExtractDir" + File.separator + randomID+".xmi", MODEL_TYPE.XMI);
+ } else {
+ tempMap = utils.processEpackage("ExtractDir" + File.separator + randomID + ".xmi", MODEL_TYPE.XMI);
classMap.putAll(tempMap);
- cleanUpFile = "ExtractDir" + File.separator + randomID+".xmi";
+ cleanUpFile = "ExtractDir" + File.separator + randomID + ".xmi";
}
File deleteFile = new File(cleanUpFile);
@@ -102,16 +110,16 @@ public class CreateNewMicroServiceModel {
private void processFiles(String modelName, List<File> fileList) {
Map<String, MSAttributeObject> tempMap;
- for (File file : fileList){
- if (file.isFile()){
- int i = file.getName().lastIndexOf('.');
- String type = file.getName().substring(i+1);
+ for (File file : fileList) {
+ if (file.isFile()) {
+ int indx = file.getName().lastIndexOf('.');
+ String type = file.getName().substring(indx + 1);
- if("yml".equalsIgnoreCase(type)){
+ if ("yml".equalsIgnoreCase(type)) {
processYmlModel(file.toString(), modelName);
- }else{
+ } else {
tempMap = utils.processEpackage(file.getAbsolutePath(), MODEL_TYPE.XMI);
classMap.putAll(tempMap);
@@ -133,17 +141,17 @@ public class CreateNewMicroServiceModel {
}
}
- private void processYmlModel(String fileName, String modelName){
+ private void processYmlModel(String fileName, String modelName) {
try {
utils.parseTosca(fileName);
- MSAttributeObject msAttributes= new MSAttributeObject();
+ MSAttributeObject msAttributes = new MSAttributeObject();
msAttributes.setClassName(modelName);
- LinkedHashMap<String, String> returnAttributeList =new LinkedHashMap<>();
+ LinkedHashMap<String, String> returnAttributeList = new LinkedHashMap<>();
returnAttributeList.put(modelName, utils.getAttributeString());
msAttributes.setAttribute(returnAttributeList);
@@ -151,24 +159,31 @@ public class CreateNewMicroServiceModel {
msAttributes.setMatchingSet(utils.getMatchableValues());
- LinkedHashMap<String, String> returnReferenceList =new LinkedHashMap<>();
+ LinkedHashMap<String, String> returnReferenceList = new LinkedHashMap<>();
returnReferenceList.put(modelName, utils.getReferenceAttributes());
msAttributes.setRefAttribute(returnReferenceList);
- if(!PolicyDBDao.isNullOrEmpty(utils.getListConstraints())){
- LinkedHashMap<String, String> enumList =new LinkedHashMap<>();
- String[] listArray=utils.getListConstraints().split("#");
- for(String str:listArray){
- String[] strArr= str.split("=");
- if(strArr.length>1){
+ if (!PolicyDBDao.isNullOrEmpty(utils.getListConstraints())) {
+ LinkedHashMap<String, String> enumList = new LinkedHashMap<>();
+ String[] listArray = utils.getListConstraints().split("#");
+ for (String str : listArray) {
+ String[] strArr = str.split("=");
+ if (strArr.length > 1) {
enumList.put(strArr[0], strArr[1]);
}
}
msAttributes.setEnumType(enumList);
}
+ if (utils.getJsonRuleFormation() != null) {
+ msAttributes.setRuleFormation(utils.getJsonRuleFormation());
+ }
- classMap=new LinkedHashMap<>();
+ if (utils.getDataOrderInfo() != null) {
+ msAttributes.setDataOrderInfo(utils.getDataOrderInfo());
+ }
+
+ classMap = new LinkedHashMap<>();
classMap.put(modelName, msAttributes);
} catch (Exception e) {
@@ -196,14 +211,14 @@ public class CreateNewMicroServiceModel {
int BUFFER = 2048;
File file = new File(zipFile);
- try(ZipFile zip = new ZipFile("ExtractDir" + File.separator +file)) {
+ try (ZipFile zip = new ZipFile("ExtractDir" + File.separator + file)) {
- String newPath = zipFile.substring(0, zipFile.length() - 4);
+ String newPath = zipFile.substring(0, zipFile.length() - 4);
new File(newPath).mkdir();
Enumeration zipFileEntries = zip.entries();
// Process each entry
- while (zipFileEntries.hasMoreElements()){
+ while (zipFileEntries.hasMoreElements()) {
// grab a zip file entry
ZipEntry entry = (ZipEntry) zipFileEntries.nextElement();
String currentEntry = entry.getName();
@@ -212,14 +227,13 @@ public class CreateNewMicroServiceModel {
destinationParent.mkdirs();
- if (!entry.isDirectory()){
- BufferedInputStream is = new BufferedInputStream(zip
- .getInputStream(entry));
+ if (!entry.isDirectory()) {
+ BufferedInputStream is = new BufferedInputStream(zip.getInputStream(entry));
int currentByte;
byte data[] = new byte[BUFFER];
- try(FileOutputStream fos = new FileOutputStream(destFile);
- BufferedOutputStream dest = new BufferedOutputStream(fos, BUFFER)) {
+ try (FileOutputStream fos = new FileOutputStream(destFile);
+ BufferedOutputStream dest = new BufferedOutputStream(fos, BUFFER)) {
while ((currentByte = is.read(data, 0, BUFFER)) != -1) {
dest.write(data, 0, currentByte);
@@ -229,7 +243,7 @@ public class CreateNewMicroServiceModel {
is.close();
}
- if (currentEntry.endsWith(".zip")){
+ if (currentEntry.endsWith(".zip")) {
extractFolder(destFile.getAbsolutePath());
}
}
@@ -241,60 +255,70 @@ public class CreateNewMicroServiceModel {
public Map<String, String> addValuesToNewModel(String type) {
Map<String, String> successMap = new HashMap<>();
- MSAttributeObject mainClass = null;
+ MSAttributeObject mainClass = null;
List<String> dependency = null;
String subAttribute = null;
- if (!classMap.containsKey(this.newModel.getModelName())){
- logger.error("Model Provided does not contain the service name provided in request. Unable to import new model");
- PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE, "AddValuesToNewModel", "Unable to pull out required values, file missing service name provided in request");
+ if (!classMap.containsKey(this.newModel.getModelName())) {
+ logger.error(
+ "Model Provided does not contain the service name provided in request. Unable to import new model");
+ PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE, "AddValuesToNewModel",
+ "Unable to pull out required values, file missing service name provided in request");
successMap.put("error", "MISSING");
return successMap;
}
mainClass = classMap.get(this.newModel.getModelName());
- if(".yml".equalsIgnoreCase(type)){
+ if (".yml".equalsIgnoreCase(type)) {
newModel.setDependency("[]");
- if(mainClass.getSubClass() != null){
- String value = new Gson().toJson(mainClass.getSubClass());
- newModel.setSub_attributes(value);
+ if (mainClass.getSubClass() != null) {
+ String value = new Gson().toJson(mainClass.getSubClass());
+ newModel.setSub_attributes(value);
}
- if(mainClass.getAttribute() != null){
- String attributes= mainClass.getAttribute().toString().replace("{", "").replace("}", "");
- int equalsIndexForAttributes= attributes.indexOf("=");
- String atttributesAfterFirstEquals= attributes.substring(equalsIndexForAttributes+1);
+ if (mainClass.getAttribute() != null) {
+ String attributes = mainClass.getAttribute().toString().replace("{", "").replace("}", "");
+ int equalsIndexForAttributes = attributes.indexOf("=");
+ String atttributesAfterFirstEquals = attributes.substring(equalsIndexForAttributes + 1);
this.newModel.setAttributes(atttributesAfterFirstEquals);
}
- if(mainClass.getRefAttribute() != null){
- String refAttributes= mainClass.getRefAttribute().toString().replace("{", "").replace("}", "");
- int equalsIndex= refAttributes.indexOf("=");
- String refAttributesAfterFirstEquals= refAttributes.substring(equalsIndex+1);
+ if (mainClass.getRefAttribute() != null) {
+ String refAttributes = mainClass.getRefAttribute().toString().replace("{", "").replace("}", "");
+ int equalsIndex = refAttributes.indexOf("=");
+ String refAttributesAfterFirstEquals = refAttributes.substring(equalsIndex + 1);
this.newModel.setRef_attributes(refAttributesAfterFirstEquals);
}
- if(mainClass.getEnumType() != null){
+ if (mainClass.getEnumType() != null) {
this.newModel.setEnumValues(mainClass.getEnumType().toString().replace("{", "").replace("}", ""));
}
- if(mainClass.getMatchingSet() != null){
+ if (mainClass.getMatchingSet() != null) {
this.newModel.setAnnotation(mainClass.getMatchingSet().toString().replace("{", "").replace("}", ""));
}
+ if (mainClass.getRuleFormation() != null) {
+ this.newModel.setRuleFormation(mainClass.getRuleFormation());
+ }
+
+ if (mainClass.getDataOrderInfo() != null) {
+ this.newModel.setDataOrderInfo(mainClass.getDataOrderInfo());
+ }
- }else{
+ } else {
- String dependTemp = StringUtils.replaceEach(mainClass.getDependency(), new String[]{"[", "]", " "}, new String[]{"", "", ""});
+ String dependTemp = StringUtils.replaceEach(mainClass.getDependency(), new String[] {"[", "]", " "},
+ new String[] {"", "", ""});
this.newModel.setDependency(dependTemp);
- if (this.newModel.getDependency() != null && !this.newModel.getDependency().isEmpty()){
+ if (this.newModel.getDependency() != null && !this.newModel.getDependency().isEmpty()) {
dependency = new ArrayList<String>(Arrays.asList(dependTemp.split(",")));
dependency = utils.getFullDependencyList(dependency, classMap);
- if (!dependency.isEmpty()){
- for (String element : dependency){
+ if (!dependency.isEmpty()) {
+ for (String element : dependency) {
MSAttributeObject temp = new MSAttributeObject();
- if (classMap.containsKey(element)){
+ if (classMap.containsKey(element)) {
temp = classMap.get(element);
mainClass.addAllRefAttribute(temp.getRefAttribute());
mainClass.addAllAttribute(temp.getAttribute());
@@ -305,19 +329,20 @@ public class CreateNewMicroServiceModel {
subAttribute = utils.createSubAttributes(dependency, classMap, this.newModel.getModelName());
this.newModel.setSub_attributes(subAttribute);
- if(mainClass.getAttribute() != null && !mainClass.getAttribute().isEmpty()){
+ if (mainClass.getAttribute() != null && !mainClass.getAttribute().isEmpty()) {
this.newModel.setAttributes(mainClass.getAttribute().toString().replace("{", "").replace("}", ""));
}
- if(mainClass.getRefAttribute() != null && !mainClass.getRefAttribute().isEmpty()){
- this.newModel.setRef_attributes(mainClass.getRefAttribute().toString().replace("{", "").replace("}", ""));
+ if (mainClass.getRefAttribute() != null && !mainClass.getRefAttribute().isEmpty()) {
+ this.newModel
+ .setRef_attributes(mainClass.getRefAttribute().toString().replace("{", "").replace("}", ""));
}
- if(mainClass.getEnumType() != null && !mainClass.getEnumType().isEmpty()){
+ if (mainClass.getEnumType() != null && !mainClass.getEnumType().isEmpty()) {
this.newModel.setEnumValues(mainClass.getEnumType().toString().replace("{", "").replace("}", ""));
}
- if(mainClass.getMatchingSet() != null && !mainClass.getMatchingSet().isEmpty()){
+ if (mainClass.getMatchingSet() != null && !mainClass.getMatchingSet().isEmpty()) {
this.newModel.setAnnotation(mainClass.getMatchingSet().toString().replace("{", "").replace("}", ""));
}
}
@@ -326,14 +351,15 @@ public class CreateNewMicroServiceModel {
}
- public Map<String, String> saveImportService(){
+ public Map<String, String> saveImportService() {
String modelName = this.newModel.getModelName();
String imported_by = "API";
String version = this.newModel.getVersion();
Map<String, String> successMap = new HashMap<>();
CommonClassDaoImpl dbConnection = new CommonClassDaoImpl();
- List<Object> result = dbConnection.getDataById(MicroServiceModels.class, "modelName:version", modelName+":"+version);
- if(result == null || result.isEmpty()){
+ List<Object> result =
+ dbConnection.getDataById(MicroServiceModels.class, "modelName:version", modelName + ":" + version);
+ if (result == null || result.isEmpty()) {
MicroServiceModels model = new MicroServiceModels();
model.setModelName(modelName);
model.setVersion(version);
@@ -345,13 +371,15 @@ public class CreateNewMicroServiceModel {
model.setRef_attributes(this.newModel.getRef_attributes());
model.setSub_attributes(this.newModel.getSub_attributes());
model.setDataOrderInfo(this.newModel.getDataOrderInfo());
+ model.setDecisionModel(this.newModel.isDecisionModel());
+ model.setRuleFormation(this.newModel.getRuleFormation());
UserInfo userInfo = new UserInfo();
userInfo.setUserLoginId(imported_by);
userInfo.setUserName(imported_by);
model.setUserCreatedBy(userInfo);
dbConnection.save(model);
successMap.put("success", "success");
- }else{
+ } else {
successMap.put("DBError", "EXISTS");
logger.error("Import new service failed. Service already exists");
}