def GET(self, jrequest, jresponse): assert isinstance(jrequest, JsonRpcRequest) assert isinstance(jresponse, JsonRpcResponse) jresponse.setId() path_info = jrequest.getPathInfo() try: year = int(path_info[3]) month = int(path_info[4]) day = int(path_info[5]) hour = int(path_info[6]) except: return start = datetime(year=year, month=month, day=day, hour=hour) assert start.tzinfo is None # start is a naive datetime object end = start + timedelta(hours=1) assert end.tzinfo is None # end is a naive datetime object start = start - timedelta(minutes=1) end = end + timedelta(minutes=1) metadata_query = Metadata.queryDateRange(start, end) metadata_keys = metadata_query.fetch(keys_only=True) for metadata_key in metadata_keys: metadata = metadata_key.get() assert isinstance(metadata, Metadata) rawdata_key = metadata.rawData rawdata = rawdata_key.get() assert isinstance(rawdata, RawData) #jresponse.addResult([metadata.receivedDateTime.isoformat(), rawdata.query]) jresponse.addResult(rawdata) jresponse.setColumns(RawDataColumns())
class _OneDay(JsonRpcDispatcher): def GET(self, jrequest, jresponse): assert isinstance(jrequest, JsonRpcRequest) assert isinstance(jresponse, JsonRpcResponse) jresponse.setId() try: year = int(jrequest.getPathInfo(3)) month = int(jrequest.getPathInfo(4)) day = int(jrequest.getPathInfo(5)) except Exception, e: jresponse.setErrorInvalidParameter(e) return start = datetime(year=year, month=month, day=day) end = start + timedelta(days=1) start = start - timedelta(minutes=1) end = end + timedelta(minutes=1) metadata_query = Metadata.queryDateRange(start, end) metadata_keys = metadata_query.fetch(keys_only=True) for metadata_key in metadata_keys: metadata = metadata_key.get() assert isinstance(metadata, Metadata) rawdata_key = metadata.rawData rawdata = rawdata_key.get() assert isinstance(rawdata, RawData) #jresponse.addResult([metadata.receivedDateTime.isoformat(), rawdata.query]) jresponse.addResult(rawdata) jresponse.setColumns(RawDataColumns())
def eliminateUnusedData(self): query = Data.queryRange(self.currentDataId, self.end) for data_key in query.iter(keys_only=True): data = data_key.get() if data: self.currentDataId = data_key.get().dataId metadata_query = Metadata.queryByData(data_key) metadata_key = metadata_query.get(keys_only=True) if metadata_key: continue #info("deleting data_key=%s (data_id = %s)" % (data_key, data_key.get().dataId)) self.nDeleted += 1 data_key.delete()
def GET(self, jrequest, jresponse): #LIMIT = 100 assert isinstance(jresponse, JsonRpcResponse) jresponse.setId() query = MetadataNdb.queryRecent() keys = query.fetch(keys_only=True, limit=100) for key in keys: metadata = key.get() #assert isinstance(metadata, MetadataNdb) jresponse.addResult(metadata) jresponse.setColumns(MetadataColumns())
def GET(self, jrequest, jresponse): assert isinstance(jrequest, JsonRpcRequest) assert isinstance(jresponse, JsonRpcResponse) jresponse.setId() path_info = jrequest.getPathInfo() try: metadata_id = int(path_info[3]) except: return query = MetadataNdb.queryRange(metadata_id, metadata_id) for metadata_key in query.fetch(keys_only=True): jresponse.addResult(metadata_key.get()) jresponse.setExtraValue("key_id", metadata_key.id())
class _ByDataKey(JsonRpcDispatcher): def GET(self, jrequest, jresponse): assert isinstance(jrequest, JsonRpcRequest) assert isinstance(jresponse, JsonRpcResponse) jresponse.setId() try: data_key = ndb.Key("Data", int(jrequest.getPathInfo(4))) except Exception, e: jresponse.setErrorInvalidParameter(e) return metadata_keys = MetadataNdb.fetchByData(data_key) for metadata_key in metadata_keys: jresponse.addResult(metadata_key.get())
def GET(self, jrequest, jresponse): def create_data(data_id, field, string): data = DataDb() data.dataId = data_id data.field = field data.string = string return data.put() def delete_data(start, end): query = DataNdb.queryRange(start, end) keys = query.fetch(keys_only=True) for key in keys: key.delete() def create_metadata(metadata_id, data_list): metadata = MetadataDb() metadata.metadataId = metadata_id metadata.dataList = data_list return metadata.put() def delete_metadata(start, end): query = MetadataNdb.queryRange(start, end) keys = query.fetch(keys_only=True) for key in keys: key.delete() def prepare(): delete_data(1, 4) data1_key = create_data(1, "aa", "bb") data2_key = create_data(2, "aa", "bb") data3_key = create_data(3, "cc", "dd") data4_key = create_data(4, "cc", "dd") delete_metadata(1, 6) create_metadata(1, [data2_key, data4_key]) create_metadata(2, [data2_key, data4_key]) create_metadata(3, [data1_key, data3_key]) create_metadata(4, [data2_key, data2_key]) create_metadata(5, [data2_key, data3_key]) create_metadata(6, [data4_key, data4_key]) assert isinstance(jrequest, JsonRpcRequest) assert isinstance(jresponse, JsonRpcResponse) jresponse.setId() prepare() query = MetadataNdb.queryRange(1, 6) keys = query.fetch(keys_only=True) for key in keys: debug(key) assert isinstance(key, ndb.Key) metadata = key.get() jresponse.addResult([metadata.metadataId, _listifyDataList(metadata.dataList)])
class _Range(JsonRpcDispatcher): def GET(self, jrequest, jresponse): assert isinstance(jrequest, JsonRpcRequest) assert isinstance(jresponse, JsonRpcResponse) jresponse.setId() try: start = int(jrequest.getPathInfo(3)) end = int(jrequest.getPathInfo(4)) except Exception, e: jresponse.setError(JsonRpcError.INVALID_REQUEST, str(e)) return keys = MetadataNdb.fetchRange(start, end) for key in keys: jresponse.addResult(key.get()) jresponse.setExtraValue("start", start) jresponse.setExtraValue("end", end)
class _ByDataId(JsonRpcDispatcher): def GET(self, jrequest, jresponse): assert isinstance(jrequest, JsonRpcRequest) assert isinstance(jresponse, JsonRpcResponse) jresponse.setId() try: data_id = int(jrequest.getPathInfo(4)) data_key = DataNdb.getByDataId(data_id) if data_key is None: raise RuntimeError("Data entity with dataId %s was not found" % data_id) assert isinstance(data_key, ndb.Key) except Exception, e: jresponse.setErrorInvalidParameter(e) return assert isinstance(data_key, ndb.Key) metadata_keys = MetadataNdb.fetchByData(data_key) for metadata_key in metadata_keys: jresponse.addResult(metadata_key.get())
def GET(self, jrequest, jresponse): assert isinstance(jrequest, JsonRpcRequest) assert isinstance(jresponse, JsonRpcResponse) jresponse.setId() path_info = jrequest.getPathInfo() try: year = int(path_info[3]) month = int(path_info[4]) day = int(path_info[5]) except: year = 2012 month = 8 day = 20 start = datetime(year=year, month=month, day=day) end = start + timedelta(days=1) query = MetadataNdb.queryDateRange(start, end) keys = query.fetch(limit=24 * 60 + 100, keys_only=True) for key in keys: jresponse.addResult(key.get()) jresponse.setColumns(MetadataColumns())
class _Recent(JsonRpcDispatcher): def GET(self, jrequest, jresponse): assert isinstance(jrequest, JsonRpcRequest) assert isinstance(jresponse, JsonRpcResponse) jresponse.setId() try: arduinoid = unicode(jrequest.getPathInfo(3)) debug("arduinoid = %s" % arduinoid) data_keys = Data.fetchByFieldAndString("arduinoid", arduinoid) debug("data_keys = %s" % data_keys) except Exception, e: jresponse.setErrorInvalidParameter(e) return metadata_keys = Metadata.fetchByDataList(data_keys) for metadata_key in metadata_keys: metadata_entity = metadata_key.get() data_list = metadata_entity.dataList data_dict = _DataListToDict(data_list) jresponse.addResult([ metadata_entity.receivedDateTime.isoformat(), data_dict.get("time"), data_dict.get("gen.power(W)"), data_dict.get("duration") ])
def delete_metadata(start, end): query = MetadataNdb.queryRange(start, end) keys = query.fetch(keys_only=True) for key in keys: key.delete()
e.message()) return try: data_keys = Data.fetchByFieldAndString("arduinoid", arduino_id) except Exception, e: jresponse.setErrorInvalidParameter(e) return start = datetime(year=year, month=month, day=day, hour=hour) end = start + timedelta(hours=1) + timedelta(minutes=1) start = start - timedelta(minutes=1) #data_list = _getDataListByArduinoId(arduino_id) #jresponse.setExtraValue("data_list", data_list) metadata_keys = Metadata.fetchDateRangeAndDataList( start, end, data_keys) for metadata_key in metadata_keys: metadata_entity = metadata_key.get() assert isinstance(metadata_entity, Metadata) data_dict = _DataListToDict(metadata_entity.dataList) jresponse.addResult([ metadata_entity.receivedDateTime.isoformat(), data_dict.get("time"), data_dict.get("gen.power(W)"), data_dict.get("duration") ]) jresponse.setFieldNames( ["receivedDateTime", "time", "gen.power(W)", "duration"])