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 {