Split Revision into OBS and DB

This commit is contained in:
Stephan Kulow
2022-10-18 12:17:43 +02:00
parent c534fb028e
commit 25b45c5073
6 changed files with 54 additions and 15 deletions

View File

@@ -6,6 +6,8 @@ from lib.db import DB
from lib.git import Git
from lib.history import History
from lib.obs import OBS
from lib.obs_revision import OBSRevision
from lib.db_revision import DBRevision
from lib.proxy_sha256 import ProxySHA256, md5, sha256
@@ -121,13 +123,22 @@ class Importer:
print(f"Remove {name}")
self.git.remove(name)
def update_db_package(self, db, project, package):
root = self.obs._history(project, package)
if root is None:
return
latest = DBRevision.latest_revision(db, project, self.package)
for r in root.findall("revision"):
rev = OBSRevision(self.obs, self, project, self.package).parse(r)
if not latest or rev.rev > latest.rev:
db.import_rev(rev)
db.conn.commit()
def import_into_db(self):
db = DB()
self.history.fetch_all_revisions(self.projects)
for project, _, _ in self.projects:
for rev in self.history[project]:
db.import_rev(rev)
db.conn.commit()
for project, _, api_url in self.projects:
self.obs.change_url(api_url)
self.update_db_package(db, project, self.package)
def import_all_revisions(self, gc):
# Fetch all the requests and sort them. Ideally we should