class DestRsync(Dest): params_required = ['type', 'path'] params_allowed = ['verbosity', 'exclude'] # -------------------------------------------------------------------- def __init__(self, job, cfg, name, bg): l.debug("Adding rsync destination '%s' (background: %s) to job '%s'" % (name, str(bg), job.real_name)) Dest.__init__(self, job, cfg, name, bg) self.exclude = cfg.get_def(self.sname, "exclude", "") self.verbosity = int(cfg.get_def(self.sname, "verbosity", "1")) self.path = self.__prepare_path() self.retries = int(cfg.get_def("global", "copy_retries", '3')) self.retry_sleep = int(cfg.get_def("global", "copy_retries", '60')) # -------------------------------------------------------------------- def __prepare_path(self): path = self.cfg.get(self.sname, "path") if not path.endswith("/"): path += "/" path += self.job.get_job_path() return path # -------------------------------------------------------------------- def copy(self): excludes = self.job.exclude + " " + self.exclude l.debug("Copying '%s' to '%s' on destination '%s' excluding: '%s'" % (self.job.include, self.path, self.name, excludes)) self.rsync = Rsync(self.name, self.job.include, self.path, excludes) self.rsync.set_verbosity(self.verbosity) self.retries -= 1 self.rsync.run()