Beispiel #1
0
    def run(self):
        # Assure that only one instance of ArGyver is running.
        lock = PidLock(server_root=self.config.get_server_root())
        if lock.locked():
            warning("ArGyver already running with pid %d!" % lock.pid())
        else:

            # Create a lock file in the /tmp folder
            lock.lock()

            # For each source folder: synchronize, archive, free disk space
            for [dst, src] in self.sources.iteritems():
                self.rsync(src, dst)
                self.update_db_snapshot(dst)
                self.archive()
                self.link_files()
            self.update_db_versions()
            self.update_db_repository()
            # TODO:     self.update_db_history()
            self.remove_tmp_folder()
            self.finish()

            # Remove the lock file
            lock.unlock()