Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/services
diff options
context:
space:
mode:
authorTomeu Vizoso <tomeu@tomeuvizoso.net>2007-03-04 10:27:33 (GMT)
committer Tomeu Vizoso <tomeu@tomeuvizoso.net>2007-03-04 10:27:33 (GMT)
commita585221b164ef353634afd407af5d330931e36f4 (patch)
tree8908aba3d058495ed9a1b00f0dc4468c7a92fe37 /services
parent559d21d4d26da6bb4d42389852a447a562eab15a (diff)
Added object update to the datastore.
Diffstat (limited to 'services')
-rw-r--r--services/datastore/datastore.py39
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 = ""