ambari git commit: AMBARI-9852. Kerberos: Kerberos Service Check needs to generate and destroy it's own unique identity for testing (rlevas)
Repository: ambari Updated Branches: refs/heads/branch-2.0.0 375c6908f - 24b2af40f AMBARI-9852. Kerberos: Kerberos Service Check needs to generate and destroy it's own unique identity for testing (rlevas) Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/24b2af40 Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/24b2af40 Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/24b2af40 Branch: refs/heads/branch-2.0.0 Commit: 24b2af40f112ee72e851ecb3f5bea626ea920546 Parents: 375c690 Author: Robert Levas rle...@hortonworks.com Authored: Tue Mar 3 10:35:23 2015 -0500 Committer: Robert Levas rle...@hortonworks.com Committed: Tue Mar 3 10:35:27 2015 -0500 -- .../AmbariManagementControllerImpl.java | 51 +- .../server/controller/KerberosHelper.java | 636 ++- .../1.10.3-10/package/scripts/params.py | 9 +- .../1.10.3-10/package/scripts/service_check.py | 46 +- .../server/controller/KerberosHelperTest.java | 393 5 files changed, 946 insertions(+), 189 deletions(-) -- http://git-wip-us.apache.org/repos/asf/ambari/blob/24b2af40/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementControllerImpl.java -- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementControllerImpl.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementControllerImpl.java index 2bf0cbf..dcbbed2 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementControllerImpl.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementControllerImpl.java @@ -40,7 +40,6 @@ import java.io.IOException; import java.net.InetAddress; import java.text.MessageFormat; import java.util.ArrayList; -import java.util.Arrays; import java.util.Collection; import java.util.Collections; import java.util.EnumMap; @@ -55,6 +54,7 @@ import java.util.Set; import java.util.TreeMap; import java.util.concurrent.TimeUnit; +import com.google.gson.reflect.TypeToken; import org.apache.ambari.server.AmbariException; import org.apache.ambari.server.ClusterNotFoundException; import org.apache.ambari.server.DuplicateResourceException; @@ -2902,23 +2902,30 @@ public class AmbariManagementControllerImpl implements AmbariManagementControlle actionManager, actionRequest); +ExecuteCommandJson jsons = customCommandExecutionHelper.getCommandJson(actionExecContext, cluster); +String commandParamsForStage = jsons.getCommandParamsForStage(); + // If the request is to perform the Kerberos service check, set up the stages to // ensure that the (cluster-level) smoke user principal and keytab is available on all hosts -if (Role.KERBEROS_SERVICE_CHECK.name().equals(actionRequest.getCommandName())) { +boolean kerberosServiceCheck = Role.KERBEROS_SERVICE_CHECK.name().equals(actionRequest.getCommandName()); +if (kerberosServiceCheck) { + // Parse the command parameters into a map so that additional values may be added to it + MapString, String commandParamsStage = gson.fromJson(commandParamsForStage, + new TypeTokenMapString, String() { + }.getType()); + try { -requestStageContainer = kerberosHelper.ensureIdentities(cluster, -Collections.String, CollectionStringsingletonMap(Service.Type.KERBEROS.name(), null), -Collections.singleton(/smokeuser), requestStageContainer); +requestStageContainer = kerberosHelper.createTestIdentity(cluster, commandParamsStage, requestStageContainer); } catch (KerberosOperationException e) { throw new IllegalArgumentException(e.getMessage(), e); } -} -ExecuteCommandJson jsons = customCommandExecutionHelper.getCommandJson( -actionExecContext, cluster); + // Recreate commandParamsForStage with the added values + commandParamsForStage = gson.toJson(commandParamsStage); +} Stage stage = createNewStage(requestStageContainer.getLastStageId(), cluster, requestId, requestContext, -jsons.getClusterHostInfo(), jsons.getCommandParamsForStage(), jsons.getHostParamsForStage()); +jsons.getClusterHostInfo(), commandParamsForStage, jsons.getHostParamsForStage()); if (actionRequest.isCommand()) { customCommandExecutionHelper.addExecutionCommandsToStage(actionExecContext, stage, requestProperties, false); @@ -2938,18 +2945,28 @@ public class AmbariManagementControllerImpl implements AmbariManagementControlle ListStage stages = rg.getStages(); if (stages != null !stages.isEmpty()) { + // If this is a Kerberos service
ambari git commit: AMBARI-9852. Kerberos: Kerberos Service Check needs to generate and destroy it's own unique identity for testing (rlevas)
Repository: ambari Updated Branches: refs/heads/trunk c313023bd - 954b96e1e AMBARI-9852. Kerberos: Kerberos Service Check needs to generate and destroy it's own unique identity for testing (rlevas) Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/954b96e1 Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/954b96e1 Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/954b96e1 Branch: refs/heads/trunk Commit: 954b96e1edf8fc313ce06d57928b3e26e714770a Parents: c313023 Author: Robert Levas rle...@hortonworks.com Authored: Tue Mar 3 09:59:50 2015 -0500 Committer: Robert Levas rle...@hortonworks.com Committed: Tue Mar 3 09:59:59 2015 -0500 -- .../AmbariManagementControllerImpl.java | 51 +- .../server/controller/KerberosHelper.java | 636 ++- .../1.10.3-10/package/scripts/params.py | 9 +- .../1.10.3-10/package/scripts/service_check.py | 46 +- .../server/controller/KerberosHelperTest.java | 393 5 files changed, 946 insertions(+), 189 deletions(-) -- http://git-wip-us.apache.org/repos/asf/ambari/blob/954b96e1/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementControllerImpl.java -- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementControllerImpl.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementControllerImpl.java index 2bf0cbf..dcbbed2 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementControllerImpl.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementControllerImpl.java @@ -40,7 +40,6 @@ import java.io.IOException; import java.net.InetAddress; import java.text.MessageFormat; import java.util.ArrayList; -import java.util.Arrays; import java.util.Collection; import java.util.Collections; import java.util.EnumMap; @@ -55,6 +54,7 @@ import java.util.Set; import java.util.TreeMap; import java.util.concurrent.TimeUnit; +import com.google.gson.reflect.TypeToken; import org.apache.ambari.server.AmbariException; import org.apache.ambari.server.ClusterNotFoundException; import org.apache.ambari.server.DuplicateResourceException; @@ -2902,23 +2902,30 @@ public class AmbariManagementControllerImpl implements AmbariManagementControlle actionManager, actionRequest); +ExecuteCommandJson jsons = customCommandExecutionHelper.getCommandJson(actionExecContext, cluster); +String commandParamsForStage = jsons.getCommandParamsForStage(); + // If the request is to perform the Kerberos service check, set up the stages to // ensure that the (cluster-level) smoke user principal and keytab is available on all hosts -if (Role.KERBEROS_SERVICE_CHECK.name().equals(actionRequest.getCommandName())) { +boolean kerberosServiceCheck = Role.KERBEROS_SERVICE_CHECK.name().equals(actionRequest.getCommandName()); +if (kerberosServiceCheck) { + // Parse the command parameters into a map so that additional values may be added to it + MapString, String commandParamsStage = gson.fromJson(commandParamsForStage, + new TypeTokenMapString, String() { + }.getType()); + try { -requestStageContainer = kerberosHelper.ensureIdentities(cluster, -Collections.String, CollectionStringsingletonMap(Service.Type.KERBEROS.name(), null), -Collections.singleton(/smokeuser), requestStageContainer); +requestStageContainer = kerberosHelper.createTestIdentity(cluster, commandParamsStage, requestStageContainer); } catch (KerberosOperationException e) { throw new IllegalArgumentException(e.getMessage(), e); } -} -ExecuteCommandJson jsons = customCommandExecutionHelper.getCommandJson( -actionExecContext, cluster); + // Recreate commandParamsForStage with the added values + commandParamsForStage = gson.toJson(commandParamsStage); +} Stage stage = createNewStage(requestStageContainer.getLastStageId(), cluster, requestId, requestContext, -jsons.getClusterHostInfo(), jsons.getCommandParamsForStage(), jsons.getHostParamsForStage()); +jsons.getClusterHostInfo(), commandParamsForStage, jsons.getHostParamsForStage()); if (actionRequest.isCommand()) { customCommandExecutionHelper.addExecutionCommandsToStage(actionExecContext, stage, requestProperties, false); @@ -2938,18 +2945,28 @@ public class AmbariManagementControllerImpl implements AmbariManagementControlle ListStage stages = rg.getStages(); if (stages != null !stages.isEmpty()) { + // If this is a Kerberos service check, set the