start_requested = False # set to True in order to request that all slivers be started
@database.synchronized
-def GetSlivers(data, plc = None, config = None, fullupdate=True):
+def GetSlivers(plc, data, config = None, fullupdate=True):
"""This function has two purposes. One, convert GetSlivers() data
into a more convenient format. Two, even if no updates are coming
in, use the GetSlivers() heartbeat as a cue to scan for expired
# convert attributes field to a proper dict
attr_dict = {}
for attr in rec.pop('attributes'): attr_dict[attr['tagname']] = attr['value']
+ rec.setdefault("attributes", attr_dict)
# squash keys
keys = rec.pop('keys')