Switch to uuid names for Event keys, because appengine reuses model ids.

This commit is contained in:
Ian Gulliver
2015-06-22 20:56:27 -07:00
parent f3bde736f7
commit db9b63cec8

View File

@@ -461,6 +461,7 @@ class Subscription(db.Model):
encoded = json.dumps(msg, default=utils.EncodeJSON) encoded = json.dumps(msg, default=utils.EncodeJSON)
if self.polling: if self.polling:
Event(parent=self, Event(parent=self,
key_name=str(uuid.uuid4()),
json=encoded).save() json=encoded).save()
else: else:
instance_key = Subscription.instance.get_value_for_datastore(self) instance_key = Subscription.instance.get_value_for_datastore(self)
@@ -474,7 +475,7 @@ class Subscription(db.Model):
ret = [] ret = []
to_delete = [] to_delete = []
for e in events: for e in events:
if str(e.key().id()) in acks: if str(e.key().name()) in acks:
to_delete.append(e) to_delete.append(e)
else: else:
ret.append(e.ToEvent()) ret.append(e.ToEvent())
@@ -497,7 +498,7 @@ class Event(db.Model):
def ToEvent(self): def ToEvent(self):
ret = json.loads(self.json) ret = json.loads(self.json)
ret['event_id'] = str(self.key().id()) ret['event_id'] = str(self.key().name())
return ret return ret