Esempio n. 1
0
def transfer_data(combo):
    ip_addr = combo[0]
    files = combo[1]

    ## Make project folder for data
    mkdir(ip_addr,'~/distsys/data/', project)

    ## Path files are transferred to
    transfer_path = '~/distsys/data/' + project

    for f in files:
        fName = getFileName(f)

        ## Increment num files transferred
        transfer.value += 1

        ## Get checksum of file from server
        svrChksum = checksumServer(f)
        
        ## Print copy status
        os.system('scp -q ' + f + ' ' + ip_addr + ':' + transfer_path)

        ## Get checksum of transferred file on client
        cltChksum = checksumClient(ip_addr, transfer_path + "/" + fName)

        ## If file's checksums are different, add to the failed variable
        if svrChksum != cltChksum:
            failed.value += 1
        else:
            ## Remove file if it passed checksum
            rm_local(f)
        
        ## Run checksum on client and return value
        sys.stdout.write("\rTransferred %d/%d files | %d files failed checksum..." % (transfer.value, total.value, failed.value))
        sys.stdout.flush()