Policy 1707 commit to LF
[policy/engine.git] / ecomp-sdk-app / src / main / java / org / openecomp / policy / admin / XacmlAdminUI.java
diff --git a/ecomp-sdk-app/src/main/java/org/openecomp/policy/admin/XacmlAdminUI.java b/ecomp-sdk-app/src/main/java/org/openecomp/policy/admin/XacmlAdminUI.java
deleted file mode 100644 (file)
index aec8a0a..0000000
+++ /dev/null
@@ -1,266 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ECOMP Policy Engine
- * ================================================================================
- * 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.admin;
-
-
-import java.io.IOException;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.nio.file.Paths;
-
-import javax.servlet.ServletConfig;
-import javax.servlet.ServletException;
-import javax.servlet.annotation.WebInitParam;
-import javax.servlet.annotation.WebServlet;
-import javax.servlet.http.HttpServlet;
-
-
-import org.eclipse.jgit.api.Git;
-import org.eclipse.jgit.api.errors.GitAPIException;
-import org.eclipse.jgit.lib.Repository;
-import org.eclipse.jgit.lib.StoredConfig;
-import org.eclipse.jgit.storage.file.FileRepositoryBuilder;
-import org.hibernate.Session;
-import org.hibernate.SessionFactory;
-import org.openecomp.policy.rest.XACMLRest;
-import org.openecomp.policy.rest.XACMLRestProperties;
-import org.openecomp.policy.rest.dao.UserInfoDao;
-import org.openecomp.policy.rest.jpa.UserInfo;
-import org.openecomp.policy.rest.util.Webapps;
-import org.openecomp.policy.xacml.api.pap.PAPPolicyEngine;
-import org.springframework.beans.factory.annotation.Autowired;
-
-import com.att.research.xacml.util.XACMLProperties;
-import com.google.common.base.Splitter;
-
-
-
-public class XacmlAdminUI extends HttpServlet implements PAPNotificationBroadcaster.PAPNotificationBroadcastListener{
-
-       private static final long serialVersionUID = 1L;
-       //
-       // The PAP Engine
-       //
-       private PAPPolicyEngine papEngine;
-       private static Path repositoryPath;
-       private static Repository repository;
-       
-       @Autowired
-       UserInfoDao userInfoDao;
-       
-       @Autowired
-       SessionFactory sessionfactory;
-       
-       @WebServlet(value = "/policy#/*", description = "XACML Admin Console", asyncSupported = true, loadOnStartup = 1, initParams = { @WebInitParam(name = "XACML_PROPERTIES_NAME", value = "xacml.admin.properties", description = "The location of the properties file holding configuration information.") })
-       public static class Servlet extends HttpServlet {
-               private static final long serialVersionUID = -5274600248961852835L;
-
-               @Override
-               public void init(ServletConfig servletConfig) throws ServletException {
-                       super.init(servletConfig);
-                       //
-                       // Common initialization
-                       //
-                       XACMLRest.xacmlInit(servletConfig);
-                       //
-                       // Initialize GIT repository.
-                       //
-                       XacmlAdminUI.initializeGitRepository();
-                       //
-                       // Read the Props
-                       // The webapps Action and Config are read when getActionHome or getConfigHome are called
-                       try {
-                               getConfigHome();
-                       } catch (Exception e) {
-                               throw new ServletException(e);
-                       }
-
-               }
-
-
-               @Override
-               public void destroy() {
-                       if (XacmlAdminUI.repository != null) {
-                               XacmlAdminUI.repository.close();
-                       }
-                       super.destroy();
-               }
-       }
-       
-       private static void initializeGitRepository() throws ServletException {
-               
-               try {
-                       XacmlAdminUI.repositoryPath = Paths.get(XACMLProperties.getProperty(XACMLRestProperties.PROP_ADMIN_REPOSITORY));
-               } catch (Exception e) {
-                       XACMLProperties.reloadProperties();
-                       XacmlAdminUI.repositoryPath = Paths.get(XACMLProperties.getProperty(XACMLRestProperties.PROP_ADMIN_REPOSITORY));
-               }
-               FileRepositoryBuilder builder = new FileRepositoryBuilder();
-               try {
-                       XacmlAdminUI.repository = builder.setGitDir(XacmlAdminUI.repositoryPath.toFile()).readEnvironment().findGitDir().setBare().build();
-                       if (Files.notExists(XacmlAdminUI.repositoryPath)|| Files.notExists(Paths.get(XacmlAdminUI.repositoryPath.toString(), "HEAD"))) {
-                               //
-                               // Create it if it doesn't exist. As a bare repository
-                               XacmlAdminUI.repository.create();
-                               //
-                               // Add the magic file so remote works.
-                               //
-                               Path daemon = Paths.get(XacmlAdminUI.repositoryPath.toString(), "git-daemon-export-ok");
-                               Files.createFile(daemon);
-                       }
-               } catch (IOException e) {
-                       throw new ServletException(e.getMessage(), e.getCause());
-               }
-               //
-               // Make sure the workspace directory is created
-               //
-               Path workspace = Paths.get(XACMLProperties.getProperty(XACMLRestProperties.PROP_ADMIN_WORKSPACE));
-               workspace = workspace.toAbsolutePath();
-               if (Files.notExists(workspace)) {
-                       try {
-                               Files.createDirectory(workspace);
-                       } catch (IOException e) {
-                               throw new ServletException(e.getMessage(), e.getCause());
-                       }
-               }
-               //
-               // Create the user workspace directory
-               //
-               workspace = Paths.get(workspace.toString(), "admin");
-               
-               if (Files.notExists(workspace)) {
-                       try {
-                               Files.createDirectory(workspace);
-                       } catch (IOException e) {
-                               throw new ServletException(e.getMessage(), e.getCause());
-                       }
-               }
-               //
-               // Get the path to where the repository is going to be
-               //
-               Path gitPath = Paths.get(workspace.toString(), XacmlAdminUI.repositoryPath.getFileName().toString());
-               if (Files.notExists(gitPath)) {
-                       try {
-                               Files.createDirectory(gitPath);
-                       } catch (IOException e) {
-                               throw new ServletException(e.getMessage(), e.getCause());
-                       }
-               }
-               //
-               // Initialize the domain structure
-               //
-               String base = null;
-               String domain = XacmlAdminUI.getDomain();
-               if (domain != null) {
-                       for (String part : Splitter.on(':').trimResults().split(domain)) {
-                               if (base == null) {
-                                       base = part;
-                               }
-                               Path subdir = Paths.get(gitPath.toString(), part);
-                               if (Files.notExists(subdir)) {
-                                       try {
-                                               Files.createDirectory(subdir);
-                                               Files.createFile(Paths.get(subdir.toString(), ".svnignore"));
-                                       } catch (IOException e) {
-                                               throw new ServletException(e.getMessage(), e.getCause());
-                                       }
-                               }
-                       }
-               } else {
-                       try {
-                               Files.createFile(Paths.get(workspace.toString(), ".svnignore"));
-                               base = ".svnignore";
-                       } catch (IOException e) {
-                               throw new ServletException(e.getMessage(), e.getCause());
-                       }
-               }
-               try {
-                       //
-                       // These are the sequence of commands that must be done initially to
-                       // finish setting up the remote bare repository.
-                       //
-                       Git git = Git.init().setDirectory(gitPath.toFile()).setBare(false).call();
-                       git.add().addFilepattern(base).call();
-                       git.commit().setMessage("Initialize Bare Repository").call();
-                       StoredConfig config = git.getRepository().getConfig();
-                       config.setString("remote", "origin", "url", XacmlAdminUI.repositoryPath.toAbsolutePath().toString());
-                       config.setString("remote", "origin", "fetch", "+refs/heads/*:refs/remotes/origin/*");
-                       config.save();
-                       git.push().setRemote("origin").add("master").call();
-                       /*
-                        * This will not work unless
-                        * git.push().setRemote("origin").add("master").call(); is called
-                        * first. Otherwise it throws an exception. However, if the push()
-                        * is called then calling this function seems to add nothing.
-                        * 
-                        * git.branchCreate().setName("master")
-                        * .setUpstreamMode(SetupUpstreamMode.SET_UPSTREAM)
-                        * .setStartPoint("origin/master").setForce(true).call();
-                        */
-               } catch (GitAPIException | IOException e) {
-                       throw new ServletException(e.getMessage(), e.getCause());
-               }
-       }
-
-       public UserInfo getUserNameFromUserInfoTable(String createdBy){
-               String loginId = createdBy;
-               Object user = null;
-               Session session = sessionfactory.openSession();
-               user = session.load(UserInfo.class, loginId);
-               return (UserInfo) user;
-       }
-       
-       @Override
-       public void updateAllGroups() {
-
-       }
-
-       public PAPPolicyEngine getPapEngine() {
-               return papEngine;
-       }
-
-       public void setPapEngine(PAPPolicyEngine papEngine) {
-               this.papEngine = papEngine;
-       }
-       
-       public static String getConfigHome() {
-               return Webapps.getConfigHome();
-       }
-       
-       public static String getDomain() {
-               return XACMLProperties.getProperty(XACMLRestProperties.PROP_ADMIN_DOMAIN, "urn");
-       }
-       
-       // get the repository path from property file
-       public static Path getRepositoryPath() {
-               if(repositoryPath == null){
-                       try {
-                               initializeGitRepository();
-                       } catch (ServletException e) {
-
-                       }
-               }
-               return repositoryPath;
-       }
-       
-       
-}
-