Updated Branches: refs/heads/branch-1.4.4 e660415a5 -> 4d02841f0
AMBARI-4402. Delete Config Group Host mapping broken due to error introduced by perf patch. (swagle) Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/4d02841f Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/4d02841f Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/4d02841f Branch: refs/heads/branch-1.4.4 Commit: 4d02841f02c2f01088ad5ce3b530bd19d7c0c1be Parents: e660415 Author: Siddharth Wagle <[email protected]> Authored: Thu Jan 23 09:59:05 2014 -0800 Committer: Siddharth Wagle <[email protected]> Committed: Thu Jan 23 10:07:25 2014 -0800 ---------------------------------------------------------------------- .../orm/dao/ConfigGroupHostMappingDAO.java | 36 +++++++------------- .../ambari/server/state/ConfigGroupTest.java | 20 +++++++++++ 2 files changed, 33 insertions(+), 23 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/4d02841f/ambari-server/src/main/java/org/apache/ambari/server/orm/dao/ConfigGroupHostMappingDAO.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/orm/dao/ConfigGroupHostMappingDAO.java b/ambari-server/src/main/java/org/apache/ambari/server/orm/dao/ConfigGroupHostMappingDAO.java index 3612a07..6693a36 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/orm/dao/ConfigGroupHostMappingDAO.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/orm/dao/ConfigGroupHostMappingDAO.java @@ -105,29 +105,19 @@ public class ConfigGroupHostMappingDAO { } } - + + /** + * Return entity object which can be used for operations like remove + * directly. + * @param configGroupHostMappingEntityPK + * @return + */ @Transactional - public ConfigGroupHostMapping findByPK(final ConfigGroupHostMappingEntityPK + public ConfigGroupHostMappingEntity findByPK(final ConfigGroupHostMappingEntityPK configGroupHostMappingEntityPK) { - populateCache(); - - if (!configGroupHostMappingByHost.containsKey(configGroupHostMappingEntityPK.getHostname())) - return null; - - Set<ConfigGroupHostMapping> set = - new HashSet<ConfigGroupHostMapping>(configGroupHostMappingByHost.get(configGroupHostMappingEntityPK.getHostname())); - - ConfigGroupHostMapping itemByPk = (ConfigGroupHostMapping) CollectionUtils.find(set, new Predicate() { - - @Override - public boolean evaluate(Object arg0) { - return ((ConfigGroupHostMapping) arg0).getConfigGroupId(). - equals(configGroupHostMappingEntityPK.getConfigGroupId()); - } - }); - - return itemByPk; + return entityManagerProvider.get() + .find(ConfigGroupHostMappingEntity.class, configGroupHostMappingEntityPK); } @Transactional @@ -247,10 +237,10 @@ public class ConfigGroupHostMappingDAO { configGroupHostMappingEntityPK) { populateCache(); - entityManagerProvider.get().remove(findByPK - (configGroupHostMappingEntityPK)); + entityManagerProvider.get().remove(findByPK(configGroupHostMappingEntityPK)); - Set<ConfigGroupHostMapping> setByHost = configGroupHostMappingByHost.get(configGroupHostMappingEntityPK.getHostname()); + Set<ConfigGroupHostMapping> setByHost = configGroupHostMappingByHost + .get(configGroupHostMappingEntityPK.getHostname()); if (setByHost != null) { CollectionUtils.filter(setByHost, new Predicate() { http://git-wip-us.apache.org/repos/asf/ambari/blob/4d02841f/ambari-server/src/test/java/org/apache/ambari/server/state/ConfigGroupTest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/state/ConfigGroupTest.java b/ambari-server/src/test/java/org/apache/ambari/server/state/ConfigGroupTest.java index 36c4aac..ac63b22 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/state/ConfigGroupTest.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/state/ConfigGroupTest.java @@ -27,6 +27,7 @@ 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.ConfigGroupDAO; +import org.apache.ambari.server.orm.dao.ConfigGroupHostMappingDAO; import org.apache.ambari.server.orm.dao.HostDAO; import org.apache.ambari.server.orm.entities.ConfigGroupConfigMappingEntity; import org.apache.ambari.server.orm.entities.ConfigGroupEntity; @@ -53,6 +54,7 @@ public class ConfigGroupTest { private ConfigFactory configFactory; private HostDAO hostDAO; private ConfigGroupDAO configGroupDAO; + private ConfigGroupHostMappingDAO configGroupHostMappingDAO; @Before public void setup() throws Exception { @@ -64,6 +66,8 @@ public class ConfigGroupTest { configGroupFactory = injector.getInstance(ConfigGroupFactory.class); hostDAO = injector.getInstance(HostDAO.class); configGroupDAO = injector.getInstance(ConfigGroupDAO.class); + configGroupHostMappingDAO = injector.getInstance + (ConfigGroupHostMappingDAO.class); metaInfo.init(); clusterName = "foo"; @@ -188,6 +192,22 @@ public class ConfigGroupTest { } @Test + public void testRemoveHost() throws Exception { + ConfigGroup configGroup = createConfigGroup(); + Assert.assertNotNull(configGroup); + Long id = configGroup.getId(); + + configGroup = cluster.getConfigGroups().get(id); + Assert.assertNotNull(configGroup); + + clusters.unmapHostFromCluster("h1", clusterName); + + Assert.assertNull(clusters.getHostsForCluster(clusterName).get("h1")); + Assert.assertTrue(configGroupHostMappingDAO.findByHost("h1").isEmpty()); + Assert.assertNull(configGroup.getHosts().get("h1")); + } + + @Test public void testGetConfigGroup() throws Exception { ConfigGroup configGroup = createConfigGroup(); Assert.assertNotNull(configGroup);
