def post(self): devName = self.request.get("deviceName") device_query = Device.all().filter("name = ", devName) devItem = device_query.fetch(1)[0] fwgName = self.request.get("fwgName") fw_query = FirmwareGroup.all().filter("name = ", fwgName) fwgItem = fw_query.fetch(1)[0] releaseNumber = self.request.get("releaseName") relQuery = Firmware.all().filter("group = ", fwgItem).filter("version = ", releaseNumber) relItem = relQuery.fetch(1)[0] installationTime = self.request.get("releaseDate") if installationTime.strip().lower() == "now": installationTime = None else: installationTime = datetime.strptime(installationTime, "%Y-%m-%d") gUser = users.get_current_user() query = User.all().filter("googleUser = ", gUser) res = query.fetch(1) myUser = res[0] udu = UserDeviceUpdates() udu.user = myUser udu.device = devItem udu.release = relItem if installationTime: udu.updateDatetime = installationTime udu.put()
def post(self): userDevice = UserDevices() devName = self.request.get("deviceName") device_query = Device.all().filter("name = ", devName) devItem = device_query.fetch(1)[0] fwgName = self.request.get("fwgName") # firmware group name if fwgName.strip().lower() == "--none--": fwgItem = None else: fw_query = FirmwareGroup.all().filter("name = ", fwgName) fwgItem = fw_query.fetch(1)[0] gUser = users.get_current_user() query = User.all().filter("googleUser = ", gUser) res = query.fetch(1) if res: myUser = res[0] else: myUser = User() myUser.googleUser = gUser myUser.put() userDevice.user = myUser userDevice.device = devItem userDevice.firmwareGroup = fwgItem userDevice.put()
def _processADRRequests(self): """Updates devices with target data rate, and sends ADR requests. This method is called every adrcycletime seconds as a looping task. """ # If we are running, return if self.adrprocessing is True: returnValue(None) self.adrprocessing = True devices = yield Device.all() sendtime = time.time() for device in devices: # Set the target data rate target = device.getADRDatarate(self.band, self.config.adrmargin) # If no target, or the target data rate is being used, continue if target is None: continue # Set the device adr_datr yield device.update(adr_datr=target) # Only send a request if we need to change if device.adr_datr == target: continue # If we are queueing commands, create the command and add to the queue. # Replace any existing requests. if self.config.macqueuing: command = self._createLinkADRRequest(device) self._dequeueMACCommand(device.deveui, command) self._queueMACCommand(device.deveui, command) continue # Check we have reached the next scheduled ADR message time scheduled = sendtime + self.config.adrmessagetime current = time.time() if current < scheduled: yield txsleep(scheduled - current) # Refresh and send the LinkADRRequest sendtime = time.time() yield self._sendLinkADRRequest(device) self.adrprocessing = False
def get(self): devName = self.request.get("devName") device_query = Device.all().filter("name = ", devName) devItem = device_query.fetch(1)[0] gUser = users.get_current_user() query = User.all().filter("googleUser = "******"user = "******"device = ", devItem).order("-updateDatetime") releases = query.fetch(20) txt = "" for release in releases: txt += "<tr><td>%s</td><td>%s</td><td>%s</td></tr>\n" % ( str(release.updateDatetime.date()), release.release.group.name, release.release.version, ) self.response.out.write(txt)
def post(self): devName = self.request.get("deviceName") device_query = Device.all().filter("name = ", devName) devItem = device_query.fetch(1)[0] gUser = users.get_current_user() query = User.all().filter("googleUser = "******"user = "******"device = ", devItem) item = query.fetch(1)[0] fwgName = self.request.get("fwgName") # firmware group name if fwgName.strip().lower() == "--none--": fwgItem = None else: fw_query = FirmwareGroup.all().filter("name = ", fwgName) fwgItem = fw_query.fetch(1)[0] item.firmwareGroup = fwgItem item.put()