AMBARI-22145. Secure cluster deploy failing with "While building the CHECK_KEYTABS custom command for KERBEROS/KERBEROS_CLIENT, there were no healthy eligible hosts" (amagyar)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/ed378b76 Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/ed378b76 Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/ed378b76 Branch: refs/heads/branch-feature-AMBARI-14714 Commit: ed378b76498e17d752353153b2596bbb0eb810d9 Parents: 2512dc8 Author: Attila Magyar <[email protected]> Authored: Thu Oct 5 17:19:31 2017 +0200 Committer: Attila Magyar <[email protected]> Committed: Thu Oct 5 17:19:31 2017 +0200 ---------------------------------------------------------------------- .../server/controller/KerberosHelperImpl.java | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/ed378b76/ambari-server/src/main/java/org/apache/ambari/server/controller/KerberosHelperImpl.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/KerberosHelperImpl.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/KerberosHelperImpl.java index 67b08fd..b691968 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/controller/KerberosHelperImpl.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/KerberosHelperImpl.java @@ -3433,18 +3433,20 @@ public class KerberosHelperImpl implements KerberosHelper { Collection<ServiceComponentHost> filteredComponents = filterServiceComponentHostsForHosts( new ArrayList<>(serviceComponentHosts), getHostsWithValidKerberosClient(cluster)); - List<String> hostsToUpdate = createUniqueHostList(filteredComponents, Collections.singleton(HostState.HEALTHY)); - Map<String, String> requestParams = new HashMap<>(); - List<RequestResourceFilter> requestResourceFilters = new ArrayList<>(); - RequestResourceFilter reqResFilter = new RequestResourceFilter(Service.Type.KERBEROS.name(), Role.KERBEROS_CLIENT.name(), hostsToUpdate); - requestResourceFilters.add(reqResFilter); + if (!filteredComponents.isEmpty()) { + List<String> hostsToUpdate = createUniqueHostList(filteredComponents, Collections.singleton(HostState.HEALTHY)); + Map<String, String> requestParams = new HashMap<>(); + List<RequestResourceFilter> requestResourceFilters = new ArrayList<>(); + RequestResourceFilter reqResFilter = new RequestResourceFilter(Service.Type.KERBEROS.name(), Role.KERBEROS_CLIENT.name(), hostsToUpdate); + requestResourceFilters.add(reqResFilter); - ActionExecutionContext actionExecContext = new ActionExecutionContext( + ActionExecutionContext actionExecContext = new ActionExecutionContext( cluster.getClusterName(), CHECK_KEYTABS, requestResourceFilters, requestParams); - customCommandExecutionHelper.addExecutionCommandsToStage(actionExecContext, stage, requestParams, null); + customCommandExecutionHelper.addExecutionCommandsToStage(actionExecContext, stage, requestParams, null); + } RoleGraph roleGraph = roleGraphFactory.createNew(roleCommandOrder); roleGraph.build(stage);
