def _clean_up_failed_segments(self): segments_to_clean_up = [] for toRecover in self.__mirrorsToBuild: is_in_place = toRecover.getFailedSegment( ) is not None and toRecover.getFailoverSegment() is None if is_in_place and toRecover.isFullSynchronization(): segments_to_clean_up.append(toRecover.getFailedSegment()) if len(segments_to_clean_up) == 0: return self.__logger.info("Cleaning files from %d segment(s)" % (len(segments_to_clean_up))) segments_to_clean_up_by_host = GpArray.getSegmentsByHostName( segments_to_clean_up) cmds = [] for hostName, segments_to_clean_up in segments_to_clean_up_by_host.items( ): cmds.append( gp.GpCleanSegmentDirectories( "clean segment directories on %s" % hostName, segments_to_clean_up, gp.REMOTE, hostName)) self.__runWaitAndCheckWorkerPoolForErrorsAndClear(cmds)
def __cleanUpSegmentDirectories(self, directives): if len(directives) == 0: return self.__logger.info("Cleaning files from %d segment(s)" % (len(directives))) segments = [d.getSegment() for d in directives] segmentByHost = GpArray.getSegmentsByHostName(segments) cmds = [] for hostName, segments in segmentByHost.iteritems(): cmds.append(gp.GpCleanSegmentDirectories("clean segment directories on %s" % hostName, segments, gp.REMOTE, hostName)) self.__runWaitAndCheckWorkerPoolForErrorsAndClear(cmds, "cleaning existing directories")