Index: chrome/common/extensions/docs/server2/datastore_models.py |
diff --git a/chrome/common/extensions/docs/server2/datastore_models.py b/chrome/common/extensions/docs/server2/datastore_models.py |
index c05a0b9151857cde76b48e5bf29534ec13f686a8..eaa8cab43a0be724b89cd8c32822e5c888852543 100644 |
--- a/chrome/common/extensions/docs/server2/datastore_models.py |
+++ b/chrome/common/extensions/docs/server2/datastore_models.py |
@@ -3,9 +3,13 @@ |
# found in the LICENSE file. |
import cPickle |
+import google.appengine.ext.db as db |
Ken Rockot(use gerrit already)
2015/05/26 00:26:24
Only used from AppEngine, so this doesn't need a w
|
+import logging |
import traceback |
-from appengine_wrappers import db |
+ |
+_MAX_ENTITY_SIZE = 1024*1024 |
+ |
# A collection of the data store models used throughout the server. |
# These values are global within datastore. |
@@ -28,8 +32,13 @@ class PersistentObjectStoreItem(db.Model): |
@classmethod |
def CreateItem(cls, namespace, key, value): |
+ pickled_value = cPickle.dumps(value) |
+ if len(pickled_value) > _MAX_ENTITY_SIZE: |
+ logging.warn('Refusing to create entity greater than 1 MB in size: %s/%s' |
Ken Rockot(use gerrit already)
2015/05/26 00:26:24
These entities would fail to push anyway. Failing
|
+ % (namespace, key)) |
+ return None |
return PersistentObjectStoreItem(key=cls.CreateKey(namespace, key), |
- pickled_value=cPickle.dumps(value)) |
+ pickled_value=pickled_value) |
def GetValue(self): |
return cPickle.loads(self.pickled_value) |