You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by jo...@apache.org on 2016/09/28 17:28:06 UTC

[13/17] ambari git commit: AMBARI-18467. Ambari server does not come up after restart if cluster install fails. (Balazs Bence Sari via stoader)

AMBARI-18467. Ambari server does not come up after restart if cluster install fails. (Balazs Bence Sari via stoader)


Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/2700bd12
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/2700bd12
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/2700bd12

Branch: refs/heads/branch-feature-AMBARI-18456
Commit: 2700bd125f2f9bbae2ebfcc0831ec881097b4cff
Parents: a0fff84
Author: Balazs Bence Sari <bs...@hortonworks.com>
Authored: Wed Sep 28 13:42:59 2016 +0200
Committer: Toader, Sebastian <st...@hortonworks.com>
Committed: Wed Sep 28 13:42:59 2016 +0200

----------------------------------------------------------------------
 .../stack/UpdateActiveRepoVersionOnStartup.java |  9 +++++--
 .../UpdateActiveRepoVersionOnStartupTest.java   | 28 +++++++++++++-------
 2 files changed, 26 insertions(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/2700bd12/ambari-server/src/main/java/org/apache/ambari/server/stack/UpdateActiveRepoVersionOnStartup.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/stack/UpdateActiveRepoVersionOnStartup.java b/ambari-server/src/main/java/org/apache/ambari/server/stack/UpdateActiveRepoVersionOnStartup.java
index 1413c66..8a32a42 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/stack/UpdateActiveRepoVersionOnStartup.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/stack/UpdateActiveRepoVersionOnStartup.java
@@ -94,9 +94,14 @@ public class UpdateActiveRepoVersionOnStartup {
         LOG.info("Updating existing repo versions for cluster {} on stack {}-{}",
             cluster.getClusterName(), stack.getName(), stack.getVersion());
         ClusterVersionEntity clusterVersion = clusterVersionDao.findByClusterAndStateCurrent(cluster.getClusterName());
+        if (null != clusterVersion) {
           RepositoryVersionEntity repoVersion = clusterVersion.getRepositoryVersion();
-        updateRepoVersion(stack, repoVersion);
-        repositoryVersionDao.merge(repoVersion);
+          updateRepoVersion(stack, repoVersion);
+          repositoryVersionDao.merge(repoVersion);
+        }
+        else {
+          LOG.warn("Missing cluster version for cluster {}", cluster.getClusterName());
+        }
       }
     }
     catch(Exception ex) {

http://git-wip-us.apache.org/repos/asf/ambari/blob/2700bd12/ambari-server/src/test/java/org/apache/ambari/server/stack/UpdateActiveRepoVersionOnStartupTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/stack/UpdateActiveRepoVersionOnStartupTest.java b/ambari-server/src/test/java/org/apache/ambari/server/stack/UpdateActiveRepoVersionOnStartupTest.java
index 9c54a88..24ab0e8 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/stack/UpdateActiveRepoVersionOnStartupTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/stack/UpdateActiveRepoVersionOnStartupTest.java
@@ -37,7 +37,6 @@ import org.apache.ambari.server.state.RepositoryInfo;
 import org.apache.ambari.server.state.StackInfo;
 import org.apache.ambari.server.state.stack.upgrade.RepositoryVersionHelper;
 import org.junit.Assert;
-import org.junit.Before;
 import org.junit.Test;
 
 import com.google.common.base.Charsets;
@@ -61,10 +60,17 @@ public class UpdateActiveRepoVersionOnStartupTest {
 
   @Test
   public void addAServiceRepoToExistingRepoVersion() throws Exception {
+    init(true);
     activeRepoUpdater.process();
     verifyRepoIsAdded();
   }
 
+  @Test
+  public void missingClusterVersionShouldNotCauseException() throws Exception {
+    init(false);
+    activeRepoUpdater.process();
+  }
+
   /**
    * Verifies if the add-on service repo is added to the repo version entity, both json and xml representations.
    *
@@ -84,8 +90,7 @@ public class UpdateActiveRepoVersionOnStartupTest {
     Assert.assertTrue(ADD_ON_REPO_ID + " is add-on repo was not added to JSON representation", serviceRepoAddedToJson);
   }
 
-  @Before
-  public void init() throws Exception {
+  public void init(boolean addClusterVersion) throws Exception {
     ClusterDAO clusterDao = mock(ClusterDAO.class);
     ClusterVersionDAO clusterVersionDAO = mock(ClusterVersionDAO.class);
     repositoryVersionDao = mock(RepositoryVersionDAO.class);
@@ -125,17 +130,22 @@ public class UpdateActiveRepoVersionOnStartupTest {
       }
     };
     Injector injector = Guice.createInjector(testModule);
-    repoVersion = new RepositoryVersionEntity();
-    repoVersion.setStack(stackEntity);
-    repoVersion.setOperatingSystems(resourceAsString("org/apache/ambari/server/stack/UpdateActiveRepoVersionOnStartupTest_initialRepos.json"));
-    ClusterVersionEntity clusterVersion = new ClusterVersionEntity();
-    clusterVersion.setRepositoryVersion(repoVersion);
-    when(clusterVersionDAO.findByClusterAndStateCurrent(CLUSTER_NAME)).thenReturn(clusterVersion);
+    if (addClusterVersion) {
+      repoVersion = new RepositoryVersionEntity();
+      repoVersion.setStack(stackEntity);
+      repoVersion.setOperatingSystems(resourceAsString("org/apache/ambari/server/stack/UpdateActiveRepoVersionOnStartupTest_initialRepos.json"));
+      ClusterVersionEntity clusterVersion = new ClusterVersionEntity();
+      clusterVersion.setRepositoryVersion(repoVersion);
+      when(clusterVersionDAO.findByClusterAndStateCurrent(CLUSTER_NAME)).thenReturn(clusterVersion);
+
+    }
 
     activeRepoUpdater = new UpdateActiveRepoVersionOnStartup(clusterDao,
         clusterVersionDAO, repositoryVersionDao, repositoryVersionHelper, metaInfo);
   }
 
+
+
   private static String resourceAsString(String resourceName) throws IOException {
     return Resources.toString(Resources.getResource(resourceName), Charsets.UTF_8);
   }