def handle(self): global g_config global g_command g_cmd_queue = MDMDB("./mdm.db") g_cmd_queue.open("./mdm.db") data = self.request.recv(g_config.max_packet_size) plist = readPlistFromString(data) udid = plist.get('UDID') command = plist.get('Command') args = plist.get("Arguments") #print "Command request arrived" devinfo = g_cmd_queue.getDeviceInfo(UDID=udid) if not devinfo: return push_magic = devinfo["PushMagic"] print push_magic g_command.wakeUpDevice(topic=str(devinfo["Topic"]), token=devinfo["Token"], magic=str(devinfo['PushMagic']), cert="./mdm-APNS.pem") try: g_cmd_queue.addNewCommandToWaitQueue(UDID=udid, command=command, args=args) g_cmd_queue.setCommandStatus(UDID=udid, status=0) except: print("Connected to server failed.") pass g_cmd_queue.close()
def handle(self): global g_config global g_command g_cmd_queue = MDMDB("./mdm.db") g_cmd_queue.open("./mdm.db") data = self.request.recv(g_config.max_packet_size) plist = readPlistFromString(data) udid = plist.get("UDID") command = plist.get("Command") args = plist.get("Arguments") # print "Command request arrived" devinfo = g_cmd_queue.getDeviceInfo(UDID=udid) if not devinfo: return push_magic = devinfo["PushMagic"] print push_magic g_command.wakeUpDevice( topic=str(devinfo["Topic"]), token=devinfo["Token"], magic=str(devinfo["PushMagic"]), cert="./mdm-APNS.pem" ) try: g_cmd_queue.addNewCommandToWaitQueue(UDID=udid, command=command, args=args) g_cmd_queue.setCommandStatus(UDID=udid, status=0) except: print ("Connected to server failed.") pass g_cmd_queue.close()
def PUT(self): ctx = readPlistFromString(web.data()) status = ctx.get('Status') UDID = ctx.get('UDID') g_cmd_queue = MDMDB("./mdm.db") g_cmd_queue.open() cmdinfo = g_cmd_queue.getCommandInfo(UDID=UDID) if not cmdinfo: g_cmd_queue.close() return web.ok() cmd_status = int(cmdinfo["Status"]) print cmd_status if cmd_status == 0: plist = getCommandPlist(cmdinfo["Command"], args=cmdinfo["Arguments"]) g_cmd_queue.setCommandStatus(UDID=UDID, status=1) g_cmd_queue.close() return plist elif cmd_status == 1: print ctx #TODO:Add code here to check device status. g_cmd_queue.removeCommand(UDID=UDID) g_cmd_queue.close() return web.ok() else: return web.unauthorized
def PUT(self): ctx = readPlistFromString(web.data()) status = ctx.get("Status") UDID = ctx.get("UDID") g_cmd_queue = MDMDB("./mdm.db") g_cmd_queue.open() cmdinfo = g_cmd_queue.getCommandInfo(UDID=UDID) if not cmdinfo: g_cmd_queue.close() return web.ok() cmd_status = int(cmdinfo["Status"]) print cmd_status if cmd_status == 0: plist = getCommandPlist(cmdinfo["Command"], args=cmdinfo["Arguments"]) g_cmd_queue.setCommandStatus(UDID=UDID, status=1) g_cmd_queue.close() return plist elif cmd_status == 1: print ctx # TODO:Add code here to check device status. g_cmd_queue.removeCommand(UDID=UDID) g_cmd_queue.close() return web.ok() else: return web.unauthorized