Chromium Code Reviews| 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) |