Commit 33ed179e authored by Cristiano Urban's avatar Cristiano Urban
Browse files

Clean empty dirs.

parent 012e1789
Loading
Loading
Loading
Loading
+12 −0
Original line number Diff line number Diff line
@@ -26,6 +26,8 @@ class RetrieveCleaner(TaskExecutor):
                                  params["db"],
                                  1,
                                  1)
        params = config.loadSection("transfer_node")
        self.storageRetrievePath = params["retrieve_path"]
        params = config.loadSection("async_recall")
        self.days = params.getint("days")
        self.seconds = params.getint("hours") * 3600 + params.getint("minutes") * 60 + params.getint("seconds")
@@ -44,7 +46,9 @@ class RetrieveCleaner(TaskExecutor):
        self.logger.addHandler(redisLogHandler)
        self.logger.addHandler(logStreamHandler)
        self.jobObj = None
        self.username = None
        self.nodeList = []
        self.destPathList = []
        super(RetrieveCleaner, self).__init__()
        
    def execute(self):        
@@ -78,6 +82,12 @@ class RetrieveCleaner(TaskExecutor):
                            os.remove(destPath)
                        else:
                            shutil.rmtree(destPath)
                        basePath = self.storageRetrievePath.replace("{username}", self.username)
                        for root, dirs, files in os.walk(basePath, topdown = False):
                            for dir in dirs:
                                dirPath = os.path.abspath(root) + '/' + dir
                                if not os.listdir(dirPath):
                                    os.rmdir(dirPath)
                        self.nodeList.pop(i)
                        self.destPathList.pop(i)
                        numNodes -= 1
@@ -96,4 +106,6 @@ class RetrieveCleaner(TaskExecutor):
                self.jobObj = self.srcQueue.getJob()
                self.nodeList = self.jobObj.jobInfo["nodeList"].copy()
                self.destPathList = self.jobObj.jobInfo["destPathList"].copy()
                nodeInfo = self.dbConn.getOSPath(self.nodeList[0])
                self.username = nodeInfo["username"]
                self.execute()