From: Michael Tremer Date: Mon, 24 Oct 2022 17:23:30 +0000 (+0000) Subject: sources: Add scaffolding to fetch sources X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=60a5ca8d11f92947b63be1e4734ad4ddcd99d416;p=pbs.git sources: Add scaffolding to fetch sources Signed-off-by: Michael Tremer --- diff --git a/src/buildservice/repository.py b/src/buildservice/repository.py index 44773bb0..b376c93a 100644 --- a/src/buildservice/repository.py +++ b/src/buildservice/repository.py @@ -133,6 +133,13 @@ class Repositories(base.Object): return self._get_repository("SELECT * FROM repositories \ WHERE id = %s", repo_id) + async def fetch_sources(self): + """ + Fetches sources for all repositories + """ + for repo in self: + await repo.fetch_sources() + async def write(self): """ Write/re-write all repositories @@ -464,6 +471,16 @@ class Repository(base.DataObject): return list(sources) + async def fetch_sources(self): + """ + Fetches all sources for this repository + """ + log.debug("Fetching all sources for %s" % self) + + await asyncio.gather( + *(source.fetch() for source in self.sources), + ) + # Builds @lazy_property diff --git a/src/buildservice/sources.py b/src/buildservice/sources.py index fb56a248..9e3b5cab 100644 --- a/src/buildservice/sources.py +++ b/src/buildservice/sources.py @@ -16,6 +16,9 @@ from . import misc from .constants import * from .decorators import * +# Setup logging +log = logging.getLogger("pakfire.buildservice.sources") + VALID_TAGS = ( "Acked-by", "Cc", @@ -202,6 +205,12 @@ class Sources(base.Object): class Source(base.DataObject): table = "sources" + def __repr__(self): + return "<%s %s>" % (self.__class__.__name__, self.name) + + def __str__(self): + return self.name + # Name def get_name(self): @@ -298,6 +307,16 @@ class Source(base.DataObject): return commit + # Operations + + async def fetch(self): + """ + Fetches any new commits from this source + """ + log.debug("Fetching %s" % self) + + # XXX + class Commit(base.DataObject): table = "source_commits" diff --git a/src/scripts/pakfire-build-service b/src/scripts/pakfire-build-service index 836ac936..36f6d42e 100644 --- a/src/scripts/pakfire-build-service +++ b/src/scripts/pakfire-build-service @@ -34,6 +34,7 @@ class Cli(object): "messages:queue:send" : self.backend.messages.queue.send, # Repositories + "repos:fetch-sources" : self.backend.repos.fetch_sources, "repos:rotate-keys" : self.backend.repos.rotate_keys, "repos:write" : self.backend.repos.write,