Example #1
0
    def PUT(self):
        g_cmd_queue = MDMDB("./mdm.db")
        identity = 'sonto'
        request = readPlistFromString(web.data())
        msgType = request.get('MessageType')
        status = request.get('Status')

        #print "MessageType = %s"%msgType
        if msgType == "Authenticate":
            gTopic = request.get('Topic')
            UDID = request.get('UDID')
            return web.ok
        elif msgType == "TokenUpdate":
            UDID = request.get('UDID')
            push_magic = request['PushMagic']
            topic = request['Topic']
            token = request['Token'].data
            unlock_token = request['UnlockToken'].data

            g_cmd_queue.open("./mdm.db")
            g_cmd_queue.addNewDevice(UDID=UDID,
                                     topic=topic,
                                     token=binascii.hexlify(token),
                                     untoken=unlock_token,
                                     magic=push_magic)
            print g_cmd_queue.getDeviceInfo(UDID=UDID)
            g_cmd_queue.close()

            return web.ok
Example #2
0
    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()
Example #3
0
    def PUT(self):
        g_cmd_queue = MDMDB("./mdm.db")
        identity = "sonto"
        request = readPlistFromString(web.data())
        msgType = request.get("MessageType")
        status = request.get("Status")

        # print "MessageType = %s"%msgType
        if msgType == "Authenticate":
            gTopic = request.get("Topic")
            UDID = request.get("UDID")
            return web.ok
        elif msgType == "TokenUpdate":
            UDID = request.get("UDID")
            push_magic = request["PushMagic"]
            topic = request["Topic"]
            token = request["Token"].data
            unlock_token = request["UnlockToken"].data

            g_cmd_queue.open("./mdm.db")
            g_cmd_queue.addNewDevice(
                UDID=UDID, topic=topic, token=binascii.hexlify(token), untoken=unlock_token, magic=push_magic
            )
            print g_cmd_queue.getDeviceInfo(UDID=UDID)
            g_cmd_queue.close()

            return web.ok
Example #4
0
def initMDM():
    global g_config
    #change working directory.
    os.chdir(g_config.base_dir)

    #set certificate and private key for Https connection.
    if not (os.path.exists(g_config.https_certificate)
            and os.path.exists(g_config.https_private_key)):
        print "The certificate for https connection not found"
        return False

    print "Https:%s -- %s" % (g_config.https_certificate,
                              g_config.https_private_key)
    CherryPyWSGIServer.ssl_certificate = g_config.https_certificate
    CherryPyWSGIServer.ssl_private_key = g_config.https_private_key

    cmd_queue = MDMDB("./mdm.db")
    cmd_queue.open()
    cmd_queue.cleanTable('mdm_cmd_queue')
    cmd_queue.close()
    return True
Example #5
0
def initMDM():
    global g_config
    # change working directory.
    os.chdir(g_config.base_dir)

    # set certificate and private key for Https connection.
    if not (os.path.exists(g_config.https_certificate) and os.path.exists(g_config.https_private_key)):
        print "The certificate for https connection not found"
        return False

    print "Https:%s -- %s" % (g_config.https_certificate, g_config.https_private_key)
    CherryPyWSGIServer.ssl_certificate = g_config.https_certificate
    CherryPyWSGIServer.ssl_private_key = g_config.https_private_key

    cmd_queue = MDMDB("./mdm.db")
    cmd_queue.open()
    cmd_queue.cleanTable("mdm_cmd_queue")
    cmd_queue.close()
    return True
Example #6
0
    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()
Example #7
0
    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
Example #8
0
    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