Repository: ambari Updated Branches: refs/heads/trunk 6e9d25caf -> 8f2c5dd1e
AMBARI-14704 : Restart storm fails with a metrics storm sink jar related error sometimes. (avijayan) Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/8f2c5dd1 Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/8f2c5dd1 Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/8f2c5dd1 Branch: refs/heads/trunk Commit: 8f2c5dd1eb032075bc7ddc227385621e5a47df69 Parents: 6e9d25c Author: Aravindan Vijayan <avija...@hortonworks.com> Authored: Sun Jan 17 10:55:43 2016 -0800 Committer: Aravindan Vijayan <avija...@hortonworks.com> Committed: Sun Jan 17 10:55:43 2016 -0800 ---------------------------------------------------------------------- .../STORM/0.9.1.2.1/package/scripts/storm.py | 11 ++++++++ .../0.9.1.2.1/package/scripts/ui_server.py | 15 ++++++++++ .../stacks/2.1/STORM/test_storm_ui_server.py | 29 ++++++++++++++++++++ 3 files changed, 55 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/8f2c5dd1/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/storm.py ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/storm.py b/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/storm.py index 43736fa..98abb41 100644 --- a/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/storm.py +++ b/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/storm.py @@ -87,6 +87,17 @@ def storm(name=None): group=params.user_group ) + # Remove symlinks. They can be there, if you doing upgrade from HDP < 2.2 to HDP >= 2.2 + Link(format("{storm_lib_dir}/ambari-metrics-storm-sink.jar"), + action="delete") + # On old HDP 2.1 versions, this symlink may also exist and break EU to newer versions + Link("/usr/lib/storm/lib/ambari-metrics-storm-sink.jar", action="delete") + + Execute(format("{sudo} ln -s {metric_collector_sink_jar} {storm_lib_dir}/ambari-metrics-storm-sink.jar"), + not_if=format("ls {storm_lib_dir}/ambari-metrics-storm-sink.jar"), + only_if=format("ls {metric_collector_sink_jar}") + ) + File(format("{conf_dir}/storm-env.sh"), owner=params.storm_user, content=InlineTemplate(params.storm_env_sh_template) http://git-wip-us.apache.org/repos/asf/ambari/blob/8f2c5dd1/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/ui_server.py ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/ui_server.py b/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/ui_server.py index 42f12fc..3053b05 100644 --- a/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/ui_server.py +++ b/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/ui_server.py @@ -27,6 +27,7 @@ from resource_management.libraries.script import Script from resource_management.libraries.functions import conf_select from resource_management.libraries.functions import hdp_select from resource_management.libraries.functions import format +from resource_management.core.resources.system import Link from resource_management.core.resources.system import Execute from resource_management.libraries.functions.version import compare_versions, format_hdp_stack_version from resource_management.libraries.functions.security_commons import build_expectations, \ @@ -82,10 +83,24 @@ class UiServerDefault(UiServer): conf_select.select(params.stack_name, "storm", params.version) hdp_select.select("storm-client", params.version) + def link_metrics_sink_jar(self): + # Add storm metrics reporter JAR to storm-ui-server classpath. + # Remove symlinks. They can be there, if you doing upgrade from HDP < 2.2 to HDP >= 2.2 + Link(format("{storm_lib_dir}/ambari-metrics-storm-sink.jar"), + action="delete") + # On old HDP 2.1 versions, this symlink may also exist and break EU to newer versions + Link("/usr/lib/storm/lib/ambari-metrics-storm-sink.jar", action="delete") + + Execute(format("{sudo} ln -s {metric_collector_sink_jar} {storm_lib_dir}/ambari-metrics-storm-sink.jar"), + not_if=format("ls {storm_lib_dir}/ambari-metrics-storm-sink.jar"), + only_if=format("ls {metric_collector_sink_jar}") + ) + def start(self, env, upgrade_type=None): import params env.set_params(params) self.configure(env) + self.link_metrics_sink_jar() setup_ranger_storm(upgrade_type=upgrade_type) service("ui", action="start") http://git-wip-us.apache.org/repos/asf/ambari/blob/8f2c5dd1/ambari-server/src/test/python/stacks/2.1/STORM/test_storm_ui_server.py ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/python/stacks/2.1/STORM/test_storm_ui_server.py b/ambari-server/src/test/python/stacks/2.1/STORM/test_storm_ui_server.py index 8978c04..0d45687 100644 --- a/ambari-server/src/test/python/stacks/2.1/STORM/test_storm_ui_server.py +++ b/ambari-server/src/test/python/stacks/2.1/STORM/test_storm_ui_server.py @@ -49,6 +49,20 @@ class TestStormUiServer(TestStormBase): self.assert_configure_default() + self.assertResourceCalled('Link', '/usr/lib/storm/lib//ambari-metrics-storm-sink.jar', + action=['delete'], + ) + + self.assertResourceCalled('Link', '/usr/lib/storm/lib/ambari-metrics-storm-sink.jar', + action=['delete'], + ) + + self.assertResourceCalled('Execute', 'ambari-sudo.sh ln -s /usr/lib/storm/lib/ambari-metrics-storm-sink*.jar ' + '/usr/lib/storm/lib//ambari-metrics-storm-sink.jar', + not_if=format("ls /usr/lib/storm/lib//ambari-metrics-storm-sink.jar"), + only_if=format("ls /usr/lib/storm/lib/ambari-metrics-storm-sink*.jar") + ) + self.assertResourceCalled('Execute', 'source /etc/storm/conf/storm-env.sh ; export PATH=$JAVA_HOME/bin:$PATH ; storm ui > /var/log/storm/ui.out 2>&1', wait_for_finish = False, path = ['/usr/bin'], @@ -109,6 +123,21 @@ class TestStormUiServer(TestStormBase): self.assert_configure_secured() + + self.assertResourceCalled('Link', '/usr/lib/storm/lib//ambari-metrics-storm-sink.jar', + action=['delete'], + ) + + self.assertResourceCalled('Link', '/usr/lib/storm/lib/ambari-metrics-storm-sink.jar', + action=['delete'], + ) + + self.assertResourceCalled('Execute', 'ambari-sudo.sh ln -s /usr/lib/storm/lib/ambari-metrics-storm-sink*.jar ' + '/usr/lib/storm/lib//ambari-metrics-storm-sink.jar', + not_if=format("ls /usr/lib/storm/lib//ambari-metrics-storm-sink.jar"), + only_if=format("ls /usr/lib/storm/lib/ambari-metrics-storm-sink*.jar") + ) + self.assertResourceCalled('Execute', 'source /etc/storm/conf/storm-env.sh ; export PATH=$JAVA_HOME/bin:$PATH ; storm ui > /var/log/storm/ui.out 2>&1', wait_for_finish = False, path = ['/usr/bin'],