def subdir(self): subdir = self.store.subdir if subdir != None: subdir = fileutils.str2path(subdir) subdir = fileutils.ensureRelDirPath(subdir) return fileutils.cleanupPath(subdir) subdir = fileutils.str2filename(self.store.name) return fileutils.ensureDirPath(subdir)
def _getDir(self, custData, profData, kind="incoming"): middle, attr = {"incoming": ("incoming", "inputDir"), "outgoing": ("outgoing", "outputDir"), "links": ("links", "linkDir"), "errors": ("failed", "errorDir")}[kind] if getattr(profData, attr): return getattr(profData, attr) if getattr(custData, attr): result = getattr(custData, attr) elif custData.subdir: result = custData.subdir else: result = fileutils.str2filename(custData.name) result = fileutils.ensureRelDirPath(result) result = "%sfiles/%s/" % (result, middle) if profData.subdir: result = result + profData.subdir else: result = result + fileutils.str2filename(profData.name) return fileutils.cleanupPath(result)
def _resolveMultiInputHack(self, custData, lastProfData, newProfData): self.info("Trying to upgrade multi-input hack for customer '%s' profiles '%s' and '%s'", custData.name, lastProfData.name, newProfData.name) newSubdir = newProfData.subdir or fileutils.str2filename(newProfData.name) lastSubdir = lastProfData.subdir or fileutils.str2filename(lastProfData.name) if newSubdir == '.': newName = fileutils.str2filename(newProfData.name) newInputDir = self._getDir(custData, newProfData) + newName + "/" newProfData.inputDir = newInputDir else: if newSubdir == lastSubdir: newSubdir = newSubdir + "2" newProfData.subdir = newSubdir newInputDir = self._getDir(custData, newProfData) lastProfData.doneDir = newInputDir if lastProfData.subdir == '.': lastSubdir = fileutils.str2filename(lastProfData.name) lastInputDir = self._getDir(custData, lastProfData) + lastSubdir + "/" lastProfData.inputDir = lastInputDir period = min(lastProfData.monitoringPeriod, newProfData.monitoringPeriod) lastProfData.monitoringPeriod, newProfData.monitoringPeriod = period, period
def _guessOverridenDir(self, dir, custData, profData): for middle, new in [('incoming', 'incoming'), ('outgoing', 'outgoing'), ('errors', 'failed'), ('links', 'links'), ('thumbnails', 'thumbnails')]: try: i = dir.index(middle) p1 = dir[:i].strip('/') p2 = dir[i + len(middle):].strip('/') # Check to reorder profiles directories custSubdir = custData.subdir or fileutils.str2filename(custData.name) profSubdir = profData.subdir or fileutils.str2filename(profData.name) if p1 == (custSubdir + '/' + profSubdir): result = custSubdir + "/files/" + new + "/" + profSubdir + '/' + p2 else: result = p1 + "/files/" + new + "/" + p2 result = fileutils.ensureDirPath(result) result = fileutils.cleanupPath(result) return result except ValueError: pass return dir