Changeset View
Changeset View
Standalone View
Standalone View
swh/loader/svn/tasks.py
# Copyright (C) 2015-2018 The Software Heritage developers | # Copyright (C) 2015-2018 The Software Heritage developers | ||||
# See the AUTHORS file at the top-level directory of this distribution | # See the AUTHORS file at the top-level directory of this distribution | ||||
# License: GNU General Public License version 3, or any later version | # License: GNU General Public License version 3, or any later version | ||||
# See top-level LICENSE file for more information | # See top-level LICENSE file for more information | ||||
from swh.scheduler.task import Task | from swh.scheduler.task import Task | ||||
from .loader import SvnLoader, SvnLoaderFromDumpArchive | from .loader import ( | ||||
SvnLoader, SvnLoaderFromDumpArchive, SvnLoaderFromRemoteDump | |||||
) | |||||
class LoadSvnRepository(Task): | class LoadSvnRepository(Task): | ||||
"""Load an svn repository to Software Heritage. | """Load an svn repository to Software Heritage. | ||||
""" | """ | ||||
task_queue = 'swh_loader_svn' | task_queue = 'swh_loader_svn' | ||||
▲ Show 20 Lines • Show All 45 Lines • ▼ Show 20 Lines | def run_task(self, *, archive_path, origin_url=None, visit_date=None, | ||||
""" | """ | ||||
loader = SvnLoaderFromDumpArchive(archive_path) | loader = SvnLoaderFromDumpArchive(archive_path) | ||||
loader.log = self.log | loader.log = self.log | ||||
return loader.load(svn_url=None, | return loader.load(svn_url=None, | ||||
origin_url=origin_url, | origin_url=origin_url, | ||||
visit_date=visit_date, | visit_date=visit_date, | ||||
archive_path=archive_path, | archive_path=archive_path, | ||||
start_from_scratch=start_from_scratch) | start_from_scratch=start_from_scratch) | ||||
class DumpMountAndLoadSvnRepository(Task): | |||||
""" | |||||
Create a dump of a remote repository through the rsvndump | |||||
tool, mount it locally then load the repository into the | |||||
Software Heritage archive. | |||||
""" | |||||
task_queue = 'swh_loader_svn_dump_mount_and_load' | |||||
def run_task(self, *, svn_url, origin_url=None, visit_date=None, | |||||
start_from_scratch=False): | |||||
"""1. Mount an svn dump from archive as a local svn repository. | |||||
2. Load it through the svn loader. | |||||
3. Clean up mounted svn repository archive. | |||||
""" | |||||
loader = SvnLoaderFromRemoteDump(svn_url) | |||||
loader.log = self.log | |||||
return loader.load(svn_url=None, | |||||
origin_url=origin_url, | |||||
visit_date=visit_date, | |||||
start_from_scratch=start_from_scratch) |