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(); + } + } + } }