def do_migration(sd_hashes):
def print_final_result(result):
num_successes = 0
num_fails = 0
num_blobs = 0
for (success,value) in result:
if success:
num_successes+=1
num_blobs += value['blobs']
print("Success:{}".format(value))
print('num success:{}, num fail:{}, total:{}'.format(num_successes,num_fails,len(sd_hashes)))
else:
num_fails+=1
print("Fail:{}".format(value))
time_taken = time.time() - start_time
sec_per_blob = num_blobs / time_taken
print("All Finished! Streams: {} Successes:{}, Fails:{}, Blobs moved:{}, Min to finish:{}, Sec per blob:{}".format(
len(sd_hashes), num_successes, num_fails, num_blobs, time_taken/60, sec_per_blob))
reactor.stop()
ds = []
sem = defer.DeferredSemaphore(4)
for host, sd_hash in sd_hashes:
d = sem.run(migrate_sd_hash, sd_hash, host)
ds.append(d)
d = defer.DeferredList(ds,consumeErrors=True)
d.addCallback(print_final_result)
reactor.run()
评论列表
文章目录