forked from adamm/git-importer
Scan old imports
This commit is contained in:
parent
4692d47120
commit
716db10adf
@ -7,6 +7,8 @@ import sys
|
|||||||
|
|
||||||
import osc.core
|
import osc.core
|
||||||
|
|
||||||
|
from lib.db import DB
|
||||||
|
from lib.db_revision import DBRevision
|
||||||
from lib.git_exporter import GitExporter
|
from lib.git_exporter import GitExporter
|
||||||
from lib.importer import Importer
|
from lib.importer import Importer
|
||||||
from lib.test_exporter import TestExporter
|
from lib.test_exporter import TestExporter
|
||||||
@ -100,6 +102,56 @@ def main():
|
|||||||
requests_log.setLevel(logging.DEBUG)
|
requests_log.setLevel(logging.DEBUG)
|
||||||
requests_log.propagate = True
|
requests_log.propagate = True
|
||||||
|
|
||||||
|
def check_old_package(db: DB, dir: pathlib.Path):
|
||||||
|
md5file = dir / "MD5SUMS"
|
||||||
|
print(md5file)
|
||||||
|
valid_revisions = None
|
||||||
|
with open(md5file, "rb") as f:
|
||||||
|
for line in f.readlines():
|
||||||
|
try:
|
||||||
|
md5, file = line.decode("utf-8").strip().split(" ")
|
||||||
|
except UnicodeDecodeError:
|
||||||
|
logging.error(f"Corrupt MD5 file: {md5file}")
|
||||||
|
return
|
||||||
|
if file == "ready":
|
||||||
|
continue
|
||||||
|
if len(md5) != 32:
|
||||||
|
logging.error(f"Corrupt MD5 file: {md5file}")
|
||||||
|
return
|
||||||
|
with db.cursor() as cur:
|
||||||
|
cur.execute(
|
||||||
|
"SELECT revision_id FROM files WHERE md5=%s AND name=%s",
|
||||||
|
(md5, file),
|
||||||
|
)
|
||||||
|
nrevs = set([row[0] for row in cur.fetchall()])
|
||||||
|
if valid_revisions is None:
|
||||||
|
valid_revisions = nrevs
|
||||||
|
else:
|
||||||
|
valid_revisions = valid_revisions & nrevs
|
||||||
|
if not valid_revisions:
|
||||||
|
break
|
||||||
|
|
||||||
|
with db.cursor() as cur:
|
||||||
|
cur.execute(
|
||||||
|
"SELECT * FROM revisions WHERE id = ANY(%s) AND project=%s",
|
||||||
|
(list(valid_revisions), "openSUSE:Factory"),
|
||||||
|
)
|
||||||
|
for row in cur.fetchall():
|
||||||
|
r = DBRevision(db, row)
|
||||||
|
print("Valid", r, r.files_hash)
|
||||||
|
return True
|
||||||
|
|
||||||
|
if False:
|
||||||
|
import os
|
||||||
|
|
||||||
|
db = DB()
|
||||||
|
basedir = pathlib.Path(
|
||||||
|
f"/mounts/work/SAVE/oldpackages/stable/{args.packages[0]}"
|
||||||
|
)
|
||||||
|
for subdir in sorted(os.listdir(basedir)):
|
||||||
|
if check_old_package(db, basedir / subdir):
|
||||||
|
break
|
||||||
|
|
||||||
if args.export:
|
if args.export:
|
||||||
if len(args.packages) != 1:
|
if len(args.packages) != 1:
|
||||||
print("Can only export one package")
|
print("Can only export one package")
|
||||||
|
Loading…
Reference in New Issue
Block a user