def replicate_file(self, file_info, dst_resource): """Replicate a file in irods file_info : (collection, file, resource) dst_resource : str""" (collection, irods_file, src_resource) = file_info dataObjInp = irods.dataObjInp_t() d = irods.getFileInfo(self.conn, collection, irods_file, src_resource) cond_inp = dataObjInp.condInput irods.addKeyVal(cond_inp, irods.REPL_NUM_KW, d['data_repl_num']) irods.addKeyVal(cond_inp, irods.RESC_NAME_KW, src_resource) irods.addKeyVal(cond_inp, irods.DEST_RESC_NAME_KW, dst_resource) dataObjInp.objPath = collection + '/' + irods_file status = irods.rcDataObjRepl(self.conn, dataObjInp) return status
def delete_file(self, path, resc=None): """Delete a file in iRODS path : irods path (str) resc : Resource""" dataObjInp = irods.dataObjInp_t() dataObjInp.openFlags = irods.O_RDONLY if resc: d = irods.getFileInfo(path, resc) irods.addKeyVal(dataObjInp.condInput, irods.REPL_NUM_KW, d['data_repl_num']) dataObjInp.objPath = path status = irods.rcDataObjUnlink(self.conn, dataObjInp) return status
def delete_files(self, irods_files): """Delete a list of files from iRODS irods_files : list of tuples (collection, file, resource)""" dataObjInp = irods.dataObjInp_t() dataObjInp.openFlags = irods.O_RDONLY st = [] for (collection, irods_file, resource) in irods_files: d = irods.getFileInfo(self.conn, collection, irods_file, resource) irods.addKeyVal(dataObjInp.condInput, irods.REPL_NUM_KW, d['data_repl_num']) dataObjInp.objPath = collection + '/' + irods_file status = irods.rcDataObjUnlink(self.conn, dataObjInp) st.append(status) return st
def get_file_info(self, irods_path, resource): """Get a dictionary of file information""" _, coll_name, data_name = irods.splitPathByKey(irods_path, "/") return irods.getFileInfo(self.conn, coll_name, data_name, resource)