def getDirectoryMetadata(self, path): """Get metadata associated to the directory""" res = checkArgumentFormat(path) if not res["OK"]: return res urls = res["Value"] successful = {} failed = {} gLogger.debug("DIPStorage.getFileMetadata: Attempting to obtain metadata for %s directories." % len(urls)) serviceClient = Client(url=self.url) for url in urls: res = serviceClient.getMetadata(url) if res["OK"]: if res["Value"]["Exists"]: if res["Value"]["Type"] == "Directory": res["Value"]["Directory"] = True gLogger.debug("DIPStorage.getFileMetadata: Successfully obtained metadata for %s." % url) successful[url] = res["Value"] else: failed[url] = "Supplied path is not a directory" else: failed[url] = "Directory does not exist" else: gLogger.error( "DIPStorage.getFileMetadata: Failed to get metadata for url", "%s: %s" % (url, res["Message"]) ) failed[url] = res["Message"] resDict = {"Failed": failed, "Successful": successful} return S_OK(resDict)
def isDirectory(self, path): """Determine whether the path is a directory""" res = checkArgumentFormat(path) if not res["OK"]: return res urls = res["Value"] successful = {} failed = {} gLogger.debug("DIPStorage.isDirectory: Attempting to determine whether %s paths are directories." % len(urls)) serviceClient = Client(url=self.url) for url in urls: res = serviceClient.getMetadata(url) if res["OK"]: if res["Value"]["Exists"]: if res["Value"]["Type"] == "Directory": gLogger.debug("DIPStorage.isDirectory: Successfully obtained metadata for %s." % url) successful[url] = True else: successful[url] = False else: failed[url] = "Path does not exist" else: gLogger.error( "DIPStorage.isDirectory: Failed to get metadata for url", "%s: %s" % (url, res["Message"]) ) failed[url] = res["Message"] resDict = {"Failed": failed, "Successful": successful} return S_OK(resDict)