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
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
from .constants import *
from .decorators import *
+# Setup logging
+log = logging.getLogger("pakfire.buildservice.sources")
+
VALID_TAGS = (
"Acked-by",
"Cc",
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):
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"
"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,