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