Merge pull request #3 from geissonator/master

Sensor enhancements to sort and show values in summary
diff --git a/geissonator/openbmc-events/openbmc-sensors b/geissonator/openbmc-events/openbmc-sensors
index c54dc97..4b6aa92 100755
--- a/geissonator/openbmc-events/openbmc-sensors
+++ b/geissonator/openbmc-events/openbmc-sensors
@@ -30,7 +30,19 @@
             raise Exception("Failed to query sensors: \n" + r.text)
 
         sensors = j['data']
-        #sensors.sort(key=lambda x: int(x.split("/")[-1]))
+        sensors = sorted(sensors,key=lambda x: x.split("/")[-1])
+
+        return sensors
+
+    def occ_all(self):
+        r = self.session.get(self.url + 'org/open_power/control/enumerate',
+                             verify=False)
+        j = r.json()
+        if j['status'] != 'ok':
+            raise Exception("Failed to query occ sensors: \n" + r.text)
+
+        sensors = j['data']
+        #sensors = sorted(sensors,key=lambda x: x.split("/")[-1])
 
         return sensors
 
@@ -41,12 +53,21 @@
         if j['status'] != 'ok':
             raise Exception("Failed to get sensor " + sensor + ": \n" + r.text)
 
-        return j['data']      
+        return j['data']
 
 def do_list_all(args):
     s = BMC(server=args.server)
     for e in s.list_all():
-        print(e)
+        if (args.value):
+            value = s.get_sensor(e)
+            print(e + ' : '+ str(value["Value"]))
+        else:
+            print(e)
+
+def do_occ_all(args):
+    s = BMC(server=args.server)
+    print json.dumps(s.occ_all(), indent=4)
+
 
 def do_view_sensor(args):
     s = BMC(server=args.server)
@@ -61,12 +82,21 @@
 
 list_all_sensors = subparsers.add_parser('list', help='List all sensors on BMC')
 list_all_sensors.set_defaults(func=do_list_all)
+list_all_sensors.add_argument(
+    '--value',
+    action='store_true',
+    default=False,
+    help='Provide current value of sensor')
 
 view_sensor = subparsers.add_parser(
     'view', help='View all data for an individual sensor')
 view_sensor.add_argument('sensor', help='The sensor to view')
 view_sensor.set_defaults(func=do_view_sensor)
 
+# occ has some 'special' sensors not in the sensor namespace
+occ_sensors = subparsers.add_parser('occ', help='List the special occ sensors')
+occ_sensors.set_defaults(func=do_occ_all)
+
 args = parser.parse_args()
 
 if 'func' in args: