Esempio n. 1
0
    def post(self):
        database = self.settings['db']
        data = ujson.loads(self.request.body.decode("utf-8"))
        docs = database.run_stop.find({'run_start': data['run_start']})
        try:
            res = next(docs)
            raise tornado.web.HTTPError(500,
                                        'A run_stop already created for given run_start')
        except StopIteration:
            pass
        jsonschema.validate(data, utils.schemas['run_stop'])

        try:
            result = database.run_stop.insert(data)
        except perr.PyMongoError:
            raise tornado.web.HTTPError(500,
                                        status='Unable to insert the document')
        database.run_stop.create_index([('run_start', pymongo.DESCENDING),
                                        ('uid', pymongo.DESCENDING)],
                                       unique=True)
        database.run_stop.create_index([('time', pymongo.DESCENDING)],
                                       unique=False)
        if not result:
            raise tornado.web.HTTPError(500)
        else:
            utils.return2client(self, data)
Esempio n. 2
0
 def get(self):
     database = self.settings['db']
     query = utils.unpack_params(self)
     docs = database.run_stop.find(query)
     if not docs:
         raise tornado.web.HTTPError(500,
                                     'No results for given query' + str(query))
     else:
         utils.return2client(self, docs)
Esempio n. 3
0
 def get(self):
     database = self.settings['db']
     query = utils.unpack_params(self)
     docs = database.event_descriptor.find(query)
     if not docs:
         raise tornado.web.HTTPError(500,
                                     reason='No results found for query')
     else:
         utils.return2client(self, docs)
Esempio n. 4
0
 def get(self):
     database = self.settings['db']
     query = utils.unpack_params(self)
     _id = query.pop('_id', None)
     num = query.pop('num', None)
     if _id:
         raise tornado.web.HTTPError(500, 'No ObjectId based search supported')
     if num:
         docs = database.run_start.find().sort('time', direction=pymongo.DESCENDING).limit(num)
     else:
         docs = database.run_start.find(query)
     if not docs:
         raise tornado.web.HTTPError(500, reason='No results found for query')
     else:
         utils.return2client(self, docs)
Esempio n. 5
0
    def post(self):
        database = self.settings['db']
        data = ujson.loads(self.request.body.decode("utf-8"))
        jsonschema.validate(data, utils.schemas['descriptor'])

        try:
            result = database.event_descriptor.insert(data)
        except perr.PyMongoError:
            raise tornado.web.HTTPError(500,
                                        status='Unable to insert the document')
        database.event_descriptor.create_index([('run_start', pymongo.ASCENDING)],
                                               unique=False)
        database.event_descriptor.create_index([('time', pymongo.ASCENDING)],
                                               unique=False)
        if not result:
            raise tornado.web.HTTPError(500)
        else:
            utils.return2client(self, data)