From: Michael Tremer Date: Fri, 24 Jun 2022 14:56:55 +0000 (+0000) Subject: repos: Show size X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=437e18f2967948d733c987da2ee9952a86c90d9e;p=pbs.git repos: Show size Signed-off-by: Michael Tremer --- diff --git a/src/buildservice/repository.py b/src/buildservice/repository.py index f4624b03..28279031 100644 --- a/src/buildservice/repository.py +++ b/src/buildservice/repository.py @@ -437,6 +437,39 @@ class Repository(base.DataObject): return False + # Stats + + @lazy_property + def size(self): + res = self.db.query(""" + SELECT + packages.arch AS arch, + SUM(packages.filesize) AS size + FROM + repositories_builds + LEFT JOIN + builds ON repositories_builds.build_id = builds.id + LEFT JOIN + jobs ON builds.id = jobs.build_id + LEFT JOIN + jobs_packages ON jobs.id = jobs_packages.job_id + LEFT JOIN + packages ON jobs_packages.pkg_id = packages.id + WHERE + builds.deleted IS FALSE + AND + jobs.deleted IS FALSE + AND + packages.deleted IS FALSE + AND + repositories_builds.repo_id = %s + GROUP BY + packages.arch""", + self.id, + ) + + return { row.arch : row.size for row in res if row.arch in self.distro.arches } + def updated(self): self.db.execute("UPDATE repositories SET last_update = NOW() \ WHERE id = %s", self.id) diff --git a/src/templates/repos/show.html b/src/templates/repos/show.html index ae083773..9644997c 100644 --- a/src/templates/repos/show.html +++ b/src/templates/repos/show.html @@ -32,4 +32,30 @@ {% module Text(repo.description) %} {% end %} + +
+
{{ _("Statistics") }}
+ +
+
+ {{ _("Size") }} + + + + {% for arch, size in sorted(repo.size.items()) %} + + + + + + {% end %} + +
+ {{ arch }} + + {{ format_size(size) }} +
+
+
+
{% end block %}