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