예제 #1
0
	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)
예제 #2
0
	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")