You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by jl...@apache.org on 2015/01/05 09:48:25 UTC

ambari git commit: AMBARI-8938: Ambari AMS - os.getloadavg not available on windows (Eugene Chekanskiy via jluniya)

Repository: ambari
Updated Branches:
  refs/heads/trunk 64424e6ff -> 6df5648d3


AMBARI-8938: Ambari AMS - os.getloadavg not available on windows (Eugene Chekanskiy via jluniya)


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

Branch: refs/heads/trunk
Commit: 6df5648d3e748b78e1d60ec86df32b09d6caa6a3
Parents: 64424e6
Author: Jayush Luniya <jl...@hortonworks.com>
Authored: Mon Jan 5 00:48:17 2015 -0800
Committer: Jayush Luniya <jl...@hortonworks.com>
Committed: Mon Jan 5 00:48:17 2015 -0800

----------------------------------------------------------------------
 .../src/main/python/core/host_info.py           | 17 ++++++++-----
 .../src/test/python/core/TestHostInfo.py        | 26 +++++++++++---------
 .../src/test/python/core/TestMetricCollector.py |  6 ++---
 3 files changed, 27 insertions(+), 22 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/6df5648d/ambari-metrics/ambari-metrics-host-monitoring/src/main/python/core/host_info.py
----------------------------------------------------------------------
diff --git a/ambari-metrics/ambari-metrics-host-monitoring/src/main/python/core/host_info.py b/ambari-metrics/ambari-metrics-host-monitoring/src/main/python/core/host_info.py
index a7add91..020b84e 100644
--- a/ambari-metrics/ambari-metrics-host-monitoring/src/main/python/core/host_info.py
+++ b/ambari-metrics/ambari-metrics-host-monitoring/src/main/python/core/host_info.py
@@ -48,13 +48,12 @@ class HostInfo():
     Return cpu stats at current time
     """
     cpu_times = psutil.cpu_times_percent()
-    load_avg = os.getloadavg()
     cpu_count = self.__host_static_info.get('cpu_num', 1)
 
     # Divide by number of cpu's on the system
     number2percents = lambda x: ((x / int(cpu_count)) * 100)
 
-    return {
+    result = {
       'cpu_num': int(cpu_count),
       'cpu_user': number2percents(cpu_times.user) if hasattr(cpu_times, 'user') else '',
       'cpu_system': number2percents(cpu_times.system) if hasattr(cpu_times, 'system') else '',
@@ -62,11 +61,17 @@ class HostInfo():
       'cpu_nice': number2percents(cpu_times.nice) if hasattr(cpu_times, 'nice') else '',
       'cpu_wio': number2percents(cpu_times.iowait) if hasattr(cpu_times, 'iowait') else '',
       'cpu_intr': number2percents(cpu_times.irq) if hasattr(cpu_times, 'irq') else '',
-      'cpu_sintr': number2percents(cpu_times.softirq) if hasattr(cpu_times, 'softirq') else '',
-      'load_one' : load_avg[0] if len(load_avg) > 0 else '',
-      'load_five' : load_avg[1] if len(load_avg) > 1 else '',
-      'load_fifteen' : load_avg[2] if len(load_avg) > 2 else ''
+      'cpu_sintr': number2percents(cpu_times.softirq) if hasattr(cpu_times, 'softirq') else ''
     }
+    if platform.system() != "Windows":
+      load_avg = os.getloadavg()
+      result.update({
+        'load_one' : load_avg[0] if len(load_avg) > 0 else '',
+        'load_five' : load_avg[1] if len(load_avg) > 1 else '',
+        'load_fifteen' : load_avg[2] if len(load_avg) > 2 else ''
+      })
+    return result
+
   pass
 
   def get_process_info(self):

http://git-wip-us.apache.org/repos/asf/ambari/blob/6df5648d/ambari-metrics/ambari-metrics-host-monitoring/src/test/python/core/TestHostInfo.py
----------------------------------------------------------------------
diff --git a/ambari-metrics/ambari-metrics-host-monitoring/src/test/python/core/TestHostInfo.py b/ambari-metrics/ambari-metrics-host-monitoring/src/test/python/core/TestHostInfo.py
index 3338db5..4e63d6a 100644
--- a/ambari-metrics/ambari-metrics-host-monitoring/src/test/python/core/TestHostInfo.py
+++ b/ambari-metrics/ambari-metrics-host-monitoring/src/test/python/core/TestHostInfo.py
@@ -20,7 +20,7 @@ limitations under the License.
 
 import logging
 from host_info import HostInfo
-
+import platform
 from unittest import TestCase
 from mock.mock import patch
 
@@ -29,9 +29,8 @@ logger = logging.getLogger()
 class TestHostInfo(TestCase):
 
   @patch("psutil.cpu_count")
-  @patch("os.getloadavg")
   @patch("psutil.cpu_times_percent")
-  def testCpuTimes(self, cp_mock, avg_mock, count_mock):
+  def testCpuTimes(self, cp_mock, count_mock):
     count_mock.return_value = 1
 
     cp = cp_mock.return_value
@@ -42,13 +41,18 @@ class TestHostInfo(TestCase):
     cp.iowait = 0
     cp.irq = 0
     cp.softirq = 0
-
-    avg_mock.return_value  = [13, 13, 13]
-    
     hostinfo = HostInfo()
-    
-    cpu = hostinfo.get_cpu_times()
-    
+
+    if platform.system() != "Windows":
+      with patch("os.getloadavg") as avg_mock:
+        avg_mock.return_value  = [13, 13, 13]
+        cpu = hostinfo.get_cpu_times()
+        self.assertEqual(cpu['load_one'], 13)
+        self.assertEqual(cpu['load_five'], 13)
+        self.assertEqual(cpu['load_fifteen'], 13)
+    else:
+      cpu = hostinfo.get_cpu_times()
+
     self.assertAlmostEqual(cpu['cpu_user'], 10)
     self.assertAlmostEqual(cpu['cpu_system'], 10)
     self.assertAlmostEqual(cpu['cpu_idle'], 70)
@@ -56,9 +60,7 @@ class TestHostInfo(TestCase):
     self.assertAlmostEqual(cpu['cpu_wio'], 0)
     self.assertAlmostEqual(cpu['cpu_intr'], 0)
     self.assertAlmostEqual(cpu['cpu_sintr'], 0)
-    self.assertEqual(cpu['load_one'], 13)
-    self.assertEqual(cpu['load_five'], 13)
-    self.assertEqual(cpu['load_fifteen'], 13)
+
     
   @patch("psutil.disk_usage")
   @patch("psutil.disk_partitions")

http://git-wip-us.apache.org/repos/asf/ambari/blob/6df5648d/ambari-metrics/ambari-metrics-host-monitoring/src/test/python/core/TestMetricCollector.py
----------------------------------------------------------------------
diff --git a/ambari-metrics/ambari-metrics-host-monitoring/src/test/python/core/TestMetricCollector.py b/ambari-metrics/ambari-metrics-host-monitoring/src/test/python/core/TestMetricCollector.py
index bc4fba7..26a3edc 100644
--- a/ambari-metrics/ambari-metrics-host-monitoring/src/test/python/core/TestMetricCollector.py
+++ b/ambari-metrics/ambari-metrics-host-monitoring/src/test/python/core/TestMetricCollector.py
@@ -30,16 +30,14 @@ logger = logging.getLogger()
 
 class TestMetricCollector(TestCase):
   
-  @patch("os.getloadavg")
   @patch.object(HostInfo, "get_cpu_times")
   @patch.object(ApplicationMetricMap, "__init__")
-  def testCollectEvent(self, amm_mock, host_info_mock, avg_mock):
+  def testCollectEvent(self, amm_mock, host_info_mock):
     amm_mock.return_value = None
     host_info_mock.return_value = {'metric_name' : 'metric_value'}
-    avg_mock.return_value.__getitem__.return_value = 13
 
     metric_collector = MetricsCollector(None, amm_mock)
-    
+
     group_config = {'collect_every' : 1, 'metrics' : 'cpu'}
     
     e = HostMetricCollectEvent(group_config, 'cpu')