Repository: aurora
Updated Branches:
  refs/heads/master cbb206c51 -> 653758131


Do not split the shell command string passed into shell health check script

Fixing bug where you could not pass in shell command into health checker with 
environment variables. When environment variable assignement was passed in, 
only that part would get executed and 0 would always get returned.

Bugs closed: AURORA-1633

Reviewed at https://reviews.apache.org/r/44827/


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

Branch: refs/heads/master
Commit: 653758131a9ab8ebce2bcacf2ace6a838770419b
Parents: cbb206c
Author: Dmitriy Shirchenko <[email protected]>
Authored: Tue Mar 15 14:55:38 2016 -0600
Committer: John Sirois <[email protected]>
Committed: Tue Mar 15 14:55:38 2016 -0600

----------------------------------------------------------------------
 src/main/python/apache/aurora/common/health_check/shell.py   | 4 +---
 .../python/apache/aurora/common/health_check/test_shell.py   | 8 ++++----
 2 files changed, 5 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/aurora/blob/65375813/src/main/python/apache/aurora/common/health_check/shell.py
----------------------------------------------------------------------
diff --git a/src/main/python/apache/aurora/common/health_check/shell.py 
b/src/main/python/apache/aurora/common/health_check/shell.py
index bf63d93..6cb7dfc 100644
--- a/src/main/python/apache/aurora/common/health_check/shell.py
+++ b/src/main/python/apache/aurora/common/health_check/shell.py
@@ -13,7 +13,6 @@
 #
 
 import os
-import shlex
 import sys
 
 # Recommended pattern for Python 2 and 3 support from 
https://github.com/google/python-subprocess32
@@ -45,9 +44,8 @@ class ShellHealthCheck(object):
     :return: A tuple of (bool, str)
     :rtype tuple:
     """
-    cmd = shlex.split(self.cmd)
     try:
-      subprocess.check_call(cmd, timeout=self.timeout_secs, shell=True)
+      subprocess.check_call(self.cmd, timeout=self.timeout_secs, shell=True)
       return True, None
     except subprocess.CalledProcessError as reason:
       # The command didn't return a 0 so provide reason for failure.

http://git-wip-us.apache.org/repos/asf/aurora/blob/65375813/src/test/python/apache/aurora/common/health_check/test_shell.py
----------------------------------------------------------------------
diff --git a/src/test/python/apache/aurora/common/health_check/test_shell.py 
b/src/test/python/apache/aurora/common/health_check/test_shell.py
index 8d3a3e4..7026af8 100644
--- a/src/test/python/apache/aurora/common/health_check/test_shell.py
+++ b/src/test/python/apache/aurora/common/health_check/test_shell.py
@@ -40,7 +40,7 @@ class TestHealthChecker(unittest.TestCase):
     self.assertTrue(success)
     self.assertIsNone(msg)
     mock_sub.assert_called_once_with(
-      ['success', 'cmd'],
+      'success cmd',
       timeout=30,
       shell=True,
     )
@@ -54,7 +54,7 @@ class TestHealthChecker(unittest.TestCase):
     shell = ShellHealthCheck(cmd, timeout_secs=timeout)
     success, msg = shell()
     mock_sub.assert_called_once_with(
-      ['cmd', 'to', 'fail'],
+      'cmd to fail',
       timeout=30,
       shell=True,
     )
@@ -70,7 +70,7 @@ class TestHealthChecker(unittest.TestCase):
     shell = ShellHealthCheck(cmd, timeout_secs=timeout)
     success, msg = shell()
     mock_sub.assert_called_once_with(
-      ['cmd', 'to', 'not', 'exist'],
+      'cmd to not exist',
       timeout=30,
       shell=True,
     )
@@ -87,7 +87,7 @@ class TestHealthChecker(unittest.TestCase):
     shell = ShellHealthCheck(cmd, timeout_secs=timeout)
     success, msg = shell()
     mock_sub.assert_called_once_with(
-      ['defensive', 'cmd'],
+      'defensive cmd',
       timeout=10,
       shell=True,
     )

Reply via email to