def _ls2(path): fileList = [] dirRef = lfcCmd.cd(path, version=2) if dirRef == None: print("Could not get a dir Reference!") return fileList try: entry = lfc.lfc_readdirxr(dirRef) while entry != None: element = {} # Create a hash map for every directory element element["name"] = entry.d_name # print("Get acl...\n") element["acl"] = lfcCmd.getacl(path + "/" + element["name"]) if stat.S_ISDIR(entry.filemode) == True: element["type"] = "dir" # Directory element["GUID"] = "" else: element["type"] = "file" element["GUID"] = entry.guid # print("Get Replicate list [%d] elements\n"%entry.nbreplicas) reps = [] for i in range(entry.nbreplicas): reps.append(entry.rep[i].sfn) element["Replicas"] = reps fileList.append(element) # print("Next ...\n") entry = lfc.lfc_readdirxr(dirRef) except Exception, e: print("Exception [%s] : %s" % (str(type(e)), str(e)))
def dir_list(self, dir_obj, pattern): complete_path = dir_obj._url.path result = [] try: self.log_info("Trying to LSDIR '%s'" % (complete_path)) dir = lfc.lfc_opendir(complete_path) if dir == None: raise Exception('Could not open dir') while True: entry = lfc.lfc_readdirxr(dir) if entry == None: break result.append(entry.d_name) lfc.lfc_closedir(dir) except Exception, ex: self.log_error_and_raise(bliss.saga.Error.NoSuccess, "Couldn't list directory: %s " % (str(ex)))
import lfc2 as lfc if len(sys.argv) < 2: print "Syntax: %s <LFC_directory>" % sys.argv[0] sys.exit(-1) name = sys.argv[1] dir = lfc.lfc_opendir(name) if (dir == None) or (dir == 0): print "Error while looking for " + name + ": No such a file or directory" sys.exit(1) try: while 1: entry = lfc.lfc_readdirxr(dir) if entry == None: break print entry.d_name if stat.S_ISDIR(entry.filemode): print " ==> Directory" else: print "GUID : %s" % entry.guid for i in range(entry.nbreplicas): print " ==> %s" % entry.rep[i].sfn lfc.lfc_closedir(dir) except TypeError, x: print " ==> None" except Exception: traceback.print_exc()