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)
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)
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)
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)
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)