You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by sw...@apache.org on 2013/11/27 02:32:53 UTC

git commit: AMBARI-3895. Stale_configs flag not updated when host moves back to default config-group. (swagle)

Updated Branches:
  refs/heads/trunk c66287359 -> eb5c0b619


AMBARI-3895. Stale_configs flag not updated when host moves back to default config-group. (swagle)


Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/eb5c0b61
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/eb5c0b61
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/eb5c0b61

Branch: refs/heads/trunk
Commit: eb5c0b619146f461dbfd5b644f3635eec914224a
Parents: c662873
Author: Siddharth Wagle <sw...@hortonworks.com>
Authored: Tue Nov 26 17:28:56 2013 -0800
Committer: Siddharth Wagle <sw...@hortonworks.com>
Committed: Tue Nov 26 17:30:51 2013 -0800

----------------------------------------------------------------------
 .../apache/ambari/server/state/ConfigHelper.java   | 17 ++++++-----------
 .../java/org/apache/ambari/server/state/Host.java  |  6 ++++++
 .../apache/ambari/server/state/host/HostImpl.java  |  6 ++++++
 3 files changed, 18 insertions(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/eb5c0b61/ambari-server/src/main/java/org/apache/ambari/server/state/ConfigHelper.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/state/ConfigHelper.java b/ambari-server/src/main/java/org/apache/ambari/server/state/ConfigHelper.java
index 5fb7667..964d2d6 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/state/ConfigHelper.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/state/ConfigHelper.java
@@ -257,7 +257,6 @@ public class ConfigHelper {
     // --- desired tags DO match actual tags: not_stale
     // --- desired tags DO NOT match actual tags
     // ---- merge values, determine changed keys, check stack: stale
-    
     boolean stale = false;
 
     Iterator<Entry<String, Map<String, String>>> it = desired.entrySet().iterator();
@@ -294,7 +293,8 @@ public class ConfigHelper {
           // tags are changed, need to find out what has changed,
           // and if it applies
           // to the service
-          Collection<String> changed = findChangedKeys(cluster, type, tags.values(), actualTags.values());
+          Collection<String> changed = findChangedKeys(cluster, type,
+            tags.values(), actualTags.values());
           if (serviceInfo.hasPropertyFor(type, changed)) {
             stale = true;
           }
@@ -312,7 +312,6 @@ public class ConfigHelper {
    * @return <code>true</code> if any service on the stack defines a property
    * for the type.
    */
-
   private boolean hasPropertyFor(StackId stack, String type,
       Collection<String> keys) throws AmbariException {
 
@@ -384,15 +383,11 @@ public class ConfigHelper {
     if (!actualTags.get(CLUSTER_DEFAULT_TAG).equals(desiredTags.get(CLUSTER_DEFAULT_TAG)))
       return true;
 
-    Set<String> desiredSet = new HashSet<String>(desiredTags.keySet());
-    Set<String> actualSet = new HashSet<String>(actualTags.keySet());
-
-    desiredSet.removeAll(actualSet);
+    Set<String> desiredSet = new HashSet<String>(desiredTags.values());
+    Set<String> actualSet = new HashSet<String>(actualTags.values());
 
-    if (!desiredSet.isEmpty())
-      return true;
-
-    return false;
+    // Both desired and actual should be exactly the same
+    return !desiredSet.equals(actualSet);
   }
 
   /**

http://git-wip-us.apache.org/repos/asf/ambari/blob/eb5c0b61/ambari-server/src/main/java/org/apache/ambari/server/state/Host.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/state/Host.java b/ambari-server/src/main/java/org/apache/ambari/server/state/Host.java
index 5eef430..3fc6efa 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/state/Host.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/state/Host.java
@@ -311,5 +311,11 @@ public interface Host {
    */
   public Map<String, DesiredConfig> getDesiredConfigs(long clusterId);
 
+  /**
+   * Get the desired configurations for the host including overrides
+   * @param cluster
+   * @return
+   * @throws AmbariException
+   */
   public Map<String, HostConfig> getDesiredHostConfigs(Cluster cluster) throws AmbariException;
 }

http://git-wip-us.apache.org/repos/asf/ambari/blob/eb5c0b61/ambari-server/src/main/java/org/apache/ambari/server/state/host/HostImpl.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/state/host/HostImpl.java b/ambari-server/src/main/java/org/apache/ambari/server/state/host/HostImpl.java
index 567623e..d2e53ae 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/state/host/HostImpl.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/state/host/HostImpl.java
@@ -1175,6 +1175,12 @@ public class HostImpl implements Host {
   @Override
   public Map<String, HostConfig> getDesiredHostConfigs(Cluster cluster) throws AmbariException {
     Map<String, HostConfig> hostConfigMap = new HashMap<String, HostConfig>();
+    for (Map.Entry<String, DesiredConfig> desiredConfigEntry :
+        cluster.getDesiredConfigs().entrySet()) {
+      HostConfig hostConfig = new HostConfig();
+      hostConfig.setDefaultVersionTag(desiredConfigEntry.getValue().getVersion());
+      hostConfigMap.put(desiredConfigEntry.getKey(), hostConfig);
+    }
 
     Map<Long, ConfigGroup> configGroups = cluster.getConfigGroupsByHostname
       (this.getHostName());