[PATCH skeleton v2 1/3] Deprecate Openbmc.py
Cyril Bur
cyrilbur at gmail.com
Wed May 18 11:32:26 AEST 2016
On Tue, 17 May 2016 20:00:54 -0500
OpenBMC Patches <openbmc-patches at stwcx.xyz> wrote:
> From: Brad Bishop <bradleyb at fuzziesquirrel.com>
>
> The pyphosphor package provides equivalent function
> so use that and drop the duplicated code.
>
> Signed-off-by: Brad Bishop <bradleyb at fuzziesquirrel.com>
Love deleting duplicated code!
Reviewed-by: Cyril Bur <cyrilbur at gmail.com>
> ---
> bin/Openbmc.py | 146 ------------------------------------------------
> bin/PropertyCacher.py | 1 -
> bin/Sensors.py | 11 ++--
> bin/bmc_update.py | 10 ++--
> bin/chassis_control.py | 11 ++--
> bin/download_manager.py | 5 +-
> bin/fan_control.py | 10 ++--
> bin/hwmon.py | 4 +-
> bin/inventory_items.py | 14 ++---
> bin/sensor_manager2.py | 10 ++--
> bin/system_manager.py | 14 ++---
> 11 files changed, 44 insertions(+), 192 deletions(-)
> delete mode 100755 bin/Openbmc.py
>
> diff --git a/bin/Openbmc.py b/bin/Openbmc.py
> deleted file mode 100755
> index b87fec8..0000000
> --- a/bin/Openbmc.py
> +++ /dev/null
> @@ -1,146 +0,0 @@
> -import dbus
> -
> -BUS_PREFIX = 'org.openbmc'
> -OBJ_PREFIX = "/org/openbmc"
> -GPIO_DEV = '/sys/class/gpio'
> -BUS = "system"
> -
> -def getSystemName():
> - #use filename as system name, strip off path and ext
> - parts = __file__.replace('.pyc','').replace('.py','').split('/')
> - return parts[len(parts)-1]
> -
> -def getDBus():
> - bus = None
> - if (BUS == "session"):
> - bus = dbus.SessionBus()
> - else:
> - bus = dbus.SystemBus()
> - return bus
> -
> -class DbusProperties(dbus.service.Object):
> - def __init__(self):
> - dbus.service.Object.__init__(self)
> - self.properties = {}
> - self.object_path = ""
> -
> - @dbus.service.method(dbus.PROPERTIES_IFACE,
> - in_signature='ss', out_signature='v')
> - def Get(self, interface_name, property_name):
> - d = self.GetAll(interface_name)
> - try:
> - v = d[property_name]
> - return v
> - except:
> - raise dbus.exceptions.DBusException(
> - "org.freedesktop.UnknownPropery: "+property_name)
> -
> - @dbus.service.method(dbus.PROPERTIES_IFACE,
> - in_signature='s', out_signature='a{sv}')
> - def GetAll(self, interface_name):
> - try:
> - d = self.properties[interface_name]
> - return d
> - except:
> - raise dbus.exceptions.DBusException(
> - "org.freedesktop.UnknownInterface: "+interface_name)
> -
> - @dbus.service.method(dbus.PROPERTIES_IFACE,
> - in_signature='ssv')
> - def Set(self, interface_name, property_name, new_value):
> - if (self.properties.has_key(interface_name) == False):
> - self.properties[interface_name] = {}
> - try:
> - old_value = self.properties[interface_name][property_name]
> - if (old_value != new_value):
> - self.properties[interface_name][property_name] = new_value
> - self.PropertiesChanged(interface_name,{ property_name: new_value }, [])
> -
> - except:
> - self.properties[interface_name][property_name] = new_value
> - self.PropertiesChanged(interface_name,{ property_name: new_value }, [])
> -
> - @dbus.service.method("org.openbmc.Object.Properties",
> - in_signature='sa{sv}')
> - def SetMultiple(self, interface_name, prop_dict):
> - if (self.properties.has_key(interface_name) == False):
> - self.properties[interface_name] = {}
> -
> - value_changed = False
> - for property_name in prop_dict:
> - new_value = prop_dict[property_name]
> - try:
> - old_value = self.properties[interface_name][property_name]
> - if (old_value != new_value):
> - self.properties[interface_name][property_name] = new_value
> - value_changed = True
> -
> - except:
> - self.properties[interface_name][property_name] = new_value
> - value_changed = True
> - if (value_changed == True):
> - self.PropertiesChanged(interface_name, prop_dict, [])
> -
> - @dbus.service.signal(dbus.PROPERTIES_IFACE,
> - signature='sa{sv}as')
> - def PropertiesChanged(self, interface_name, changed_properties,
> - invalidated_properties):
> - pass
> -
> -class DbusObjectManager(dbus.service.Object):
> - def __init__(self):
> - dbus.service.Object.__init__(self)
> - self.objects = {}
> -
> - def add(self,object_path,obj):
> - self.objects[object_path] = obj
> - self.InterfacesAdded(object_path,obj.properties)
> -
> - def remove(self,object_path):
> - obj = self.objects.pop(object_path,None)
> - obj.remove_from_connection()
> - self.InterfacesRemoved(object_path,obj.properties.keys())
> -
> - def get(self,object_path):
> - return self.objects[object_path]
> -
> - @dbus.service.method("org.freedesktop.DBus.ObjectManager",
> - in_signature='', out_signature='a{oa{sa{sv}}}')
> - def GetManagedObjects(self):
> - data = {}
> - for objpath in self.objects.keys():
> - data[objpath] = self.objects[objpath].properties
> - return data
> -
> - @dbus.service.signal("org.freedesktop.DBus.ObjectManager",
> - signature='oa{sa{sv}}')
> - def InterfacesAdded(self,object_path,properties):
> - self.ObjectAdded(object_path,"")
> -
> - @dbus.service.signal("org.freedesktop.DBus.ObjectManager",
> - signature='oas')
> - def InterfacesRemoved(self,object_path,interfaces):
> - pass
> -
> - ## Legacy support, need to eventually refactor out
> - @dbus.service.signal("org.openbmc.Object.ObjectMapper",
> - signature='ss')
> - def ObjectAdded(self,object_path,interface_name):
> - pass
> -
> - ## flattens interfaces
> - @dbus.service.method('org.openbmc.Object.Enumerate',
> - in_signature='', out_signature='a{sa{sv}}')
> - def enumerate(self):
> - data = {}
> - for objpath in self.objects.keys():
> - props = self.objects[objpath].properties
> - data[objpath] = { }
> - for iface in props.keys():
> - data[objpath].update(props[iface])
> -
> - return data
> -
> -
> -
> -
> diff --git a/bin/PropertyCacher.py b/bin/PropertyCacher.py
> index b10edcb..dfbb0b9 100644
> --- a/bin/PropertyCacher.py
> +++ b/bin/PropertyCacher.py
> @@ -1,7 +1,6 @@
> import os
> import cPickle
> import json
> -import Openbmc
>
> CACHE_PATH = '/var/cache/obmc/'
>
> diff --git a/bin/Sensors.py b/bin/Sensors.py
> index ecdac91..7c58c97 100755
> --- a/bin/Sensors.py
> +++ b/bin/Sensors.py
> @@ -8,13 +8,12 @@ import dbus
> import dbus.service
> import dbus.mainloop.glib
> import os
> -import Openbmc
> +from obmc.dbuslib.bindings import DbusProperties
>
> ## Abstract class, must subclass
> -class SensorValue(Openbmc.DbusProperties):
> +class SensorValue(DbusProperties):
> IFACE_NAME = 'org.openbmc.SensorValue'
> def __init__(self,bus,name):
> - #Openbmc.DbusProperties.__init__(self)
> self.Set(SensorValue.IFACE_NAME,'units',"")
> self.Set(SensorValue.IFACE_NAME,'error',False)
>
> @@ -28,7 +27,7 @@ class SensorValue(Openbmc.DbusProperties):
> def getValue(self):
> return self.Get(SensorValue.IFACE_NAME,'value')
>
> -class SensorThresholds(Openbmc.DbusProperties):
> +class SensorThresholds(DbusProperties):
> IFACE_NAME = 'org.openbmc.SensorThresholds'
> def __init__(self,bus,name):
> self.Set(SensorThresholds.IFACE_NAME,'thresholds_enabled',False)
> @@ -85,14 +84,14 @@ class SensorThresholds(Openbmc.DbusProperties):
>
> class VirtualSensor(SensorValue):
> def __init__(self,bus,name):
> - Openbmc.DbusProperties.__init__(self)
> + DbusProperties.__init__(self)
> SensorValue.__init__(self,bus,name)
> dbus.service.Object.__init__(self,bus,name)
>
> class HwmonSensor(SensorValue,SensorThresholds):
> IFACE_NAME = 'org.openbmc.HwmonSensor'
> def __init__(self,bus,name):
> - Openbmc.DbusProperties.__init__(self)
> + DbusProperties.__init__(self)
> SensorValue.__init__(self,bus,name)
> SensorThresholds.__init__(self,bus,name)
> self.Set(HwmonSensor.IFACE_NAME,'scale',1)
> diff --git a/bin/bmc_update.py b/bin/bmc_update.py
> index a3032cf..0555fd3 100755
> --- a/bin/bmc_update.py
> +++ b/bin/bmc_update.py
> @@ -4,10 +4,10 @@ import gobject
> import dbus
> import dbus.service
> import dbus.mainloop.glib
> -import Openbmc
> import shutil
> import tarfile
> import os
> +from obmc.dbuslib.bindings import get_dbus, DbusProperties, DbusObjectManager
>
> DBUS_NAME = 'org.openbmc.control.BmcFlash'
> OBJ_NAME = '/org/openbmc/control/flash/bmc'
> @@ -23,11 +23,11 @@ def doExtract(members,files):
> yield tarinfo
>
>
> -class BmcFlashControl(Openbmc.DbusProperties,Openbmc.DbusObjectManager):
> +class BmcFlashControl(DbusProperties,DbusObjectManager):
> def __init__(self,bus,name):
> self.dbus_objects = { }
> - Openbmc.DbusProperties.__init__(self)
> - Openbmc.DbusObjectManager.__init__(self)
> + DbusProperties.__init__(self)
> + DbusObjectManager.__init__(self)
> dbus.service.Object.__init__(self,bus,name)
>
> self.Set(DBUS_NAME,"status","Idle")
> @@ -122,7 +122,7 @@ class BmcFlashControl(Openbmc.DbusProperties,Openbmc.DbusObjectManager):
> if __name__ == '__main__':
> dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
>
> - bus = Openbmc.getDBus()
> + bus = get_dbus()
> name = dbus.service.BusName(DBUS_NAME, bus)
> obj = BmcFlashControl(bus, OBJ_NAME)
> mainloop = gobject.MainLoop()
> diff --git a/bin/chassis_control.py b/bin/chassis_control.py
> index 334fbbf..376e0e9 100755
> --- a/bin/chassis_control.py
> +++ b/bin/chassis_control.py
> @@ -2,12 +2,11 @@
>
> import sys
> import uuid
> -#from gi.repository import GObject
> import gobject
> import dbus
> import dbus.service
> import dbus.mainloop.glib
> -import Openbmc
> +from obmc.dbuslib.bindings import get_dbus, DbusProperties, DbusObjectManager
>
> DBUS_NAME = 'org.openbmc.control.Chassis'
> OBJ_NAME = '/org/openbmc/control/chassis0'
> @@ -20,7 +19,7 @@ POWER_ON = 1
>
> BOOTED = 100
>
> -class ChassisControlObject(Openbmc.DbusProperties,Openbmc.DbusObjectManager):
> +class ChassisControlObject(DbusProperties,DbusObjectManager):
> def getUuid(self):
> uuid = "";
> try:
> @@ -37,8 +36,8 @@ class ChassisControlObject(Openbmc.DbusProperties,Openbmc.DbusObjectManager):
>
> def __init__(self,bus,name):
> self.dbus_objects = { }
> - Openbmc.DbusProperties.__init__(self)
> - Openbmc.DbusObjectManager.__init__(self)
> + DbusProperties.__init__(self)
> + DbusObjectManager.__init__(self)
> dbus.service.Object.__init__(self,bus,name)
> ## load utilized objects
> self.dbus_objects = {
> @@ -215,7 +214,7 @@ class ChassisControlObject(Openbmc.DbusProperties,Openbmc.DbusObjectManager):
> if __name__ == '__main__':
> dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
>
> - bus = Openbmc.getDBus()
> + bus = get_dbus()
> name = dbus.service.BusName(DBUS_NAME, bus)
> obj = ChassisControlObject(bus, OBJ_NAME)
> mainloop = gobject.MainLoop()
> diff --git a/bin/download_manager.py b/bin/download_manager.py
> index 36005d5..ba502da 100755
> --- a/bin/download_manager.py
> +++ b/bin/download_manager.py
> @@ -6,7 +6,8 @@ import dbus
> import dbus.service
> import dbus.mainloop.glib
> import subprocess
> -import Openbmc
> +from obmc.dbuslib.bindings import get_dbus
> +
> if (len(sys.argv) < 2):
> print "Usage: download_manager.py [system name]"
> exit(1)
> @@ -73,7 +74,7 @@ class DownloadManagerObject(dbus.service.Object):
>
> if __name__ == '__main__':
> dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
> - bus = Openbmc.getDBus()
> + bus = get_dbus()
> name = dbus.service.BusName(DBUS_NAME, bus)
> obj = DownloadManagerObject(bus, OBJ_NAME)
> mainloop = gobject.MainLoop()
> diff --git a/bin/fan_control.py b/bin/fan_control.py
> index bb070e5..cea2215 100755
> --- a/bin/fan_control.py
> +++ b/bin/fan_control.py
> @@ -6,7 +6,7 @@ import gobject
> import dbus
> import dbus.service
> import dbus.mainloop.glib
> -import Openbmc
> +from obmc.dbuslib.bindings import get_dbus, DbusProperties, DbusObjectManager
>
> DBUS_NAME = 'org.openbmc.control.Fans'
> OBJ_PATH = '/org/openbmc/control/fans'
> @@ -23,10 +23,10 @@ FAN_OBJS = [
> ]
> FAN_IFACE = 'org.openbmc.SensorValue'
>
> -class FanControl(Openbmc.DbusProperties,Openbmc.DbusObjectManager):
> +class FanControl(DbusProperties,DbusObjectManager):
> def __init__(self,bus,name):
> - Openbmc.DbusProperties.__init__(self)
> - Openbmc.DbusObjectManager.__init__(self)
> + DbusProperties.__init__(self)
> + DbusObjectManager.__init__(self)
> dbus.service.Object.__init__(self,bus,name)
> self.Set(IFACE_NAME,"floor",250)
> self.Set(IFACE_NAME,"ceiling",255)
> @@ -49,7 +49,7 @@ class FanControl(Openbmc.DbusProperties,Openbmc.DbusObjectManager):
> if __name__ == '__main__':
>
> dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
> - bus = Openbmc.getDBus()
> + bus = get_dbus()
> name = dbus.service.BusName(DBUS_NAME,bus)
> fan_control = FanControl(bus,OBJ_PATH)
> mainloop = gobject.MainLoop()
> diff --git a/bin/hwmon.py b/bin/hwmon.py
> index 08c6f06..7e1858e 100755
> --- a/bin/hwmon.py
> +++ b/bin/hwmon.py
> @@ -7,8 +7,8 @@ import glob
> import dbus
> import dbus.service
> import dbus.mainloop.glib
> -import Openbmc
> import re
> +from obmc.dbuslib.bindings import get_dbus
>
> from Sensors import SensorValue as SensorValue
> from Sensors import HwmonSensor as HwmonSensor
> @@ -159,7 +159,7 @@ class Hwmons():
> if __name__ == '__main__':
>
> dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
> - bus = Openbmc.getDBus()
> + bus = get_dbus()
> root_sensor = Hwmons(bus)
> mainloop = gobject.MainLoop()
>
> diff --git a/bin/inventory_items.py b/bin/inventory_items.py
> index e0351a8..bf7f414 100755
> --- a/bin/inventory_items.py
> +++ b/bin/inventory_items.py
> @@ -9,29 +9,29 @@ import dbus.mainloop.glib
> import cPickle
> import json
> import PropertyCacher
> +from obmc.dbuslib.bindings import get_dbus, DbusProperties, DbusObjectManager
>
> if (len(sys.argv) < 2):
> print "Usage: inventory_items.py [system name]"
> exit(1)
> System = __import__(sys.argv[1])
> -import Openbmc
>
>
> INTF_NAME = 'org.openbmc.InventoryItem'
> DBUS_NAME = 'org.openbmc.Inventory'
> FRUS = System.FRU_INSTANCES
>
> -class Inventory(Openbmc.DbusProperties,Openbmc.DbusObjectManager):
> +class Inventory(DbusProperties,DbusObjectManager):
> def __init__(self,bus,name):
> - Openbmc.DbusProperties.__init__(self)
> - Openbmc.DbusObjectManager.__init__(self)
> + DbusProperties.__init__(self)
> + DbusObjectManager.__init__(self)
> dbus.service.Object.__init__(self,bus,name)
> self.InterfacesAdded(name,self.properties)
>
>
> -class InventoryItem(Openbmc.DbusProperties):
> +class InventoryItem(DbusProperties):
> def __init__(self,bus,name,data):
> - Openbmc.DbusProperties.__init__(self)
> + DbusProperties.__init__(self)
> dbus.service.Object.__init__(self,bus,name)
>
> self.name = name
> @@ -78,7 +78,7 @@ def getVersion():
>
> if __name__ == '__main__':
> dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
> - bus = Openbmc.getDBus()
> + bus = get_dbus()
> mainloop = gobject.MainLoop()
> obj_parent = Inventory(bus, '/org/openbmc/inventory')
>
> diff --git a/bin/sensor_manager2.py b/bin/sensor_manager2.py
> index b5aac53..b06b9a5 100755
> --- a/bin/sensor_manager2.py
> +++ b/bin/sensor_manager2.py
> @@ -6,17 +6,17 @@ import gobject
> import dbus
> import dbus.service
> import dbus.mainloop.glib
> -import Openbmc
> import Sensors
> +from obmc.dbuslib.bindings import DbusProperties, DbusObjectManager, get_dbus
>
> DBUS_NAME = 'org.openbmc.Sensors'
> OBJ_PATH = '/org/openbmc/sensors'
>
>
> -class SensorManager(Openbmc.DbusProperties,Openbmc.DbusObjectManager):
> +class SensorManager(DbusProperties,DbusObjectManager):
> def __init__(self,bus,name):
> - Openbmc.DbusProperties.__init__(self)
> - Openbmc.DbusObjectManager.__init__(self)
> + DbusProperties.__init__(self)
> + DbusObjectManager.__init__(self)
> dbus.service.Object.__init__(self,bus,name)
> self.InterfacesAdded(name,self.properties)
>
> @@ -43,7 +43,7 @@ class SensorManager(Openbmc.DbusProperties,Openbmc.DbusObjectManager):
>
> if __name__ == '__main__':
> dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
> - bus = Openbmc.getDBus()
> + bus = get_dbus()
> name = dbus.service.BusName(DBUS_NAME,bus)
> root_sensor = SensorManager(bus,OBJ_PATH)
>
> diff --git a/bin/system_manager.py b/bin/system_manager.py
> index e74788a..2331131 100755
> --- a/bin/system_manager.py
> +++ b/bin/system_manager.py
> @@ -9,14 +9,14 @@ import dbus.mainloop.glib
> import os
> import time
> import PropertyCacher
> -import Openbmc
> +from obmc.dbuslib.bindings import DbusProperties, DbusObjectManager, get_dbus
> +import obmc.enums
>
> if (len(sys.argv) < 2):
> print "Usage: system_manager.py [system name]"
> exit(1)
>
> System = __import__(sys.argv[1])
> -import Openbmc
>
> DBUS_NAME = 'org.openbmc.managers.System'
> OBJ_NAME = '/org/openbmc/managers/System'
> @@ -27,10 +27,10 @@ INTF_ITEM = 'org.openbmc.InventoryItem'
> INTF_CONTROL = 'org.openbmc.Control'
>
>
> -class SystemManager(Openbmc.DbusProperties,Openbmc.DbusObjectManager):
> +class SystemManager(DbusProperties,DbusObjectManager):
> def __init__(self,bus,obj_name):
> - Openbmc.DbusProperties.__init__(self)
> - Openbmc.DbusObjectManager.__init__(self)
> + DbusProperties.__init__(self)
> + DbusObjectManager.__init__(self)
> dbus.service.Object.__init__(self,bus,obj_name)
>
> bus.add_signal_receiver(self.NewObjectHandler,
> @@ -218,14 +218,14 @@ class SystemManager(Openbmc.DbusProperties,Openbmc.DbusObjectManager):
> print "ERROR: SystemManager - GPIO lookup failed for "+name
>
> if (gpio_num != -1):
> - r = [Openbmc.GPIO_DEV, gpio_num, gpio['direction']]
> + r = [obmc.enums.GPIO_DEV, gpio_num, gpio['direction']]
> return r
>
>
>
> if __name__ == '__main__':
> dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
> - bus = Openbmc.getDBus()
> + bus = get_dbus()
> name = dbus.service.BusName(DBUS_NAME,bus)
> obj = SystemManager(bus,OBJ_NAME)
> mainloop = gobject.MainLoop()
More information about the openbmc
mailing list