def __init__ (self): self._cursor = cursor = get_default_cursor() # Find the last event id we used, and start generating # new ids from that offset max_id = cursor.execute("SELECT MAX(id) FROM event").fetchone()[0] min_id = cursor.execute("SELECT MIN(id) FROM event").fetchone()[0] self._last_event_id = max_id or 0 if min_id == 0: # old database version raise an error for now, # maybe just change the id to self._last_event_id + 1 # looking closer at the old code, it seems like # no event ever got an id of 0, but we should leave this check # to be 100% sure. raise RuntimeError("old database version") self._interpretation = TableLookup(cursor, "interpretation") self._manifestation = TableLookup(cursor, "manifestation") self._mimetype = TableLookup(cursor, "mimetype") self._actor = TableLookup(cursor, "actor") self._event_cache = LRUCache(constants.CACHE_SIZE) # Load extensions default_extensions = get_extensions() self.__extensions = ExtensionsCollection(self, defaults=default_extensions)
def __init__ (self, engine): Extension.__init__(self, engine) dbus.service.Object.__init__(self, dbus.SessionBus(), STORAGE_MONITOR_DBUS_OBJECT_PATH) self._db = get_default_cursor() mon = gio.VolumeMonitor() # Update DB with all current states for vol in mon.get_volumes(): self.add_storage_medium(self._get_volume_id(vol), vol.get_icon().to_string(), vol.get_name()) # React to volumes comming and going mon.connect("volume-added", self._on_volume_added) mon.connect("volume-removed", self._on_volume_removed) # Write connectivity to the DB. Dynamically decide whether to use # Connman or NetworkManager if dbus.SystemBus().name_has_owner ("net.connman"): self._network = ConnmanNetworkMonitor(lambda: self.add_storage_medium("net", "stock_internet", "Internet"), lambda: self.remove_storage_medium("net")) elif dbus.SystemBus().name_has_owner ("org.freedesktop.NetworkManager"): self._network = NMNetworkMonitor(lambda: self.add_storage_medium("net", "stock_internet", "Internet"), lambda: self.remove_storage_medium("net")) else: log.info("No network monitoring system found (Connman or NetworkManager)." "Network monitoring disabled")