summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBalaji B Rao <balajibapu@gmail.com>2017-11-09 21:19:13 -0600
committerBrad Bishop <bradleyb@fuzziesquirrel.com>2018-01-30 18:03:34 +0000
commit84e331a3095810ad9505a8a73a31819fa0f569ea (patch)
tree6d53e1ed0afcf51162ab989536874bd382b3118a
parent7f42ad2a3f5cf2694e13c38d0089396aa3192ac8 (diff)
downloadphosphor-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.py32
-rw-r--r--obmc/mapper/server.py54
-rw-r--r--obmc/mapper/utils.py5
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)
OpenPOWER on IntegriCloud