Example #1
0
File: ida.py Project: diacus/celda
def disperse(fragment):
    """
    Disperse the FragmentStream instance.
    @param fragment: FragmentStream instnace
    @return list instance: contains the generated BlockStreams
    """
    conf     = SADConfig()
    dis      = conf.getdispath()
    cache    = conf.getstoragepath()
    bname    = "%s-%05d.frag" % (fragment.getfilename(),fragment.getpos())
    fragname = os.path.join( cache, bname )
    disp     = [ "%s-%d.ida" % (fragname, k) for k in range(5) ]
    inidis   = Messages.Dispersing % str(fragment)
    enddis   = Messages.Dispersed % str(fragment)
             
    fragment.savetofile(fragname)

    logging.info(inidis)
    subprocess.call([dis, fragname])
    logging.info(enddis)

    blocks = list()

    for k, d in enumerate(disp):
        b = BlockStream(
            os.path.basename(d),
            "IDA",
            fragment.getid(),
            k
        )
        b.loadfromfile(d)
        blocks.append(b)
    
    return blocks