Browse Source

[2172] use None instead of -1 for unknown values

and update calling tool to not show anything for some values where it is None (i.e. where they have no relevance on the system)
Jelte Jansen 12 years ago
parent
commit
05cff66f9a

+ 13 - 10
src/bin/sysinfo/sysinfo.py.in

@@ -57,8 +57,8 @@ def main():
 
 
     s = SysInfoFromFactory()
     s = SysInfoFromFactory()
 
 
-    f.write('BIND 10 ShowTech tool\n')
-    f.write('=====================\n')
+    f.write('ISC Sysinfo tool\n')
+    f.write('================\n')
 
 
     f.write('\nCPU\n');
     f.write('\nCPU\n');
     f.write(' + Number of processors: %d\n' % (s.get_num_processors()))
     f.write(' + Number of processors: %d\n' % (s.get_num_processors()))
@@ -69,12 +69,13 @@ def main():
     f.write(' + Distribution: %s\n' % (s.get_platform_distro()))
     f.write(' + Distribution: %s\n' % (s.get_platform_distro()))
     f.write(' + Kernel version: %s\n' % (s.get_platform_version()))
     f.write(' + Kernel version: %s\n' % (s.get_platform_version()))
 
 
-    f.write(' + SMP kernel: ')
-    if s.get_platform_is_smp():
-        f.write('yes')
-    else:
-        f.write('no')
-    f.write('\n')
+    if s.get_platform_is_smp() is not None:
+        f.write(' + SMP kernel: ')
+        if s.get_platform_is_smp():
+            f.write('yes')
+        else:
+            f.write('no')
+        f.write('\n')
 
 
     f.write(' + Machine name: %s\n' % (s.get_platform_machine()))
     f.write(' + Machine name: %s\n' % (s.get_platform_machine()))
     f.write(' + Hostname: %s\n' % (s.get_platform_hostname()))
     f.write(' + Hostname: %s\n' % (s.get_platform_hostname()))
@@ -86,8 +87,10 @@ def main():
     f.write('\nMemory\n');
     f.write('\nMemory\n');
     f.write(' + Total: %d bytes\n' % (s.get_mem_total()))
     f.write(' + Total: %d bytes\n' % (s.get_mem_total()))
     f.write(' + Free: %d bytes\n' % (s.get_mem_free()))
     f.write(' + Free: %d bytes\n' % (s.get_mem_free()))
-    f.write(' + Cached: %d bytes\n' % (s.get_mem_cached()))
-    f.write(' + Buffers: %d bytes\n' % (s.get_mem_buffers()))
+    if s.get_mem_cached() is not None:
+        f.write(' + Cached: %d bytes\n' % (s.get_mem_cached()))
+    if s.get_mem_buffers() is not None:
+        f.write(' + Buffers: %d bytes\n' % (s.get_mem_buffers()))
     f.write(' + Swap total: %d bytes\n' % (s.get_mem_swap_total()))
     f.write(' + Swap total: %d bytes\n' % (s.get_mem_swap_total()))
     f.write(' + Swap free: %d bytes\n' % (s.get_mem_swap_free()))
     f.write(' + Swap free: %d bytes\n' % (s.get_mem_swap_free()))
 
 

+ 8 - 17
src/lib/python/isc/sysinfo/sysinfo.py

@@ -25,21 +25,21 @@ import time
 
 
 class SysInfo:
 class SysInfo:
     def __init__(self):
     def __init__(self):
-        self._num_processors = -1
+        self._num_processors = None
         self._endianness = 'Unknown'
         self._endianness = 'Unknown'
         self._hostname = ''
         self._hostname = ''
         self._platform_name = 'Unknown'
         self._platform_name = 'Unknown'
         self._platform_version = 'Unknown'
         self._platform_version = 'Unknown'
         self._platform_machine = 'Unknown'
         self._platform_machine = 'Unknown'
         self._platform_is_smp = False
         self._platform_is_smp = False
-        self._uptime = -1
+        self._uptime = None
         self._loadavg = [-1.0, -1.0, -1.0]
         self._loadavg = [-1.0, -1.0, -1.0]
-        self._mem_total = -1
-        self._mem_free = -1
-        self._mem_cached = -1
-        self._mem_buffers = -1
-        self._mem_swap_total = -1
-        self._mem_swap_free = -1
+        self._mem_total = None
+        self._mem_free = None
+        self._mem_cached = None
+        self._mem_buffers = None
+        self._mem_swap_total = None
+        self._mem_swap_free = None
         self._platform_distro = 'Unknown'
         self._platform_distro = 'Unknown'
         self._net_interfaces = 'Unknown\n'
         self._net_interfaces = 'Unknown\n'
         self._net_routing_table = 'Unknown\n'
         self._net_routing_table = 'Unknown\n'
@@ -303,11 +303,6 @@ class SysInfoOpenBSD(SysInfoBSD):
     def __init__(self):
     def __init__(self):
         super().__init__()
         super().__init__()
 
 
-        # Don't know how to gather these
-        self._platform_is_smp = False
-        self._mem_cached = -1
-        self._mem_buffers = -1
-
         try:
         try:
             s = subprocess.check_output(['sysctl', '-n', 'kern.boottime'])
             s = subprocess.check_output(['sysctl', '-n', 'kern.boottime'])
             t = s.decode('utf-8').strip()
             t = s.decode('utf-8').strip()
@@ -356,10 +351,6 @@ class SysInfoFreeBSDOSX(SysInfoBSD):
     def __init__(self):
     def __init__(self):
         super().__init__()
         super().__init__()
 
 
-        # Don't know how to gather these
-        self._mem_cached = -1
-        self._mem_buffers = -1
-
         try:
         try:
             s = subprocess.check_output(['sysctl', '-n', 'kern.boottime'])
             s = subprocess.check_output(['sysctl', '-n', 'kern.boottime'])
             t = s.decode('utf-8').strip()
             t = s.decode('utf-8').strip()

+ 17 - 17
src/lib/python/isc/sysinfo/tests/sysinfo_test.py

@@ -246,21 +246,21 @@ class SysInfoTest(unittest.TestCase):
         """Test that the various methods on SysInfo exist and return data."""
         """Test that the various methods on SysInfo exist and return data."""
 
 
         s = SysInfo()
         s = SysInfo()
-        self.assertEqual(-1, s.get_num_processors())
+        self.assertEqual(None, s.get_num_processors())
         self.assertEqual('Unknown', s.get_endianness())
         self.assertEqual('Unknown', s.get_endianness())
         self.assertEqual('', s.get_platform_hostname())
         self.assertEqual('', s.get_platform_hostname())
         self.assertEqual('Unknown', s.get_platform_name())
         self.assertEqual('Unknown', s.get_platform_name())
         self.assertEqual('Unknown', s.get_platform_version())
         self.assertEqual('Unknown', s.get_platform_version())
         self.assertEqual('Unknown', s.get_platform_machine())
         self.assertEqual('Unknown', s.get_platform_machine())
         self.assertFalse(s.get_platform_is_smp())
         self.assertFalse(s.get_platform_is_smp())
-        self.assertEqual(-1, s.get_uptime())
+        self.assertEqual(None, s.get_uptime())
         self.assertEqual([-1.0, -1.0, -1.0], s.get_loadavg())
         self.assertEqual([-1.0, -1.0, -1.0], s.get_loadavg())
-        self.assertEqual(-1, s.get_mem_total())
-        self.assertEqual(-1, s.get_mem_free())
-        self.assertEqual(-1, s.get_mem_cached())
-        self.assertEqual(-1, s.get_mem_buffers())
-        self.assertEqual(-1, s.get_mem_swap_total())
-        self.assertEqual(-1, s.get_mem_swap_free())
+        self.assertEqual(None, s.get_mem_total())
+        self.assertEqual(None, s.get_mem_free())
+        self.assertEqual(None, s.get_mem_cached())
+        self.assertEqual(None, s.get_mem_buffers())
+        self.assertEqual(None, s.get_mem_swap_total())
+        self.assertEqual(None, s.get_mem_swap_free())
         self.assertEqual('Unknown', s.get_platform_distro())
         self.assertEqual('Unknown', s.get_platform_distro())
         self.assertEqual('Unknown\n', s.get_net_interfaces())
         self.assertEqual('Unknown\n', s.get_net_interfaces())
         self.assertEqual('Unknown\n', s.get_net_routing_table())
         self.assertEqual('Unknown\n', s.get_net_routing_table())
@@ -275,7 +275,7 @@ class SysInfoTest(unittest.TestCase):
         platform.system = _my_testcase_platform_system
         platform.system = _my_testcase_platform_system
 
 
         s = SysInfoFromFactory()
         s = SysInfoFromFactory()
-        self.assertEqual(-1, s.get_num_processors())
+        self.assertEqual(None, s.get_num_processors())
         self.assertEqual('bigrastafarian', s.get_endianness())
         self.assertEqual('bigrastafarian', s.get_endianness())
         self.assertEqual('', s.get_platform_hostname())
         self.assertEqual('', s.get_platform_hostname())
         self.assertEqual('b10test', s.get_platform_name())
         self.assertEqual('b10test', s.get_platform_name())
@@ -284,12 +284,12 @@ class SysInfoTest(unittest.TestCase):
         self.assertFalse(s.get_platform_is_smp())
         self.assertFalse(s.get_platform_is_smp())
         self.assertEqual(131072, s.get_uptime())
         self.assertEqual(131072, s.get_uptime())
         self.assertEqual([-1.0, -1.0, -1.0], s.get_loadavg())
         self.assertEqual([-1.0, -1.0, -1.0], s.get_loadavg())
-        self.assertEqual(-1, s.get_mem_total())
-        self.assertEqual(-1, s.get_mem_free())
-        self.assertEqual(-1, s.get_mem_cached())
-        self.assertEqual(-1, s.get_mem_buffers())
-        self.assertEqual(-1, s.get_mem_swap_total())
-        self.assertEqual(-1, s.get_mem_swap_free())
+        self.assertEqual(None, s.get_mem_total())
+        self.assertEqual(None, s.get_mem_free())
+        self.assertEqual(None, s.get_mem_cached())
+        self.assertEqual(None, s.get_mem_buffers())
+        self.assertEqual(None, s.get_mem_swap_total())
+        self.assertEqual(None, s.get_mem_swap_free())
         self.assertEqual('Unknown', s.get_platform_distro())
         self.assertEqual('Unknown', s.get_platform_distro())
         self.assertEqual('Unknown\n', s.get_net_interfaces())
         self.assertEqual('Unknown\n', s.get_net_interfaces())
         self.assertEqual('Unknown\n', s.get_net_routing_table())
         self.assertEqual('Unknown\n', s.get_net_routing_table())
@@ -336,8 +336,8 @@ class SysInfoTest(unittest.TestCase):
         # check values shared by all bsd implementations
         # check values shared by all bsd implementations
         self.assertEqual('test.example.com', s.get_platform_hostname())
         self.assertEqual('test.example.com', s.get_platform_hostname())
         self.assertLess(abs(76632 - s.get_uptime()), 4)
         self.assertLess(abs(76632 - s.get_uptime()), 4)
-        self.assertEqual(-1, s.get_mem_cached())
-        self.assertEqual(-1, s.get_mem_buffers())
+        self.assertEqual(None, s.get_mem_cached())
+        self.assertEqual(None, s.get_mem_buffers())
 
 
         # These test that the corresponding tools are being called (and
         # These test that the corresponding tools are being called (and
         # no further processing is done on this data). Please see the
         # no further processing is done on this data). Please see the