Merge lp:~zeitgeist/zeitgeist/datasource-properties-fix into lp:zeitgeist/0.1

Proposed by Seif Lotfy
Status: Merged
Merge reported by: Seif Lotfy
Merged at revision: not available
Proposed branch: lp:~zeitgeist/zeitgeist/datasource-properties-fix
Merge into: lp:zeitgeist/0.1
Diff against target: 164 lines (+65/-14)
2 files modified
_zeitgeist/engine/extensions/datasource_registry.py (+10/-10)
zeitgeist/datamodel.py (+55/-4)
To merge this branch: bzr merge lp:~zeitgeist/zeitgeist/datasource-properties-fix
Reviewer Review Type Date Requested Status
Mikkel Kamstrup Erlandsen Approve
Markus Korn Needs Fixing
Review via email: mp+33775@code.launchpad.net

Description of the change

This is a fix for
https://bugs.edge.launchpad.net/zeitgeist/+bug/513295
pretty straight forward
tested in the Registry Extension Directly (removed code before commit)

To post a comment you must log in.
1554. By Seif Lotfy

revert the is_always method (mistake change)

1555. By Seif Lotfy

fix docstring and revert changes of method to trunk

Revision history for this message
Markus Korn (thekorn) wrote :

So far so good, but this new properties should be used in the existing code, otherwise they are pretty much useless ;)

http://pastebin.ubuntu.com/484135/ has a few bits where the new properties should be used

I guess some properties also need to be writable...

Revision history for this message
Markus Korn (thekorn) :
review: Needs Fixing
1556. By Seif Lotfy

add get/set methods to make datasource properties writable

1557. By Seif Lotfy

add get/set methods to make datasource properties writable

1558. By Seif Lotfy

fix datasource_registery.py to make use of the new properties

1559. By Seif Lotfy

fix datasource_registery.py to make use of DataSource properties

Revision history for this message
Mikkel Kamstrup Erlandsen (kamstrup) wrote :

Looks good. I didn't actually run the unit tests but the diff is clean enough that I don't think regressions are a big danger here.

Nice work!

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file '_zeitgeist/engine/extensions/datasource_registry.py'
--- _zeitgeist/engine/extensions/datasource_registry.py 2010-08-03 23:25:07 +0000
+++ _zeitgeist/engine/extensions/datasource_registry.py 2010-08-28 15:16:41 +0000
@@ -101,7 +101,7 @@
101 101
102 def _get_data_source(self, unique_id):102 def _get_data_source(self, unique_id):
103 for datasource in self._registry:103 for datasource in self._registry:
104 if datasource[DataSource.UniqueId] == unique_id:104 if datasource.unique_id == unique_id:
105 return datasource105 return datasource
106 106
107 def pre_insert_event(self, event, sender):107 def pre_insert_event(self, event, sender):
@@ -109,10 +109,10 @@
109 if sender in bus_names:109 if sender in bus_names:
110 datasource = self._get_data_source(unique_id)110 datasource = self._get_data_source(unique_id)
111 # Update LastSeen time111 # Update LastSeen time
112 datasource[DataSource.LastSeen] = get_timestamp_for_now()112 datasource.last_seen = get_timestamp_for_now()
113 self._write_to_disk()113 self._write_to_disk()
114 # Check whether the data-source is allowed to insert events114 # Check whether the data-source is allowed to insert events
115 if not [DataSource.Enabled]:115 if not datasource.enabled:
116 return None116 return None
117 return event117 return event
118 118
@@ -124,7 +124,7 @@
124 if datasource == source:124 if datasource == source:
125 datasource.update_from_data_source(source)125 datasource.update_from_data_source(source)
126 self.DataSourceRegistered(datasource)126 self.DataSourceRegistered(datasource)
127 return datasource[DataSource.Enabled]127 return datasource.enabled
128 self._registry.append(source)128 self._registry.append(source)
129 self._write_to_disk()129 self._write_to_disk()
130 self.DataSourceRegistered(source)130 self.DataSourceRegistered(source)
@@ -139,9 +139,9 @@
139 datasource = self._get_data_source(unique_id)139 datasource = self._get_data_source(unique_id)
140 if not datasource:140 if not datasource:
141 return False141 return False
142 if datasource[DataSource.Enabled] != enabled:142 if datasource.enabled != enabled:
143 datasource[DataSource.Enabled] = enabled143 datasource.enabled = enabled
144 self.DataSourceEnabled(datasource[DataSource.UniqueId], enabled)144 self.DataSourceEnabled(datasource.unique_id, enabled)
145 return True145 return True
146 146
147 @dbus.service.method(REGISTRY_DBUS_INTERFACE,147 @dbus.service.method(REGISTRY_DBUS_INTERFACE,
@@ -248,15 +248,15 @@
248 datasource = self._get_data_source(uid)248 datasource = self._get_data_source(uid)
249 249
250 # Update LastSeen time250 # Update LastSeen time
251 datasource[DataSource.LastSeen] = get_timestamp_for_now()251 datasource.last_seen = get_timestamp_for_now()
252 self._write_to_disk()252 self._write_to_disk()
253 253
254 strid = "%s (%s)" % (uid, datasource[DataSource.Name])254 strid = "%s (%s)" % (uid, datasource.name)
255 log.debug("Client disconnected: %s" % strid)255 log.debug("Client disconnected: %s" % strid)
256 if len(self._running[uid]) == 1:256 if len(self._running[uid]) == 1:
257 log.debug("No remaining client running: %s" % strid)257 log.debug("No remaining client running: %s" % strid)
258 del self._running[uid]258 del self._running[uid]
259 datasource[DataSource.Running] = False259 datasource.running = False
260 self.DataSourceDisconnected(datasource)260 self.DataSourceDisconnected(datasource)
261 else:261 else:
262 self._running[uid].remove(owner)262 self._running[uid].remove(owner)
263263
=== modified file 'zeitgeist/datamodel.py'
--- zeitgeist/datamodel.py 2010-08-26 18:24:48 +0000
+++ zeitgeist/datamodel.py 2010-08-28 15:16:41 +0000
@@ -4,7 +4,7 @@
4#4#
5# Copyright © 2009 Mikkel Kamstrup Erlandsen <mikkel.kamstrup@gmail.com>5# Copyright © 2009 Mikkel Kamstrup Erlandsen <mikkel.kamstrup@gmail.com>
6# Copyright © 2009 Markus Korn <thekorn@gmx.de>6# Copyright © 2009 Markus Korn <thekorn@gmx.de>
7# Copyright © 2009 Seif Lotfy <seif@lotfy.com>7# Copyright © 2009-2010 Seif Lotfy <seif@lotfy.com>
8# Copyright © 2009-2010 Siegfried-Angel Gevatter Pujals <rainct@ubuntu.com>8# Copyright © 2009-2010 Siegfried-Angel Gevatter Pujals <rainct@ubuntu.com>
9#9#
10# This program is free software: you can redistribute it and/or modify10# This program is free software: you can redistribute it and/or modify
@@ -381,7 +381,7 @@
381 381
382 def is_always(self):382 def is_always(self):
383 """383 """
384 Returns True if this time range goes from timestamp 0 (January 1, 1970)384 Returns True if this time range goes from timestamp 0 (January 1, 1970)
385 -or lower- to the most distant future.385 -or lower- to the most distant future.
386 """386 """
387 return self.begin <= 0 and self.end >= TimeRange._max_stamp387 return self.begin <= 0 and self.end >= TimeRange._max_stamp
@@ -483,8 +483,8 @@
483 self = Subject()483 self = Subject()
484 for key, value in values.iteritems():484 for key, value in values.iteritems():
485 if not key in ("uri", "interpretation", "manifestation", "origin",485 if not key in ("uri", "interpretation", "manifestation", "origin",
486 "mimetype", "text", "storage"):486 "mimetype", "text", "storage"):
487 raise ValueError("Subject parameter '%s' is not supported" % key)487 raise ValueError("Subject parameter '%s' is not supported" %key)
488 setattr(self, key, value)488 setattr(self, key, value)
489 return self489 return self
490 490
@@ -906,6 +906,55 @@
906 LastSeen, # last time the data-source did something (connected,906 LastSeen, # last time the data-source did something (connected,
907 # inserted events, disconnected).907 # inserted events, disconnected).
908 Enabled) = range(7)908 Enabled) = range(7)
909
910 def get_unique_id(self):
911 return self[self.UniqueId]
912
913 def set_unique_id(self, value):
914 self[self.UniqueId] = value
915
916 def get_name(self):
917 return self[self.Name]
918
919 def set_name(self, value):
920 self[self.Name] = value
921
922 def get_description(self):
923 return self[self.Description]
924
925 def set_description(self, value):
926 self[self.Description] = value
927
928 def get_running(self):
929 return self[self.Running]
930
931 def set_running(self,value):
932 self[self.Running] = value
933
934 def get_running(self):
935 return self[self.Running]
936
937 def running(self, value):
938 self[self.Running] = value
939
940 def get_last_seen(self):
941 return self[self.LastSeen]
942
943 def set_last_seen(self, value):
944 self[self.LastSeen] = value
945
946 def get_enabled(self):
947 return self[self.Enabled]
948
949 def set_enabled(self, value):
950 self[self.Enabled] = value
951
952 unique_id = property(get_unique_id, set_unique_id)
953 name = property(get_name, set_name)
954 description = property(get_description, set_description)
955 running = property(get_running, set_running)
956 last_seen = property(get_last_seen, set_last_seen)
957 enabled = property(get_enabled, set_enabled)
909 958
910 def __init__(self, unique_id, name, description, templates, running=True,959 def __init__(self, unique_id, name, description, templates, running=True,
911 last_seen=None, enabled=True):960 last_seen=None, enabled=True):
@@ -930,6 +979,8 @@
930 def __repr__(self):979 def __repr__(self):
931 return "%s: %s (%s)" % (self.__class__.__name__, self[self.UniqueId],980 return "%s: %s (%s)" % (self.__class__.__name__, self[self.UniqueId],
932 self[self.Name])981 self[self.Name])
982
983
933984
934NULL_EVENT = ([], [], [])985NULL_EVENT = ([], [], [])
935"""Minimal Event representation, a tuple containing three empty lists.986"""Minimal Event representation, a tuple containing three empty lists.