diff options
author | Balaji B Rao <balajibapu@gmail.com> | 2017-11-09 21:19:13 -0600 |
---|---|---|
committer | Brad Bishop <bradleyb@fuzziesquirrel.com> | 2018-01-30 18:03:34 +0000 |
commit | 84e331a3095810ad9505a8a73a31819fa0f569ea (patch) | |
tree | 6d53e1ed0afcf51162ab989536874bd382b3118a | |
parent | 7f42ad2a3f5cf2694e13c38d0089396aa3192ac8 (diff) | |
download | phosphor-objmgr-84e331a3095810ad9505a8a73a31819fa0f569ea.tar.gz phosphor-objmgr-84e331a3095810ad9505a8a73a31819fa0f569ea.zip |
Port obmc.mapper to python3.5
Change-Id: I472d92ddae72f004fb9d00103f160c9b108143fd
Signed-off-by: Balaji B Rao <balajibapu@gmail.com>
-rw-r--r-- | obmc/mapper/bindings.py | 32 | ||||
-rw-r--r-- | obmc/mapper/server.py | 54 | ||||
-rw-r--r-- | obmc/mapper/utils.py | 5 |
3 files changed, 44 insertions, 47 deletions
diff --git a/obmc/mapper/bindings.py b/obmc/mapper/bindings.py index dadec32..bd19f19 100644 --- a/obmc/mapper/bindings.py +++ b/obmc/mapper/bindings.py @@ -39,7 +39,7 @@ class Mapper: while count < retries: try: return func() - except dbus.exceptions.DBusException, e: + except dbus.exceptions.DBusException as e: if e.get_dbus_name() not in \ ['org.freedesktop.DBus.Error.ObjectPathInUse', 'org.freedesktop.DBus.Error.LimitsExceeded']: @@ -82,7 +82,7 @@ class Mapper: def __try_properties_interface(f, *a): try: return f(*a) - except dbus.exceptions.DBusException, e: + except dbus.exceptions.DBusException as e: if obmc.dbuslib.enums.DBUS_UNKNOWN_INTERFACE in \ e.get_dbus_name(): # interface doesn't have any properties @@ -122,7 +122,7 @@ class Mapper: obj = {} - for owner, interfaces in mapper_data[path].iteritems(): + for owner, interfaces in mapper_data[path].items(): obj.update( self.__get_properties_on_bus( path, owner, interfaces, match)) @@ -140,8 +140,8 @@ class Mapper: # look for objectmanager implementations as they result # in fewer dbus calls - for path, bus_data in mapper_data.iteritems(): - for owner, interfaces in bus_data.iteritems(): + for path, bus_data in mapper_data.items(): + for owner, interfaces in bus_data.items(): owners.append(owner) if dbus.BUS_DAEMON_IFACE + '.ObjectManager' in interfaces: managers[owner] = path @@ -152,18 +152,18 @@ class Mapper: # finally check the root for one too try: ancestors.update({path: self.get_object(path)}) - except dbus.exceptions.DBusException, e: + except dbus.exceptions.DBusException as e: if e.get_dbus_name() != MAPPER_NOT_FOUND: raise - for path, bus_data in ancestors.iteritems(): - for owner, interfaces in bus_data.iteritems(): + for path, bus_data in ancestors.items(): + for owner, interfaces in bus_data.items(): if dbus.BUS_DAEMON_IFACE + '.ObjectManager' in interfaces: managers[owner] = path # make all the manager gmo (get managed objects) calls results = {} - for owner, path in managers.iteritems(): + for owner, path in managers.items(): if owner not in owners: continue obj = self.bus.get_object(owner, path, introspect=False) @@ -171,17 +171,17 @@ class Mapper: obj, dbus.BUS_DAEMON_IFACE + '.ObjectManager') # flatten (remove interface names) gmo results - for path, interfaces in iface.GetManagedObjects().iteritems(): - if path not in mapper_data.iterkeys(): + for path, interfaces in iface.GetManagedObjects().items(): + if path not in iter(mapper_data.keys()): continue properties = {} - for iface, props in interfaces.iteritems(): + for iface, props in interfaces.items(): properties.update(props) results.setdefault(path, {}).setdefault(owner, properties) # make dbus calls for any remaining objects - for path, bus_data in mapper_data.iteritems(): - for owner, interfaces in bus_data.iteritems(): + for path, bus_data in mapper_data.items(): + for owner, interfaces in bus_data.items(): if results.setdefault(path, {}).setdefault(owner, {}): continue results[path][owner].update( @@ -189,8 +189,8 @@ class Mapper: path, owner, interfaces, match)) objs = obmc.utils.pathtree.PathTree() - for path, owners in results.iteritems(): - for owner, properties in owners.iteritems(): + for path, owners in results.items(): + for owner, properties in owners.items(): objs.setdefault(path, {}).update(properties) return objs diff --git a/obmc/mapper/server.py b/obmc/mapper/server.py index 0c1df3e..b18b8b5 100644 --- a/obmc/mapper/server.py +++ b/obmc/mapper/server.py @@ -61,12 +61,12 @@ def find_dbus_interfaces(conn, service, path, callback, error_callback, **kw): @staticmethod def _to_path_elements(path): - return filter(bool, path.split('/')) + return list(filter(bool, path.split('/'))) def __call__(self, path): try: self._find_interfaces(path) - except Exception, e: + except Exception as e: error_callback(service, path, e) @staticmethod @@ -88,7 +88,7 @@ def find_dbus_interfaces(conn, service, path, callback, error_callback, **kw): iface = obmc.dbuslib.enums.OBMC_ASSOCIATIONS_IFACE self.assoc_pending.remove(path) self.results[path][iface]['associations'] = associations - except Exception, e: + except Exception as e: error_callback(service, path, e) return None @@ -97,9 +97,9 @@ def find_dbus_interfaces(conn, service, path, callback, error_callback, **kw): def _gmo_callback(self, path, objs): try: self.gmo_pending.remove(path) - for k, v in objs.iteritems(): + for k, v in objs.items(): self.results[k] = v - except Exception, e: + except Exception as e: error_callback(service, path, e) return None @@ -114,9 +114,9 @@ def find_dbus_interfaces(conn, service, path, callback, error_callback, **kw): try: path_elements = self._to_path_elements(path) root = ET.fromstring(data) - ifaces = filter( + ifaces = list(filter( self._match, - [x.attrib.get('name') for x in root.findall('interface')]) + [x.attrib.get('name') for x in root.findall('interface')])) ifaces = {x: {} for x in ifaces} self.results[path] = ifaces @@ -143,9 +143,9 @@ def find_dbus_interfaces(conn, service, path, callback, error_callback, **kw): error_handler=lambda e: error_callback( service, path, e)) else: - children = filter( + children = list(filter( bool, - [x.attrib.get('name') for x in root.findall('node')]) + [x.attrib.get('name') for x in root.findall('node')])) children = [ self._to_path( path_elements + self._to_path_elements(x)) @@ -153,7 +153,7 @@ def find_dbus_interfaces(conn, service, path, callback, error_callback, **kw): for child in filter(subtree_match, children): if child not in self.results: self._find_interfaces(child) - except Exception, e: + except Exception as e: error_callback(service, path, e) return None @@ -242,14 +242,14 @@ class ObjectMapper(dbus.service.Object): path_keyword='path', sender_keyword='sender') - print "ObjectMapper startup complete. Discovery in progress..." + print("ObjectMapper startup complete. Discovery in progress...") self.discover() gobject.idle_add(self.claim_name) def claim_name(self): if len(self.defer_signals): return True - print "ObjectMapper discovery complete" + print("ObjectMapper discovery complete") self.service = dbus.service.BusName( obmc.mapper.MAPPER_NAME, self.bus) self.manager.unmask_signals() @@ -308,7 +308,7 @@ class ObjectMapper(dbus.service.Object): def interfaces_added_handler(self, path, iprops, **kw): path = str(path) owner = str(kw['sender']) - interfaces = self.get_signal_interfaces(owner, iprops.iterkeys()) + interfaces = self.get_signal_interfaces(owner, iter(iprops.keys())) if not interfaces: return @@ -371,7 +371,7 @@ class ObjectMapper(dbus.service.Object): # unique name try: return self.discover([(owned_name, owner)]) - except dbus.exceptions.DBusException, e: + except dbus.exceptions.DBusException as e: if obmc.dbuslib.enums.DBUS_UNKNOWN_SERVICE \ not in e.get_dbus_name(): raise @@ -405,12 +405,12 @@ class ObjectMapper(dbus.service.Object): # __xx -> intf list # xx -> intf dict if isinstance(old, dict): - __old = old.keys() + __old = list(old.keys()) else: __old = old old = {x: {} for x in old} if isinstance(new, dict): - __new = new.keys() + __new = list(new.keys()) else: __new = new new = {x: {} for x in new} @@ -435,7 +435,7 @@ class ObjectMapper(dbus.service.Object): path, owner, old_assoc, new_assoc, created, destroyed) def add_items(self, owner, bus_items): - for path, items in bus_items.iteritems(): + for path, items in bus_items.items(): self.update_interfaces(path, str(owner), old=[], new=items) def path_match(self, path): @@ -473,10 +473,8 @@ class ObjectMapper(dbus.service.Object): traceback.print_exception(*sys.exc_info()) if not owners: - owned_names = filter( - lambda x: not obmc.dbuslib.bindings.is_unique(x), - self.bus.list_names()) - owners = filter(bool, [get_owner(name) for name in owned_names]) + owned_names = [x for x in self.bus.list_names() if not obmc.dbuslib.bindings.is_unique(x)] + owners = list(filter(bool, [get_owner(name) for name in owned_names])) for owned_name, o in owners: if not self.valid_signal(owned_name): continue @@ -549,9 +547,9 @@ class ObjectMapper(dbus.service.Object): svc_filter = lambda svc: svc[1] obj_map = lambda o: ( - tuple(*filter(svc_filter, map(svc_map, [o])))) + tuple(*list(filter(svc_filter, list(map(svc_map, [o])))))) - return dict(filter(lambda x: x, map(obj_map, item.iteritems()))) + return dict([x for x in map(obj_map, iter(item.items())) if x]) # Called with a list of path/object tuples. if not ifaces: @@ -563,7 +561,7 @@ class ObjectMapper(dbus.service.Object): x[1], ifaces)) - return dict(filter(lambda x: x[1], map(obj_map, iter(item or [])))) + return dict([x for x in map(obj_map, iter(item or [])) if x[1]]) @dbus.service.method(obmc.mapper.MAPPER_IFACE, 'sas', 'a{sas}') def GetObject(self, path, interfaces): @@ -593,7 +591,7 @@ class ObjectMapper(dbus.service.Object): @staticmethod def has_interfaces(item): - for owner in item.iterkeys(): + for owner in item.keys(): if ObjectMapper.interfaces_get(item, owner): return True return False @@ -634,7 +632,7 @@ class ObjectMapper(dbus.service.Object): associations = [] if not owners: index = self.index.get(forward, {}) - owners = index.get(path, {}).keys() + owners = list(index.get(path, {}).keys()) # f: forward # r: reverse @@ -739,7 +737,7 @@ class ObjectMapper(dbus.service.Object): if not self.cache_get(path): raise MapperNotFoundException(path) - elements = filter(bool, path.split('/')) + elements = list(filter(bool, path.split('/'))) paths = [] objs = {} while elements: @@ -754,7 +752,7 @@ class ObjectMapper(dbus.service.Object): continue objs[path] = obj - return self.filter_interfaces(list(objs.iteritems()), interfaces) + return self.filter_interfaces(list(objs.items()), interfaces) @dbus.service.signal(obmc.mapper.MAPPER_IFACE + '.Private', 's') def IntrospectionComplete(self, name): diff --git a/obmc/mapper/utils.py b/obmc/mapper/utils.py index 3937cf6..6f1b6b6 100644 --- a/obmc/mapper/utils.py +++ b/obmc/mapper/utils.py @@ -24,7 +24,7 @@ import obmc.mapper class Wait(object): def __init__(self, bus, waitlist, *a, **kw): self.bus = bus - self.waitlist = dict(zip(waitlist, [None]*len(waitlist))) + self.waitlist = dict(list(zip(waitlist, [None]*len(waitlist)))) mapper = bus.get_object( obmc.mapper.MAPPER_NAME, obmc.mapper.MAPPER_PATH, @@ -121,6 +121,5 @@ class Wait(object): if self.done: return - for path in filter( - lambda x: not self.waitlist[x], self.waitlist.keys()): + for path in [x for x in list(self.waitlist.keys()) if not self.waitlist[x]]: self.get_object_async(path, 0) |