Repository: ambari Updated Branches: refs/heads/branch-feature-AMBARI-18456 [created] 276d1244e
http://git-wip-us.apache.org/repos/asf/ambari/blob/a6639a7c/ambari-server/src/test/java/org/apache/ambari/server/state/ConfigHelperTest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/state/ConfigHelperTest.java b/ambari-server/src/test/java/org/apache/ambari/server/state/ConfigHelperTest.java index d50c92d..a3a7e11 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/state/ConfigHelperTest.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/state/ConfigHelperTest.java @@ -38,7 +38,6 @@ import javax.persistence.EntityManager; import org.apache.ambari.server.AmbariException; import org.apache.ambari.server.actionmanager.RequestFactory; import org.apache.ambari.server.api.services.AmbariMetaInfo; -import org.apache.ambari.server.configuration.Configuration; import org.apache.ambari.server.controller.AmbariCustomCommandExecutionHelper; import org.apache.ambari.server.controller.AmbariManagementController; import org.apache.ambari.server.controller.ClusterRequest; @@ -88,6 +87,7 @@ public class ConfigHelperTest { private static ConfigHelper configHelper; private static AmbariManagementController managementController; private static AmbariMetaInfo metaInfo; + private static ConfigFactory configFactory; @BeforeClass public static void setup() throws Exception { @@ -102,6 +102,7 @@ public class ConfigHelperTest { configHelper = injector.getInstance(ConfigHelper.class); managementController = injector.getInstance(AmbariManagementController.class); metaInfo = injector.getInstance(AmbariMetaInfo.class); + configFactory = injector.getInstance(ConfigFactory.class); clusterName = "c1"; clusters.addCluster(clusterName, new StackId("HDP-2.0.6")); @@ -339,14 +340,11 @@ public class ConfigHelperTest { add(clusterRequest6); }}, null); - final Config config = new ConfigImpl("ams-env"); - config.setTag("version122"); - Map<String, String> properties = new HashMap<String, String>(); properties.put("a", "b"); properties.put("c", "d"); - config.setProperties(properties); + final Config config = configFactory.createNew(cluster, "ams-env", "version122", properties, null); Long groupId = addConfigGroup("g1", "t1", new ArrayList<String>() {{ add("h1"); }}, new ArrayList<Config>() {{ @@ -419,19 +417,14 @@ public class ConfigHelperTest { add(clusterRequest3); }}, null); - final Config config1 = new ConfigImpl("core-site2"); - config1.setTag("version122"); - Map<String, String> properties = new HashMap<String, String>(); properties.put("a", "b"); properties.put("c", "d"); - config1.setProperties(properties); + final Config config1 = configFactory.createNew(cluster, "core-site2", "version122", properties, null); - final Config config2 = new ConfigImpl("global2"); - config2.setTag("version122"); Map<String, String> properties2 = new HashMap<String, String>(); properties2.put("namenode_heapsize", "1111"); - config2.setProperties(properties2); + final Config config2 = configFactory.createNew(cluster, "global2", "version122", properties2, null); Long groupId = addConfigGroup("g2", "t1", new ArrayList<String>() {{ add("h1"); @@ -511,24 +504,23 @@ public class ConfigHelperTest { }}, null); - final Config config1 = new ConfigImpl("core-site3"); - config1.setTag("version122"); - Map<String, String> attributes = new HashMap<String, String>(); attributes.put("fs.trash.interval", "11"); attributes.put("b", "y"); Map<String, Map<String, String>> config1Attributes = new HashMap<String, Map<String, String>>(); config1Attributes.put("attribute1", attributes); - config1.setPropertiesAttributes(config1Attributes); - final Config config2 = new ConfigImpl("global3"); - config2.setTag("version122"); + final Config config1 = configFactory.createNew(cluster, "core-site3", "version122", + new HashMap<String, String>(), config1Attributes); + attributes = new HashMap<String, String>(); attributes.put("namenode_heapsize", "z"); attributes.put("c", "q"); Map<String, Map<String, String>> config2Attributes = new HashMap<String, Map<String, String>>(); config2Attributes.put("attribute2", attributes); - config2.setPropertiesAttributes(config2Attributes); + + final Config config2 = configFactory.createNew(cluster, "global3", "version122", + new HashMap<String, String>(), config2Attributes); Long groupId = addConfigGroup("g3", "t1", new ArrayList<String>() {{ add("h3"); @@ -690,7 +682,8 @@ public class ConfigHelperTest { confGroupProperties.put("b", "any"); confGroupProperties.put("c", "any"); - Config overrideConfig = new ConfigImpl(cluster, "type", confGroupProperties, confGroupAttributes, injector); + Config overrideConfig = configFactory.createNew(cluster, "type", null, + confGroupProperties, confGroupAttributes); Map<String, Map<String, String>> result = configHelper.overrideAttributes(overrideConfig, persistedAttributes); @@ -718,7 +711,8 @@ public class ConfigHelperTest { confGroupProperties.put("b", "any"); confGroupProperties.put("c", "any"); - Config overrideConfig = new ConfigImpl(cluster, "type", confGroupProperties, confGroupAttributes, injector); + Config overrideConfig = configFactory.createNew(cluster, "type", null, + confGroupProperties, confGroupAttributes); Map<String, Map<String, String>> result = configHelper.overrideAttributes(overrideConfig, persistedAttributes); @@ -744,7 +738,8 @@ public class ConfigHelperTest { confGroupProperties.put("b", "any"); confGroupProperties.put("c", "any"); - Config overrideConfig = new ConfigImpl(cluster, "type", confGroupProperties, null, injector); + Config overrideConfig = configFactory.createNew(cluster, "type", null, + confGroupProperties, null); Map<String, Map<String, String>> result = configHelper.overrideAttributes(overrideConfig, persistedAttributes); @@ -772,7 +767,8 @@ public class ConfigHelperTest { confGroupFinalAttrs.put("b", "true"); confGroupAttributes.put("final", confGroupFinalAttrs); - Config overrideConfig = new ConfigImpl(cluster, "type", null, confGroupAttributes, injector); + Config overrideConfig = configFactory.createNew(cluster, "type", "version122", + new HashMap<String,String>(), confGroupAttributes); Map<String, Map<String, String>> result = configHelper.overrideAttributes(overrideConfig, persistedAttributes); @@ -921,8 +917,10 @@ public class ConfigHelperTest { List<String> hosts = new ArrayList<String>(); hosts.add("h1"); List<Config> configs = new ArrayList<Config>(); - ConfigImpl configImpl = new ConfigImpl("flume-conf"); - configImpl.setTag("FLUME1"); + + Config configImpl = configFactory.createNew(cluster, "flume-conf", "FLUME1", + new HashMap<String,String>(), null); + configs.add(configImpl); addConfigGroup("configGroup1", "FLUME", hosts, configs); http://git-wip-us.apache.org/repos/asf/ambari/blob/a6639a7c/ambari-server/src/test/java/org/apache/ambari/server/state/alerts/AlertReceivedListenerTest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/state/alerts/AlertReceivedListenerTest.java b/ambari-server/src/test/java/org/apache/ambari/server/state/alerts/AlertReceivedListenerTest.java index 1867bda..ede94dc 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/state/alerts/AlertReceivedListenerTest.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/state/alerts/AlertReceivedListenerTest.java @@ -56,12 +56,12 @@ import org.apache.ambari.server.utils.EventBusSynchronizer; import org.junit.After; import org.junit.Before; import org.junit.Test; +import org.junit.experimental.categories.Category; import com.google.inject.Guice; import com.google.inject.Injector; import com.google.inject.persist.PersistService; import com.google.inject.persist.UnitOfWork; -import org.junit.experimental.categories.Category; /** * Tests the {@link AlertReceivedListener}. @@ -835,17 +835,13 @@ public class AlertReceivedListenerTest { @SuppressWarnings("serial") public void testAlertFirmnessUsingGlobalValueHigherThanOverride() throws Exception { ConfigFactory cf = m_injector.getInstance(ConfigFactory.class); - Config config = cf.createNew(m_cluster, ConfigHelper.CLUSTER_ENV, + Config config = cf.createNew(m_cluster, ConfigHelper.CLUSTER_ENV, "version2", new HashMap<String, String>() { { put(ConfigHelper.CLUSTER_ENV_ALERT_REPEAT_TOLERANCE, "3"); } }, new HashMap<String, Map<String, String>>()); - config.setTag("version2"); - config.persist(); - - m_cluster.addConfig(config); m_cluster.addDesiredConfig("user", Collections.singleton(config)); String definitionName = ALERT_DEFINITION + "1"; http://git-wip-us.apache.org/repos/asf/ambari/blob/a6639a7c/ambari-server/src/test/java/org/apache/ambari/server/state/cluster/ClusterDeadlockTest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/state/cluster/ClusterDeadlockTest.java b/ambari-server/src/test/java/org/apache/ambari/server/state/cluster/ClusterDeadlockTest.java index 4fdcc22..9dc405e 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/state/cluster/ClusterDeadlockTest.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/state/cluster/ClusterDeadlockTest.java @@ -124,14 +124,11 @@ public class ClusterDeadlockTest { cluster.createClusterVersion(stackId, stackId.getStackVersion(), "admin", RepositoryVersionState.INSTALLING); - Config config1 = configFactory.createNew(cluster, "test-type1", new HashMap<String, String>(), new HashMap<String, + Config config1 = configFactory.createNew(cluster, "test-type1", "version1", new HashMap<String, String>(), new HashMap<String, Map<String, String>>()); - Config config2 = configFactory.createNew(cluster, "test-type2", new HashMap<String, String>(), new HashMap<String, + Config config2 = configFactory.createNew(cluster, "test-type2", "version1", new HashMap<String, String>(), new HashMap<String, Map<String, String>>()); - config1.persist(); - config2.persist(); - cluster.addConfig(config1); - cluster.addConfig(config2); + cluster.addDesiredConfig("test user", new HashSet<Config>(Arrays.asList(config1, config2))); // 100 hosts @@ -186,7 +183,7 @@ public class ClusterDeadlockTest { } DeadlockWarningThread wt = new DeadlockWarningThread(threads); - + while (true) { if(!wt.isAlive()) { break; @@ -221,7 +218,7 @@ public class ClusterDeadlockTest { } DeadlockWarningThread wt = new DeadlockWarningThread(threads); - + while (true) { if(!wt.isAlive()) { break; @@ -267,7 +264,7 @@ public class ClusterDeadlockTest { clusterWriterThread.start(); schWriterThread.start(); } - + DeadlockWarningThread wt = new DeadlockWarningThread(threads, 20, 1000); while (true) { if(!wt.isAlive()) { @@ -337,7 +334,7 @@ public class ClusterDeadlockTest { @Override public void run() { for (int i =0; i<300; i++) { - config.persist(false); + config.save(); } } } http://git-wip-us.apache.org/repos/asf/ambari/blob/a6639a7c/ambari-server/src/test/java/org/apache/ambari/server/state/cluster/ClusterTest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/state/cluster/ClusterTest.java b/ambari-server/src/test/java/org/apache/ambari/server/state/cluster/ClusterTest.java index 90a3d02..69cfc9f 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/state/cluster/ClusterTest.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/state/cluster/ClusterTest.java @@ -87,7 +87,6 @@ import org.apache.ambari.server.state.ComponentInfo; import org.apache.ambari.server.state.Config; import org.apache.ambari.server.state.ConfigFactory; import org.apache.ambari.server.state.ConfigHelper; -import org.apache.ambari.server.state.ConfigImpl; import org.apache.ambari.server.state.DesiredConfig; import org.apache.ambari.server.state.Host; import org.apache.ambari.server.state.HostHealthStatus; @@ -964,21 +963,14 @@ public class ClusterTest { Map<String, Map<String, String>> c2PropAttributes = new HashMap<String, Map<String,String>>(); c2PropAttributes.put("final", new HashMap<String, String>()); c2PropAttributes.get("final").put("x", "true"); - Config config1 = configFactory.createNew(c1, "global", + Config config1 = configFactory.createNew(c1, "global", "version1", new HashMap<String, String>() {{ put("a", "b"); }}, c1PropAttributes); - config1.setTag("version1"); - Config config2 = configFactory.createNew(c1, "global", + Config config2 = configFactory.createNew(c1, "global", "version2", new HashMap<String, String>() {{ put("x", "y"); }}, c2PropAttributes); - config2.setTag("version2"); - Config config3 = configFactory.createNew(c1, "core-site", + Config config3 = configFactory.createNew(c1, "core-site", "version2", new HashMap<String, String>() {{ put("x", "y"); }}, new HashMap<String, Map<String,String>>()); - config3.setTag("version2"); - - c1.addConfig(config1); - c1.addConfig(config2); - c1.addConfig(config3); c1.addDesiredConfig("_test", Collections.singleton(config1)); Config res = c1.getDesiredConfigByType("global"); @@ -998,21 +990,14 @@ public class ClusterTest { public void testDesiredConfigs() throws Exception { createDefaultCluster(); - Config config1 = configFactory.createNew(c1, "global", + Config config1 = configFactory.createNew(c1, "global", "version1", new HashMap<String, String>() {{ put("a", "b"); }}, new HashMap<String, Map<String,String>>()); - config1.setTag("version1"); - Config config2 = configFactory.createNew(c1, "global", + Config config2 = configFactory.createNew(c1, "global", "version2", new HashMap<String, String>() {{ put("x", "y"); }}, new HashMap<String, Map<String,String>>()); - config2.setTag("version2"); - Config config3 = configFactory.createNew(c1, "core-site", + Config config3 = configFactory.createNew(c1, "core-site", "version2", new HashMap<String, String>() {{ put("x", "y"); }}, new HashMap<String, Map<String,String>>()); - config3.setTag("version2"); - - c1.addConfig(config1); - c1.addConfig(config2); - c1.addConfig(config3); try { c1.addDesiredConfig(null, Collections.singleton(config1)); @@ -1132,18 +1117,11 @@ public class ClusterTest { c1.addService("HDFS"); - Config config1 = configFactory.createNew(c1, "hdfs-site", + Config config1 = configFactory.createNew(c1, "hdfs-site", "version1", new HashMap<String, String>() {{ put("a", "b"); }}, new HashMap<String, Map<String,String>>()); - config1.setTag("version1"); - Config config2 = configFactory.createNew(c1, "core-site", + Config config2 = configFactory.createNew(c1, "core-site", "version2", new HashMap<String, String>() {{ put("x", "y"); }}, new HashMap<String, Map<String,String>>()); - config2.setTag("version2"); - - config1.persist(); - c1.addConfig(config1); - config2.persist(); - c1.addConfig(config2); Set<Config> configs = new HashSet<Config>(); configs.add(config1); @@ -1209,10 +1187,9 @@ public class ClusterTest { Map<String, Map<String, String>> propAttributes = new HashMap<String, Map<String,String>>(); propAttributes.put("final", new HashMap<String, String>()); propAttributes.get("final").put("test", "true"); - Config config = configFactory.createNew(c1, "hdfs-site", new HashMap<String, String>(){{ + Config config = configFactory.createNew(c1, "hdfs-site", "1", new HashMap<String, String>(){{ put("test", "test"); }}, propAttributes); - config.setTag("1"); host1.addDesiredConfig(c1.getClusterId(), true, "test", config); @@ -1247,16 +1224,11 @@ public class ClusterTest { public void testServiceConfigVersions() throws Exception { createDefaultCluster(); - Config config1 = configFactory.createNew(c1, "hdfs-site", + Config config1 = configFactory.createNew(c1, "hdfs-site", "version1", new HashMap<String, String>() {{ put("a", "b"); }}, new HashMap<String, Map<String,String>>()); - config1.setTag("version1"); - Config config2 = configFactory.createNew(c1, "hdfs-site", + Config config2 = configFactory.createNew(c1, "hdfs-site", "version2", new HashMap<String, String>() {{ put("x", "y"); }}, new HashMap<String, Map<String,String>>()); - config2.setTag("version2"); - - c1.addConfig(config1); - c1.addConfig(config2); c1.addDesiredConfig("admin", Collections.singleton(config1)); List<ServiceConfigVersionResponse> serviceConfigVersions = @@ -1310,16 +1282,11 @@ public class ClusterTest { public void testSingleServiceVersionForMultipleConfigs() throws Exception { createDefaultCluster(); - Config config1 = configFactory.createNew(c1, "hdfs-site", + Config config1 = configFactory.createNew(c1, "hdfs-site", "version1", new HashMap<String, String>() {{ put("a", "b"); }}, new HashMap<String, Map<String,String>>()); - config1.setTag("version1"); - Config config2 = configFactory.createNew(c1, "core-site", + Config config2 = configFactory.createNew(c1, "core-site", "version2", new HashMap<String, String>() {{ put("x", "y"); }}, new HashMap<String, Map<String,String>>()); - config2.setTag("version2"); - - c1.addConfig(config1); - c1.addConfig(config2); Set<Config> configs = new HashSet<Config>(); configs.add(config1); @@ -1345,11 +1312,8 @@ public class ClusterTest { public void testServiceConfigVersionsForGroups() throws Exception { createDefaultCluster(); - Config config1 = configFactory.createNew(c1, "hdfs-site", + Config config1 = configFactory.createNew(c1, "hdfs-site", "version1", new HashMap<String, String>() {{ put("a", "b"); }}, new HashMap<String, Map<String,String>>()); - config1.setTag("version1"); - - c1.addConfig(config1); ServiceConfigVersionResponse scvResponse = c1.addDesiredConfig("admin", Collections.singleton(config1)); @@ -1361,9 +1325,8 @@ public class ClusterTest { Assert.assertEquals("Only one scv should be active", 1, activeServiceConfigVersions.get("HDFS").size()); //create config group - Config config2 = configFactory.createNew(c1, "hdfs-site", + Config config2 = configFactory.createNew(c1, "hdfs-site", "version2", new HashMap<String, String>() {{ put("a", "c"); }}, new HashMap<String, Map<String,String>>()); - config2.setTag("version2"); ConfigGroup configGroup = configGroupFactory.createNew(c1, "test group", "HDFS", "descr", Collections.singletonMap("hdfs-site", config2), @@ -1381,7 +1344,7 @@ public class ClusterTest { Assert.assertEquals("Two service config versions should be active, for default and test groups", 2, activeServiceConfigVersions.get("HDFS").size()); - Config config3 = configFactory.createNew(c1, "hdfs-site", + Config config3 = configFactory.createNew(c1, "hdfs-site", "version3", new HashMap<String, String>() {{ put("a", "d"); }}, new HashMap<String, Map<String,String>>()); configGroup.setConfigurations(Collections.singletonMap("hdfs-site", config3)); @@ -1417,13 +1380,12 @@ public class ClusterTest { //check config with empty cluster - Config config4 = new ConfigImpl("hdfs-site"); - config4.setProperties(new HashMap<String, String>() {{ - put("a", "b"); - }}); + Config config4 = configFactory.createReadOnly("hdfs-site", "version4", + Collections.singletonMap("a", "b"), null); ConfigGroup configGroup2 = - configGroupFactory.createNew(c1, "test group 2", "HDFS", "descr", Collections.singletonMap("hdfs-site", config4), + configGroupFactory.createNew(c1, "test group 2", "HDFS", "descr", + new HashMap<>(Collections.singletonMap("hdfs-site", config4)), Collections.<Long, Host>emptyMap()); configGroup2.persist(); @@ -1443,12 +1405,8 @@ public class ClusterTest { // Given createDefaultCluster(); - Config hdfsSiteConfigV1 = configFactory.createNew(c1, "hdfs-site", ImmutableMap.of("p1", "v1"), ImmutableMap.<String, Map<String,String>>of()); - hdfsSiteConfigV1.setTag("version1"); - hdfsSiteConfigV1.persist(); - - c1.addConfig(hdfsSiteConfigV1); - + Config hdfsSiteConfigV1 = configFactory.createNew(c1, "hdfs-site", "version1", + ImmutableMap.of("p1", "v1"), ImmutableMap.<String, Map<String,String>>of()); ServiceConfigVersionResponse hdfsSiteConfigResponseV1 = c1.addDesiredConfig("admin", Collections.singleton(hdfsSiteConfigV1)); List<ConfigurationResponse> configResponsesDefaultGroup = Collections.singletonList( @@ -1459,8 +1417,8 @@ public class ClusterTest { hdfsSiteConfigResponseV1.setConfigurations(configResponsesDefaultGroup); - Config hdfsSiteConfigV2 = configFactory.createNew(c1, "hdfs-site", ImmutableMap.of("p1", "v2"), ImmutableMap.<String, Map<String,String>>of()); - hdfsSiteConfigV2.setTag("version2"); + Config hdfsSiteConfigV2 = configFactory.createNew(c1, "hdfs-site", "version2", + ImmutableMap.of("p1", "v2"), ImmutableMap.<String, Map<String,String>>of()); ConfigGroup configGroup = configGroupFactory.createNew(c1, "configGroup1", "version1", "test description", ImmutableMap.of(hdfsSiteConfigV2.getType(), hdfsSiteConfigV2), ImmutableMap.<Long, Host>of()); configGroup.persist(); @@ -1507,12 +1465,8 @@ public class ClusterTest { // Given createDefaultCluster(); - Config hdfsSiteConfigV1 = configFactory.createNew(c1, "hdfs-site", ImmutableMap.of("p1", "v1"), ImmutableMap.<String, Map<String,String>>of()); - hdfsSiteConfigV1.setTag("version1"); - hdfsSiteConfigV1.persist(); - - c1.addConfig(hdfsSiteConfigV1); - + Config hdfsSiteConfigV1 = configFactory.createNew(c1, "hdfs-site", "version1", + ImmutableMap.of("p1", "v1"), ImmutableMap.<String, Map<String,String>>of()); ServiceConfigVersionResponse hdfsSiteConfigResponseV1 = c1.addDesiredConfig("admin", Collections.singleton(hdfsSiteConfigV1)); List<ConfigurationResponse> configResponsesDefaultGroup = Collections.singletonList( @@ -1523,8 +1477,8 @@ public class ClusterTest { hdfsSiteConfigResponseV1.setConfigurations(configResponsesDefaultGroup); - Config hdfsSiteConfigV2 = configFactory.createNew(c1, "hdfs-site", ImmutableMap.of("p1", "v2"), ImmutableMap.<String, Map<String,String>>of()); - hdfsSiteConfigV2.setTag("version2"); + Config hdfsSiteConfigV2 = configFactory.createNew(c1, "hdfs-site", "version2", + ImmutableMap.of("p1", "v2"), ImmutableMap.<String, Map<String,String>>of()); ConfigGroup configGroup = configGroupFactory.createNew(c1, "configGroup1", "version1", "test description", ImmutableMap.of(hdfsSiteConfigV2.getType(), hdfsSiteConfigV2), ImmutableMap.<Long, Host>of()); configGroup.persist(); @@ -2373,17 +2327,13 @@ public class ClusterTest { ClusterEntity clusterEntity = clusterDAO.findByName("c1"); assertEquals(0, clusterEntity.getClusterConfigEntities().size()); - final Config originalConfig = configFactory.createNew(cluster, "foo-site", + final Config originalConfig = configFactory.createNew(cluster, "foo-site", "version3", new HashMap<String, String>() { { put("one", "two"); } }, new HashMap<String, Map<String, String>>()); - originalConfig.setTag("version3"); - originalConfig.persist(); - cluster.addConfig(originalConfig); - ConfigGroup configGroup = configGroupFactory.createNew(cluster, "g1", "t1", "", new HashMap<String, Config>() { { @@ -2403,8 +2353,7 @@ public class ClusterTest { Map<String, String> properties = config.getProperties(); properties.put("three", "four"); config.setProperties(properties); - - config.persist(false); + config.save(); clusterEntity = clusterDAO.findByName("c1"); assertEquals(1, clusterEntity.getClusterConfigEntities().size()); @@ -2545,13 +2494,7 @@ public class ClusterTest { // foo-type for v1 on current stack properties.put("foo-property-1", "foo-value-1"); - Config c1 = new ConfigImpl(cluster, "foo-type", properties, propertiesAttributes, injector); - c1.setTag("version-1"); - c1.setStackId(stackId); - c1.setVersion(1L); - - cluster.addConfig(c1); - c1.persist(); + Config c1 = configFactory.createNew(cluster, "foo-type", "version-1", properties, propertiesAttributes); // make v1 "current" cluster.addDesiredConfig("admin", Sets.newHashSet(c1), "note-1"); @@ -2562,12 +2505,7 @@ public class ClusterTest { // save v2 // foo-type for v2 on new stack properties.put("foo-property-2", "foo-value-2"); - Config c2 = new ConfigImpl(cluster, "foo-type", properties, propertiesAttributes, injector); - c2.setTag("version-2"); - c2.setStackId(newStackId); - c2.setVersion(2L); - cluster.addConfig(c2); - c2.persist(); + Config c2 = configFactory.createNew(cluster, "foo-type", "version-2", properties, propertiesAttributes); // make v2 "current" cluster.addDesiredConfig("admin", Sets.newHashSet(c2), "note-2"); http://git-wip-us.apache.org/repos/asf/ambari/blob/a6639a7c/ambari-server/src/test/java/org/apache/ambari/server/state/cluster/ClustersTest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/state/cluster/ClustersTest.java b/ambari-server/src/test/java/org/apache/ambari/server/state/cluster/ClustersTest.java index 5886234..d75d9d0 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/state/cluster/ClustersTest.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/state/cluster/ClustersTest.java @@ -405,19 +405,15 @@ public class ClustersTest { cluster.transitionClusterVersion(stackId, stackId.getStackVersion(), RepositoryVersionState.CURRENT); - final Config config1 = injector.getInstance(ConfigFactory.class).createNew(cluster, "t1", + final Config config1 = injector.getInstance(ConfigFactory.class).createNew(cluster, "t1", "1", new HashMap<String, String>() {{ put("prop1", "val1"); }}, new HashMap<String, Map<String,String>>()); - config1.setTag("1"); - config1.persist(); - Config config2 = injector.getInstance(ConfigFactory.class).createNew(cluster, "t1", + Config config2 = injector.getInstance(ConfigFactory.class).createNew(cluster, "t1", "2", new HashMap<String, String>() {{ put("prop2", "val2"); }}, new HashMap<String, Map<String,String>>()); - config2.setTag("2"); - config2.persist(); // cluster desired config cluster.addDesiredConfig("_test", Collections.singleton(config1)); http://git-wip-us.apache.org/repos/asf/ambari/blob/a6639a7c/ambari-server/src/test/java/org/apache/ambari/server/state/cluster/ServiceComponentHostConcurrentWriteDeadlockTest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/state/cluster/ServiceComponentHostConcurrentWriteDeadlockTest.java b/ambari-server/src/test/java/org/apache/ambari/server/state/cluster/ServiceComponentHostConcurrentWriteDeadlockTest.java index 1f09002..96dbf26 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/state/cluster/ServiceComponentHostConcurrentWriteDeadlockTest.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/state/cluster/ServiceComponentHostConcurrentWriteDeadlockTest.java @@ -114,17 +114,12 @@ public class ServiceComponentHostConcurrentWriteDeadlockTest { cluster.createClusterVersion(stackId, stackId.getStackVersion(), "admin", RepositoryVersionState.INSTALLING); - Config config1 = configFactory.createNew(cluster, "test-type1", new HashMap<String, String>(), new HashMap<String, + Config config1 = configFactory.createNew(cluster, "test-type1", null, new HashMap<String, String>(), new HashMap<String, Map<String, String>>()); - Config config2 = configFactory.createNew(cluster, "test-type2", new HashMap<String, String>(), new HashMap<String, + Config config2 = configFactory.createNew(cluster, "test-type2", null, new HashMap<String, String>(), new HashMap<String, Map<String, String>>()); - config1.persist(); - config2.persist(); - - cluster.addConfig(config1); - cluster.addConfig(config2); cluster.addDesiredConfig("test user", new HashSet<Config>(Arrays.asList(config1, config2))); String hostName = "c6401"; http://git-wip-us.apache.org/repos/asf/ambari/blob/a6639a7c/ambari-server/src/test/java/org/apache/ambari/server/state/host/HostTest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/state/host/HostTest.java b/ambari-server/src/test/java/org/apache/ambari/server/state/host/HostTest.java index 596f381..5c8d174 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/state/host/HostTest.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/state/host/HostTest.java @@ -384,7 +384,7 @@ public class HostTest { clusters.mapHostToCluster("h1", "c1"); ConfigFactory configFactory = injector.getInstance(ConfigFactory.class); - Config config = configFactory.createNew(c1, "global", + Config config = configFactory.createNew(c1, "global", "v1", new HashMap<String,String>() {{ put("a", "b"); put("x", "y"); }}, new HashMap<String, Map<String,String>>()); try { @@ -396,16 +396,14 @@ public class HostTest { } - config.setTag("v1"); host.addDesiredConfig(c1.getClusterId(), true, "_test", config); Map<String, DesiredConfig> map = host.getDesiredConfigs(c1.getClusterId()); Assert.assertTrue("Expect desired config to contain global", map.containsKey("global")); Assert.assertEquals("Expect global user to be '_test'", "_test", map.get("global").getUser()); - config = configFactory.createNew(c1, "global", + config = configFactory.createNew(c1, "global", "v2", new HashMap<String,String>() {{ put("c", "d"); }}, new HashMap<String, Map<String,String>>()); - config.setTag("v2"); host.addDesiredConfig(c1.getClusterId(), true, "_test1", config); map = host.getDesiredConfigs(c1.getClusterId()); http://git-wip-us.apache.org/repos/asf/ambari/blob/a6639a7c/ambari-server/src/test/java/org/apache/ambari/server/state/svccomphost/ServiceComponentHostTest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/state/svccomphost/ServiceComponentHostTest.java b/ambari-server/src/test/java/org/apache/ambari/server/state/svccomphost/ServiceComponentHostTest.java index 14a8de6..8db5190 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/state/svccomphost/ServiceComponentHostTest.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/state/svccomphost/ServiceComponentHostTest.java @@ -221,11 +221,8 @@ public class ServiceComponentHostTest { Cluster c = clusters.getCluster(clusterName); if (c.getConfig("time", String.valueOf(timestamp)) == null) { - Config config = configFactory.createNew (c, "time", + Config config = configFactory.createNew (c, "time", String.valueOf(timestamp), new HashMap<String, String>(), new HashMap<String, Map<String,String>>()); - config.setTag(String.valueOf(timestamp)); - c.addConfig(config); - config.persist(); } switch (eventType) { @@ -817,12 +814,10 @@ public class ServiceComponentHostTest { final Host host = clusters.getHostsForCluster(clusterName).get(hostName); Assert.assertNotNull(host); - final Config c = configFactory.createNew(cluster, "hdfs-site", + final Config c = configFactory.createNew(cluster, "hdfs-site", "version3", new HashMap<String, String>() {{ put("dfs.journalnode.http-address", "http://goo"); }}, new HashMap<String, Map<String,String>>()); - c.setTag("version3"); - c.persist(); - cluster.addConfig(c); + host.addDesiredConfig(cluster.getClusterId(), true, "user", c); ConfigGroup configGroup = configGroupFactory.createNew(cluster, "g1", "t1", "", new HashMap<String, Config>() {{ put("hdfs-site", c); }}, @@ -874,12 +869,9 @@ public class ServiceComponentHostTest { sch1.updateActualConfigs(actual); - final Config c1 = configFactory.createNew(cluster, "core-site", + final Config c1 = configFactory.createNew(cluster, "core-site", "version2", new HashMap<String, String>() {{ put("fs.trash.interval", "400"); }}, new HashMap<String, Map<String,String>>()); - c1.setTag("version2"); - c1.persist(); - cluster.addConfig(c1); configGroup = configGroupFactory.createNew(cluster, "g2", "t2", "", new HashMap<String, Config>() {{ put("core-site", c1); }}, new HashMap<Long, Host>() {{ put(hostEntity.getHostId(), host); }}); @@ -1037,10 +1029,7 @@ public class ServiceComponentHostTest { * @param values the values for the config */ private void makeConfig(Cluster cluster, String type, String tag, Map<String, String> values, Map<String, Map<String, String>> attributes) { - Config config = configFactory.createNew(cluster, type, values, attributes); - config.setTag(tag); - config.persist(); - cluster.addConfig(config); + Config config = configFactory.createNew(cluster, type, tag, values, attributes); cluster.addDesiredConfig("user", Collections.singleton(config)); } http://git-wip-us.apache.org/repos/asf/ambari/blob/a6639a7c/ambari-server/src/test/java/org/apache/ambari/server/topology/AmbariContextTest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/topology/AmbariContextTest.java b/ambari-server/src/test/java/org/apache/ambari/server/topology/AmbariContextTest.java index ee64ac9..dadeb03 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/topology/AmbariContextTest.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/topology/AmbariContextTest.java @@ -59,6 +59,7 @@ import org.apache.ambari.server.controller.spi.Resource; 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.ConfigHelper; import org.apache.ambari.server.state.DesiredConfig; import org.apache.ambari.server.state.Host; @@ -66,13 +67,14 @@ import org.apache.ambari.server.state.Service; import org.apache.ambari.server.state.StackId; import org.apache.ambari.server.state.configgroup.ConfigGroup; import org.easymock.Capture; +import org.easymock.EasyMock; import org.junit.After; import org.junit.Before; import org.junit.Test; +import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; -import com.google.common.collect.ImmutableList; /** * AmbariContext unit tests @@ -110,6 +112,7 @@ public class AmbariContextTest { private static final ConfigGroup configGroup2 = createMock(ConfigGroup.class); private static final Host host1 = createNiceMock(Host.class); private static final Host host2 = createNiceMock(Host.class); + private static final ConfigFactory configFactory = createNiceMock(ConfigFactory.class); private static final Collection<String> blueprintServices = new HashSet<String>(); private static final Map<String, Service> clusterServices = new HashMap<String, Service>(); @@ -164,6 +167,9 @@ public class AmbariContextTest { type1Props.put("prop3", "val3"); group1Configuration = new Configuration(group1Properties, null, bpConfiguration); + Map<String, String> group1ResolvedProperties = new HashMap<String, String>(bpType1Props); + group1ResolvedProperties.putAll(type1Props); + // config type -> service mapping Map<String, String> configTypeServiceMapping = new HashMap<String, String>(); configTypeServiceMapping.put("type1", "service1"); @@ -172,6 +178,28 @@ public class AmbariContextTest { configGroups.put(1L, configGroup1); configGroups.put(2L, configGroup2); + // config factory mock + Config type1Group1 = createNiceMock(Config.class); + expect(type1Group1.getType()).andReturn("type1").anyTimes(); + expect(type1Group1.getTag()).andReturn("group1").anyTimes(); + expect(type1Group1.getProperties()).andReturn(group1ResolvedProperties).anyTimes(); + expect(configFactory.createReadOnly(EasyMock.eq("type1"), EasyMock.eq("group1"), + EasyMock.<Map<String, String>> anyObject(), + EasyMock.<Map<String, Map<String, String>>> anyObject())).andReturn(type1Group1).anyTimes(); + replay(type1Group1); + + Config type1Service1 = createNiceMock(Config.class); + expect(type1Service1.getType()).andReturn("type1").anyTimes(); + expect(type1Service1.getTag()).andReturn("service1").anyTimes(); + expect(type1Service1.getProperties()).andReturn(type1Props).anyTimes(); + expect(configFactory.createReadOnly(EasyMock.eq("type1"), EasyMock.eq("service1"), + EasyMock.<Map<String, String>> anyObject(), + EasyMock.<Map<String, Map<String, String>>> anyObject())).andReturn( + type1Service1).anyTimes(); + replay(type1Service1); + + context.configFactory = configFactory; + blueprintServices.add("service1"); blueprintServices.add("service2"); @@ -222,17 +250,17 @@ public class AmbariContextTest { public void tearDown() throws Exception { verify(controller, clusterController, hostResourceProvider, serviceResourceProvider, componentResourceProvider, hostComponentResourceProvider, configGroupResourceProvider, topology, blueprint, stack, clusters, - cluster, group1Info, configHelper, configGroup1, configGroup2, host1, host2); + cluster, group1Info, configHelper, configGroup1, configGroup2, host1, host2, configFactory); reset(controller, clusterController, hostResourceProvider, serviceResourceProvider, componentResourceProvider, hostComponentResourceProvider, configGroupResourceProvider, topology, blueprint, stack, clusters, - cluster, group1Info, configHelper, configGroup1, configGroup2, host1, host2); + cluster, group1Info, configHelper, configGroup1, configGroup2, host1, host2, configFactory); } private void replayAll() { replay(controller, clusterController, hostResourceProvider, serviceResourceProvider, componentResourceProvider, hostComponentResourceProvider, configGroupResourceProvider, topology, blueprint, stack, clusters, - cluster, group1Info, configHelper, configGroup1, configGroup2, host1, host2); + cluster, group1Info, configHelper, configGroup1, configGroup2, host1, host2, configFactory); } @Test @@ -331,6 +359,7 @@ public class AmbariContextTest { //todo: for now not using return value so just returning null expect(configGroupResourceProvider.createResources(capture(configGroupRequestCapture))).andReturn(null).once(); configHelper.moveDeprecatedGlobals(stackId, group1Configuration.getFullProperties(1), CLUSTER_NAME); + // replay all mocks replayAll(); http://git-wip-us.apache.org/repos/asf/ambari/blob/a6639a7c/ambari-server/src/test/java/org/apache/ambari/server/update/HostUpdateHelperTest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/update/HostUpdateHelperTest.java b/ambari-server/src/test/java/org/apache/ambari/server/update/HostUpdateHelperTest.java index f9dd5d1..3bb6c0a 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/update/HostUpdateHelperTest.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/update/HostUpdateHelperTest.java @@ -49,6 +49,8 @@ import org.apache.ambari.server.orm.entities.StackEntity; 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.ConfigImpl; import org.apache.ambari.server.state.Host; import org.apache.ambari.server.state.stack.OsFamily; import org.apache.ambari.server.utils.CollectionPresentationUtils; @@ -62,6 +64,7 @@ import com.google.gson.JsonPrimitive; import com.google.inject.AbstractModule; import com.google.inject.Guice; import com.google.inject.Injector; +import com.google.inject.assistedinject.FactoryModuleBuilder; import junit.framework.Assert; @@ -212,16 +215,12 @@ public class HostUpdateHelperTest { Clusters mockClusters = easyMockSupport.createStrictMock(Clusters.class); Cluster mockCluster = easyMockSupport.createNiceMock(Cluster.class); ClusterEntity mockClusterEntity1 = easyMockSupport.createNiceMock(ClusterEntity.class); - ClusterEntity mockClusterEntity2 = easyMockSupport.createNiceMock(ClusterEntity.class); ClusterConfigEntity mockClusterConfigEntity1 = easyMockSupport.createNiceMock(ClusterConfigEntity.class); ClusterConfigEntity mockClusterConfigEntity2 = easyMockSupport.createNiceMock(ClusterConfigEntity.class); - ClusterConfigEntity mockClusterConfigEntity3 = easyMockSupport.createNiceMock(ClusterConfigEntity.class); - ClusterConfigEntity mockClusterConfigEntity4 = easyMockSupport.createNiceMock(ClusterConfigEntity.class); StackEntity mockStackEntity = easyMockSupport.createNiceMock(StackEntity.class); Map<String, Map<String, String>> clusterHostsToChange = new HashMap<>(); Map<String, String> hosts = new HashMap<>(); List<ClusterConfigEntity> clusterConfigEntities1 = new ArrayList<>(); - List<ClusterConfigEntity> clusterConfigEntities2 = new ArrayList<>(); final Injector mockInjector = Guice.createInjector(new AbstractModule() { @Override @@ -231,6 +230,8 @@ public class HostUpdateHelperTest { bind(EntityManager.class).toInstance(entityManager); bind(OsFamily.class).toInstance(createNiceMock(OsFamily.class)); bind(ClusterDAO.class).toInstance(mockClusterDAO); + + install(new FactoryModuleBuilder().implement(Config.class, ConfigImpl.class).build(ConfigFactory.class)); } }); @@ -242,49 +243,42 @@ public class HostUpdateHelperTest { clusterConfigEntities1.add(mockClusterConfigEntity1); clusterConfigEntities1.add(mockClusterConfigEntity2); - clusterConfigEntities2.add(mockClusterConfigEntity3); - clusterConfigEntities2.add(mockClusterConfigEntity4); - clusterHostsToChange.put("cl1", hosts); - expect(mockClusterDAO.findByName("cl1")).andReturn(mockClusterEntity1).once(); - expect(mockClusterDAO.findById(1L)).andReturn(mockClusterEntity2).atLeastOnce(); + expect(mockClusterDAO.findByName("cl1")).andReturn(mockClusterEntity1).atLeastOnce(); expect(mockAmbariManagementController.getClusters()).andReturn(mockClusters).once(); expect(mockClusters.getCluster("cl1")).andReturn(mockCluster).once(); - expect(mockCluster.getClusterId()).andReturn(1L).atLeastOnce(); + expect(mockCluster.getClusterId()).andReturn(1L).anyTimes(); expect(mockClusterEntity1.getClusterConfigEntities()).andReturn(clusterConfigEntities1).atLeastOnce(); - expect(mockClusterEntity2.getClusterConfigEntities()).andReturn(clusterConfigEntities2).atLeastOnce(); - expect(mockClusterConfigEntity1.getStack()).andReturn(mockStackEntity).once(); + expect(mockClusterConfigEntity1.getClusterId()).andReturn(1L).atLeastOnce(); + expect(mockClusterConfigEntity1.getConfigId()).andReturn(1L).atLeastOnce(); + expect(mockClusterConfigEntity1.getStack()).andReturn(mockStackEntity).atLeastOnce(); expect(mockClusterConfigEntity1.getData()).andReturn("{\"testProperty1\" : \"testValue_host1\", " + "\"testProperty2\" : \"testValue_host5\", \"testProperty3\" : \"testValue_host11\", " + "\"testProperty4\" : \"testValue_host55\"}").atLeastOnce(); expect(mockClusterConfigEntity1.getTag()).andReturn("testTag1").atLeastOnce(); expect(mockClusterConfigEntity1.getType()).andReturn("testType1").atLeastOnce(); expect(mockClusterConfigEntity1.getVersion()).andReturn(1L).atLeastOnce(); + expect(mockClusterDAO.findConfig(1L)).andReturn(mockClusterConfigEntity1).atLeastOnce(); - expect(mockClusterConfigEntity2.getStack()).andReturn(mockStackEntity).once(); + expect(mockClusterConfigEntity2.getClusterId()).andReturn(1L).atLeastOnce(); + expect(mockClusterConfigEntity2.getConfigId()).andReturn(2L).anyTimes(); + expect(mockClusterConfigEntity2.getStack()).andReturn(mockStackEntity).atLeastOnce(); expect(mockClusterConfigEntity2.getData()).andReturn("{\"testProperty5\" : \"test_host1_test_host5_test_host11_test_host55\"}").atLeastOnce(); expect(mockClusterConfigEntity2.getTag()).andReturn("testTag2").atLeastOnce(); expect(mockClusterConfigEntity2.getType()).andReturn("testType2").atLeastOnce(); expect(mockClusterConfigEntity2.getVersion()).andReturn(2L).atLeastOnce(); - - expect(mockClusterConfigEntity3.getTag()).andReturn("testTag1").atLeastOnce(); - expect(mockClusterConfigEntity3.getType()).andReturn("testType1").atLeastOnce(); - expect(mockClusterConfigEntity3.getVersion()).andReturn(1L).atLeastOnce(); - - expect(mockClusterConfigEntity4.getTag()).andReturn("testTag2").atLeastOnce(); - expect(mockClusterConfigEntity4.getType()).andReturn("testType2").atLeastOnce(); - expect(mockClusterConfigEntity4.getVersion()).andReturn(2L).atLeastOnce(); + expect(mockClusterDAO.findConfig(2L)).andReturn(mockClusterConfigEntity2).atLeastOnce(); Capture<String> dataCapture = EasyMock.newCapture(); - mockClusterConfigEntity3.setData(EasyMock.capture(dataCapture)); + mockClusterConfigEntity1.setData(EasyMock.capture(dataCapture)); expectLastCall(); - mockClusterConfigEntity4.setData("{\"testProperty5\":\"test_host5_test_host1_test_host55_test_host11\"}"); + mockClusterConfigEntity2.setData("{\"testProperty5\":\"test_host5_test_host1_test_host55_test_host11\"}"); expectLastCall(); HostUpdateHelper hostUpdateHelper = new HostUpdateHelper(null, null, mockInjector); http://git-wip-us.apache.org/repos/asf/ambari/blob/a6639a7c/ambari-server/src/test/java/org/apache/ambari/server/utils/StageUtilsTest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/utils/StageUtilsTest.java b/ambari-server/src/test/java/org/apache/ambari/server/utils/StageUtilsTest.java index 29f40fb..5c77831 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/utils/StageUtilsTest.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/utils/StageUtilsTest.java @@ -65,6 +65,9 @@ import org.apache.ambari.server.security.encryption.CredentialStoreService; import org.apache.ambari.server.stack.StackManagerFactory; 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.ConfigImpl; import org.apache.ambari.server.state.Host; import org.apache.ambari.server.state.HostComponentAdminState; import org.apache.ambari.server.state.Service; @@ -126,6 +129,7 @@ public class StageUtilsTest extends EasyMockSupport { bind(HostRoleCommandDAO.class).toInstance(createNiceMock(HostRoleCommandDAO.class)); install(new FactoryModuleBuilder().build(ExecutionCommandWrapperFactory.class)); + install(new FactoryModuleBuilder().implement(Config.class, ConfigImpl.class).build(ConfigFactory.class)); } });