class Scion(Car): any_owner = field.DynamicDocument() color = field.Choice(choices=["Red", "Blue", "Green"]) make = field.Char(default="Scion") model = field.Char(default="xA") year = field.Date(default=datetime.datetime(2007, 1, 1)) silly_date = field.TimeStamp()
class Car(orm.Document): _db = "test" _collection = "cars" owner = field.DynamicDocument() make = field.Char() model = field.Char() year = field.Date() silly_date = field.TimeStamp()
class Trigger(orm.Document): _db = "lablog" _collection = "triggers" _indexes = [ orm.Index('name', key=('name', 1), unique=True), orm.Index('key', key=('key', 1)), ] name = field.Char() key = field.Char() last_run = field.Date() _me = field.DynamicDocument() def save(self, *args, **kwargs): if not self._id: self._me = {} self.last_run = datetime.utcnow() - timedelta(minutes=60) super(Trigger, self).save(*args, **kwargs) self._me = self return super(Trigger, self).save(*args, **kwargs) def _run(self, message): interface = message['tags']['interface'] try: ret = self._me.run(message) except TriggerEnabled as e: ti = TriggerInstance.find_one({ 'interface': interface, 'trigger.id': self._id }) if not ti: ti = TriggerInstance() ti.enabled = True ti.interface = interface ti.level = e.level ti.key = self._me.key ti.trigger = self._me ti.save() self.last_run = datetime.utcnow() self.save() except TriggerDisabled as e: ti = TriggerInstance.find_one({ 'interface': interface, 'trigger.id': self._id }) if not ti: return ti.enabled = False ti.save() return
class LocationInterface(orm.EmbeddedDocument): interface = field.DynamicDocument()
interface = message['tags']['interface'] try: ret = self._me.run(message) except TriggerEnabled as e: ti = TriggerInstance.find_one({ 'interface': interface, 'trigger.id': self._id }) if not ti: ti = TriggerInstance() ti.enabled = True ti.interface = interface ti.level = e.level ti.key = self._me.key ti.trigger = self._me ti.save() self.last_run = datetime.utcnow() self.save() except TriggerDisabled as e: ti = TriggerInstance.find_one({ 'interface': interface, 'trigger.id': self._id }) if not ti: return ti.enabled = False ti.save() return TriggerInstance.trigger = field.DynamicDocument()