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/11/26 15:56:24 UTC
[1/2] ambari git commit: AMBARI-14009. Express Upgrade - SQL
Exception while trying to DeregisterVersion (after install packages step
failed due to invalid repo)
Repository: ambari
Updated Branches:
refs/heads/branch-2.1 a5b90007e -> bded607d5
refs/heads/trunk 56c23bb65 -> b3422548b
AMBARI-14009. Express Upgrade - SQL Exception while trying to DeregisterVersion (after install packages step failed due to invalid repo)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/bded607d
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/bded607d
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/bded607d
Branch: refs/heads/branch-2.1
Commit: bded607d543e2f9a706cfb1dad51e8f1401aaa75
Parents: a5b9000
Author: Lisnichenko Dmitro <dl...@hortonworks.com>
Authored: Thu Nov 26 16:55:40 2015 +0200
Committer: Lisnichenko Dmitro <dl...@hortonworks.com>
Committed: Thu Nov 26 16:55:40 2015 +0200
----------------------------------------------------------------------
.../server/orm/dao/ClusterVersionDAO.java | 17 ++++++++++++++
.../apache/ambari/server/orm/dao/CrudDAO.java | 2 +-
.../ambari/server/orm/dao/HostVersionDAO.java | 17 ++++++++++++++
.../server/orm/dao/RepositoryVersionDAO.java | 12 ++++++++++
.../server/orm/entities/HostVersionEntity.java | 1 -
.../orm/entities/RepositoryVersionEntity.java | 24 ++++++++++++++++----
.../ambari/server/orm/dao/CrudDAOTest.java | 2 +-
7 files changed, 68 insertions(+), 7 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/bded607d/ambari-server/src/main/java/org/apache/ambari/server/orm/dao/ClusterVersionDAO.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/orm/dao/ClusterVersionDAO.java b/ambari-server/src/main/java/org/apache/ambari/server/orm/dao/ClusterVersionDAO.java
index 1b00a3e..7a9a6e6 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/orm/dao/ClusterVersionDAO.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/orm/dao/ClusterVersionDAO.java
@@ -158,6 +158,23 @@ public class ClusterVersionDAO extends CrudDAO<ClusterVersionEntity, Long>{
}
/**
+ * Construct a Cluster Version. Additionally this will update parent connection relations without
+ * forcing refresh of parent entity
+ * @param entity entity to create
+ */
+ @Override
+ @Transactional
+ public void create(ClusterVersionEntity entity) throws IllegalArgumentException {
+ // check if repository version is not missing, to avoid NPE
+ if (entity.getRepositoryVersion() == null) {
+ throw new IllegalArgumentException("RepositoryVersion argument is not set for the entity");
+ }
+
+ super.create(entity);
+ entity.getRepositoryVersion().updateClusterVersionEntityRelation(entity);
+ }
+
+ /**
* Construct a Cluster Version and return it. This is primarily used to be able to construct the object and mock
* the function call.
* @param cluster Cluster
http://git-wip-us.apache.org/repos/asf/ambari/blob/bded607d/ambari-server/src/main/java/org/apache/ambari/server/orm/dao/CrudDAO.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/orm/dao/CrudDAO.java b/ambari-server/src/main/java/org/apache/ambari/server/orm/dao/CrudDAO.java
index ed0a931..473c558 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/orm/dao/CrudDAO.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/orm/dao/CrudDAO.java
@@ -93,7 +93,7 @@ public class CrudDAO<E, K> {
* @param entity entity to create
*/
@Transactional
- public void create(E entity) {
+ protected void create(E entity) {
entityManagerProvider.get().persist(entity);
}
http://git-wip-us.apache.org/repos/asf/ambari/blob/bded607d/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 ae63263..f1192f9 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
@@ -58,6 +58,23 @@ public class HostVersionDAO extends CrudDAO<HostVersionEntity, Long> {
}
/**
+ * Construct a Host Version. Additionally this will update parent connection relations without
+ * forcing refresh of parent entity
+ * @param entity entity to create
+ */
+ @Override
+ @Transactional
+ public void create(HostVersionEntity entity) throws IllegalArgumentException{
+ // check if repository version is not missing, to avoid NPE
+ if (entity.getRepositoryVersion() == null) {
+ throw new IllegalArgumentException("RepositoryVersion argument is not set for the entity");
+ }
+
+ super.create(entity);
+ entity.getRepositoryVersion().updateHostVersionEntityRelation(entity);
+ }
+
+ /**
* Retrieve all of the host versions for the given cluster name, stack name,
* and stack version.
*
http://git-wip-us.apache.org/repos/asf/ambari/blob/bded607d/ambari-server/src/main/java/org/apache/ambari/server/orm/dao/RepositoryVersionDAO.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/orm/dao/RepositoryVersionDAO.java b/ambari-server/src/main/java/org/apache/ambari/server/orm/dao/RepositoryVersionDAO.java
index 9f5f6f1..e1f7110 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/orm/dao/RepositoryVersionDAO.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/orm/dao/RepositoryVersionDAO.java
@@ -47,6 +47,18 @@ public class RepositoryVersionDAO extends CrudDAO<RepositoryVersionEntity, Long>
super(RepositoryVersionEntity.class);
}
+
+ /**
+ * Creates entity.
+ *
+ * @param entity entity to create
+ */
+ @Override
+ @Transactional
+ public void create(RepositoryVersionEntity entity){
+ super.create(entity);
+ }
+
/**
* Retrieves repository version by name.
*
http://git-wip-us.apache.org/repos/asf/ambari/blob/bded607d/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 4ee7d49..b69518b 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
@@ -151,7 +151,6 @@ public class HostVersionEntity {
final int prime = 31;
int result = 1;
result = prime * result + ((hostEntity == null) ? 0 : hostEntity.hashCode());
- result = prime * result + ((hostEntity == null) ? 0 : hostEntity.hashCode());
result = prime * result + ((id == null) ? 0 : id.hashCode());
result = prime * result + ((repositoryVersion == null) ? 0 : repositoryVersion.hashCode());
result = prime * result + ((state == null) ? 0 : state.hashCode());
http://git-wip-us.apache.org/repos/asf/ambari/blob/bded607d/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/RepositoryVersionEntity.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/RepositoryVersionEntity.java b/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/RepositoryVersionEntity.java
index 16b7c1c..cfe7901 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/RepositoryVersionEntity.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/RepositoryVersionEntity.java
@@ -17,9 +17,9 @@
*/
package org.apache.ambari.server.orm.entities;
-import java.util.Collection;
import java.util.Collections;
import java.util.List;
+import java.util.Set;
import javax.persistence.CascadeType;
import javax.persistence.Column;
@@ -50,7 +50,7 @@ import com.google.inject.Provider;
@Entity
@Table(name = "repo_version", uniqueConstraints = {
@UniqueConstraint(columnNames = {"display_name"}),
- @UniqueConstraint(columnNames = {"stack", "version"})
+ @UniqueConstraint(columnNames = {"stack_id", "version"})
})
@TableGenerator(name = "repository_version_id_generator",
table = "ambari_sequences",
@@ -95,10 +95,10 @@ public class RepositoryVersionEntity {
private String operatingSystems;
@OneToMany(cascade = CascadeType.REMOVE, mappedBy = "repositoryVersion")
- private Collection<ClusterVersionEntity> clusterVersionEntities;
+ private Set<ClusterVersionEntity> clusterVersionEntities;
@OneToMany(cascade = CascadeType.REMOVE, mappedBy = "repositoryVersion")
- private Collection<HostVersionEntity> hostVersionEntities;
+ private Set<HostVersionEntity> hostVersionEntities;
// ----- RepositoryVersionEntity -------------------------------------------------------
@@ -114,6 +114,22 @@ public class RepositoryVersionEntity {
this.operatingSystems = operatingSystems;
}
+ /**
+ * Update one-to-many relation without rebuilding the whole entity
+ * @param entity many-to-one entity
+ */
+ public void updateClusterVersionEntityRelation(ClusterVersionEntity entity){
+ clusterVersionEntities.add(entity);
+ }
+
+ /**
+ * Update one-to-many relation without rebuilding the whole entity
+ * @param entity many-to-one entity
+ */
+ public void updateHostVersionEntityRelation(HostVersionEntity entity){
+ hostVersionEntities.add(entity);
+ }
+
public Long getId() {
return id;
}
http://git-wip-us.apache.org/repos/asf/ambari/blob/bded607d/ambari-server/src/test/java/org/apache/ambari/server/orm/dao/CrudDAOTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/orm/dao/CrudDAOTest.java b/ambari-server/src/test/java/org/apache/ambari/server/orm/dao/CrudDAOTest.java
index 6b5b297..ac6ef63 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/orm/dao/CrudDAOTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/orm/dao/CrudDAOTest.java
@@ -69,7 +69,7 @@ public class CrudDAOTest {
entity.setDisplayName("display name" + uniqueCounter);
entity.setOperatingSystems("repositories");
entity.setStack(stackEntity);
- entity.setVersion("version");
+ entity.setVersion("version" + uniqueCounter);
repositoryVersionDAO.create(entity);
uniqueCounter++;
}
[2/2] ambari git commit: AMBARI-14009. Express Upgrade - SQL
Exception while trying to DeregisterVersion (after install packages step
failed due to invalid repo)
Posted by dm...@apache.org.
AMBARI-14009. Express Upgrade - SQL Exception while trying to DeregisterVersion (after install packages step failed due to invalid repo)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/b3422548
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/b3422548
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/b3422548
Branch: refs/heads/trunk
Commit: b3422548b635f86f2cf30cfbfff881ba589edc75
Parents: 56c23bb
Author: Lisnichenko Dmitro <dl...@hortonworks.com>
Authored: Thu Nov 26 16:55:40 2015 +0200
Committer: Lisnichenko Dmitro <dl...@hortonworks.com>
Committed: Thu Nov 26 16:56:09 2015 +0200
----------------------------------------------------------------------
.../server/orm/dao/ClusterVersionDAO.java | 17 ++++++++++++++
.../apache/ambari/server/orm/dao/CrudDAO.java | 2 +-
.../ambari/server/orm/dao/HostVersionDAO.java | 17 ++++++++++++++
.../server/orm/dao/RepositoryVersionDAO.java | 12 ++++++++++
.../server/orm/entities/HostVersionEntity.java | 1 -
.../orm/entities/RepositoryVersionEntity.java | 24 ++++++++++++++++----
.../ambari/server/orm/dao/CrudDAOTest.java | 2 +-
7 files changed, 68 insertions(+), 7 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/b3422548/ambari-server/src/main/java/org/apache/ambari/server/orm/dao/ClusterVersionDAO.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/orm/dao/ClusterVersionDAO.java b/ambari-server/src/main/java/org/apache/ambari/server/orm/dao/ClusterVersionDAO.java
index 28449ae..1bcca60 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/orm/dao/ClusterVersionDAO.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/orm/dao/ClusterVersionDAO.java
@@ -159,6 +159,23 @@ public class ClusterVersionDAO extends CrudDAO<ClusterVersionEntity, Long>{
}
/**
+ * Construct a Cluster Version. Additionally this will update parent connection relations without
+ * forcing refresh of parent entity
+ * @param entity entity to create
+ */
+ @Override
+ @Transactional
+ public void create(ClusterVersionEntity entity) throws IllegalArgumentException {
+ // check if repository version is not missing, to avoid NPE
+ if (entity.getRepositoryVersion() == null) {
+ throw new IllegalArgumentException("RepositoryVersion argument is not set for the entity");
+ }
+
+ super.create(entity);
+ entity.getRepositoryVersion().updateClusterVersionEntityRelation(entity);
+ }
+
+ /**
* Construct a Cluster Version and return it. This is primarily used to be able to construct the object and mock
* the function call.
* @param cluster Cluster
http://git-wip-us.apache.org/repos/asf/ambari/blob/b3422548/ambari-server/src/main/java/org/apache/ambari/server/orm/dao/CrudDAO.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/orm/dao/CrudDAO.java b/ambari-server/src/main/java/org/apache/ambari/server/orm/dao/CrudDAO.java
index ed0a931..473c558 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/orm/dao/CrudDAO.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/orm/dao/CrudDAO.java
@@ -93,7 +93,7 @@ public class CrudDAO<E, K> {
* @param entity entity to create
*/
@Transactional
- public void create(E entity) {
+ protected void create(E entity) {
entityManagerProvider.get().persist(entity);
}
http://git-wip-us.apache.org/repos/asf/ambari/blob/b3422548/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 a1ffc2a..040876a 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
@@ -58,6 +58,23 @@ public class HostVersionDAO extends CrudDAO<HostVersionEntity, Long> {
}
/**
+ * Construct a Host Version. Additionally this will update parent connection relations without
+ * forcing refresh of parent entity
+ * @param entity entity to create
+ */
+ @Override
+ @Transactional
+ public void create(HostVersionEntity entity) throws IllegalArgumentException{
+ // check if repository version is not missing, to avoid NPE
+ if (entity.getRepositoryVersion() == null) {
+ throw new IllegalArgumentException("RepositoryVersion argument is not set for the entity");
+ }
+
+ super.create(entity);
+ entity.getRepositoryVersion().updateHostVersionEntityRelation(entity);
+ }
+
+ /**
* Retrieve all of the host versions for the given cluster name, stack name,
* and stack version.
*
http://git-wip-us.apache.org/repos/asf/ambari/blob/b3422548/ambari-server/src/main/java/org/apache/ambari/server/orm/dao/RepositoryVersionDAO.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/orm/dao/RepositoryVersionDAO.java b/ambari-server/src/main/java/org/apache/ambari/server/orm/dao/RepositoryVersionDAO.java
index 9f5f6f1..e1f7110 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/orm/dao/RepositoryVersionDAO.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/orm/dao/RepositoryVersionDAO.java
@@ -47,6 +47,18 @@ public class RepositoryVersionDAO extends CrudDAO<RepositoryVersionEntity, Long>
super(RepositoryVersionEntity.class);
}
+
+ /**
+ * Creates entity.
+ *
+ * @param entity entity to create
+ */
+ @Override
+ @Transactional
+ public void create(RepositoryVersionEntity entity){
+ super.create(entity);
+ }
+
/**
* Retrieves repository version by name.
*
http://git-wip-us.apache.org/repos/asf/ambari/blob/b3422548/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 4ee7d49..b69518b 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
@@ -151,7 +151,6 @@ public class HostVersionEntity {
final int prime = 31;
int result = 1;
result = prime * result + ((hostEntity == null) ? 0 : hostEntity.hashCode());
- result = prime * result + ((hostEntity == null) ? 0 : hostEntity.hashCode());
result = prime * result + ((id == null) ? 0 : id.hashCode());
result = prime * result + ((repositoryVersion == null) ? 0 : repositoryVersion.hashCode());
result = prime * result + ((state == null) ? 0 : state.hashCode());
http://git-wip-us.apache.org/repos/asf/ambari/blob/b3422548/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/RepositoryVersionEntity.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/RepositoryVersionEntity.java b/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/RepositoryVersionEntity.java
index 4296077..b1e54de 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/RepositoryVersionEntity.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/RepositoryVersionEntity.java
@@ -17,9 +17,9 @@
*/
package org.apache.ambari.server.orm.entities;
-import java.util.Collection;
import java.util.Collections;
import java.util.List;
+import java.util.Set;
import javax.persistence.CascadeType;
import javax.persistence.Column;
@@ -50,7 +50,7 @@ import com.google.inject.Provider;
@Entity
@Table(name = "repo_version", uniqueConstraints = {
@UniqueConstraint(columnNames = {"display_name"}),
- @UniqueConstraint(columnNames = {"stack", "version"})
+ @UniqueConstraint(columnNames = {"stack_id", "version"})
})
@TableGenerator(name = "repository_version_id_generator",
table = "ambari_sequences",
@@ -95,10 +95,10 @@ public class RepositoryVersionEntity {
private String operatingSystems;
@OneToMany(cascade = CascadeType.REMOVE, mappedBy = "repositoryVersion")
- private Collection<ClusterVersionEntity> clusterVersionEntities;
+ private Set<ClusterVersionEntity> clusterVersionEntities;
@OneToMany(cascade = CascadeType.REMOVE, mappedBy = "repositoryVersion")
- private Collection<HostVersionEntity> hostVersionEntities;
+ private Set<HostVersionEntity> hostVersionEntities;
// ----- RepositoryVersionEntity -------------------------------------------------------
@@ -114,6 +114,22 @@ public class RepositoryVersionEntity {
this.operatingSystems = operatingSystems;
}
+ /**
+ * Update one-to-many relation without rebuilding the whole entity
+ * @param entity many-to-one entity
+ */
+ public void updateClusterVersionEntityRelation(ClusterVersionEntity entity){
+ clusterVersionEntities.add(entity);
+ }
+
+ /**
+ * Update one-to-many relation without rebuilding the whole entity
+ * @param entity many-to-one entity
+ */
+ public void updateHostVersionEntityRelation(HostVersionEntity entity){
+ hostVersionEntities.add(entity);
+ }
+
public Long getId() {
return id;
}
http://git-wip-us.apache.org/repos/asf/ambari/blob/b3422548/ambari-server/src/test/java/org/apache/ambari/server/orm/dao/CrudDAOTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/orm/dao/CrudDAOTest.java b/ambari-server/src/test/java/org/apache/ambari/server/orm/dao/CrudDAOTest.java
index 6b5b297..ac6ef63 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/orm/dao/CrudDAOTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/orm/dao/CrudDAOTest.java
@@ -69,7 +69,7 @@ public class CrudDAOTest {
entity.setDisplayName("display name" + uniqueCounter);
entity.setOperatingSystems("repositories");
entity.setStack(stackEntity);
- entity.setVersion("version");
+ entity.setVersion("version" + uniqueCounter);
repositoryVersionDAO.create(entity);
uniqueCounter++;
}