Example #1
0
def testAggSTORE(nKu, aggFiles, node, host, port):
    print "starting testAggSTORE"
    dlist = []
    for fname, fkey in aggFiles:
        mkey = crc32(fname) 
        print "testAggSTORE %s (%s)" % (fname, mkey)
        deferred = node.client.sendStore(fname, (mkey, StringIO(metadatablock)),
                host, port, nKu)
        deferred.addCallback(testRETRIEVE, nKu, fname, fkey, mkey, node, host, 
                port, lambda args=(nKu, fname, fkey, mkey, node, host, 
                    port, False): testVERIFY(*args))
        deferred.addErrback(testerror, "failed at testAggSTORE", node)
        dlist.append(deferred)
    dl = ErrDeferredList(dlist)
    dl.addCallback(allGood, nKu)
    dl.addErrback(testerror, "failed at testAggSTORE", node)
    return dl
def testVERIFY(res, nKu, host, port, num=CONCURRENT):
    logger.info("testVERIFY started...")
    dlist = []
    hashes = []
    for i in range(num):
        #if i == 4:
        #   port = 21
        fd = os.open(files[i], os.O_RDONLY)
        fsize = os.fstat(fd)[stat.ST_SIZE]
        length = 20
        offset = random.randrange(fsize-length)
        os.lseek(fd, offset, 0)
        data = os.read(fd, length)
        os.close(fd)
        hashes.append(flud.FludCrypto.hashstring(data))
        filekey = os.path.basename(files[i])
        deferred = node.client.sendVerify(filekey, offset, length, host, 
                port, nKu)
        deferred.addCallback(itersuccess, i, "succeeded at testVERIFY %d" % i)
        deferred.addErrback(itererror, "failed at testVERIFY %d: %s" 
                % (i, filekey))
        dlist.append(deferred)
    d = ErrDeferredList(dlist)
    d.addCallback(stagesuccess, "testVERIFY")
    d.addErrback(stageerror, 'failed at testVERIFY')
    d.addCallback(checkVERIFY, nKu, host, port, hashes, num)
    return d
def testSendkFindNode(nKu, node, host, port, num=CONCURRENT):
    logger.log(logging.INFO, "testkGetID PASSED")
    logger.log(logging.INFO, "attempting sendkFindNode")
    dlist = []
    for i in range(num):
        key = random.randrange(2**256)
        deferred = node.client.sendkFindNode(host, port, key)
        deferred.addErrback(itererror, "sendkFindNode")
        dlist.append(deferred)
    d = ErrDeferredList(dlist, returnOne=True)
    d.addCallback(stagesuccess, "sendkFindNode")
    d.addErrback(stageerror, 'sendkFindNode')
    d.addCallback(testkFindNode, nKu, node, host, port, num)
    return d
def testkStore(res, nKu, node, host, port, num=CONCURRENT):
    logger.log(logging.INFO, "testSendkStore PASSED: %s" % str(res))
    logger.log(logging.INFO, "attempting testkStore")
    dlist = []
    for i in range(num):
        key = random.randrange(2**256)
        deferred = node.client.kStore(key, testval)
        deferred.addErrback(itererror, "kStore")
        dlist.append(deferred)
    d = ErrDeferredList(dlist, returnOne=True)
    d.addCallback(stagesuccess, "kStore")
    d.addErrback(stageerror, 'kStore')
    d.addCallback(testSendkFindVal, nKu, node, host, port, num)
    return d
def testID(host, port, num=CONCURRENT):
    logger.info("testID started...")
    dlist = []
    for i in range(num):
        #if i == 4:
        #   port = 21
        deferred = node.client.sendGetID(host, port)
        deferred.debug = True
        deferred.addErrback(itererror, "failed at testID %d" % i)
        dlist.append(deferred)
    d = ErrDeferredList(dlist, returnOne=True)
    d.addCallback(stagesuccess, "testID")
    d.addErrback(stageerror, 'testID')
    d.addCallback(testSTORE, host, port, num)
    return d
def testSTORE(nKu, host, port, num=CONCURRENT):
    logger.info("testSTORE started...")
    dlist = []
    for i in range(num):
        #if i == 4:
        #   port = 21
        deferred = node.client.sendStore(files[i], None, host, port, nKu)
        deferred.addCallback(itersuccess, i, "succeeded at testSTORE %d" % i)
        deferred.addErrback(itererror, "failed at testSTORE %d" % i)
        dlist.append(deferred)
    d = ErrDeferredList(dlist)
    d.addCallback(stagesuccess, "testSTORE")
    d.addErrback(stageerror, 'failed at testSTORE')
    d.addCallback(testRETRIEVE, nKu, host, port, num)
    #d.addCallback(testVERIFY, nKu, host, port, num)
    return d
def testRETRIEVE(res, nKu, host, port, num=CONCURRENT):
    logger.info("testRETRIEVE started...")
    dlist = []
    for i in range(num):
        #if i == 4:
        #   port = 21
        filekey = os.path.basename(files[i])
        deferred = node.client.sendRetrieve(filekey, host, port, nKu)
        deferred.addCallback(itersuccess, i, "succeeded at testRETRIEVE %d" % i)
        deferred.addErrback(itererror, "failed at testRETRIEVE %d: %s" 
                % (i, filekey))
        dlist.append(deferred)
    d = ErrDeferredList(dlist)
    d.addCallback(stagesuccess, "testRETRIEVE")
    d.addErrback(stageerror, 'failed at testRETRIEVE')
    d.addCallback(checkRETRIEVE, nKu, host, port, num)
    return d