Repository: ambari
Updated Branches:
  refs/heads/branch-2.5 481cfe56e -> f1fa4ec6a
  refs/heads/trunk b50142537 -> c8c134ee7


AMBARI-20024. Relax ranger config DB consistency check rules (aonishuk)


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

Branch: refs/heads/trunk
Commit: c8c134ee7c51a18df4613539e3b424cf17138645
Parents: b501425
Author: Andrew Onishuk <aonis...@hortonworks.com>
Authored: Fri Feb 17 13:36:12 2017 +0200
Committer: Andrew Onishuk <aonis...@hortonworks.com>
Committed: Fri Feb 17 13:36:12 2017 +0200

----------------------------------------------------------------------
 .../checks/DatabaseConsistencyCheckHelper.java   | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/c8c134ee/ambari-server/src/main/java/org/apache/ambari/server/checks/DatabaseConsistencyCheckHelper.java
----------------------------------------------------------------------
diff --git 
a/ambari-server/src/main/java/org/apache/ambari/server/checks/DatabaseConsistencyCheckHelper.java
 
b/ambari-server/src/main/java/org/apache/ambari/server/checks/DatabaseConsistencyCheckHelper.java
index 926ec65..e895fc5 100644
--- 
a/ambari-server/src/main/java/org/apache/ambari/server/checks/DatabaseConsistencyCheckHelper.java
+++ 
b/ambari-server/src/main/java/org/apache/ambari/server/checks/DatabaseConsistencyCheckHelper.java
@@ -33,6 +33,8 @@ import java.util.Map;
 import java.util.Objects;
 import java.util.Scanner;
 import java.util.Set;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
 
 import javax.annotation.Nullable;
 import javax.inject.Provider;
@@ -934,6 +936,12 @@ public class DatabaseConsistencyCheckHelper {
                 Collection<String> serviceConfigsFromDB = 
dbServiceConfigs.get(serviceName);
                 if (serviceConfigsFromDB != null && serviceConfigsFromStack != 
null) {
                   serviceConfigsFromStack.removeAll(serviceConfigsFromDB);
+
+                  // skip ranger-{service_name}-* from being checked, unless 
ranger is installed
+                  if(!dbServiceConfigs.containsKey("RANGER")) {
+                    removeStringsByRegexp(serviceConfigsFromStack, "^ranger-"+ 
serviceName.toLowerCase() + "-" + "*");
+                  }
+
                   if (!serviceConfigsFromStack.isEmpty()) {
                     error("Required config(s): {} is(are) not available for 
service {} with service config version {} in cluster {}",
                             StringUtils.join(serviceConfigsFromStack, ","), 
serviceName, Integer.toString(serviceVersion), clusterName);
@@ -1009,4 +1017,15 @@ public class DatabaseConsistencyCheckHelper {
     }
   }
 
+  private static void removeStringsByRegexp(Collection<String> stringItems, 
String regexp) {
+      Pattern pattern = Pattern.compile(regexp);
+
+      for (Iterator<String> iterator = stringItems.iterator(); 
iterator.hasNext();) {
+        String stringItem = iterator.next();
+        Matcher matcher = pattern.matcher(stringItem);
+        if (matcher.find()) {
+          iterator.remove();
+        }
+      }
+  }
 }

Reply via email to