Index: dashboard/dashboard/common/namespaced_stored_object.py |
diff --git a/dashboard/dashboard/common/namespaced_stored_object.py b/dashboard/dashboard/common/namespaced_stored_object.py |
index 685a96f89540113531e1a9cbe128aa9b5d7be170..cad1b5fc426da3e62c037dae0e354bbb0d354f72 100644 |
--- a/dashboard/dashboard/common/namespaced_stored_object.py |
+++ b/dashboard/dashboard/common/namespaced_stored_object.py |
@@ -4,40 +4,77 @@ |
"""A wrapper for stored_object that separates internal and external.""" |
+from google.appengine.ext import ndb |
+ |
from dashboard.common import datastore_hooks |
from dashboard.common import stored_object |
+@ndb.synctasklet |
def Get(key): |
"""Gets either the external or internal copy of an object.""" |
+ result = yield GetAsync(key) |
+ raise ndb.Return(result) |
+ |
+ |
+@ndb.tasklet |
+def GetAsync(key): |
namespaced_key = _NamespaceKey(key) |
- return stored_object.Get(namespaced_key) |
+ result = yield stored_object.GetAsync(namespaced_key) |
+ raise ndb.Return(result) |
+@ndb.synctasklet |
def GetExternal(key): |
"""Gets the external copy of a stored object.""" |
+ result = yield GetExternalAsync(key) |
+ raise ndb.Return(result) |
+ |
+ |
+@ndb.tasklet |
+def GetExternalAsync(key): |
namespaced_key = _NamespaceKey(key, datastore_hooks.EXTERNAL) |
- return stored_object.Get(namespaced_key) |
+ result = yield stored_object.GetAsync(namespaced_key) |
+ raise ndb.Return(result) |
+@ndb.synctasklet |
def Set(key, value): |
"""Sets the the value of a stored object, either external or internal.""" |
+ yield SetAsync(key, value) |
+ |
+ |
+@ndb.tasklet |
+def SetAsync(key, value): |
namespaced_key = _NamespaceKey(key) |
- stored_object.Set(namespaced_key, value) |
+ yield stored_object.SetAsync(namespaced_key, value) |
+@ndb.synctasklet |
def SetExternal(key, value): |
"""Sets the external copy of a stored object.""" |
+ yield SetExternalAsync(key, value) |
+ |
+ |
+@ndb.tasklet |
+def SetExternalAsync(key, value): |
namespaced_key = _NamespaceKey(key, datastore_hooks.EXTERNAL) |
- stored_object.Set(namespaced_key, value) |
+ yield stored_object.SetAsync(namespaced_key, value) |
+@ndb.synctasklet |
def Delete(key): |
"""Deletes both the internal and external copy of a stored object.""" |
+ yield DeleteAsync(key) |
+ |
+ |
+@ndb.tasklet |
+def DeleteAsync(key): |
internal_key = _NamespaceKey(key, namespace=datastore_hooks.INTERNAL) |
external_key = _NamespaceKey(key, namespace=datastore_hooks.EXTERNAL) |
- stored_object.Delete(internal_key) |
- stored_object.Delete(external_key) |
+ yield ( |
+ stored_object.DeleteAsync(internal_key), |
+ stored_object.DeleteAsync(external_key)) |
def _NamespaceKey(key, namespace=None): |