diff options
author | Tomeu Vizoso <tomeu@tomeuvizoso.net> | 2007-03-04 10:27:33 (GMT) |
---|---|---|
committer | Tomeu Vizoso <tomeu@tomeuvizoso.net> | 2007-03-04 10:27:33 (GMT) |
commit | a585221b164ef353634afd407af5d330931e36f4 (patch) | |
tree | 8908aba3d058495ed9a1b00f0dc4468c7a92fe37 /services | |
parent | 559d21d4d26da6bb4d42389852a447a562eab15a (diff) |
Added object update to the datastore.
Diffstat (limited to 'services')
-rw-r--r-- | services/datastore/datastore.py | 39 |
1 files changed, 7 insertions, 32 deletions
diff --git a/services/datastore/datastore.py b/services/datastore/datastore.py index c9c9c07..177f528 100644 --- a/services/datastore/datastore.py +++ b/services/datastore/datastore.py @@ -112,6 +112,12 @@ class DataStoreDBusHelper(dbus.service.Object): return _create_op(uid) @dbus.service.method(_DS_DBUS_INTERFACE, + in_signature="ia{sv}", out_signature="o") + def update(self, uid, prop_dict): + self._parent.update(uid, prop_dict) + return _create_op(uid) + + @dbus.service.method(_DS_DBUS_INTERFACE, in_signature="o", out_signature="i") def delete(self, op): uid = _get_uid_from_op(op) @@ -285,23 +291,7 @@ class DataStore(object): del curs return uids - def set_data(self, uid, data): - curs = self._dbcx.cursor() - curs.execute('SELECT uid FROM objects WHERE uid=?;', (uid,)) - res = curs.fetchall() - self._dbcx.commit() - if len(res) <= 0: - del curs - raise NotFoundError("Object %d was not found." % uid) - data = _get_data_as_string(data) - curs.execute("UPDATE objects SET data=? WHERE uid=?;", (data, uid)) - self._dbcx.commit() - del curs - self._dbus_obj_helper.Updated(True, {}, False, uid=uid) - - _reserved_keys = ["handle", "objid", "data", "created", "modified", - "object-type", "file-path"] - def set_properties(self, uid, prop_dict): + def update(self, uid, prop_dict): curs = self._dbcx.cursor() curs.execute('SELECT uid FROM objects WHERE uid=?;', (uid,)) res = curs.fetchall() @@ -310,10 +300,6 @@ class DataStore(object): del curs raise NotFoundError("Object %d was not found." % uid) - for key in prop_dict.keys(): - if key in self._reserved_keys: - raise ValueError("key %s is a reserved key." % key) - for (key, value) in prop_dict.items(): value = _get_data_as_string(value) if not len(value): @@ -329,17 +315,6 @@ class DataStore(object): del curs self._dbus_obj_helper.Updated(False, {}, False, uid=uid) - def get_data(self, uid): - curs = self._dbcx.cursor() - curs.execute('SELECT uid, data FROM objects WHERE uid=?;', (uid,)) - res = curs.fetchall() - self._dbcx.commit() - if len(res) <= 0: - raise NotFoundError("Object %d was not found." % uid) - data = res[0][1] - del curs - return data - def get_properties(self, uid, keys): query = "SELECT objid, key, value FROM properties WHERE (objid=%d" % uid subquery = "" |