diff --git a/ambari-server/src/main/assemblies/server.xml b/ambari-server/src/main/assemblies/server.xml index d31b77353eb..cc6c82b992d 100644 --- a/ambari-server/src/main/assemblies/server.xml +++ b/ambari-server/src/main/assemblies/server.xml @@ -314,6 +314,11 @@ conf/unix/ca.config /var/lib/ambari-server/keys + + 755 + target/classes/cluster-settings.xml + /var/lib/ambari-server/resources + 755 target/classes/Ambari-DDL-Postgres-CREATE.sql diff --git a/ambari-server/src/main/java/org/apache/ambari/server/mpack/MpackManager.java b/ambari-server/src/main/java/org/apache/ambari/server/mpack/MpackManager.java index 0aee6a7e6a7..e2728178a33 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/mpack/MpackManager.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/mpack/MpackManager.java @@ -48,7 +48,6 @@ import org.apache.ambari.server.state.Module; import org.apache.ambari.server.state.Mpack; import org.apache.ambari.server.state.OsSpecific; -import org.apache.ambari.server.state.StackId; import org.apache.ambari.server.state.stack.StackMetainfoXml; import org.apache.commons.compress.archivers.tar.TarArchiveEntry; import org.apache.commons.compress.archivers.tar.TarArchiveInputStream; @@ -208,13 +207,13 @@ public MpackResponse registerMpack(MpackRequest mpackRequest) if (mpackId != null) { mpackMap.put(mpackId, mpack); mpack.setMpackId(mpackId); - populateStackDB(mpack); - return new MpackResponse(mpack); - } else { - String message = "Mpack :" + mpackRequest.getMpackName() + " version: " + mpackRequest.getMpackVersion() - + " already exists in server"; - throw new ResourceAlreadyExistsException(message); + if (populateStackDB(mpack)) + return new MpackResponse(mpack); } + String message = "Mpack :" + mpackRequest.getMpackName() + " version: " + mpackRequest.getMpackVersion() + + " already exists in server"; + throw new ResourceAlreadyExistsException(message); + } /*** @@ -433,17 +432,8 @@ private Boolean createMpackDirectory(Mpack mpack) */ private void createSymLinks(Mpack mpack) throws IOException { - String stackId = mpack.getStackId(); - String stackName = ""; - String stackVersion = ""; - if (stackId == null) { - stackName = mpack.getName(); - stackVersion = mpack.getVersion(); - } else { - StackId id = new StackId(stackId); - stackName = id.getStackName(); - stackVersion = id.getStackVersion(); - } + String stackName = mpack.getName(); + String stackVersion = mpack.getVersion(); File stack = new File(stackRoot + "/" + stackName); Path stackPath = Paths.get(stackRoot + "/" + stackName + "/" + stackVersion); Path mpackPath = Paths.get(mpacksStaging + "/" + mpack.getName() + "/" + mpack.getVersion()); @@ -517,8 +507,8 @@ protected Long populateDB(Mpack mpack) throws IOException { String mpackName = mpack.getName(); String mpackVersion = mpack.getVersion(); List resultSet = mpackDAO.findByNameVersion(mpackName, mpackVersion); - - if (resultSet.size() == 0) { + StackEntity stackEntity = stackDAO.find(mpackName, mpackVersion); + if (resultSet.size() == 0 && stackEntity == null) { LOG.info("Adding mpack {}-{} to the database", mpackName, mpackVersion); MpackEntity mpackEntity = new MpackEntity(); @@ -540,20 +530,10 @@ protected Long populateDB(Mpack mpack) throws IOException { * @param mpack * @throws IOException */ - protected void populateStackDB(Mpack mpack) throws IOException { - - String stackId = mpack.getStackId(); - String stackName = ""; - String stackVersion = ""; - if (stackId == null) { - stackName = mpack.getName(); - stackVersion = mpack.getVersion(); - } else { - StackId id = new StackId(stackId); - stackName = id.getStackName(); - stackVersion = id.getStackVersion(); - } + protected boolean populateStackDB(Mpack mpack) throws IOException { + String stackName = mpack.getName(); + String stackVersion = mpack.getVersion(); StackEntity stackEntity = stackDAO.find(stackName, stackVersion); if (stackEntity == null) { LOG.info("Adding stack {}-{} to the database", stackName, stackVersion); @@ -563,11 +543,10 @@ protected void populateStackDB(Mpack mpack) throws IOException { stackEntity.setStackVersion(stackVersion); stackEntity.setMpackId(mpack.getMpackId()); stackDAO.create(stackEntity); + return true; } else { - LOG.info("Updating stack {}-{} to the database", stackName, stackVersion); - - stackEntity.setMpackId(mpack.getMpackId()); - stackDAO.merge(stackEntity); + LOG.error("Stack {}-{} already exists in the database", stackName, stackVersion); + return false; } }