You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by dm...@apache.org on 2015/05/13 16:46:51 UTC

ambari git commit: Revert "AMBARI-10818. Hit re-install when performing an RU - UI seems to have stuck at installing even though the request has completed (dlysnichenko)"

Repository: ambari
Updated Branches:
  refs/heads/trunk 7e4cba5cf -> 27f566dd7


Revert "AMBARI-10818. Hit re-install when performing an RU - UI seems to have stuck at installing even though the request has completed (dlysnichenko)"

This reverts commit ac1ba0e4f2595e4dc109f3aa5a0ae06f47f4c012.


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

Branch: refs/heads/trunk
Commit: 27f566dd7d456aa585c9ebeebfb49574d25c5679
Parents: 7e4cba5
Author: Lisnichenko Dmitro <dl...@hortonworks.com>
Authored: Wed May 13 17:46:35 2015 +0300
Committer: Lisnichenko Dmitro <dl...@hortonworks.com>
Committed: Wed May 13 17:46:35 2015 +0300

----------------------------------------------------------------------
 .../DistributeRepositoriesActionListener.java   | 163 +++++++++----------
 .../server/agent/TestHeartbeatHandler.java      |   3 -
 2 files changed, 77 insertions(+), 89 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/27f566dd/ambari-server/src/main/java/org/apache/ambari/server/events/listeners/upgrade/DistributeRepositoriesActionListener.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/events/listeners/upgrade/DistributeRepositoriesActionListener.java b/ambari-server/src/main/java/org/apache/ambari/server/events/listeners/upgrade/DistributeRepositoriesActionListener.java
index 21e3a48..5600ef1 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/events/listeners/upgrade/DistributeRepositoriesActionListener.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/events/listeners/upgrade/DistributeRepositoriesActionListener.java
@@ -19,7 +19,6 @@ package org.apache.ambari.server.events.listeners.upgrade;
 
 import java.util.List;
 
-import com.google.inject.persist.UnitOfWork;
 import org.apache.ambari.server.AmbariException;
 import org.apache.ambari.server.EagerSingleton;
 import org.apache.ambari.server.actionmanager.HostRoleStatus;
@@ -68,9 +67,6 @@ public class DistributeRepositoriesActionListener {
   @Inject
   private RepositoryVersionDAO repoVersionDAO;
 
-  @Inject
-  private UnitOfWork unitOfWork;
-
 
   /**
    * Constructor.
@@ -89,101 +85,96 @@ public class DistributeRepositoriesActionListener {
       return;
     }
 
-    try {
-      unitOfWork.begin();
-      if (LOG.isDebugEnabled()) {
-        LOG.debug(event.toString());
-      }
-
-      RepositoryVersionState newHostState = RepositoryVersionState.INSTALL_FAILED;
-      Long clusterId = event.getClusterId();
-      if (clusterId == null) {
-        LOG.error("Distribute Repositories expected a cluster Id for host " + event.getHostname());
-        return;
-      }
-
-      String repositoryVersion = null;
-
-      if (event.getCommandReport() == null) {
-        LOG.error("Command report is null, marking action as INSTALL_FAILED");
-      } else {
-        // Parse structured output
-        try {
-          DistributeRepositoriesStructuredOutput structuredOutput = StageUtils.getGson().fromJson(
-                  event.getCommandReport().getStructuredOut(),
-                  DistributeRepositoriesStructuredOutput.class);
-
-          repositoryVersion = structuredOutput.getInstalledRepositoryVersion();
-
-          if (event.getCommandReport().getStatus().equals(HostRoleStatus.COMPLETED.toString())) {
-            newHostState = RepositoryVersionState.INSTALLED;
-
-            if (null != structuredOutput.getActualVersion() &&
-                    null != structuredOutput.getInstalledRepositoryVersion() &&
-                    null != structuredOutput.getStackId() &&
-                    !structuredOutput.getActualVersion().equals(structuredOutput.getInstalledRepositoryVersion())) {
+    if (LOG.isDebugEnabled()) {
+      LOG.debug(event.toString());
+    }
 
-              // !!! getInstalledRepositoryVersion() from the agent is the one
-              // entered in the UI.  getActualVersion() is computed.
+    RepositoryVersionState newHostState = RepositoryVersionState.INSTALL_FAILED;
+    Long clusterId = event.getClusterId();
+    if (clusterId == null) {
+      LOG.error("Distribute Repositories expected a cluster Id for host " + event.getHostname());
+      return;
+    }
 
-              StackId stackId = new StackId(structuredOutput.getStackId());
-              RepositoryVersionEntity version = repoVersionDAO.findByStackAndVersion(
-                      stackId, structuredOutput.getInstalledRepositoryVersion());
+    String repositoryVersion = null;
+
+    if (event.getCommandReport() == null) {
+      LOG.error("Command report is null, marking action as INSTALL_FAILED");
+    } else {
+      // Parse structured output
+      try {
+        DistributeRepositoriesStructuredOutput structuredOutput = StageUtils.getGson().fromJson(
+                event.getCommandReport().getStructuredOut(),
+                DistributeRepositoriesStructuredOutput.class);
+
+        repositoryVersion = structuredOutput.getInstalledRepositoryVersion();
+
+        if (event.getCommandReport().getStatus().equals(HostRoleStatus.COMPLETED.toString())) {
+          newHostState = RepositoryVersionState.INSTALLED;
+
+          if (null != structuredOutput.getActualVersion() &&
+              null != structuredOutput.getInstalledRepositoryVersion() &&
+              null != structuredOutput.getStackId() &&
+              !structuredOutput.getActualVersion().equals(structuredOutput.getInstalledRepositoryVersion())) {
+
+            // !!! getInstalledRepositoryVersion() from the agent is the one
+            // entered in the UI.  getActualVersion() is computed.
+
+            StackId stackId = new StackId(structuredOutput.getStackId());
+            RepositoryVersionEntity version = repoVersionDAO.findByStackAndVersion(
+                stackId, structuredOutput.getInstalledRepositoryVersion());
+
+            if (null != version) {
+              LOG.info("Repository version {} was found, but {} is the actual value",
+                  structuredOutput.getInstalledRepositoryVersion(),
+                  structuredOutput.getActualVersion());
+              // !!! the entered version is not correct
+              version.setVersion(structuredOutput.getActualVersion());
+              repoVersionDAO.merge(version);
+              repositoryVersion = structuredOutput.getActualVersion();
+            } else {
+              // !!! extra check that the actual version is correct
+              stackId = new StackId(structuredOutput.getStackId());
+              version = repoVersionDAO.findByStackAndVersion(stackId,
+                  structuredOutput.getActualVersion());
+
+              LOG.debug("Repository version {} was not found, check for {}.  Found={}",
+                  structuredOutput.getInstalledRepositoryVersion(),
+                  structuredOutput.getActualVersion(),
+                  Boolean.valueOf(null != version));
 
               if (null != version) {
-                LOG.info("Repository version {} was found, but {} is the actual value",
-                        structuredOutput.getInstalledRepositoryVersion(),
-                        structuredOutput.getActualVersion());
-                // !!! the entered version is not correct
-                version.setVersion(structuredOutput.getActualVersion());
-                repoVersionDAO.merge(version);
                 repositoryVersion = structuredOutput.getActualVersion();
-              } else {
-                // !!! extra check that the actual version is correct
-                stackId = new StackId(structuredOutput.getStackId());
-                version = repoVersionDAO.findByStackAndVersion(stackId,
-                        structuredOutput.getActualVersion());
-
-                LOG.debug("Repository version {} was not found, check for {}.  Found={}",
-                        structuredOutput.getInstalledRepositoryVersion(),
-                        structuredOutput.getActualVersion(),
-                        Boolean.valueOf(null != version));
-
-                if (null != version) {
-                  repositoryVersion = structuredOutput.getActualVersion();
-                }
               }
             }
           }
-        } catch (JsonSyntaxException e) {
-          LOG.error("Can not parse structured output %s", e);
         }
+      } catch (JsonSyntaxException e) {
+        LOG.error("Can not parse structured output %s", e);
       }
+    }
 
-      List<HostVersionEntity> hostVersions = hostVersionDAO.get().findByHost(event.getHostname());
-      // We have to iterate over all host versions. Otherwise server-side command aborts (that do not
-      // provide exact host stack version info) would be ignored
-      for (HostVersionEntity hostVersion : hostVersions) {
-        if (repositoryVersion != null && !hostVersion.getRepositoryVersion().getVersion().equals(repositoryVersion)) {
-          continue;
-        }
-        // If we know exact host stack version, there will be single execution of a code below
-        if (hostVersion.getState() == RepositoryVersionState.INSTALLING) {
-          hostVersion.setState(newHostState);
-          hostVersionDAO.get().merge(hostVersion);
-          // Update state of a cluster stack version
-          try {
-            Cluster cluster = clusters.get().getClusterById(clusterId);
-            cluster.recalculateClusterVersionState(
-                    hostVersion.getRepositoryVersion().getStackId(),
-                    hostVersion.getRepositoryVersion().getVersion());
-          } catch (AmbariException e) {
-            LOG.error("Cannot get cluster with Id " + clusterId.toString(), e);
-          }
+    List<HostVersionEntity> hostVersions = hostVersionDAO.get().findByHost(event.getHostname());
+    // We have to iterate over all host versions. Otherwise server-side command aborts (that do not
+    // provide exact host stack version info) would be ignored
+    for (HostVersionEntity hostVersion : hostVersions) {
+      if (repositoryVersion != null && ! hostVersion.getRepositoryVersion().getVersion().equals(repositoryVersion)) {
+        continue;
+      }
+      // If we know exact host stack version, there will be single execution of a code below
+      if (hostVersion.getState() == RepositoryVersionState.INSTALLING) {
+        hostVersion.setState(newHostState);
+        hostVersionDAO.get().merge(hostVersion);
+        // Update state of a cluster stack version
+        try {
+          Cluster cluster = clusters.get().getClusterById(clusterId);
+          cluster.recalculateClusterVersionState(
+              hostVersion.getRepositoryVersion().getStackId(),
+              hostVersion.getRepositoryVersion().getVersion());
+        } catch (AmbariException e) {
+          LOG.error("Cannot get cluster with Id " + clusterId.toString(), e);
         }
       }
-    } finally {
-      unitOfWork.end();
     }
   }
 }

http://git-wip-us.apache.org/repos/asf/ambari/blob/27f566dd/ambari-server/src/test/java/org/apache/ambari/server/agent/TestHeartbeatHandler.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/agent/TestHeartbeatHandler.java b/ambari-server/src/test/java/org/apache/ambari/server/agent/TestHeartbeatHandler.java
index 5be6e44..39192c4 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/agent/TestHeartbeatHandler.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/agent/TestHeartbeatHandler.java
@@ -2556,10 +2556,7 @@ public class TestHeartbeatHandler {
     RepositoryVersionEntity entity = dao.findByStackAndVersion(stackId, "0.1");
     Assert.assertNotNull(entity);
 
-    UnitOfWork unitOfWork = injector.getInstance(UnitOfWork.class);
-    unitOfWork.end();
     handler.handleHeartBeat(hb);
-    unitOfWork.begin();
 
     entity = dao.findByStackAndVersion(stackId, "0.1");
     Assert.assertNull(entity);