def sync_manual(self, computer: Computer, provider: ComputerProvider): """ button sync was clicked manually """ if not computer.meta: return meta = yaml_load(computer.meta) if 'manual_sync' not in meta: return manual_sync = meta['manual_sync'] project_provider = ProjectProvider(self.session) docker_provider = DockerProvider(self.session) dockers = docker_provider.get_online() project = project_provider.by_id(manual_sync['project']) for docker in dockers: if docker.computer == computer.name: continue source = provider.by_name(docker.computer) ignore_folders = [ [join('models', project.name), []] ] sync_directed(self.session, target=computer, source=source, ignore_folders=ignore_folders) del meta['manual_sync'] computer.meta = yaml_dump(meta) provider.update()
def sync_manual(self, computer: Computer, provider: ComputerProvider): """ button sync was clicked manually """ if not computer.meta: return meta = yaml_load(computer.meta) if 'manual_sync' not in meta: return manual_sync = meta['manual_sync'] project_provider = ProjectProvider(self.session) docker_provider = DockerProvider(self.session) dockers = docker_provider.get_online() project = project_provider.by_id(manual_sync['project']) sync_folders = manual_sync['sync_folders'] ignore_folders = manual_sync['ignore_folders'] sync_folders = correct_folders(sync_folders, project.name) ignore_folders = correct_folders(ignore_folders, project.name) if not isinstance(sync_folders, list): sync_folders = [] if not isinstance(ignore_folders, list): ignore_folders = [] for docker in dockers: if docker.computer == computer.name: continue source = provider.by_name(docker.computer) folders = [[s, ignore_folders] for s in sync_folders] computer.syncing_computer = source.name provider.update() try: sync_directed( self.session, target=computer, source=source, folders=folders ) except Exception as e: self.process_error(e) del meta['manual_sync'] computer.meta = yaml_dump(meta) provider.update()
def test_add(self, session: Session): provider = ProjectProvider(session) project = provider.add_project(name='test') assert provider.by_id(project.id)