You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by ao...@apache.org on 2016/06/15 12:48:59 UTC

[2/2] ambari git commit: AMBARI-17252. Supervisor start failed after Ambari upgrade (intermittent) (aonishuk)

AMBARI-17252. Supervisor start failed after Ambari upgrade (intermittent) (aonishuk)


Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/2c7ad19b
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/2c7ad19b
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/2c7ad19b

Branch: refs/heads/branch-2.4
Commit: 2c7ad19bf2fad5170b177ba6c14872c6777d81b6
Parents: 2449750
Author: Andrew Onishuk <ao...@hortonworks.com>
Authored: Wed Jun 15 15:48:45 2016 +0300
Committer: Andrew Onishuk <ao...@hortonworks.com>
Committed: Wed Jun 15 15:48:45 2016 +0300

----------------------------------------------------------------------
 .../python/resource_management/core/shell.py    |  7 +--
 .../STORM/0.9.1/package/scripts/service.py      | 28 ++++++------
 .../stacks/2.1/STORM/test_storm_drpc_server.py  | 26 ++++-------
 .../stacks/2.1/STORM/test_storm_nimbus.py       | 47 +++++++------------
 .../2.1/STORM/test_storm_rest_api_service.py    | 26 ++++-------
 .../stacks/2.1/STORM/test_storm_supervisor.py   | 48 +++++++-------------
 .../2.1/STORM/test_storm_supervisor_prod.py     | 24 ++++------
 .../stacks/2.1/STORM/test_storm_ui_server.py    | 26 ++++-------
 8 files changed, 82 insertions(+), 150 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/2c7ad19b/ambari-common/src/main/python/resource_management/core/shell.py
----------------------------------------------------------------------
diff --git a/ambari-common/src/main/python/resource_management/core/shell.py b/ambari-common/src/main/python/resource_management/core/shell.py
index fac264c..94933bd 100644
--- a/ambari-common/src/main/python/resource_management/core/shell.py
+++ b/ambari-common/src/main/python/resource_management/core/shell.py
@@ -63,9 +63,10 @@ def log_function_call(function):
     # logoutput=True - log in INFO level
     # logouput=None - log in DEBUG level
     # logouput=not-specified - log in DEBUG level, not counting internal calls
-    kwargs['logoutput'] = ('logoutput' in kwargs and kwargs['logoutput'] and Logger.logger.isEnabledFor(logging.INFO)) or \
-      ('logoutput' in kwargs and kwargs['logoutput']==None and Logger.logger.isEnabledFor(logging.DEBUG)) or \
-      (not 'logoutput' in kwargs and not is_internal_call and Logger.logger.isEnabledFor(logging.DEBUG))
+    if 'logoutput' in function.func_code.co_varnames:
+      kwargs['logoutput'] = ('logoutput' in kwargs and kwargs['logoutput'] and Logger.logger.isEnabledFor(logging.INFO)) or \
+        ('logoutput' in kwargs and kwargs['logoutput']==None and Logger.logger.isEnabledFor(logging.DEBUG)) or \
+        (not 'logoutput' in kwargs and not is_internal_call and Logger.logger.isEnabledFor(logging.DEBUG))
        
     result = function(command, **kwargs)
     

http://git-wip-us.apache.org/repos/asf/ambari/blob/2c7ad19b/ambari-server/src/main/resources/common-services/STORM/0.9.1/package/scripts/service.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/STORM/0.9.1/package/scripts/service.py b/ambari-server/src/main/resources/common-services/STORM/0.9.1/package/scripts/service.py
index 6da159a..b5e5cd5 100644
--- a/ambari-server/src/main/resources/common-services/STORM/0.9.1/package/scripts/service.py
+++ b/ambari-server/src/main/resources/common-services/STORM/0.9.1/package/scripts/service.py
@@ -23,6 +23,8 @@ import os
 from resource_management.core.resources import Execute
 from resource_management.core.resources import File
 from resource_management.core.shell import as_user
+from resource_management.core import shell
+from resource_management.core.logger import Logger
 from resource_management.libraries.functions.format import format
 from resource_management.libraries.functions import get_user_call_output
 from resource_management.libraries.functions.show_logs import show_logs
@@ -36,7 +38,6 @@ def service(name, action = 'start'):
   pid_file = status_params.pid_files[name]
   no_op_test = as_user(format(
     "ls {pid_file} >/dev/null 2>&1 && ps -p `cat {pid_file}` >/dev/null 2>&1"), user=params.storm_user)
-  tries_count = 12
 
   if name == 'ui':
     process_grep = "storm.ui.core$"
@@ -58,25 +59,22 @@ def service(name, action = 'start'):
       cmd = format(
         "{process_cmd} {rest_api_conf_file} > {log_dir}/restapi.log 2>&1")
     else:
+      # Storm start script gets forked into actual storm java process.
+      # Which means we can use the pid of start script as a pid of start component
       cmd = format("{storm_env} ; storm {name} > {log_dir}/{name}.out 2>&1")
 
+    cmd = format("{cmd} &\n echo $! > {pid_file}")
+    
     Execute(cmd,
       not_if = no_op_test,
       user = params.storm_user,
-      wait_for_finish = False,
-      path = params.storm_bin_dir)
-
-    try:
-      Execute(crt_pid_cmd,
-        user = params.storm_user,
-        logoutput = True,
-        tries = tries_count,
-        try_sleep = 10,
-        path = params.storm_bin_dir)
-    except:
-      show_logs(params.log_dir, params.storm_user)
-      raise
-
+      path = params.storm_bin_dir,
+    )
+    
+    File(pid_file,
+         owner = params.storm_user,
+         group = params.user_group
+    )
   elif action == "stop":
     process_dont_exist = format("! ({no_op_test})")
     if os.path.exists(pid_file):

http://git-wip-us.apache.org/repos/asf/ambari/blob/2c7ad19b/ambari-server/src/test/python/stacks/2.1/STORM/test_storm_drpc_server.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/python/stacks/2.1/STORM/test_storm_drpc_server.py b/ambari-server/src/test/python/stacks/2.1/STORM/test_storm_drpc_server.py
index fba7b9c..3e10611 100644
--- a/ambari-server/src/test/python/stacks/2.1/STORM/test_storm_drpc_server.py
+++ b/ambari-server/src/test/python/stacks/2.1/STORM/test_storm_drpc_server.py
@@ -49,19 +49,14 @@ class TestStormDrpcServer(TestStormBase):
                        target = RMFTestCase.TARGET_COMMON_SERVICES
     )
     self.assert_configure_default()
-
-    self.assertResourceCalled('Execute', 'source /etc/storm/conf/storm-env.sh ; export PATH=$JAVA_HOME/bin:$PATH ; storm drpc > /var/log/storm/drpc.out 2>&1',
-        wait_for_finish = False,
+    self.assertResourceCalled('Execute', 'source /etc/storm/conf/storm-env.sh ; export PATH=$JAVA_HOME/bin:$PATH ; storm drpc > /var/log/storm/drpc.out 2>&1 &\n echo $! > /var/run/storm/drpc.pid',
         path = ['/usr/bin'],
         user = 'storm',
         not_if = "ambari-sudo.sh su storm -l -s /bin/bash -c '[RMF_EXPORT_PLACEHOLDER]ls /var/run/storm/drpc.pid >/dev/null 2>&1 && ps -p `cat /var/run/storm/drpc.pid` >/dev/null 2>&1'",
     )
-    self.assertResourceCalled('Execute', "/usr/jdk64/jdk1.7.0_45/bin/jps -l  | grep storm.daemon.drpc$ && /usr/jdk64/jdk1.7.0_45/bin/jps -l  | grep storm.daemon.drpc$ | awk {'print $1'} > /var/run/storm/drpc.pid",
-        logoutput = True,
-        path = ['/usr/bin'],
-        tries = 12,
-        user = 'storm',
-        try_sleep = 10,
+    self.assertResourceCalled('File', '/var/run/storm/drpc.pid',
+        owner = 'storm',
+        group = 'hadoop',
     )
 
     self.assertNoMoreResources()
@@ -110,19 +105,14 @@ class TestStormDrpcServer(TestStormBase):
     )
 
     self.assert_configure_secured()
-
-    self.assertResourceCalled('Execute', 'source /etc/storm/conf/storm-env.sh ; export PATH=$JAVA_HOME/bin:$PATH ; storm drpc > /var/log/storm/drpc.out 2>&1',
-        wait_for_finish = False,
+    self.assertResourceCalled('Execute', 'source /etc/storm/conf/storm-env.sh ; export PATH=$JAVA_HOME/bin:$PATH ; storm drpc > /var/log/storm/drpc.out 2>&1 &\n echo $! > /var/run/storm/drpc.pid',
         path = ['/usr/bin'],
         user = 'storm',
         not_if = "ambari-sudo.sh su storm -l -s /bin/bash -c '[RMF_EXPORT_PLACEHOLDER]ls /var/run/storm/drpc.pid >/dev/null 2>&1 && ps -p `cat /var/run/storm/drpc.pid` >/dev/null 2>&1'",
     )
-    self.assertResourceCalled('Execute', "/usr/jdk64/jdk1.7.0_45/bin/jps -l  | grep storm.daemon.drpc$ && /usr/jdk64/jdk1.7.0_45/bin/jps -l  | grep storm.daemon.drpc$ | awk {'print $1'} > /var/run/storm/drpc.pid",
-        logoutput = True,
-        path = ['/usr/bin'],
-        tries = 12,
-        user = 'storm',
-        try_sleep = 10,
+    self.assertResourceCalled('File', '/var/run/storm/drpc.pid',
+        owner = 'storm',
+        group = 'hadoop',
     )
     self.assertNoMoreResources()
 

http://git-wip-us.apache.org/repos/asf/ambari/blob/2c7ad19b/ambari-server/src/test/python/stacks/2.1/STORM/test_storm_nimbus.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/python/stacks/2.1/STORM/test_storm_nimbus.py b/ambari-server/src/test/python/stacks/2.1/STORM/test_storm_nimbus.py
index 0f95a0c..2fcb7e2 100644
--- a/ambari-server/src/test/python/stacks/2.1/STORM/test_storm_nimbus.py
+++ b/ambari-server/src/test/python/stacks/2.1/STORM/test_storm_nimbus.py
@@ -49,18 +49,14 @@ class TestStormNimbus(TestStormBase):
 
     self.assert_configure_default()
 
-    self.assertResourceCalled('Execute', 'source /etc/storm/conf/storm-env.sh ; export PATH=$JAVA_HOME/bin:$PATH ; storm nimbus > /var/log/storm/nimbus.out 2>&1',
-        wait_for_finish = False,
+    self.assertResourceCalled('Execute', 'source /etc/storm/conf/storm-env.sh ; export PATH=$JAVA_HOME/bin:$PATH ; storm nimbus > /var/log/storm/nimbus.out 2>&1 &\n echo $! > /var/run/storm/nimbus.pid',
         path = ['/usr/bin'],
         user = 'storm',
         not_if = "ambari-sudo.sh su storm -l -s /bin/bash -c '[RMF_EXPORT_PLACEHOLDER]ls /var/run/storm/nimbus.pid >/dev/null 2>&1 && ps -p `cat /var/run/storm/nimbus.pid` >/dev/null 2>&1'",
     )
-    self.assertResourceCalled('Execute', "/usr/jdk64/jdk1.7.0_45/bin/jps -l  | grep storm.daemon.nimbus$ && /usr/jdk64/jdk1.7.0_45/bin/jps -l  | grep storm.daemon.nimbus$ | awk {'print $1'} > /var/run/storm/nimbus.pid",
-        logoutput = True,
-        path = ['/usr/bin'],
-        tries = 12,
-        user = 'storm',
-        try_sleep = 10,
+    self.assertResourceCalled('File', '/var/run/storm/nimbus.pid',
+        owner = 'storm',
+        group = 'hadoop',
     )
     self.assertNoMoreResources()
 
@@ -94,19 +90,15 @@ class TestStormNimbus(TestStormBase):
                               not_if = 'ls /usr/lib/storm/lib//ambari-metrics-storm-sink.jar',
                               only_if = '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 nimbus > /var/log/storm/nimbus.out 2>&1',
-                              wait_for_finish = False,
-                              path = ['/usr/bin'],
-                              user = 'storm',
-                              not_if = "ambari-sudo.sh su storm -l -s /bin/bash -c '[RMF_EXPORT_PLACEHOLDER]ls /var/run/storm/nimbus.pid >/dev/null 2>&1 && ps -p `cat /var/run/storm/nimbus.pid` >/dev/null 2>&1'",
-                              )
-    self.assertResourceCalled('Execute', "/usr/jdk64/jdk1.7.0_45/bin/jps -l  | grep storm.daemon.nimbus$ && /usr/jdk64/jdk1.7.0_45/bin/jps -l  | grep storm.daemon.nimbus$ | awk {'print $1'} > /var/run/storm/nimbus.pid",
-                              logoutput = True,
-                              path = ['/usr/bin'],
-                              tries = 12,
-                              user = 'storm',
-                              try_sleep = 10,
-                              )
+    self.assertResourceCalled('Execute', 'source /etc/storm/conf/storm-env.sh ; export PATH=$JAVA_HOME/bin:$PATH ; storm nimbus > /var/log/storm/nimbus.out 2>&1 &\n echo $! > /var/run/storm/nimbus.pid',
+        path = ['/usr/bin'],
+        user = 'storm',
+        not_if = "ambari-sudo.sh su storm -l -s /bin/bash -c '[RMF_EXPORT_PLACEHOLDER]ls /var/run/storm/nimbus.pid >/dev/null 2>&1 && ps -p `cat /var/run/storm/nimbus.pid` >/dev/null 2>&1'",
+    )
+    self.assertResourceCalled('File', '/var/run/storm/nimbus.pid',
+        owner = 'storm',
+        group = 'hadoop',
+    )
     self.assertNoMoreResources()
 
   @patch("os.path.exists")
@@ -153,19 +145,14 @@ class TestStormNimbus(TestStormBase):
     )
 
     self.assert_configure_secured()
-
-    self.assertResourceCalled('Execute', 'source /etc/storm/conf/storm-env.sh ; export PATH=$JAVA_HOME/bin:$PATH ; storm nimbus > /var/log/storm/nimbus.out 2>&1',
-        wait_for_finish = False,
+    self.assertResourceCalled('Execute', 'source /etc/storm/conf/storm-env.sh ; export PATH=$JAVA_HOME/bin:$PATH ; storm nimbus > /var/log/storm/nimbus.out 2>&1 &\n echo $! > /var/run/storm/nimbus.pid',
         path = ['/usr/bin'],
         user = 'storm',
         not_if = "ambari-sudo.sh su storm -l -s /bin/bash -c '[RMF_EXPORT_PLACEHOLDER]ls /var/run/storm/nimbus.pid >/dev/null 2>&1 && ps -p `cat /var/run/storm/nimbus.pid` >/dev/null 2>&1'",
     )
-    self.assertResourceCalled('Execute', "/usr/jdk64/jdk1.7.0_45/bin/jps -l  | grep storm.daemon.nimbus$ && /usr/jdk64/jdk1.7.0_45/bin/jps -l  | grep storm.daemon.nimbus$ | awk {'print $1'} > /var/run/storm/nimbus.pid",
-        logoutput = True,
-        path = ['/usr/bin'],
-        tries = 12,
-        user = 'storm',
-        try_sleep = 10,
+    self.assertResourceCalled('File', '/var/run/storm/nimbus.pid',
+        owner = 'storm',
+        group = 'hadoop',
     )
     self.assertNoMoreResources()
 

http://git-wip-us.apache.org/repos/asf/ambari/blob/2c7ad19b/ambari-server/src/test/python/stacks/2.1/STORM/test_storm_rest_api_service.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/python/stacks/2.1/STORM/test_storm_rest_api_service.py b/ambari-server/src/test/python/stacks/2.1/STORM/test_storm_rest_api_service.py
index 0fe57cf..4b1061d 100644
--- a/ambari-server/src/test/python/stacks/2.1/STORM/test_storm_rest_api_service.py
+++ b/ambari-server/src/test/python/stacks/2.1/STORM/test_storm_rest_api_service.py
@@ -49,19 +49,14 @@ class TestStormRestApi(TestStormBase):
 
     self.assert_configure_default()
 
-
-    self.assertResourceCalled('Execute', 'source /etc/storm/conf/storm-env.sh ; export PATH=$JAVA_HOME/bin:$PATH ; java -jar /usr/lib/storm/contrib/storm-rest/`ls /usr/lib/storm/contrib/storm-rest | grep -wE storm-rest-[0-9.-]+\\.jar` server /etc/storm/conf/config.yaml > /var/log/storm/restapi.log 2>&1',
-        wait_for_finish = False,
+    self.assertResourceCalled('Execute', 'source /etc/storm/conf/storm-env.sh ; export PATH=$JAVA_HOME/bin:$PATH ; java -jar /usr/lib/storm/contrib/storm-rest/`ls /usr/lib/storm/contrib/storm-rest | grep -wE storm-rest-[0-9.-]+\\.jar` server /etc/storm/conf/config.yaml > /var/log/storm/restapi.log 2>&1 &\n echo $! > /var/run/storm/restapi.pid',
         path = ['/usr/bin'],
         user = 'storm',
         not_if = "ambari-sudo.sh su storm -l -s /bin/bash -c '[RMF_EXPORT_PLACEHOLDER]ls /var/run/storm/restapi.pid >/dev/null 2>&1 && ps -p `cat /var/run/storm/restapi.pid` >/dev/null 2>&1'",
     )
-    self.assertResourceCalled('Execute', "/usr/jdk64/jdk1.7.0_45/bin/jps -l  | grep /usr/lib/storm/contrib/storm-rest/storm-rest-.*\\.jar$ && /usr/jdk64/jdk1.7.0_45/bin/jps -l  | grep /usr/lib/storm/contrib/storm-rest/storm-rest-.*\\.jar$ | awk {'print $1'} > /var/run/storm/restapi.pid",
-        logoutput = True,
-        path = ['/usr/bin'],
-        tries = 12,
-        user = 'storm',
-        try_sleep = 10,
+    self.assertResourceCalled('File', '/var/run/storm/restapi.pid',
+        owner = 'storm',
+        group = 'hadoop',
     )
     self.assertNoMoreResources()
 
@@ -109,19 +104,14 @@ class TestStormRestApi(TestStormBase):
     )
 
     self.assert_configure_secured()
-
-    self.assertResourceCalled('Execute', 'source /etc/storm/conf/storm-env.sh ; export PATH=$JAVA_HOME/bin:$PATH ; java -jar /usr/lib/storm/contrib/storm-rest/`ls /usr/lib/storm/contrib/storm-rest | grep -wE storm-rest-[0-9.-]+\\.jar` server /etc/storm/conf/config.yaml > /var/log/storm/restapi.log 2>&1',
-        wait_for_finish = False,
+    self.assertResourceCalled('Execute', 'source /etc/storm/conf/storm-env.sh ; export PATH=$JAVA_HOME/bin:$PATH ; java -jar /usr/lib/storm/contrib/storm-rest/`ls /usr/lib/storm/contrib/storm-rest | grep -wE storm-rest-[0-9.-]+\\.jar` server /etc/storm/conf/config.yaml > /var/log/storm/restapi.log 2>&1 &\n echo $! > /var/run/storm/restapi.pid',
         path = ['/usr/bin'],
         user = 'storm',
         not_if = "ambari-sudo.sh su storm -l -s /bin/bash -c '[RMF_EXPORT_PLACEHOLDER]ls /var/run/storm/restapi.pid >/dev/null 2>&1 && ps -p `cat /var/run/storm/restapi.pid` >/dev/null 2>&1'",
     )
-    self.assertResourceCalled('Execute', "/usr/jdk64/jdk1.7.0_45/bin/jps -l  | grep /usr/lib/storm/contrib/storm-rest/storm-rest-.*\\.jar$ && /usr/jdk64/jdk1.7.0_45/bin/jps -l  | grep /usr/lib/storm/contrib/storm-rest/storm-rest-.*\\.jar$ | awk {'print $1'} > /var/run/storm/restapi.pid",
-        logoutput = True,
-        path = ['/usr/bin'],
-        tries = 12,
-        user = 'storm',
-        try_sleep = 10,
+    self.assertResourceCalled('File', '/var/run/storm/restapi.pid',
+        owner = 'storm',
+        group = 'hadoop',
     )
     self.assertNoMoreResources()
 

http://git-wip-us.apache.org/repos/asf/ambari/blob/2c7ad19b/ambari-server/src/test/python/stacks/2.1/STORM/test_storm_supervisor.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/python/stacks/2.1/STORM/test_storm_supervisor.py b/ambari-server/src/test/python/stacks/2.1/STORM/test_storm_supervisor.py
index c70e06c..b7ec7ba 100644
--- a/ambari-server/src/test/python/stacks/2.1/STORM/test_storm_supervisor.py
+++ b/ambari-server/src/test/python/stacks/2.1/STORM/test_storm_supervisor.py
@@ -49,31 +49,23 @@ class TestStormSupervisor(TestStormBase):
 
     self.assert_configure_default()
 
-    self.assertResourceCalled('Execute', 'source /etc/storm/conf/storm-env.sh ; export PATH=$JAVA_HOME/bin:$PATH ; storm supervisor > /var/log/storm/supervisor.out 2>&1',
-        wait_for_finish = False,
+    self.assertResourceCalled('Execute', 'source /etc/storm/conf/storm-env.sh ; export PATH=$JAVA_HOME/bin:$PATH ; storm supervisor > /var/log/storm/supervisor.out 2>&1 &\n echo $! > /var/run/storm/supervisor.pid',
         path = ['/usr/bin'],
         user = 'storm',
         not_if = "ambari-sudo.sh su storm -l -s /bin/bash -c '[RMF_EXPORT_PLACEHOLDER]ls /var/run/storm/supervisor.pid >/dev/null 2>&1 && ps -p `cat /var/run/storm/supervisor.pid` >/dev/null 2>&1'",
     )
-    self.assertResourceCalled('Execute', "/usr/jdk64/jdk1.7.0_45/bin/jps -l  | grep storm.daemon.supervisor$ && /usr/jdk64/jdk1.7.0_45/bin/jps -l  | grep storm.daemon.supervisor$ | awk {'print $1'} > /var/run/storm/supervisor.pid",
-        logoutput = True,
-        path = ['/usr/bin'],
-        tries = 12,
-        user = 'storm',
-        try_sleep = 10,
+    self.assertResourceCalled('File', '/var/run/storm/supervisor.pid',
+        owner = 'storm',
+        group = 'hadoop',
     )
-    self.assertResourceCalled('Execute', 'source /etc/storm/conf/storm-env.sh ; export PATH=$JAVA_HOME/bin:$PATH ; storm logviewer > /var/log/storm/logviewer.out 2>&1',
-        wait_for_finish = False,
+    self.assertResourceCalled('Execute', 'source /etc/storm/conf/storm-env.sh ; export PATH=$JAVA_HOME/bin:$PATH ; storm logviewer > /var/log/storm/logviewer.out 2>&1 &\n echo $! > /var/run/storm/logviewer.pid',
         path = ['/usr/bin'],
         user = 'storm',
         not_if = "ambari-sudo.sh su storm -l -s /bin/bash -c '[RMF_EXPORT_PLACEHOLDER]ls /var/run/storm/logviewer.pid >/dev/null 2>&1 && ps -p `cat /var/run/storm/logviewer.pid` >/dev/null 2>&1'",
     )
-    self.assertResourceCalled('Execute', "/usr/jdk64/jdk1.7.0_45/bin/jps -l  | grep storm.daemon.logviewer$ && /usr/jdk64/jdk1.7.0_45/bin/jps -l  | grep storm.daemon.logviewer$ | awk {'print $1'} > /var/run/storm/logviewer.pid",
-        logoutput = True,
-        path = ['/usr/bin'],
-        tries = 12,
-        user = 'storm',
-        try_sleep = 10,
+    self.assertResourceCalled('File', '/var/run/storm/logviewer.pid',
+        owner = 'storm',
+        group = 'hadoop',
     )
     self.assertNoMoreResources()
 
@@ -132,31 +124,23 @@ class TestStormSupervisor(TestStormBase):
 
     self.assert_configure_secured()
 
-    self.assertResourceCalled('Execute', 'source /etc/storm/conf/storm-env.sh ; export PATH=$JAVA_HOME/bin:$PATH ; storm supervisor > /var/log/storm/supervisor.out 2>&1',
-        wait_for_finish = False,
+    self.assertResourceCalled('Execute', 'source /etc/storm/conf/storm-env.sh ; export PATH=$JAVA_HOME/bin:$PATH ; storm supervisor > /var/log/storm/supervisor.out 2>&1 &\n echo $! > /var/run/storm/supervisor.pid',
         path = ['/usr/bin'],
         user = 'storm',
         not_if = "ambari-sudo.sh su storm -l -s /bin/bash -c '[RMF_EXPORT_PLACEHOLDER]ls /var/run/storm/supervisor.pid >/dev/null 2>&1 && ps -p `cat /var/run/storm/supervisor.pid` >/dev/null 2>&1'",
     )
-    self.assertResourceCalled('Execute', "/usr/jdk64/jdk1.7.0_45/bin/jps -l  | grep storm.daemon.supervisor$ && /usr/jdk64/jdk1.7.0_45/bin/jps -l  | grep storm.daemon.supervisor$ | awk {'print $1'} > /var/run/storm/supervisor.pid",
-        logoutput = True,
-        path = ['/usr/bin'],
-        tries = 12,
-        user = 'storm',
-        try_sleep = 10,
+    self.assertResourceCalled('File', '/var/run/storm/supervisor.pid',
+        owner = 'storm',
+        group = 'hadoop',
     )
-    self.assertResourceCalled('Execute', 'source /etc/storm/conf/storm-env.sh ; export PATH=$JAVA_HOME/bin:$PATH ; storm logviewer > /var/log/storm/logviewer.out 2>&1',
-        wait_for_finish = False,
+    self.assertResourceCalled('Execute', 'source /etc/storm/conf/storm-env.sh ; export PATH=$JAVA_HOME/bin:$PATH ; storm logviewer > /var/log/storm/logviewer.out 2>&1 &\n echo $! > /var/run/storm/logviewer.pid',
         path = ['/usr/bin'],
         user = 'storm',
         not_if = "ambari-sudo.sh su storm -l -s /bin/bash -c '[RMF_EXPORT_PLACEHOLDER]ls /var/run/storm/logviewer.pid >/dev/null 2>&1 && ps -p `cat /var/run/storm/logviewer.pid` >/dev/null 2>&1'",
     )
-    self.assertResourceCalled('Execute', "/usr/jdk64/jdk1.7.0_45/bin/jps -l  | grep storm.daemon.logviewer$ && /usr/jdk64/jdk1.7.0_45/bin/jps -l  | grep storm.daemon.logviewer$ | awk {'print $1'} > /var/run/storm/logviewer.pid",
-        logoutput = True,
-        path = ['/usr/bin'],
-        tries = 12,
-        user = 'storm',
-        try_sleep = 10,
+    self.assertResourceCalled('File', '/var/run/storm/logviewer.pid',
+        owner = 'storm',
+        group = 'hadoop',
     )
     self.assertNoMoreResources()
 

http://git-wip-us.apache.org/repos/asf/ambari/blob/2c7ad19b/ambari-server/src/test/python/stacks/2.1/STORM/test_storm_supervisor_prod.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/python/stacks/2.1/STORM/test_storm_supervisor_prod.py b/ambari-server/src/test/python/stacks/2.1/STORM/test_storm_supervisor_prod.py
index f4f6bae..21c5f2c 100644
--- a/ambari-server/src/test/python/stacks/2.1/STORM/test_storm_supervisor_prod.py
+++ b/ambari-server/src/test/python/stacks/2.1/STORM/test_storm_supervisor_prod.py
@@ -52,18 +52,14 @@ class TestStormSupervisor(TestStormBase):
     self.assertResourceCalled('Execute', 'supervisorctl start storm-supervisor',
       wait_for_finish = False,
     )
-    self.assertResourceCalled('Execute', 'source /etc/storm/conf/storm-env.sh ; export PATH=$JAVA_HOME/bin:$PATH ; storm logviewer > /var/log/storm/logviewer.out 2>&1',
-        wait_for_finish = False,
+    self.assertResourceCalled('Execute', 'source /etc/storm/conf/storm-env.sh ; export PATH=$JAVA_HOME/bin:$PATH ; storm logviewer > /var/log/storm/logviewer.out 2>&1 &\n echo $! > /var/run/storm/logviewer.pid',
         path = ['/usr/bin'],
         user = 'storm',
         not_if = "ambari-sudo.sh su storm -l -s /bin/bash -c '[RMF_EXPORT_PLACEHOLDER]ls /var/run/storm/logviewer.pid >/dev/null 2>&1 && ps -p `cat /var/run/storm/logviewer.pid` >/dev/null 2>&1'",
     )
-    self.assertResourceCalled('Execute', "/usr/jdk64/jdk1.7.0_45/bin/jps -l  | grep storm.daemon.logviewer$ && /usr/jdk64/jdk1.7.0_45/bin/jps -l  | grep storm.daemon.logviewer$ | awk {'print $1'} > /var/run/storm/logviewer.pid",
-        logoutput = True,
-        path = ['/usr/bin'],
-        tries = 12,
-        user = 'storm',
-        try_sleep = 10,
+    self.assertResourceCalled('File', '/var/run/storm/logviewer.pid',
+        owner = 'storm',
+        group = 'hadoop',
     )
     self.assertNoMoreResources()
 
@@ -118,18 +114,14 @@ class TestStormSupervisor(TestStormBase):
     self.assertResourceCalled('Execute', 'supervisorctl start storm-supervisor',
                         wait_for_finish = False,
     )
-    self.assertResourceCalled('Execute', 'source /etc/storm/conf/storm-env.sh ; export PATH=$JAVA_HOME/bin:$PATH ; storm logviewer > /var/log/storm/logviewer.out 2>&1',
-        wait_for_finish = False,
+    self.assertResourceCalled('Execute', 'source /etc/storm/conf/storm-env.sh ; export PATH=$JAVA_HOME/bin:$PATH ; storm logviewer > /var/log/storm/logviewer.out 2>&1 &\n echo $! > /var/run/storm/logviewer.pid',
         path = ['/usr/bin'],
         user = 'storm',
         not_if = "ambari-sudo.sh su storm -l -s /bin/bash -c '[RMF_EXPORT_PLACEHOLDER]ls /var/run/storm/logviewer.pid >/dev/null 2>&1 && ps -p `cat /var/run/storm/logviewer.pid` >/dev/null 2>&1'",
     )
-    self.assertResourceCalled('Execute', "/usr/jdk64/jdk1.7.0_45/bin/jps -l  | grep storm.daemon.logviewer$ && /usr/jdk64/jdk1.7.0_45/bin/jps -l  | grep storm.daemon.logviewer$ | awk {'print $1'} > /var/run/storm/logviewer.pid",
-        logoutput = True,
-        path = ['/usr/bin'],
-        tries = 12,
-        user = 'storm',
-        try_sleep = 10,
+    self.assertResourceCalled('File', '/var/run/storm/logviewer.pid',
+        owner = 'storm',
+        group = 'hadoop',
     )
     self.assertNoMoreResources()
 

http://git-wip-us.apache.org/repos/asf/ambari/blob/2c7ad19b/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 101fbe6..f7a2686 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
@@ -62,19 +62,14 @@ class TestStormUiServer(TestStormBase):
                               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,
+    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 &\n echo $! > /var/run/storm/ui.pid',
         path = ['/usr/bin'],
         user = 'storm',
         not_if = "ambari-sudo.sh su storm -l -s /bin/bash -c '[RMF_EXPORT_PLACEHOLDER]ls /var/run/storm/ui.pid >/dev/null 2>&1 && ps -p `cat /var/run/storm/ui.pid` >/dev/null 2>&1'",
     )
-    self.assertResourceCalled('Execute', "/usr/jdk64/jdk1.7.0_45/bin/jps -l  | grep storm.ui.core$ && /usr/jdk64/jdk1.7.0_45/bin/jps -l  | grep storm.ui.core$ | awk {'print $1'} > /var/run/storm/ui.pid",
-        logoutput = True,
-        path = ['/usr/bin'],
-        tries = 12,
-        user = 'storm',
-        try_sleep = 10,
+    self.assertResourceCalled('File', '/var/run/storm/ui.pid',
+        owner = 'storm',
+        group = 'hadoop',
     )
     self.assertNoMoreResources()
 
@@ -137,19 +132,14 @@ class TestStormUiServer(TestStormBase):
                               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,
+    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 &\n echo $! > /var/run/storm/ui.pid',
         path = ['/usr/bin'],
         user = 'storm',
         not_if = "ambari-sudo.sh su storm -l -s /bin/bash -c '[RMF_EXPORT_PLACEHOLDER]ls /var/run/storm/ui.pid >/dev/null 2>&1 && ps -p `cat /var/run/storm/ui.pid` >/dev/null 2>&1'",
     )
-    self.assertResourceCalled('Execute', "/usr/jdk64/jdk1.7.0_45/bin/jps -l  | grep storm.ui.core$ && /usr/jdk64/jdk1.7.0_45/bin/jps -l  | grep storm.ui.core$ | awk {'print $1'} > /var/run/storm/ui.pid",
-        logoutput = True,
-        path = ['/usr/bin'],
-        tries = 12,
-        user = 'storm',
-        try_sleep = 10,
+    self.assertResourceCalled('File', '/var/run/storm/ui.pid',
+        owner = 'storm',
+        group = 'hadoop',
     )
     self.assertNoMoreResources()