You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by am...@apache.org on 2017/12/18 08:13:16 UTC
[13/15] ambari git commit: AMBARI-22659. unable to proceed with
cluster install after component install fails. (mpapirkovskyy)
AMBARI-22659. unable to proceed with cluster install after component install fails. (mpapirkovskyy)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/3e1c3bd4
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/3e1c3bd4
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/3e1c3bd4
Branch: refs/heads/branch-feature-AMBARI-22008-isilon
Commit: 3e1c3bd4f464b6c089de8439a23a4945beb7bbc8
Parents: 0a0ad81
Author: Myroslav Papirkovskyi <mp...@hortonworks.com>
Authored: Fri Dec 15 18:13:49 2017 +0200
Committer: Attila Magyar <am...@hortonworks.com>
Committed: Mon Dec 18 09:12:47 2017 +0100
----------------------------------------------------------------------
.../apache/ambari/server/orm/dao/HostVersionDAO.java | 15 +++++++++++++++
.../server/orm/entities/HostVersionEntity.java | 5 +++++
.../ambari/server/state/cluster/ClusterImpl.java | 10 ++++++++++
.../ambari/server/orm/dao/HostVersionDAOTest.java | 12 ++++++++++++
4 files changed, 42 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/3e1c3bd4/ambari-server/src/main/java/org/apache/ambari/server/orm/dao/HostVersionDAO.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/orm/dao/HostVersionDAO.java b/ambari-server/src/main/java/org/apache/ambari/server/orm/dao/HostVersionDAO.java
index 158370f..feb4172 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/orm/dao/HostVersionDAO.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/orm/dao/HostVersionDAO.java
@@ -130,6 +130,21 @@ public class HostVersionDAO extends CrudDAO<HostVersionEntity, Long> {
}
/**
+ * Retrieve all of the cluster versions for the given cluster name.
+ *
+ * @param clusterName Cluster name
+ * @return Return all of the host versions that match the criteria.
+ */
+ @RequiresSession
+ public List<HostVersionEntity> findByCluster(String clusterName) {
+ final TypedQuery<HostVersionEntity> query = entityManagerProvider.get()
+ .createNamedQuery("findByCluster", HostVersionEntity.class);
+ query.setParameter("clusterName", clusterName);
+
+ return daoUtils.selectList(query);
+ }
+
+ /**
* Retrieve all of the host versions for the given cluster name, and state. <br/>
* @param clusterName Cluster name
* @param state repository version state
http://git-wip-us.apache.org/repos/asf/ambari/blob/3e1c3bd4/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/HostVersionEntity.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/HostVersionEntity.java b/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/HostVersionEntity.java
index 4a030af..2c61a3c 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/HostVersionEntity.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/HostVersionEntity.java
@@ -66,6 +66,11 @@ import org.apache.ambari.server.state.RepositoryVersionState;
query = "SELECT hostVersion FROM HostVersionEntity hostVersion JOIN hostVersion.hostEntity host JOIN host.clusterEntities clusters "
+ "WHERE clusters.clusterName=:clusterName AND hostVersion.state=:state"),
+ @NamedQuery(
+ name = "findByCluster",
+ query = "SELECT hostVersion FROM HostVersionEntity hostVersion JOIN hostVersion.hostEntity host JOIN host.clusterEntities clusters "
+ + "WHERE clusters.clusterName=:clusterName"),
+
@NamedQuery(name = "hostVersionByClusterHostnameAndState", query =
"SELECT hostVersion FROM HostVersionEntity hostVersion JOIN hostVersion.hostEntity host JOIN host.clusterEntities clusters " +
"WHERE clusters.clusterName=:clusterName AND hostVersion.hostEntity.hostName=:hostName AND hostVersion.state=:state"),
http://git-wip-us.apache.org/repos/asf/ambari/blob/3e1c3bd4/ambari-server/src/main/java/org/apache/ambari/server/state/cluster/ClusterImpl.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/state/cluster/ClusterImpl.java b/ambari-server/src/main/java/org/apache/ambari/server/state/cluster/ClusterImpl.java
index 8346727..2f3afd6 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/state/cluster/ClusterImpl.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/state/cluster/ClusterImpl.java
@@ -1336,6 +1336,7 @@ public class ClusterImpl implements Cluster {
try {
refresh();
deleteAllServices();
+ resetHostVersions();
refresh(); // update one-to-many clusterServiceEntities
removeEntities();
@@ -1355,6 +1356,15 @@ public class ClusterImpl implements Cluster {
clusterDAO.removeByPK(clusterId);
}
+ private void resetHostVersions() {
+ for (HostVersionEntity hostVersionEntity : hostVersionDAO.findByCluster(getClusterName())) {
+ if (!hostVersionEntity.getState().equals(RepositoryVersionState.NOT_REQUIRED)) {
+ hostVersionEntity.setState(RepositoryVersionState.NOT_REQUIRED);
+ hostVersionDAO.merge(hostVersionEntity);
+ }
+ }
+ }
+
@Override
public ServiceConfigVersionResponse addDesiredConfig(String user, Set<Config> configs) {
return addDesiredConfig(user, configs, null);
http://git-wip-us.apache.org/repos/asf/ambari/blob/3e1c3bd4/ambari-server/src/test/java/org/apache/ambari/server/orm/dao/HostVersionDAOTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/orm/dao/HostVersionDAOTest.java b/ambari-server/src/test/java/org/apache/ambari/server/orm/dao/HostVersionDAOTest.java
index bb077d6..88f42d3 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/orm/dao/HostVersionDAOTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/orm/dao/HostVersionDAOTest.java
@@ -247,6 +247,18 @@ public class HostVersionDAOTest {
}
/**
+ * Test the {@link HostVersionDAO#findByCluster(String)} method.
+ */
+ @Test
+ public void testFindByCluster() {
+ Assert.assertEquals(3, hostVersionDAO.findByCluster("test_cluster1").size());
+
+ addMoreVersions();
+
+ Assert.assertEquals(9, hostVersionDAO.findByCluster("test_cluster1").size());
+ }
+
+ /**
* Test the {@link HostVersionDAO#findByClusterHostAndState(String, String, org.apache.ambari.server.state.RepositoryVersionState)} method.
*/
@Test