diff options
author | Ravindra Bakkamanthala <rb7147@att.com> | 2017-06-05 22:42:02 -0400 |
---|---|---|
committer | Ravindra Bakkamanthala <rb7147@att.com> | 2017-06-07 14:47:34 -0400 |
commit | fc5c07705edc4dcb7083b39116a43844bb6a1490 (patch) | |
tree | ab5c7258197fc776fef8106413704a5f0a829160 /ECOMP-PAP-REST/src/main/java/org/openecomp/policy/pap/xacml/rest/components/CreateNewMicroSerivceModel.java | |
parent | d9007d680d19734d5dc106479784c420236cca4b (diff) |
Fixed the Policy API issues and Bugfixes
Change-Id: I6e8b54442421b6ebd0ff88426fc6e5f3a36b0690
Signed-off-by: Ravindra Bakkamanthala <rb7147@att.com>
Diffstat (limited to 'ECOMP-PAP-REST/src/main/java/org/openecomp/policy/pap/xacml/rest/components/CreateNewMicroSerivceModel.java')
-rw-r--r-- | ECOMP-PAP-REST/src/main/java/org/openecomp/policy/pap/xacml/rest/components/CreateNewMicroSerivceModel.java | 294 |
1 files changed, 0 insertions, 294 deletions
diff --git a/ECOMP-PAP-REST/src/main/java/org/openecomp/policy/pap/xacml/rest/components/CreateNewMicroSerivceModel.java b/ECOMP-PAP-REST/src/main/java/org/openecomp/policy/pap/xacml/rest/components/CreateNewMicroSerivceModel.java deleted file mode 100644 index 0e4e409d3..000000000 --- a/ECOMP-PAP-REST/src/main/java/org/openecomp/policy/pap/xacml/rest/components/CreateNewMicroSerivceModel.java +++ /dev/null @@ -1,294 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ECOMP-PAP-REST - * ================================================================================ - * Copyright (C) 2017 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. - * 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. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.policy.pap.xacml.rest.components; - -import java.io.BufferedInputStream; -import java.io.BufferedOutputStream; -import java.io.File; -import java.io.FileOutputStream; -import java.io.IOException; -import java.sql.Connection; -import java.sql.DriverManager; -import java.sql.ResultSet; -import java.sql.SQLException; -import java.sql.Statement; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Enumeration; -import java.util.HashMap; -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.openecomp.policy.common.logging.eelf.MessageCodes; -import org.openecomp.policy.common.logging.eelf.PolicyLogger; -import org.openecomp.policy.common.logging.flexlogger.FlexLogger; -import org.openecomp.policy.common.logging.flexlogger.Logger; -import org.openecomp.policy.pap.xacml.rest.XACMLPapServlet; -import org.openecomp.policy.rest.XACMLRestProperties; -import org.openecomp.policy.rest.jpa.MicroServiceModels; -import org.openecomp.policy.rest.jpa.UserInfo; -import org.openecomp.policy.rest.util.MSAttributeObject; -import org.openecomp.policy.rest.util.MSModelUtils; -import org.openecomp.policy.rest.util.MSModelUtils.MODEL_TYPE; - -import com.att.research.xacml.util.XACMLProperties; - -public class CreateNewMicroSerivceModel { - private static final Logger logger = FlexLogger.getLogger(CreateNewMicroSerivceModel.class); - private MicroServiceModels newModel = null; - private HashMap<String,MSAttributeObject > classMap = new HashMap<>(); - - /* - * These are the parameters needed for DB access from the PAP - */ - private static String papDbDriver = null; - private static String papDbUrl = null; - private static String papDbUser = null; - private static String papDbPassword = null; - - MSModelUtils utils = new MSModelUtils(XACMLPapServlet.getMsEcompName(), XACMLPapServlet.getMsPolicyName()); - - public CreateNewMicroSerivceModel(String fileName, String serviceName, String string, String version) { - super(); - } - - public CreateNewMicroSerivceModel(String importFile, String modelName, String description, String version, String randomID) { - - this.newModel = new MicroServiceModels(); - this.newModel.setDescription(description); - this.newModel.setVersion(version); - this.newModel.setModelName(modelName); - UserInfo userInfo = new UserInfo(); - userInfo.setUserLoginId("API"); - this.newModel.setUserCreatedBy(userInfo); - String cleanUpFile = null; - - HashMap<String, MSAttributeObject> tempMap = new HashMap<>(); - //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 - for (File file : fileList){ - if (file.isFile()){ - tempMap = utils.processEpackage(file.getAbsolutePath(), MODEL_TYPE.XMI); - classMap.putAll(tempMap); - } - } - cleanUpFile = "ExtractDir" + File.separator + randomID + ".zip"; - try { - FileUtils.deleteDirectory(new File("ExtractDir" + File.separator + randomID)); - FileUtils.deleteDirectory(new File(randomID)); - File deleteFile = new File(cleanUpFile); - FileUtils.forceDelete(deleteFile); - } catch (IOException e) { - logger.error("Failed to unzip model file " + randomID); - } - }else { - tempMap = utils.processEpackage("ExtractDir" + File.separator + randomID+".xmi", MODEL_TYPE.XMI); - classMap.putAll(tempMap); - cleanUpFile = "ExtractDir" + File.separator + randomID+".xmi"; - File deleteFile = new File(cleanUpFile); - deleteFile.delete(); - } - } - - private List<File> listModelFiles(String directoryName) { - File directory = new File(directoryName); - List<File> resultList = new ArrayList<>(); - File[] fList = directory.listFiles(); - for (File file : fList) { - if (file.isFile()) { - resultList.add(file); - } else if (file.isDirectory()) { - resultList.addAll(listModelFiles(file.getAbsolutePath())); - } - } - return resultList; - } - - @SuppressWarnings("rawtypes") - private void extractFolder(String zipFile) { - int BUFFER = 2048; - File file = new File(zipFile); - - ZipFile zip; - try { - zip = new ZipFile("ExtractDir" + File.separator +file); - String newPath = zipFile.substring(0, zipFile.length() - 4); - new File(newPath).mkdir(); - Enumeration zipFileEntries = zip.entries(); - - // Process each entry - while (zipFileEntries.hasMoreElements()) - { - // grab a zip file entry - ZipEntry entry = (ZipEntry) zipFileEntries.nextElement(); - String currentEntry = entry.getName(); - File destFile = new File("ExtractDir" + File.separator + newPath + File.separator + currentEntry); - File destinationParent = destFile.getParentFile(); - - destinationParent.mkdirs(); - - if (!entry.isDirectory()) - { - BufferedInputStream is = new BufferedInputStream(zip - .getInputStream(entry)); - int currentByte; - - byte data[] = new byte[BUFFER]; - - FileOutputStream fos = new FileOutputStream(destFile); - BufferedOutputStream dest = new BufferedOutputStream(fos, - BUFFER); - - while ((currentByte = is.read(data, 0, BUFFER)) != -1) { - dest.write(data, 0, currentByte); - } - dest.flush(); - dest.close(); - is.close(); - } - - if (currentEntry.endsWith(".zip")) - { - extractFolder(destFile.getAbsolutePath()); - } - } - } catch (IOException e) { - logger.error("Failed to unzip model file " + zipFile); - } - } - - public Map<String, String> addValuesToNewModel() { - - Map<String, String> successMap = new HashMap<>(); - MSAttributeObject mainClass = null; - ArrayList<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"); - successMap.put("error", "MISSING"); - return successMap; - } - mainClass = classMap.get(this.newModel.getModelName()); - String dependTemp = StringUtils.replaceEach(mainClass.getDependency(), new String[]{"[", "]", " "}, new String[]{"", "", ""}); - this.newModel.setDependency(dependTemp); - if (!this.newModel.getDependency().equals("")){ - dependency = new ArrayList<String>(Arrays.asList(dependTemp.split(","))); - dependency = utils.getFullDependencyList(dependency, classMap); - if (!dependency.isEmpty()){ - for (String element : dependency){ - MSAttributeObject temp = new MSAttributeObject(); - if (classMap.containsKey(element)){ - temp = classMap.get(element); - mainClass.addAllRefAttribute(temp.getRefAttribute()); - mainClass.addAllAttribute(temp.getAttribute()); - } - } - } - } - subAttribute = utils.createSubAttributes(dependency, classMap, this.newModel.getModelName()); - - this.newModel.setSub_attributes(subAttribute); - this.newModel.setAttributes(mainClass.getAttribute().toString().replace("{", "").replace("}", "")); - this.newModel.setRef_attributes(mainClass.getRefAttribute().toString().replace("{", "").replace("}", "")); - this.newModel.setEnumValues(mainClass.getEnumType().toString().replace("{", "").replace("}", "")); - this.newModel.setAnnotation(mainClass.getMatchingSet().toString().replace("{", "").replace("}", "")); - successMap.put("success", "success"); - return successMap; - - } - - @SuppressWarnings("resource") - public Map<String, String> saveImportService(){ - Map<String, String> successMap = new HashMap<>(); - - Connection con = null; - Statement st = null; - ResultSet rs = null; - String modelName = this.newModel.getModelName(); - String imported_by = "API"; - String version = this.newModel.getVersion(); - String insertQuery = null; - int ID = 0; - - /* - * Retrieve the property values for db access from the xacml.pap.properties - */ - papDbDriver = XACMLProperties.getProperty(XACMLRestProperties.PROP_PAP_DB_DRIVER); - papDbUrl = XACMLProperties.getProperty(XACMLRestProperties.PROP_PAP_DB_URL); - papDbUser = XACMLProperties.getProperty(XACMLRestProperties.PROP_PAP_DB_USER); - papDbPassword = XACMLProperties.getProperty(XACMLRestProperties.PROP_PAP_DB_PASSWORD); - - try { - //Get DB Connection - Class.forName(papDbDriver); - con = DriverManager.getConnection(papDbUrl,papDbUser,papDbPassword); - st = con.createStatement(); - String queryString ="SELECT * FROM MicroServiceModels WHERE modelName='" + modelName + "' AND version='" + version+ "';"; - rs = st.executeQuery(queryString); - - if(rs.next()){ - successMap.put("DBError", "EXISTS"); - logger.error("Import new service failed. Service already exists"); - }else{ - rs = st.executeQuery("SELECT MAX(ID) AS ID FROM MicroServiceModels;"); - if(rs.next()){ - ID = rs.getInt("ID"); - ID++; - } - - String newDependency = "[" + this.newModel.getDependency() + "]"; - this.newModel.setDependency(newDependency); - insertQuery = "INSERT INTO MicroServiceModels (ID, modelName, Dependency, DESCRIPTION, attributes, ref_attributes, sub_attributes, version, imported_by, enumValues, annotation) " - + "VALUES("+ID+",'"+modelName+"','"+ this.newModel.getDependency()+"','"+this.newModel.getDescription()+"','"+this.newModel.getAttributes()+ - "','"+this.newModel.getRef_attributes()+"','"+this.newModel.getSub_attributes()+"','"+version+"','"+imported_by+"','"+this.newModel.getEnumValues()+"','"+this.newModel.getAnnotation()+"')"; - st.executeUpdate(insertQuery); - successMap.put("success", "success"); - } - rs.close(); - }catch (ClassNotFoundException e) { - PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, "saveImportService", "Exception querying MicroServiceModels"); - successMap.put("DBError", "Error Query"); - } catch (SQLException e) { - PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, "saveImportService", "Exception querying MicroServiceModels"); - successMap.put("DBError", "Error Query"); - } finally { - try{ - if (con!=null) con.close(); - if (rs!=null) rs.close(); - if (st!=null) st.close(); - } catch (Exception ex){ - PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, ex, "saveImportService", "Exception querying MicroServiceModels"); - } - } - - return successMap; - } -} |