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;
}
}