Beispiel #1
0
def insert_files(host, port, names):
    socket = PolledSocket(host, port)
    connection = FCPConnection(socket, True)

    inserts = []
    for name in names:
        client = FCPClient(connection)
        client.in_params.default_fcp_params['MaxRetries'] = 3
        client.in_params.default_fcp_params['PriorityClass'] = 1

        inserts.append(client)
        client.in_params.async = True
        parts = name.split('/')

        client.put_file('CHK@' + '/' + parts[-1], name)
         # Hmmmm... Ugly. Add FCPConnection.wait_until_upload_finishes() ?
        while connection.is_uploading():
            socket.poll()
            time.sleep(.25)

    while min([insert.is_finished() for insert in inserts]) == False:
        if not socket.poll():
            break
        time.sleep(.25)

    uris = []
    for insert in inserts:
        if insert.response == None or len(insert.response) < 2 or insert.response[0] <> 'PutSuccessful':
            uris.append(None)
            continue

        uris.append(insert.response[1]['URI'])

    return uris