jaas fix for StormServer
Project: http://git-wip-us.apache.org/repos/asf/incubator-slider/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-slider/commit/4b2f8aad Tree: http://git-wip-us.apache.org/repos/asf/incubator-slider/tree/4b2f8aad Diff: http://git-wip-us.apache.org/repos/asf/incubator-slider/diff/4b2f8aad Branch: refs/heads/feature/SLIDER-280_Restart_AM_fun_tests Commit: 4b2f8aad8d924cd1f2396b0057c885028210310b Parents: b2f2d79 8da1503 Author: Jon Maron <jma...@hortonworks.com> Authored: Mon Sep 8 09:27:56 2014 -0400 Committer: Jon Maron <jma...@hortonworks.com> Committed: Mon Sep 8 09:27:56 2014 -0400 ---------------------------------------------------------------------- README.md | 4 +- app-packages/accumulo/appConfig.json | 7 +- .../src/test/resources/appConfig_kerberos.json | 57 ++ .../test/resources/appConfig_monitor_ssl.json | 7 +- .../src/test/resources/appConfig_ssl.json | 7 +- app-packages/hbase/appConfig.json | 76 +-- app-packages/hbase/pom.xml | 2 +- app-packages/storm/README.txt | 2 +- app-packages/storm/appConfig.json | 13 +- app-packages/storm/metainfo.xml | 26 +- ...pache-storm-0.9.3.0.2.5.0-100.tar.gz.REPLACE | 16 - app-packages/storm/package/scripts/params.py | 8 +- app-packages/storm/package/scripts/service.py | 43 +- .../storm/package/scripts/status_params.py | 4 +- .../storm/package/templates/config.yaml.j2 | 9 - app-packages/storm/pom.xml | 90 +++ app-packages/storm/resources.json | 12 +- app-packages/storm/src/assembly/storm.xml | 68 +++ pom.xml | 42 +- slider-agent/pom.xml | 4 +- .../src/main/python/agent/Controller.py | 1 + .../python/agent/CustomServiceOrchestrator.py | 10 +- slider-agent/src/main/python/agent/Register.py | 5 +- slider-agent/src/main/python/setup.py | 2 +- .../src/test/python/agent/TestRegistration.py | 5 +- slider-agent/src/test/python/python-wrap | 40 -- slider-agent/src/test/python/python-wrap.sh | 42 ++ slider-agent/src/test/python/unitTests.py | 36 +- slider-assembly/pom.xml | 23 +- slider-assembly/src/main/bash/README.md | 2 +- slider-assembly/src/main/bash/slider_destroy | 4 +- slider-assembly/src/main/scripts/slider | 2 + slider-assembly/src/main/scripts/slider.py | 12 +- slider-core/pom.xml | 4 +- .../org/apache/slider/api/InternalKeys.java | 11 + .../org/apache/slider/api/ResourceKeys.java | 13 - .../org/apache/slider/client/SliderClient.java | 43 +- .../common/params/AbstractActionArgs.java | 11 + .../slider/common/params/ActionFreezeArgs.java | 2 +- .../slider/common/params/ActionHelpArgs.java | 14 +- .../slider/common/params/ActionVersionArgs.java | 12 +- .../common/params/LaunchArgsAccessor.java | 2 +- .../slider/common/params/SliderActions.java | 8 +- .../apache/slider/common/tools/SliderUtils.java | 571 ++++++++++++++----- .../slider/core/build/InstanceBuilder.java | 5 +- .../apache/slider/core/zk/ZookeeperUtils.java | 3 +- .../slider/providers/agent/AgentKeys.java | 2 + .../providers/agent/AgentProviderService.java | 189 +++--- .../server/appmaster/RoleLaunchService.java | 8 +- .../server/appmaster/SliderAppMaster.java | 71 ++- .../server/appmaster/actions/ActionHalt.java | 6 +- .../appmaster/actions/ActionKillContainer.java | 20 +- .../appmaster/actions/ActionStartContainer.java | 8 +- .../appmaster/actions/ActionStopSlider.java | 6 +- .../server/appmaster/actions/AsyncAction.java | 47 +- .../actions/ProviderReportedContainerLoss.java | 13 +- .../actions/ProviderStartupCompleted.java | 4 - .../server/appmaster/actions/QueueAccess.java | 5 + .../server/appmaster/actions/QueueService.java | 11 +- .../actions/RegisterComponentInstance.java | 5 + .../actions/ReviewAndFlexApplicationSize.java | 43 ++ .../actions/UnregisterComponentInstance.java | 7 +- .../server/appmaster/monkey/ChaosEntry.java | 2 +- .../slider/server/appmaster/state/AppState.java | 11 +- .../server/appmaster/state/NodeEntry.java | 2 +- .../server/appmaster/state/RoleHistory.java | 6 +- .../appmaster/web/rest/agent/Register.java | 13 + .../services/utility/EndOfServiceWaiter.java | 84 +++ .../services/workflow/ForkedProcessService.java | 21 +- .../services/workflow/LongLivedProcess.java | 57 +- .../agent/AgentMiniClusterTestBase.groovy | 9 + .../agent/actions/TestActionExists.groovy | 2 +- .../agent/actions/TestActionVersion.groovy | 5 +- .../agent/freezethaw/TestFreezeCommands.groovy | 10 +- .../TestFreezeThawMasterlessAM.groovy | 8 +- .../freezethaw/TestFreezeUnknownCluster.groovy | 2 +- .../standalone/TestBuildStandaloneAM.groovy | 2 +- .../standalone/TestStandaloneAMDestroy.groovy | 6 +- .../standalone/TestStandaloneAMKill.groovy | 2 +- .../TestStandaloneAMMonkeyRestart.groovy | 8 +- .../standalone/TestStandaloneRegistryAM.groovy | 2 +- .../slider/client/TestCommonArgParsing.groovy | 2 +- .../tools/TestClientResourceRegistration.groovy | 3 + .../common/tools/TestConfigHelperHDFS.groovy | 3 + .../tools/TestExecutionEnvironment.groovy | 42 ++ .../common/tools/TestMiscSliderUtils.groovy | 3 + .../common/tools/TestWindowsSupport.groovy | 76 ++- .../common/tools/TestZKIntegration.groovy | 54 +- .../slider/providers/agent/AgentTestBase.groovy | 10 + .../agent/TestAgentAMManagementWS.groovy | 8 +- .../slider/providers/agent/TestAgentEcho.groovy | 6 +- .../curator/TestRegistryRestResources.groovy | 6 +- .../model/history/TestRoleHistoryRW.groovy | 4 +- .../publisher/TestPublisherRestResources.groovy | 26 +- .../apache/slider/test/SliderTestUtils.groovy | 11 +- .../slider/test/YarnMiniClusterTestBase.groovy | 32 +- .../test/YarnZKMiniClusterTestBase.groovy | 2 +- .../agent/TestAgentProviderService.java | 64 ++- .../services/workflow/EndOfServiceWaiter.java | 56 -- .../workflow/ProcessCommandFactory.java | 21 +- .../services/workflow/TestLongLivedProcess.java | 6 +- .../TestWorkflowForkedProcessService.java | 4 +- .../workflow/WorkflowServiceTestBase.java | 3 +- .../src/test/resources/example-slider-test.xml | 4 +- .../funtest/framework/CommandTestBase.groovy | 2 +- .../lifecycle/AgentClusterLifecycleIT.groovy | 8 +- .../src/test/manual/python/SliderTester.py | 4 +- .../providers/accumulo/AccumuloTestBase.groovy | 4 +- .../accumulo/live/TestAccFreezeThaw.groovy | 4 +- .../funtest/HBaseClusterLifecycleIT.groovy | 8 +- .../minicluster/HBaseMiniClusterTestBase.groovy | 1 - .../TestFreezeThawClusterFromArchive.groovy | 2 +- .../build/TestBuildThawClusterM1W1.groovy | 2 +- .../flexing/TestClusterFlex1To1.groovy | 2 +- ...reezeReconfigureThawLiveRegionService.groovy | 4 +- .../TestFreezeThawLiveRegionService.groovy | 4 +- .../minicluster/live/TestTwoLiveClusters.groovy | 4 +- src/test/clusters/sandbox/operations.md | 20 +- src/test/clusters/ubuntu-secure/operations.md | 14 +- 119 files changed, 1812 insertions(+), 794 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/4b2f8aad/app-packages/storm/README.txt ---------------------------------------------------------------------- diff --cc app-packages/storm/README.txt index 2bae3d2,49adfce..288604a --- a/app-packages/storm/README.txt +++ b/app-packages/storm/README.txt @@@ -17,19 -17,16 +17,19 @@@ How to create a Slider app package for Storm? -To create the app package you will need the Storm tarball and invoke mvn command -with appropriate parameters. +To create the app package you will need the Storm tarball copied to a specific location. +Various configurations provided in this sample are customized for apache-storm-0.9.1.2.1.1.0-237.tar.gz. +So if you use a different version you may need to edit a few config values. -Command: -mvn clean package -Pstorm-app-package -Dpkg.version=<version> - -Dpkg.name=<file name of app tarball> -Dpkg.src=<folder location where the pkg is available> +Replace the placeholder tarball for Storm. + cp ~/Downloads/apache-storm-0.9.3.0.2.5.0-100.tar.gz package/files/ - rm package/files/apache-storm-0.9.3.0.2.5.0-100.tar.gz.REPLACE ++ rm package/files/apache-storm-0.9.1.2.1.1.0-237.tar.gz.REPLACE -Example: -mvn clean package -Pstorm-app-package -Dpkg.version=0.9.3.2.2.0.0-578 - -Dpkg.name=apache-storm-0.9.3.2.2.0.0-578.tar.gz -Dpkg.src=/Users/user1/Downloads +Create a zip package at the root of the package (<slider enlistment>/app-packages/storm-v0_91/) + zip -r Apache_Storm_v_0_9_3.zip . + +Verify the content using + unzip -l "$@" Apache_Storm_v_0_9_3.zip While appConfig.json and resources.json are not required for the package they work well as the default configuration for Slider apps. So its advisable that when you http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/4b2f8aad/app-packages/storm/appConfig.json ---------------------------------------------------------------------- diff --cc app-packages/storm/appConfig.json index d6dee84,1eae599..33e38ac --- a/app-packages/storm/appConfig.json +++ b/app-packages/storm/appConfig.json @@@ -3,14 -3,15 +3,15 @@@ "metadata": { }, "global": { - "application.def": "Apache_Storm_v_0_9_3.zip", + "application.def": "slider-storm-app-package-${pkg.version}.zip", "java_home": "/usr/jdk64/jdk1.7.0_45", "create.default.zookeeper.node": "true", + "system_configs": "core-site", "site.global.app_user": "yarn", - "site.global.app_root": "${AGENT_WORK_ROOT}/app/install/apache-storm-0.9.3.0.2.5.0-100", + "site.global.app_root": "${AGENT_WORK_ROOT}/app/install/apache-storm-${pkg.version}", "site.global.user_group": "hadoop", - + "site.global.security_enabled": "false", "site.global.ganglia_server_host": "${NN_HOST}", "site.global.ganglia_server_id": "Application2", "site.global.ganglia_enabled":"true", @@@ -33,7 -32,7 +32,7 @@@ "site.storm-site.nimbus.host": "${NIMBUS_HOST}", "site.storm-site.ui.port": "${STORM_UI_SERVER.ALLOCATED_PORT}", "site.storm-site.supervisor.slots.ports": "[${SUPERVISOR.ALLOCATED_PORT}{DO_NOT_PROPAGATE},${SUPERVISOR.ALLOCATED_PORT}{DO_NOT_PROPAGATE}]", - "site.storm-site.supervisor.childopts": "-Xmx256m -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.port=0 -javaagent:${AGENT_WORK_ROOT}/app/install/apache-storm-0.9.3.0.2.5.0-100/external/storm-jmxetric/lib/jmxetric-1.0.4.jar=host=${NN_HOST},port=8668,wireformat31x=true,mode=multicast,config=${AGENT_WORK_ROOT}/app/install/apache-storm-0.9.3.0.2.5.0-100/external/storm-jmxetric/conf/jmxetric-conf.xml,process=Supervisor_JVM", - "site.storm-site.supervisor.childopts": "-Xmx256m -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.port=0 -javaagent:${AGENT_WORK_ROOT}/app/install/apache-storm-${pkg.version}/external/storm-jmxetric/lib/jmxetric-1.0.4.jar=host=${@//site/global/ganglia_server_host},port=${@//site/global/ganglia_server_port},wireformat31x=true,mode=multicast,config=${AGENT_WORK_ROOT}/app/install/apache-storm-${pkg.version}/external/storm-jmxetric/conf/jmxetric-conf.xml,process=Supervisor_JVM", ++ "site.storm-site.supervisor.childopts": "-Xmx256m -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.port=0 -javaagent:${AGENT_WORK_ROOT}/app/install/apache-storm-0.9.1.2.1.1.0-237/contrib/storm-jmxetric/lib/jmxetric-1.0.4.jar=host=${NN_HOST},port=8668,wireformat31x=true,mode=multicast,config=${AGENT_WORK_ROOT}/app/install/apache-storm-0.9.1.2.1.1.0-237/contrib/storm-jmxetric/conf/jmxetric-conf.xml,process=Supervisor_JVM", "site.storm-site.drpc.port": "0", "site.storm-site.logviewer.port": "${SUPERVISOR.ALLOCATED_PORT}{DO_NOT_PROPAGATE}" }, http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/4b2f8aad/app-packages/storm/metainfo.xml ---------------------------------------------------------------------- diff --cc app-packages/storm/metainfo.xml index 89ee01e,bfd84e8..2c314b4 --- a/app-packages/storm/metainfo.xml +++ b/app-packages/storm/metainfo.xml @@@ -150,7 -130,7 +130,7 @@@ <packages> <package> <type>tarball</type> - <name>files/apache-storm-0.9.3.0.2.5.0-100.tar.gz</name> - <name>files/${pkg.name}</name> ++ <name>files/apache-storm-0.9.1.2.1.1.0-237.tar.gz</name> </package> </packages> </osSpecific> http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/4b2f8aad/app-packages/storm/package/scripts/params.py ---------------------------------------------------------------------- diff --cc app-packages/storm/package/scripts/params.py index e0bf9e4,38e25fb..ff85765 --- a/app-packages/storm/package/scripts/params.py +++ b/app-packages/storm/package/scripts/params.py @@@ -57,7 -54,6 +53,7 @@@ if security_enabled storm_jaas_client_principal = _storm_client_principal_name.replace('_HOST', _hostname_lowercase) storm_client_keytab_path = config['configurations']['storm-env']['storm_client_keytab'] -- storm_jaas_server_principal = _storm_server_principal_name.replace('_HOST', _hostname_lowercase) ++ storm_jaas_server_principal = _storm_server_principal_name.replace('_HOST',nimbus_host.lower()) + storm_jaas_stormclient_servicename = storm_jaas_server_principal.split("/")[0] storm_server_keytab_path = config['configurations']['storm-env']['storm_server_keytab'] kinit_path_local = functions.get_kinit_path(["/usr/bin", "/usr/kerberos/bin", "/usr/sbin"]) http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/4b2f8aad/app-packages/storm/package/scripts/service.py ---------------------------------------------------------------------- diff --cc app-packages/storm/package/scripts/service.py index 0ec6413,3a5e795..2150cd4 --- a/app-packages/storm/package/scripts/service.py +++ b/app-packages/storm/package/scripts/service.py @@@ -47,10 -47,7 +47,7 @@@ def service crt_pid_cmd = format("{jps_path} -vl | grep \"^[0-9 ]*backtype.storm.daemon.{name}\" {grep_and_awk} > {pid_file}") if action == "start": - if name == "rest_api": - cmd = format("{rest_process_cmd} {rest_api_conf_file} > {log_dir}/restapi.log") - else: - cmd = format("env JAVA_HOME={java64_home} PATH={java64_home}/bin:$PATH STORM_BASE_DIR={app_root} STORM_CONF_DIR={conf_dir} {storm_bin} {name} > {log_dir}/{name}.out 2>&1") - cmd = format("env JAVA_HOME={java64_home} PATH=$PATH:{java64_home}/bin STORM_BASE_DIR={app_root} STORM_CONF_DIR={conf_dir} {python_binary} {storm_bin} {name} > {log_dir}/{name}.out 2>&1") ++ cmd = format("env JAVA_HOME={java64_home} PATH={java64_home}/bin:$PATH STORM_BASE_DIR={app_root} STORM_CONF_DIR={conf_dir} {python_binary} {storm_bin} {name} > {log_dir}/{name}.out 2>&1") if params.security_enabled: if name == "nimbus": http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/4b2f8aad/app-packages/storm/resources.json ---------------------------------------------------------------------- diff --cc app-packages/storm/resources.json index 606dc39,017766c..f14b2c8 --- a/app-packages/storm/resources.json +++ b/app-packages/storm/resources.json @@@ -11,16 -11,12 +11,12 @@@ "yarn.role.priority": "1", "yarn.component.instances": "1" }, - "STORM_REST_API": { + "STORM_UI_SERVER": { "yarn.role.priority": "2", - "yarn.component.instances": "1" + "yarn.component.instances": "0" }, - "STORM_UI_SERVER": { - "yarn.role.priority": "3", - "yarn.component.instances": "1" - }, "DRPC_SERVER": { - "yarn.role.priority": "4", + "yarn.role.priority": "3", "yarn.component.instances": "1" }, "SUPERVISOR": { @@@ -28,4 -24,4 +24,4 @@@ "yarn.component.instances": "1" } } --} ++}