From: Michael Tremer Date: Wed, 22 Jan 2025 13:40:36 +0000 (+0000) Subject: packages: Refactor importing filelists X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8893f7c048626e5af754c118214cb6b8bf6e8d63;p=pbs.git packages: Refactor importing filelists Signed-off-by: Michael Tremer --- diff --git a/src/buildservice/database.py b/src/buildservice/database.py index 4f5ff7c8..98a1fdcd 100644 --- a/src/buildservice/database.py +++ b/src/buildservice/database.py @@ -283,7 +283,7 @@ class Connection(object): # Return the object return object - async def insert_many(self, cls, *args): + async def insert_many(self, cls, args): """ Inserts many new objects into the database """ diff --git a/src/buildservice/packages.py b/src/buildservice/packages.py index 1b747c73..33fc3468 100644 --- a/src/buildservice/packages.py +++ b/src/buildservice/packages.py @@ -485,49 +485,25 @@ class Package(database.Base, database.BackendMixin, database.SoftDeleteMixin): # Fetch the filelist filelist = await asyncio.to_thread(lambda a: a.filelist, archive) - await self.db.executemany(""" - INSERT INTO - package_files - ( - pkg_id, - path, - size, - mode, - uname, - gname, - ctime, - mtime, - mimetype, - digest_sha2_512, - digest_sha2_256, - digest_blake2b512, - digest_blake2s256, - digest_sha3_512, - digest_sha3_256, - capabilities - ) - VALUES - ( - %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s - )""", - (( - self.id, - file.path, - file.size, - file.mode, - file.uname, - file.gname, - file.ctime, - file.mtime, - file.mimetype, - file.digest("sha2-512"), - file.digest("sha2-256"), - file.digest("blake2b512"), - file.digest("blake2s256"), - file.digest("sha3-512"), - file.digest("sha3-256"), - file.capabilities, - ) for file in filelist), + await self.db.insert_many( + File, ({ + "package" : self, + "path" : file.path, + "size" : file.size, + "mode" : file.mode, + "uname" : file.uname, + "gname" : file.gname, + "ctime" : file.ctime, + "mtime" : file.mtime, + "mimetype" : file.mimetype, + "digest_sha2_512" : file.digest("sha2-512"), + "digest_sha2_256" : file.digest("sha2-256"), + "digest_blake2b512" : file.digest("blake2b512"), + "digest_blake2s256" : file.digest("blake2s256"), + "digest_sha3_512" : file.digest("sha3-512"), + "digest_sha3_256" : file.digest("sha3-256"), + "capabilities" : file.capabilities, + } for file in filelist), ) @lazy_property @@ -694,14 +670,30 @@ class File(database.Base): capabilities = Column(ARRAY(Text)) - # Digest SHA512 + # Digest SHA-2 512 digest_sha2_512 = Column(LargeBinary) - # Digest SHA256 + # Digest SHA-2 256 digest_sha2_256 = Column(LargeBinary) + # Digest Blake2b512 + + digest_blake2b512 = Column(LargeBinary) + + # Digest Blake2s256 + + digest_blake2s256 = Column(LargeBinary) + + # Digest SHA-3 512 + + digest_sha3_512 = Column(LargeBinary) + + # Digest SHA-3 256 + + digest_sha3_256 = Column(LargeBinary) + # Downloadable? def is_downloadable(self):