AMBARI-10561. Improve YARN service check (vbrodetskyi via dlysnichenko)

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

Branch: refs/heads/trunk
Commit: 4254fb4a1d5309b9a1b3133550f744419afc8533
Parents: 85aa856
Author: Lisnichenko Dmitro <dlysniche...@hortonworks.com>
Authored: Fri Apr 17 20:03:48 2015 +0300
Committer: Lisnichenko Dmitro <dlysniche...@hortonworks.com>
Committed: Fri Apr 17 20:05:41 2015 +0300

----------------------------------------------------------------------
 .../2.1.0.2.0/package/scripts/service_check.py  | 30 ++++++--------------
 .../2.0.6/YARN/test_yarn_service_check.py       | 23 ++++-----------
 2 files changed, 13 insertions(+), 40 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/4254fb4a/ambari-server/src/main/resources/common-services/YARN/2.1.0.2.0/package/scripts/service_check.py
----------------------------------------------------------------------
diff --git 
a/ambari-server/src/main/resources/common-services/YARN/2.1.0.2.0/package/scripts/service_check.py
 
b/ambari-server/src/main/resources/common-services/YARN/2.1.0.2.0/package/scripts/service_check.py
index 2eef667..547c687 100644
--- 
a/ambari-server/src/main/resources/common-services/YARN/2.1.0.2.0/package/scripts/service_check.py
+++ 
b/ambari-server/src/main/resources/common-services/YARN/2.1.0.2.0/package/scripts/service_check.py
@@ -19,6 +19,7 @@ Ambari Agent
 
 """
 
+from resource_management.libraries.functions.version import compare_versions
 from resource_management import *
 import sys
 from ambari_commons import OSConst
@@ -78,29 +79,19 @@ class ServiceCheckDefault(ServiceCheck):
     import params
     env.set_params(params)
 
-    run_yarn_check_cmd = format("yarn --config {hadoop_conf_dir} node -list")
-
-    component_type = 'rm'
-    if params.hadoop_ssl_enabled:
-      component_address = params.rm_webui_https_address
+    if params.hdp_stack_version != "" and 
compare_versions(params.hdp_stack_version, '2.2') >= 0:
+      path_to_distributed_shell_jar = 
"/usr/hdp/current/hadoop-yarn-client/hadoop-yarn-applications-distributedshell.jar"
     else:
-      component_address = params.rm_webui_address
+      path_to_distributed_shell_jar = 
"/usr/lib/hadoop-yarn/hadoop-yarn-applications-distributedshell*.jar"
 
-    validateStatusFileName = "validateYarnComponentStatus.py"
-    validateStatusFilePath = format("{tmp_dir}/{validateStatusFileName}")
-    python_executable = sys.executable
-    validateStatusCmd = format("{python_executable} {validateStatusFilePath} 
{component_type} -p {component_address} -s {hadoop_ssl_enabled}")
+    yarn_distrubuted_shell_check_cmd = format("yarn 
org.apache.hadoop.yarn.applications.distributedshell.Client "
+            "-shell_command ls -jar {path_to_distributed_shell_jar}")
 
     if params.security_enabled:
       kinit_cmd = format("{kinit_path_local} -kt {smoke_user_keytab} 
{smokeuser_principal};")
-      smoke_cmd = format("{kinit_cmd} {validateStatusCmd}")
+      smoke_cmd = format("{kinit_cmd} {yarn_distrubuted_shell_check_cmd}")
     else:
-      smoke_cmd = validateStatusCmd
-
-    File(validateStatusFilePath,
-         content=StaticFile(validateStatusFileName),
-         mode=0755
-    )
+      smoke_cmd = yarn_distrubuted_shell_check_cmd
 
     Execute(smoke_cmd,
             tries=3,
@@ -110,11 +101,6 @@ class ServiceCheckDefault(ServiceCheck):
             logoutput=True
     )
 
-    Execute(run_yarn_check_cmd,
-            path=params.execute_path,
-            user=params.smokeuser
-    )
-
 
 if __name__ == "__main__":
   ServiceCheck().execute()

http://git-wip-us.apache.org/repos/asf/ambari/blob/4254fb4a/ambari-server/src/test/python/stacks/2.0.6/YARN/test_yarn_service_check.py
----------------------------------------------------------------------
diff --git 
a/ambari-server/src/test/python/stacks/2.0.6/YARN/test_yarn_service_check.py 
b/ambari-server/src/test/python/stacks/2.0.6/YARN/test_yarn_service_check.py
index 7cde2cc..1376fef 100644
--- a/ambari-server/src/test/python/stacks/2.0.6/YARN/test_yarn_service_check.py
+++ b/ambari-server/src/test/python/stacks/2.0.6/YARN/test_yarn_service_check.py
@@ -36,21 +36,14 @@ class TestServiceCheck(RMFTestCase):
                           hdp_stack_version = self.STACK_VERSION,
                           target = RMFTestCase.TARGET_COMMON_SERVICES
     )
-    self.assertResourceCalled('File', '/tmp/validateYarnComponentStatus.py',
-                          content = 
StaticFile('validateYarnComponentStatus.py'),
-                          mode = 0755,
-    )
-    self.assertResourceCalled('Execute', '/usr/bin/python2.6 
/tmp/validateYarnComponentStatus.py rm -p c6402.ambari.apache.org:8088 -s 
False',
+    self.assertResourceCalled('Execute', 'yarn 
org.apache.hadoop.yarn.applications.distributedshell.Client '
+                                         '-shell_command ls -jar 
/usr/lib/hadoop-yarn/hadoop-yarn-applications-distributedshell*.jar',
                           logoutput = True,
                           path = 
['/usr/sbin:/sbin:/usr/local/bin:/bin:/usr/bin'],
                           tries = 3,
                           user = 'ambari-qa',
                           try_sleep = 5,
     )
-    self.assertResourceCalled('Execute', 'yarn --config /etc/hadoop/conf node 
-list',
-                              path = 
["/bin:/usr/bin:/usr/lib/hadoop-yarn/bin"],
-                              user = 'ambari-qa',
-    )
     self.assertNoMoreResources()
 
   def test_service_check_secured(self):
@@ -61,19 +54,13 @@ class TestServiceCheck(RMFTestCase):
                           hdp_stack_version = self.STACK_VERSION,
                           target = RMFTestCase.TARGET_COMMON_SERVICES
     )
-    self.assertResourceCalled('File', '/tmp/validateYarnComponentStatus.py',
-                          content = 
StaticFile('validateYarnComponentStatus.py'),
-                          mode = 0755,
-    )
-    self.assertResourceCalled('Execute', '/usr/bin/kinit -kt 
/etc/security/keytabs/smokeuser.headless.keytab ambari...@example.com; 
/usr/bin/python2.6 /tmp/validateYarnComponentStatus.py rm -p 
c6402.ambari.apache.org:8088 -s False',
+    self.assertResourceCalled('Execute', '/usr/bin/kinit -kt 
/etc/security/keytabs/smokeuser.headless.keytab '
+                                         'ambari...@example.com; yarn 
org.apache.hadoop.yarn.applications.distributedshell.Client '
+                                         '-shell_command ls -jar 
/usr/lib/hadoop-yarn/hadoop-yarn-applications-distributedshell*.jar',
                           logoutput = True,
                           path = 
['/usr/sbin:/sbin:/usr/local/bin:/bin:/usr/bin'],
                           tries = 3,
                           user = 'ambari-qa',
                           try_sleep = 5,
     )
-    self.assertResourceCalled('Execute', 'yarn --config /etc/hadoop/conf node 
-list',
-                          path = ["/bin:/usr/bin:/usr/lib/hadoop-yarn/bin"],
-                          user = 'ambari-qa',
-    )
     self.assertNoMoreResources()

Reply via email to