You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by lp...@apache.org on 2017/05/25 14:42:56 UTC

ambari git commit: AMBARI-21126 Exception message generated based on ordered collections to be predictable

Repository: ambari
Updated Branches:
  refs/heads/trunk 9dbf8f15e -> 14acc0ae3


AMBARI-21126 Exception message generated based on ordered collections to be predictable


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

Branch: refs/heads/trunk
Commit: 14acc0ae32a274184830a8e7bf847f5ede8ac953
Parents: 9dbf8f1
Author: lpuskas <lp...@apache.org>
Authored: Thu May 25 11:52:59 2017 +0200
Committer: lpuskas <lp...@apache.org>
Committed: Thu May 25 16:42:20 2017 +0200

----------------------------------------------------------------------
 .../RequiredConfigPropertiesValidator.java      | 10 +++---
 .../RequiredConfigPropertiesValidatorTest.java  | 35 +++++++++++---------
 2 files changed, 25 insertions(+), 20 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/14acc0ae/ambari-server/src/main/java/org/apache/ambari/server/topology/validators/RequiredConfigPropertiesValidator.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/topology/validators/RequiredConfigPropertiesValidator.java b/ambari-server/src/main/java/org/apache/ambari/server/topology/validators/RequiredConfigPropertiesValidator.java
index 759d9e9..85be82c 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/topology/validators/RequiredConfigPropertiesValidator.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/topology/validators/RequiredConfigPropertiesValidator.java
@@ -18,6 +18,8 @@ import java.util.Collection;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Map;
+import java.util.TreeMap;
+import java.util.TreeSet;
 
 import org.apache.ambari.server.controller.internal.Stack;
 import org.apache.ambari.server.state.PropertyInfo;
@@ -54,7 +56,7 @@ public class RequiredConfigPropertiesValidator implements TopologyValidator {
     Map<String, Map<String, Collection<String>>> requiredPropertiesByService = getRequiredPropertiesByService(topology.getBlueprint());
 
     // find missing properties in the cluster configuration
-    Map<String, Collection<String>> missingProperties = new HashMap<>();
+    Map<String, Collection<String>> missingProperties = new TreeMap<>();
     Map<String, Map<String, String>> topologyConfiguration = new HashMap<>(topology.getConfiguration().getFullProperties(1));
 
     for (HostGroup hostGroup : topology.getBlueprint().getHostGroups().values()) {
@@ -170,13 +172,13 @@ public class RequiredConfigPropertiesValidator implements TopologyValidator {
     Map<String, Collection<String>> missing;
 
     if (missingProperties == null) {
-      missing = new HashMap<>();
+      missing = new TreeMap<>();
     } else {
-      missing = new HashMap<>(missingProperties);
+      missing = new TreeMap<>(missingProperties);
     }
 
     if (!missing.containsKey(hostGroup)) {
-      missing.put(hostGroup, new HashSet<String>());
+      missing.put(hostGroup, new TreeSet<String>());
     }
 
     missing.get(hostGroup).addAll(values);

http://git-wip-us.apache.org/repos/asf/ambari/blob/14acc0ae/ambari-server/src/test/java/org/apache/ambari/server/topology/validators/RequiredConfigPropertiesValidatorTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/topology/validators/RequiredConfigPropertiesValidatorTest.java b/ambari-server/src/test/java/org/apache/ambari/server/topology/validators/RequiredConfigPropertiesValidatorTest.java
index 8ead623..82a4ed0 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/topology/validators/RequiredConfigPropertiesValidatorTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/topology/validators/RequiredConfigPropertiesValidatorTest.java
@@ -14,12 +14,13 @@
 
 package org.apache.ambari.server.topology.validators;
 
-import java.util.Arrays;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Map;
+import java.util.TreeMap;
+import java.util.TreeSet;
 
 import org.apache.ambari.server.controller.internal.Stack;
 import org.apache.ambari.server.topology.Blueprint;
@@ -37,6 +38,9 @@ import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
 
+import com.google.common.collect.Lists;
+import com.google.common.collect.Sets;
+
 public class RequiredConfigPropertiesValidatorTest extends EasyMockSupport {
 
   @Rule
@@ -74,7 +78,7 @@ public class RequiredConfigPropertiesValidatorTest extends EasyMockSupport {
   private Collection<String> slaveHostGroupServices = new HashSet<>();
   private Collection<String> masterHostGroupServices = new HashSet<>();
   private Map<String, HostGroup> hostGroups = new HashMap<>();
-  private Map<String, Collection<String>> missingProps = new HashMap<>();
+  private Map<String, Collection<String>> missingProps = new TreeMap<>();
 
   @TestSubject
   private RequiredConfigPropertiesValidator testSubject = new RequiredConfigPropertiesValidator();
@@ -112,21 +116,21 @@ public class RequiredConfigPropertiesValidatorTest extends EasyMockSupport {
     hostGroups.put("slave", slaveHostGroupMock);
 
     // services in the blueprint
-    bpServices.addAll(Arrays.asList("KERBEROS", "OOZIE"));
+    bpServices.addAll(Lists.newArrayList("KERBEROS", "OOZIE"));
 
     // host group services
-    masterHostGroupServices.addAll(Arrays.asList("KERBEROS"));
-    slaveHostGroupServices.addAll(Arrays.asList("KERBEROS"));
+    masterHostGroupServices.addAll(Collections.singletonList("KERBEROS"));
+    slaveHostGroupServices.addAll(Collections.singletonList("KERBEROS"));
 
     EasyMock.expect(masterHostGroupConfigurationMock.getProperties()).andReturn(masterHostGroupConfigurationMap);
     EasyMock.expect(slaveHostGroupConfigurationMock.getProperties()).andReturn(slaveHostGroupConfigurationMap);
 
     // services in the blueprint
-    bpServices.addAll(Arrays.asList("KERBEROS", "OOZIE"));
+    bpServices.addAll(Lists.newArrayList("KERBEROS", "OOZIE"));
 
     // required properties for listed services
     EasyMock.expect(stackMock.getRequiredConfigurationProperties("KERBEROS")).
-      andReturn(Arrays.asList(
+      andReturn(Lists.newArrayList(
         new Stack.ConfigProperty("kerberos-env", "realm", "value"),
         new Stack.ConfigProperty("kerberos-env", "kdc_type", "value"), // this is missing!
         new Stack.ConfigProperty("krb5-conf", "domains", "smthg")));
@@ -145,8 +149,8 @@ public class RequiredConfigPropertiesValidatorTest extends EasyMockSupport {
     topologyConfigurationMap.get("kerberos-env").put("kdc_type", "mit-kdc");
 
     // note, that the krb-5 config type is missing! (see the required properties in the fixture!)
-    missingProps.put("slave", Arrays.asList("domains"));
-    missingProps.put("master", Arrays.asList("domains"));
+    missingProps.put("slave", new TreeSet<>(Collections.singletonList("domains")));
+    missingProps.put("master", new TreeSet<>(Collections.singletonList("domains")));
 
     replayAll();
 
@@ -177,8 +181,8 @@ public class RequiredConfigPropertiesValidatorTest extends EasyMockSupport {
     topologyConfigurationMap.put("krb5-conf", new HashMap<String, String>());
     topologyConfigurationMap.get("krb5-conf").put("domains", "smthg");
 
-    missingProps.put("master", Arrays.asList("kdc_type"));
-    missingProps.put("slave", Arrays.asList("kdc_type"));
+    missingProps.put("master", Collections.singletonList("kdc_type"));
+    missingProps.put("slave", Collections.singletonList("kdc_type"));
 
     replayAll();
 
@@ -202,9 +206,8 @@ public class RequiredConfigPropertiesValidatorTest extends EasyMockSupport {
   public void testShouldValidationFailWhenHostGroupConfigurationProvidedAndRequiredConfigTypesAreMissingFromBothHostgroups() throws Exception {
     // GIVEN
     // configuration come in the host groups, there are missing config types in both hostgroups
-
-    missingProps.put("master", Arrays.asList("kdc_type", "domains", "realm"));
-    missingProps.put("slave", Arrays.asList("kdc_type", "domains", "realm"));
+    missingProps.put("master", Sets.newTreeSet(Lists.<String>newArrayList("kdc_type", "domains", "realm")));
+    missingProps.put("slave", Sets.newTreeSet(Lists.<String>newArrayList("kdc_type", "domains", "realm")));
 
     replayAll();
 
@@ -218,7 +221,7 @@ public class RequiredConfigPropertiesValidatorTest extends EasyMockSupport {
     }
 
     // THEN
-    // Exception is thrown, as the krb5-conf typee is not provideds
+    // Exception is thrown, as the krb5-conf typee is not provided
     Assert.assertEquals("The exception message should be the expected one", expectedMsg, actualMsg);
   }
 
@@ -232,7 +235,7 @@ public class RequiredConfigPropertiesValidatorTest extends EasyMockSupport {
     masterHostGroupConfigurationMap.put("krb5-conf", new HashMap<String, String>());
     masterHostGroupConfigurationMap.get("krb5-conf").put("domains", "smthg");
 
-    missingProps.put("slave", Arrays.asList("kdc_type", "domains", "realm"));
+    missingProps.put("slave", Sets.<String>newTreeSet(Lists.<String>newArrayList("kdc_type", "domains", "realm")));
 
     replayAll();