示例#1
0
def handleIPCState(head, body, client):
    head = list(head)
    from VideoServer import videoService
    from SmartServer import SmartServer
    from handlers import getUniqueID

    server_name = body["server_name"]
    if body["status_code"] == 1:
        member = []
        for item in body["member"]:
            ipc_state = videoService().getVideoIPCState(server_name, item["ipc_name"])
            item["ipc_state"] = ipc_state
            member.append(item)
        body["status_code"] = 2
        encodedjson = json.dumps(body)
        head[3] = len(encodedjson)
        data = struct.pack("!4i{}s".format(head[3]), head[0], getUniqueID(), head[2], head[3], encodedjson)
        client.SendData(data)
    elif body["status_code"] == 2:
        print body
    elif body["status_code"] == 255:
        member = []
        for item in body["member"]:
            videoService().setVideoIPCState(server_name, item["ipc_name"], item["ipc_state"])
            member.append(item)
        encodedjson = json.dumps(body)
        head[3] = len(encodedjson)
        data = struct.pack("!4i{}s".format(head[3]), head[0], getUniqueID(), head[2], head[3], encodedjson)
        for client1 in SmartServer().client_map.values():
            if client1.addr[0] not in videoService().videoservers_map:
                client1.SendData(data)
示例#2
0
def handleVideoServiceState(head, body, client):
    head = list(head)
    from VideoServer import videoService
    from SmartServer import SmartServer
    from handlers import getUniqueID
    if body['status_code'] == 1:
        member = []
        for item in body['member']:
            flag = videoService().getVideoServerStartFlag(item['server_name'])
            item['service_state'] = flag
            member.append(item)
        body['status_code'] = 2
        encodedjson = json.dumps(body)
        head[3] = len(encodedjson)
        data = struct.pack('!4i{}s'.format(head[3]),head[0],head[1],head[2],head[3],encodedjson)
        client.SendData(data)
        print   "handleVideoServiceState: ", body
    elif body['status_code'] == 2:
        print body
    elif body['status_code'] == 255:
        item = body['member'][0]
        videoService().setVideoServerStartFlag(item['server_name'], item['service_state'])
        encodedjson = json.dumps(body)
        head[3] = len(encodedjson)
        data = struct.pack('!4i{}s'.format(head[3]),head[0],getUniqueID(),head[2],head[3],encodedjson)
        for client1 in SmartServer().client_map.values():
            if client1.addr[0] not in videoService().videoservers_map:
                client1.SendData(data)
示例#3
0
def handleVideoRecords(head, body, client):
    head = list(head)
    from VideoServer import videoService
    from SmartServer import SmartServer
    from handlers import getUniqueID
    import copy

    body2 = None
    if body["status_code"] == 1:
        member = []
        server_name = None
        for item in body["member"]:
            server_name = item["server_name"]
            videoserver = videoService().getVideoServer(server_name)
            item["savedays"] = videoserver.GetRecordSaveDays()
            member.append(item)
        body["member"] = member
        body["local_name"] = videoService().local_name
        body["status_code"] = 2
    elif body["status_code"] == 3:
        if 1 == len(body["member"]):
            item = body["member"][0]
            if videoService().updateVideoSeverRecordDays(item["server_name"], item["savedays"]):
                body["status_code"] = 4
                body2 = copy.deepcopy(body)
                body2["status_code"] = 256
            #                 更改数据库
            else:
                body["status_code"] = 5
        else:
            body["status_code"] = 5
    print "handleVideoRecords : ", body
    encodedjson = json.dumps(body)
    head[3] = len(encodedjson)
    data = struct.pack("!4i{}s".format(head[3]), head[0], head[1], head[2], head[3], encodedjson)
    client.SendData(data)
    if body2 is not None:
        encodedjson = json.dumps(body2)
        head[3] = len(encodedjson)
        data = struct.pack("!4i{}s".format(head[3]), head[0], getUniqueID(), head[2], head[3], encodedjson)
        for client1 in SmartServer().client_map.values():
            if client1.addr[0] not in videoService().videoservers_map:
                if cmp(client1.addr[0], client.addr[0]) != 0:
                    client1.SendData(data)
示例#4
0
def handleStartorStopService(head, body, client):
    head = list(head)
    if body['status_code'] == 1:
        server_name = body['server_name']
        from VideoServer import videoService
        from SmartServer import SmartServer
        from handlers import getUniqueID
        encodedjson = json.dumps(body)
        head[3] = len(encodedjson)
        data = struct.pack('!4i{}s'.format(head[3]),head[0],getUniqueID(),head[2],head[3],encodedjson)
        videoserver = videoService().getVideoServer(server_name)
        if videoserver is not None:
            for client1 in SmartServer().client_map.values():
                if cmp(client1.addr[0],videoserver.getIp()) == 0:
                    client1.SendData(data)
#                     client.SendData(data)
        body['status_code'] = 2
        encodedjson = json.dumps(body)
        head[3] = len(encodedjson)
        data = struct.pack('!4i{}s'.format(head[3]),head[0],head[1],head[2],head[3],encodedjson)
        client.SendData(data)
    elif body['status_code'] == 2:
        print body
示例#5
0
def handleVideoIPCS(head, body, client):
    head = list(head)
    from VideoServer import videoService
    from SmartServer import SmartServer
    from handlers import getUniqueID
    import copy

    body1 = None
    if body["status_code"] == 1:
        member = []
        videoserver = videoService().getVideoServer(body["server_name"])
        if videoserver is not None:
            for name, ipc in videoserver.getIPCs().items():
                item = ipc.GetIPCProperties()
                item["name"] = name
                member.append(item)
        if len(member) == 0:
            member = None
        body["member"] = member
        body["status_code"] = 2
    elif body["status_code"] == 3:
        videoserver = videoService().getVideoServer(body["server_name"])
        if videoserver is not None:
            if 1 == len(body["member"]):
                item = body["member"][0]
                from VideoServer import VideoIPC

                ipc = VideoIPC(item["ip"], item["url"], item["fps"], item["resolution"], item["streamsize"])
                if videoService().addVideoIPC(videoserver.getIp(), item["name"], ipc):
                    body["status_code"] = 4
                    body1 = copy.deepcopy(body)
                    body1["status_code"] = 256
                #                     向数据库中添加
                else:
                    ipc = videoserver.getIPCs()[item["name"]]
                    if ipc and ipc.getProperty("ip") == item["ip"]:
                        videoService().updateIPCProperty(videoserver.getIp(), item["name"], "url", item["url"])
                        videoService().updateIPCProperty(videoserver.getIp(), item["name"], "fps", item["fps"])
                        videoService().updateIPCProperty(
                            videoserver.getIp(), item["name"], "resolution", item["resolution"]
                        )
                        videoService().updateIPCProperty(
                            videoserver.getIp(), item["name"], "streamsize", item["streamsize"]
                        )
                        body["status_code"] = 4
                        body1 = copy.deepcopy(body)
                        body1["status_code"] = 256
                    #                         更改数据库
                    else:
                        body["status_code"] = 5
            else:
                body["status_code"] = 5
        else:
            body["status_code"] = 5
    elif body["status_code"] == 6:
        videoserver = videoService().getVideoServer(body["server_name"])
        if videoserver is not None:
            if 1 == len(body["member"]):
                item = body["member"][0]
                if videoService().delVideoIPC(videoserver.getIp(), item["name"]):
                    body["status_code"] = 7
                    body1 = copy.deepcopy(body)
                    body1["status_code"] = 257
                #                     从数据库中删除
                else:
                    body["status_code"] = 8
            else:
                body["status_code"] = 8
        else:
            body["status_code"] = 8
    print "handleVideoIPCS : ", body
    encodedjson = json.dumps(body)
    print encodedjson
    head[3] = len(encodedjson)
    data = struct.pack("!4i{}s".format(head[3]), head[0], head[1], head[2], head[3], encodedjson)
    client.SendData(data)
    if body1 is not None:
        encodedjson = json.dumps(body1)
        head[3] = len(encodedjson)
        data = struct.pack("!4i{}s".format(head[3]), head[0], getUniqueID(), head[2], head[3], encodedjson)
        for client1 in SmartServer().client_map.values():
            if client1.addr[0] not in videoService().videoservers_map:
                if client1.addr[0] != client.addr[0]:
                    client1.SendData(data)
示例#6
0
def handleVideoServers(head, body, client):
    from VideoServer import videoService
    from SmartServer import SmartServer
    from handlers import getUniqueID
    import copy

    head = list(head)
    body1 = None
    if body["status_code"] == 1:
        if body["member"]:
            print "member is not None :", body
            for item in body["member"]:
                if item["server_ip"] is not None:
                    if videoService().addVideoServer(item["server_ip"], item["disk_space"], 1):
                        body["status_code"] = 255
                        encodedjson1 = json.dumps(body)
                        dataUpload = struct.pack(
                            "!4i{}s".format(len(encodedjson1)),
                            1,
                            getUniqueID(),
                            head[2],
                            len(encodedjson1),
                            encodedjson1,
                        )
                        for client1 in SmartServer().client_map.values():
                            if client1.addr[0] not in videoService().videoservers_map:
                                client1.SendData(dataUpload)
                    else:
                        server_name = videoService().getVideoServerName(item["server_ip"])
                        if server_name:
                            item["server_name"] = server_name
                            body["member"] = [item]
                        #                         添加IP核对
                        if videoService().updateVideoServerDiskSpace(item["server_ip"], item["disk_space"]):
                            m = 1
                        #                             更新数据库
                        if videoService().getVideoServerState(item["server_ip"]) == 0:
                            videoService().setVideoServerState(item["server_ip"], 1)
                            item1 = {}
                            item1["server_name"] = server_name
                            item1["server_ip"] = item["server_ip"]
                            item1["server_state"] = 1
                            item1["disk_space"] = videoService().getVideoServerDiskSpace(item["server_ip"])
                            body1 = {}
                            body1["member"] = [item1]
                            body1["local_name"] = videoService().local_name
                            body1["mac"] = "mac"
                            body1["user_name"] = "user_name"
                            body1["password"] = "******"
                            body1["status_code"] = 255
                            encodedjson1 = json.dumps(body1)
                            dataUpload = struct.pack(
                                "!4i{}s".format(len(encodedjson1)),
                                1,
                                getUniqueID(),
                                101,
                                len(encodedjson1),
                                encodedjson1,
                            )
                            for client1 in SmartServer().client_map.values():
                                if client1.addr[0] not in videoService().videoservers_map:
                                    client1.SendData(dataUpload)
                            body1 = None
        else:
            print "member is None :", body
            member = []
            for server_ip, videoserver in videoService().videoservers_map.items():
                item = {}
                item["server_ip"] = server_ip
                item["server_name"] = videoserver.getName()
                item["server_state"] = videoserver.State()
                item["disk_space"] = videoserver.getDiskSpace()
                member.append(item)
                body["member"] = member
            #                 print "handleVideoServers :", member
            if len(member) == 0:
                body["member"] = None
        body["status_code"] = 2
        body["local_name"] = videoService().local_name
    elif body["status_code"] == 3:
        if 1 == len(body["member"]):
            item = body["member"][0]
            if videoService().updateVideoServerName(item["server_ip"], item["server_name"]):
                body["status_code"] = 4
                body1 = copy.deepcopy(body)
                body1["status_code"] = 256
            #             向数据库中添加或修改
            else:
                body["status_code"] = 5
        else:
            body["status_code"] = 5
        body["local_name"] = videoService().local_name
    elif body["status_code"] == 6:
        if 1 == len(body["member"]):
            item = body["member"][0]
            if videoService().delVideoServer(item["server_name"]):
                body["status_code"] = 7
                body1 = copy.deepcopy(body)
                body1["status_code"] = 257
            #             从数据库中删除
            else:
                body["status_code"] = 8
        else:
            body["status_code"] = 8
    print "handleVideoServers : ", body
    encodedjson = json.dumps(body)
    head[3] = len(encodedjson)
    data = struct.pack("!4i{}s".format(head[3]), head[0], head[1], head[2], head[3], encodedjson)
    client.SendData(data)
    if body1 is not None:
        encodedjson = json.dumps(body1)
        head[3] = len(encodedjson)
        data = struct.pack("!4i{}s".format(head[3]), head[0], getUniqueID(), head[2], head[3], encodedjson)
        for client1 in SmartServer().client_map.values():
            if client1.addr[0] not in videoService().videoservers_map:
                print client1.addr
                if cmp(client1.addr[0], client.addr[0]) != 0:
                    client1.SendData(data)