示例#1
0
    def executeOperation(self, conn, commandClient, commandServer):
        partition = Partition()
        userFileName = commandServer.processDownload()
        hexValue = partition.findHash(userFileName)
        print(str(hexValue))
        remainder = partition.findShiftedValue(hexValue, userFileName,
                                               partition)
        disk1 = Partition.hashDiskMap[remainder]
        disk2 = Partition.hashDiskBackupMap[remainder]
        print("disk1:" + str(disk1) + " disk2:" + str(disk2))
        ipMachine = Partition.diskIpMap[disk1]
        print("IpMachine: " + ipMachine)
        print("Backup Disk: " + str(disk2))
        backupMachine = Partition.diskIpMap[disk2]
        print("Backup Machine: " + backupMachine)
        ipMachine = ipMachine + " " + backupMachine
        conn.send(ipMachine.encode('ascii'))
        data1 = conn.recv(2048)
        msg = str(data1.decode('ascii'))
        print(str(msg))
        data1 = conn.recv(2048)
        msg = str(data1.decode('ascii'))
        print(str(msg))
        if os.path.getsize('hashFileMap.txt') == 0:
            hashFileMap = {}
        else:
            with open('hashFileMap.txt', 'rb') as f:
                hashFileMap = pickle.load(f)

        Partition.hashFileMap = hashFileMap
        isEmptyList = False
        hashValue = 0
        for hashV, fileN in Partition.hashFileMap.items():
            print(str(fileN))
            if userFileName in fileN:
                fileN.remove(userFileName)
                if not fileN:
                    isEmptyList = True
                    hashValue = hashV
        if isEmptyList == True:
            del Partition.hashFileMap[hashValue]
        print(userFileName)
        for hashV, fileN in Partition.hashFileMap.items():
            print(str(fileN))
        with open('hashFileMap.txt', 'wb') as handle:
            pickle.dump(Partition.hashFileMap, handle)
 def executeOperation(self, conn, commandClient, commandServer):
     partition = Partition()
     userFileName = commandServer.processDownload()
     hexValue = partition.findHash(userFileName)
     print(str(hexValue))
     remainder = partition.findShiftedValue(hexValue, userFileName,
                                            partition)
     disk1 = Partition.hashDiskMap[remainder]
     disk2 = Partition.hashDiskBackupMap[remainder]
     print("disk1:" + str(disk1) + " disk2:" + str(disk2))
     ipMachine = Partition.ipList[disk1]
     print("IpMachine: " + ipMachine)
     print("Backup Disk: " + str(disk2))
     backupMachine = Partition.ipList[disk2]
     print("Backup Machine: " + backupMachine)
     ipMachine = ipMachine + " " + backupMachine
     conn.send(ipMachine.encode('ascii'))
     data = conn.recv(2048)
     msg = str(data.decode('ascii'))
     print(str(msg))