Преглед на файлове

AMBARI-2072. Fix to remove actual_configs from cluster

git-svn-id: https://svn.apache.org/repos/asf/incubator/ambari/trunk@1478515 13f79535-47bb-0310-9956-ffa450edef68
Nate Cole преди 12 години
родител
ревизия
ec385434ca

+ 2 - 0
CHANGES.txt

@@ -1404,6 +1404,8 @@ Trunk (unreleased changes):
  AMBARI-1657. User directories on HDFS do not get created with custom names 
  provided from Ambari UI. (swagle)
 
+ AMBARI-2072. Fix to remove actual_configs from cluster response. (ncole)
+
  AMBARI-2036. Fix to send global configs with status_commands to agents. (ncole)
 
  AMBARI-2025. Fix to restrict how UNKNOWN is assigned to a host-component. (ncole)

+ 2 - 6
ambari-server/src/main/java/org/apache/ambari/server/agent/HeartBeatHandler.java

@@ -191,10 +191,6 @@ public class HeartBeatHandler {
         LOG.info(report.getRole() + " is an action - skip component lookup");
       } else {
         try {
-          if (null != report.getConfigurationTags() && !report.getConfigurationTags().isEmpty()) {
-            cl.updateActualConfigs(hostname, report.getConfigurationTags());
-          }
-
           Service svc = cl.getService(service);
           ServiceComponent svcComp = svc.getServiceComponent(report.getRole());
           ServiceComponentHost scHost = svcComp.getServiceComponentHost(hostname);
@@ -206,7 +202,8 @@ public class HeartBeatHandler {
             if (scHost.getState().equals(State.UPGRADING)) {
               scHost.setStackVersion(scHost.getDesiredStackVersion());
             } else if (report.getRoleCommand().equals(RoleCommand.START.toString())
-                && null != report.getConfigurationTags()) {
+                && null != report.getConfigurationTags()
+                && !report.getConfigurationTags().isEmpty()) {
               LOG.info("Updating applied config on service " + scHost.getServiceName() +
               ", component " + scHost.getServiceComponentName() + ", host " + scHost.getHostName());
               scHost.updateActualConfigs(report.getConfigurationTags());
@@ -285,7 +282,6 @@ public class HeartBeatHandler {
 
               if (null != status.getConfigTags()) {
                 scHost.updateActualConfigs(status.getConfigTags());
-                cl.updateActualConfigs(hostname, status.getConfigTags());
               }
 
             } else {

+ 0 - 2
ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementControllerImpl.java

@@ -983,14 +983,12 @@ public class AmbariManagementControllerImpl implements
       Cluster c = clusters.getCluster(request.getClusterName());
       ClusterResponse cr = c.convertToResponse();
       cr.setDesiredConfigs(c.getDesiredConfigs());
-      cr.setActualConfigs(c.getActualConfigs());
       response.add(cr);
       return response;
     } else if (request.getClusterId() != null) {
       Cluster c = clusters.getClusterById(request.getClusterId());
       ClusterResponse cr = c.convertToResponse();
       cr.setDesiredConfigs(c.getDesiredConfigs());
-      cr.setActualConfigs(c.getActualConfigs());
       response.add(cr);
       return response;
     }

+ 0 - 16
ambari-server/src/main/java/org/apache/ambari/server/controller/ClusterResponse.java

@@ -35,8 +35,6 @@ public class ClusterResponse {
 
   private Map<String, DesiredConfig> desiredConfigs;
   
-  private Map<String, DesiredConfig> actualConfigs;
-
   public ClusterResponse(Long clusterId, String clusterName,
       Set<String> hostNames, String desiredStackVersion) {
     super();
@@ -136,18 +134,4 @@ public class ClusterResponse {
     return desiredConfigs;
   }
 
-  /**
-   * @param actualConfigs the actual configs
-   */
-  public void setActualConfigs(Map<String, DesiredConfig> configs) {
-    actualConfigs = configs;
-  }
-  
-  /**
-   * @return the actual configs
-   */
-  public Map<String, DesiredConfig> getActualConfigs() {
-    return actualConfigs;
-  }
-
 }

+ 0 - 2
ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ClusterResourceProvider.java

@@ -53,7 +53,6 @@ class ClusterResourceProvider extends AbstractControllerResourceProvider {
   protected static final String CLUSTER_NAME_PROPERTY_ID    = PropertyHelper.getPropertyId("Clusters", "cluster_name");
   protected static final String CLUSTER_VERSION_PROPERTY_ID = PropertyHelper.getPropertyId("Clusters", "version");
   protected static final String CLUSTER_DESIRED_CONFIGS_PROPERTY_ID = PropertyHelper.getPropertyId("Clusters", "desired_configs");
-  protected static final String CLUSTER_ACTUAL_CONFIGS_PROPERTY_ID = PropertyHelper.getPropertyId("Clusters", "actual_configs");  
 
 
   private static Set<String> pkPropertyIds =
@@ -123,7 +122,6 @@ class ClusterResourceProvider extends AbstractControllerResourceProvider {
       setResourceProperty(resource, CLUSTER_ID_PROPERTY_ID, response.getClusterId(), requestedIds);
       setResourceProperty(resource, CLUSTER_NAME_PROPERTY_ID, response.getClusterName(), requestedIds);
       setResourceProperty(resource, CLUSTER_DESIRED_CONFIGS_PROPERTY_ID, response.getDesiredConfigs(), requestedIds);
-      setResourceProperty(resource, CLUSTER_ACTUAL_CONFIGS_PROPERTY_ID, response.getActualConfigs(), requestedIds);
 
       resource.setProperty(CLUSTER_VERSION_PROPERTY_ID,
           response.getDesiredStackVersion());

+ 0 - 13
ambari-server/src/main/java/org/apache/ambari/server/state/Cluster.java

@@ -196,17 +196,4 @@ public interface Cluster {
    */
   Service addService(String serviceName) throws AmbariException;
 
-  /**
-   * Gets the mapping of actual configurations as reported by a host.
-   * @return the map of actual configs
-   */
-  public Map<String, DesiredConfig> getActualConfigs();
-
-  /**
-   * Updates the actual configs as reported by the host
-   * @param hostName the host that reported a successful configuration change
-   * @param configTags the tags from the host as applied to the cluster
-   */
-  public void updateActualConfigs(String hostName, Map<String, Map<String,String>> configTags);
-
 }

+ 0 - 66
ambari-server/src/main/java/org/apache/ambari/server/state/cluster/ClusterImpl.java

@@ -85,11 +85,6 @@ public class ClusterImpl implements Cluster {
    */
   private Map<String, Map<String, Config>> allConfigs;
   
-  /**
-   * [ type -> DesiredConfig ]
-   */
-  private Map<String, DesiredConfig> actualConfig = new HashMap<String, DesiredConfig>();
-
   /**
    * [ ServiceName -> [ ServiceComponentName -> [ HostName -> [ ... ] ] ] ]
    */
@@ -834,66 +829,6 @@ public class ClusterImpl implements Cluster {
 
   }
   
-  
-  @Override
-  public void updateActualConfigs(String hostName, Map<String, Map<String,String>> configTags) {
-    readWriteLock.writeLock().lock();
-    try {
-
-      for (Entry<String, Map<String,String>> entry : configTags.entrySet()) {
-        String type = entry.getKey();
-        Map<String, String> values = entry.getValue();
-        
-        String tag = values.get("tag");
-        String hostTag = values.get("host_override_tag");
-  
-        if (actualConfig.containsKey(type)) {
-          DesiredConfig dc = actualConfig.get(type);
-          dc.setVersion(tag);
-          
-          boolean needNew = false;
-          Iterator<HostOverride> it = dc.getHostOverrides().iterator();
-          while (it.hasNext()) {
-            HostOverride override = it.next();
-            if (null != hostName && override.getName().equals(hostName)) {
-              needNew = true;
-              it.remove();
-            }
-          }
-          
-          if (null != hostTag && null != hostName) {
-            dc.getHostOverrides().add(new HostOverride(hostName, hostTag));
-          }
-        }
-        else {
-          DesiredConfig dc = new DesiredConfig();
-          dc.setVersion(tag);
-          actualConfig.put(type, dc);
-          if (null != hostTag && null != hostName) {
-            List<HostOverride> list = new ArrayList<HostOverride>();
-            list.add (new HostOverride(hostName, hostTag));
-            dc.setHostOverrides(list);
-          }
-        }
-        
-        DesiredConfig dc = actualConfig.get(type);
-        if (null == dc) {
-          dc = new DesiredConfig();
-          dc.setVersion(tag);
-          actualConfig.put(type, dc);
-        }
-      }
-    }
-    finally {
-      readWriteLock.writeLock().unlock();
-    }
-  }
-  
-  @Override
-  public Map<String, DesiredConfig> getActualConfigs() {
-    return actualConfig;
-  }
-
   @Override
   public Map<String, DesiredConfig> getDesiredConfigs() {
 
@@ -925,7 +860,6 @@ public class ClusterImpl implements Cluster {
     return map;
   }
 
-
   @Override
   public Config getDesiredConfigByType(String configType) {
 

+ 0 - 1
ambari-server/src/main/resources/properties.json

@@ -5,7 +5,6 @@
         "Clusters/version",
         "Clusters/state",
         "Clusters/desired_configs",
-        "Clusters/actual_configs",
         "_"
     ],
     "Service":[

+ 4 - 3
ambari-server/src/test/java/org/apache/ambari/server/agent/TestHeartbeatHandler.java

@@ -199,11 +199,12 @@ public class TestHeartbeatHandler {
     cr.setActionId(StageUtils.getActionId(requestId, stageId));
     cr.setServiceName(HDFS);
     cr.setTaskId(1);
-    cr.setRole(HDFS);
+    cr.setRole(DATANODE);
     cr.setStatus("COMPLETED");
     cr.setStdErr("");
     cr.setStdOut("");
     cr.setExitCode(215);
+    cr.setRoleCommand("START");
     cr.setClusterName(DummyCluster);
     
     cr.setConfigurationTags(new HashMap<String, Map<String,String>>() {{
@@ -216,8 +217,8 @@ public class TestHeartbeatHandler {
     handler.handleHeartBeat(hb);
 
     // the heartbeat test passed if actual configs is populated
-    Assert.assertNotNull(cluster.getActualConfigs());
-    Assert.assertEquals(cluster.getActualConfigs().size(), 1);
+    Assert.assertNotNull(serviceComponentHost1.getActualConfigs());
+    Assert.assertEquals(serviceComponentHost1.getActualConfigs().size(), 1);
   }
 
   @Test

+ 0 - 12
ambari-server/src/test/java/org/apache/ambari/server/controller/ClusterResponseTest.java

@@ -18,12 +18,9 @@ package org.apache.ambari.server.controller;
  * limitations under the License.
  */
 
-import java.util.HashMap;
 import java.util.HashSet;
-import java.util.Map;
 import java.util.Set;
 
-import org.apache.ambari.server.state.DesiredConfig;
 import org.junit.Assert;
 import org.junit.Test;
 
@@ -39,19 +36,10 @@ public class ClusterResponseTest {
     ClusterResponse r1 =
         new ClusterResponse(clusterId, clusterName, hostNames, "bar");
     
-    Map<String, DesiredConfig> actual = new HashMap<String, DesiredConfig>();
-    DesiredConfig dc = new DesiredConfig();
-    dc.setVersion("version1");
-    actual.put("global", dc);
-    
-    r1.setActualConfigs(actual);
-    
     Assert.assertEquals(clusterId, r1.getClusterId());
     Assert.assertEquals(clusterName, r1.getClusterName());
     Assert.assertArrayEquals(hostNames.toArray(), r1.getHostNames().toArray());
     Assert.assertEquals("bar", r1.getDesiredStackVersion());
-    Assert.assertNotNull(r1.getActualConfigs());
-
   }
 
   @Test

+ 0 - 1
ambari-server/src/test/java/org/apache/ambari/server/controller/internal/RequestImplTest.java

@@ -79,7 +79,6 @@ public class RequestImplTest {
     Assert.assertTrue(validPropertyIds.contains("Clusters/version"));
     Assert.assertTrue(validPropertyIds.contains("Clusters/state"));
     Assert.assertTrue(validPropertyIds.contains("Clusters/desired_configs"));
-    Assert.assertTrue(validPropertyIds.contains("Clusters/actual_configs"));
 
     request = PropertyHelper.getReadRequest(PropertyHelper.getPropertyIds(Resource.Type.Service));
     validPropertyIds = request.getPropertyIds();

+ 2 - 123
ambari-server/src/test/java/org/apache/ambari/server/state/cluster/ClusterTest.java

@@ -304,7 +304,7 @@ public class ClusterTest {
     
     Config config3 = configFactory.createNew(c1, "core-site",
         new HashMap<String, String>() {{ put("x", "y"); }});
-    config3.setVersionTag("version2");    
+    config3.setVersionTag("version2");
     
     c1.addConfig(config1);
     c1.addConfig(config2);
@@ -335,7 +335,7 @@ public class ClusterTest {
     
     Config config3 = configFactory.createNew(c1, "core-site",
         new HashMap<String, String>() {{ put("x", "y"); }});
-    config3.setVersionTag("version2");    
+    config3.setVersionTag("version2");
     
     c1.addConfig(config1);
     c1.addConfig(config2);
@@ -365,127 +365,6 @@ public class ClusterTest {
     Assert.assertEquals("Expect one host-level override", 1, dc.getHostOverrides().size());
   }
   
-  @Test
-  public void testActualConfigs() throws Exception {
-    
-    Assert.assertEquals (0, c1.getActualConfigs().size());
-    
-    c1.updateActualConfigs("h1",
-        new HashMap<String, Map<String,String>>() {{
-          put("global", new HashMap<String,String>() {{ put("tag", "version1"); }});
-        }});
-    Map<String, DesiredConfig> actual = c1.getActualConfigs();
-    Assert.assertEquals(1, actual.size());
-    Assert.assertNotNull(actual.get("global"));
-    Assert.assertEquals("version1", actual.get("global").getVersion());
-
-    // change global version
-    c1.updateActualConfigs("h1",
-        new HashMap<String, Map<String,String>>() {{
-          put("global", new HashMap<String,String>() {{ put("tag", "version2"); }});
-        }});
-    actual = c1.getActualConfigs();
-    Assert.assertEquals(1, actual.size());
-    Assert.assertNotNull(actual.get("global"));
-    Assert.assertEquals("version2", actual.get("global").getVersion());
-
-
-   // add a host override
-   c1.updateActualConfigs("h1",
-       new HashMap<String, Map<String,String>>() {{
-         put("global", new HashMap<String,String>() {{
-           put("tag", "version2");
-           put("host_override_tag", "xxyyzz");
-         }});
-       }});
-   actual = c1.getActualConfigs();
-   Assert.assertEquals(1, actual.size());
-   Assert.assertNotNull(actual.get("global"));
-   Assert.assertEquals("version2", actual.get("global").getVersion());
-   Assert.assertEquals(1, actual.get("global").getHostOverrides().size());
-
-   // add another host
-   c1.updateActualConfigs("h2",
-       new HashMap<String, Map<String,String>>() {{
-         put("global", new HashMap<String,String>() {{
-           put("tag", "version2");
-           put("host_override_tag", "aabbcc");
-         }});
-       }});
-   actual = c1.getActualConfigs();
-   Assert.assertEquals(1, actual.size());
-   Assert.assertNotNull(actual.get("global"));
-   Assert.assertEquals("version2", actual.get("global").getVersion());
-   Assert.assertEquals(2, actual.get("global").getHostOverrides().size());
-   for (HostOverride o : actual.get("global").getHostOverrides()) {
-     if (o.getName().equals("h1")) {
-       Assert.assertEquals(o.getVersionTag(), "xxyyzz");
-     } else {
-       Assert.assertEquals(o.getVersionTag(), "aabbcc");
-     }
-   }
-   
-   // remove h2 override
-   c1.updateActualConfigs("h2",
-       new HashMap<String, Map<String,String>>() {{
-         put("global", new HashMap<String,String>() {{
-           put("tag", "version3");
-         }});
-       }});
-   actual = c1.getActualConfigs();
-   Assert.assertEquals(1, actual.size());
-   Assert.assertNotNull(actual.get("global"));
-   Assert.assertEquals("version3", actual.get("global").getVersion());
-   Assert.assertEquals(1, actual.get("global").getHostOverrides().size());
-   Assert.assertEquals("h1", actual.get("global").getHostOverrides().get(0).getName());
-
-   
-   // change h1 override
-   c1.updateActualConfigs("h1",
-       new HashMap<String, Map<String,String>>() {{
-         put("global", new HashMap<String,String>() {{
-           put("tag", "version2");
-           put("host_override_tag", "mmnnoo");
-         }});
-       }});
-   actual = c1.getActualConfigs();
-   Assert.assertEquals(1, actual.size());
-   Assert.assertNotNull(actual.get("global"));
-   Assert.assertEquals("version2", actual.get("global").getVersion());
-   Assert.assertEquals(1, actual.get("global").getHostOverrides().size());
-   Assert.assertEquals("h1", actual.get("global").getHostOverrides().get(0).getName());
-   Assert.assertEquals("mmnnoo", actual.get("global").getHostOverrides().get(0).getVersionTag());
-   
-   // remove h1 override
-   c1.updateActualConfigs("h1",
-       new HashMap<String, Map<String,String>>() {{
-         put("global", new HashMap<String,String>() {{
-           put("tag", "version2");
-         }});
-       }});
-   Assert.assertEquals(1, actual.size());
-   Assert.assertNotNull(actual.get("global"));
-   Assert.assertEquals("version2", actual.get("global").getVersion());
-   Assert.assertEquals(0, actual.get("global").getHostOverrides().size());
-
-   
-   // create new one with override, not as an update
-   // remove h1 override
-   c1.updateActualConfigs("h1",
-       new HashMap<String, Map<String,String>>() {{
-         put("core-site", new HashMap<String,String>() {{
-           put("tag", "version4");
-           put("host_override_tag", "qqrrss");
-         }});
-       }});
-   Assert.assertEquals(2, actual.size());
-   Assert.assertNotNull(actual.get("global"));
-   Assert.assertNotNull(actual.get("core-site"));
-   Assert.assertEquals("version4", actual.get("core-site").getVersion());
-   Assert.assertEquals("qqrrss", actual.get("core-site").getHostOverrides().get(0).getVersionTag());
-   
-  }  
-  
   public ClusterEntity createDummyData() {
     ClusterEntity clusterEntity = new ClusterEntity();
     clusterEntity.setClusterName("test_cluster1");