Пример #1
0
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()
Пример #2
0
class Car(orm.Document):
    _db = "test"
    _collection = "cars"
    owner = field.DynamicDocument()
    make = field.Char()
    model = field.Char()
    year = field.Date()
    silly_date = field.TimeStamp()
Пример #3
0
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
Пример #4
0
class LocationInterface(orm.EmbeddedDocument):
    interface = field.DynamicDocument()
Пример #5
0
        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()