You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by nc...@apache.org on 2013/03/18 21:07:44 UTC
svn commit: r1457962 - in /incubator/ambari/trunk: CHANGES.txt
ambari-server/src/main/java/org/apache/ambari/server/orm/entities/ClusterEntity.java
ambari-server/src/test/java/org/apache/ambari/server/state/cluster/ClustersTest.java
Author: ncole
Date: Mon Mar 18 20:07:43 2013
New Revision: 1457962
URL: http://svn.apache.org/r1457962
Log:
AMBARI-1655. DELETE is not successful against ClusterStateEntity
Modified:
incubator/ambari/trunk/CHANGES.txt
incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/ClusterEntity.java
incubator/ambari/trunk/ambari-server/src/test/java/org/apache/ambari/server/state/cluster/ClustersTest.java
Modified: incubator/ambari/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/CHANGES.txt?rev=1457962&r1=1457961&r2=1457962&view=diff
==============================================================================
--- incubator/ambari/trunk/CHANGES.txt (original)
+++ incubator/ambari/trunk/CHANGES.txt Mon Mar 18 20:07:43 2013
@@ -498,6 +498,8 @@ Trunk (unreleased changes):
BUG FIXES
+ AMBARI-1655. DELETE is not successful against ClusterStateEntity (ncole)
+
AMBARI-1439. rrd file location should be read from global config. (swagle)
AMBARI-1648. Hue configuration - DB properties cannot be empty. (swagle)
Modified: incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/ClusterEntity.java
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/ClusterEntity.java?rev=1457962&r1=1457961&r2=1457962&view=diff
==============================================================================
--- incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/ClusterEntity.java (original)
+++ incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/ClusterEntity.java Mon Mar 18 20:07:43 2013
@@ -137,7 +137,7 @@ public class ClusterEntity {
private ClusterStateEntity clusterStateEntity;
- @OneToOne(mappedBy = "clusterEntity")
+ @OneToOne(mappedBy = "clusterEntity", cascade = CascadeType.REMOVE)
public ClusterStateEntity getClusterStateEntity() {
return clusterStateEntity;
}
Modified: incubator/ambari/trunk/ambari-server/src/test/java/org/apache/ambari/server/state/cluster/ClustersTest.java
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/ambari-server/src/test/java/org/apache/ambari/server/state/cluster/ClustersTest.java?rev=1457962&r1=1457961&r2=1457962&view=diff
==============================================================================
--- incubator/ambari/trunk/ambari-server/src/test/java/org/apache/ambari/server/state/cluster/ClustersTest.java (original)
+++ incubator/ambari/trunk/ambari-server/src/test/java/org/apache/ambari/server/state/cluster/ClustersTest.java Mon Mar 18 20:07:43 2013
@@ -18,33 +18,51 @@
package org.apache.ambari.server.state.cluster;
-import java.util.*;
+import static org.junit.Assert.fail;
+
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import javax.persistence.EntityManager;
-import com.google.inject.Guice;
-import com.google.inject.Inject;
-import com.google.inject.Injector;
-import com.google.inject.persist.PersistService;
import junit.framework.Assert;
import org.apache.ambari.server.AmbariException;
-import org.apache.ambari.server.api.services.AmbariMetaInfo;
import org.apache.ambari.server.ClusterNotFoundException;
import org.apache.ambari.server.DuplicateResourceException;
import org.apache.ambari.server.HostNotFoundException;
+import org.apache.ambari.server.api.services.AmbariMetaInfo;
+import org.apache.ambari.server.orm.GuiceJpaInitializer;
+import org.apache.ambari.server.orm.InMemoryDefaultTestModule;
+import org.apache.ambari.server.orm.dao.ClusterServiceDAO;
+import org.apache.ambari.server.orm.dao.ClusterStateDAO;
+import org.apache.ambari.server.orm.dao.HostComponentDesiredStateDAO;
+import org.apache.ambari.server.orm.dao.HostComponentStateDAO;
+import org.apache.ambari.server.orm.dao.HostDAO;
import org.apache.ambari.server.orm.entities.ClusterStateEntity;
-import org.apache.ambari.server.orm.dao.*;
import org.apache.ambari.server.orm.entities.HostComponentDesiredStateEntityPK;
import org.apache.ambari.server.orm.entities.HostComponentStateEntityPK;
-import org.apache.ambari.server.orm.GuiceJpaInitializer;
-import org.apache.ambari.server.orm.InMemoryDefaultTestModule;
-import org.apache.ambari.server.state.*;
+import org.apache.ambari.server.state.Cluster;
+import org.apache.ambari.server.state.Clusters;
+import org.apache.ambari.server.state.Config;
+import org.apache.ambari.server.state.ConfigFactory;
+import org.apache.ambari.server.state.Host;
+import org.apache.ambari.server.state.Service;
+import org.apache.ambari.server.state.ServiceComponent;
+import org.apache.ambari.server.state.ServiceComponentHost;
+import org.apache.ambari.server.state.StackId;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
-import javax.persistence.EntityManager;
-
-import static org.junit.Assert.*;
+import com.google.inject.Guice;
+import com.google.inject.Inject;
+import com.google.inject.Injector;
+import com.google.inject.persist.PersistService;
public class ClustersTest {
@@ -286,12 +304,24 @@ public class ClustersTest {
Cluster cluster = clusters.getCluster(c1);
cluster.setDesiredStackVersion(new StackId("HDP-0.1"));
+ cluster.setCurrentStackVersion(new StackId("HDP-0.1"));
- Config config = injector.getInstance(ConfigFactory.class).createNew(cluster, "t1", new HashMap<String, String>() {{
- put("prop1", "val1");
- }});
- config.setVersionTag("1");
- config.persist();
+ final Config config1 = injector.getInstance(ConfigFactory.class).createNew(cluster, "t1",
+ new HashMap<String, String>() {{
+ put("prop1", "val1");
+ }});
+ config1.setVersionTag("1");
+ config1.persist();
+
+ Config config2 = injector.getInstance(ConfigFactory.class).createNew(cluster, "t1",
+ new HashMap<String, String>() {{
+ put("prop2", "val2");
+ }});
+ config2.setVersionTag("2");
+ config2.persist();
+
+ // cluster desired config
+ cluster.addDesiredConfig(config1);
clusters.addHost(h1);
clusters.addHost(h2);
@@ -309,9 +339,16 @@ public class ClustersTest {
}
}, c1);
+ // host config override
+ host1.addDesiredConfig(cluster.getClusterId(), true, config2);
+ host1.persist();
Service hdfs = cluster.addService("HDFS");
hdfs.persist();
+
+ // service config
+ hdfs.updateDesiredConfigs(new HashMap<String,Config>() {{ put("t1", config1); }});
+ hdfs.persist();
Assert.assertNotNull(injector.getInstance(ClusterServiceDAO.class).findByClusterAndServiceNames(c1, "HDFS"));
@@ -341,16 +378,21 @@ public class ClustersTest {
Assert.assertNotNull(injector.getInstance(HostComponentStateDAO.class).findByPK(hkspk));
Assert.assertNotNull(injector.getInstance(HostComponentDesiredStateDAO.class).findByPK(hkdspk));
- Assert.assertEquals(1, injector.getProvider(EntityManager.class).get().createQuery("SELECT config FROM ClusterConfigEntity config").getResultList().size());
-
+ Assert.assertEquals(2, injector.getProvider(EntityManager.class).get().createQuery("SELECT config FROM ClusterConfigEntity config").getResultList().size());
+ Assert.assertEquals(1, injector.getProvider(EntityManager.class).get().createQuery("SELECT state FROM ClusterStateEntity state").getResultList().size());
+ Assert.assertEquals(1, injector.getProvider(EntityManager.class).get().createQuery("SELECT config FROM ClusterConfigMappingEntity config").getResultList().size());
+ Assert.assertEquals(1, injector.getProvider(EntityManager.class).get().createQuery("SELECT config FROM ServiceConfigMappingEntity config").getResultList().size());
+
clusters.deleteCluster(c1);
Assert.assertEquals(2, injector.getInstance(HostDAO.class).findAll().size());
Assert.assertNull(injector.getInstance(HostComponentStateDAO.class).findByPK(hkspk));
Assert.assertNull(injector.getInstance(HostComponentDesiredStateDAO.class).findByPK(hkdspk));
- //configs are removed implicitly by cascade operation
Assert.assertEquals(0, injector.getProvider(EntityManager.class).get().createQuery("SELECT config FROM ClusterConfigEntity config").getResultList().size());
-
+ Assert.assertEquals(0, injector.getProvider(EntityManager.class).get().createQuery("SELECT state FROM ClusterStateEntity state").getResultList().size());
+ Assert.assertEquals(0, injector.getProvider(EntityManager.class).get().createQuery("SELECT config FROM ClusterConfigMappingEntity config").getResultList().size());
+ Assert.assertEquals(0, injector.getProvider(EntityManager.class).get().createQuery("SELECT config FROM ServiceConfigMappingEntity config").getResultList().size());
+
}
@Test
public void testSetCurrentStackVersion() throws AmbariException {