예제 #1
0
 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)
예제 #2
0
 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)