]> git.ipfire.org Git - pbs.git/commitdiff
packages: Refactor importing filelists
authorMichael Tremer <michael.tremer@ipfire.org>
Wed, 22 Jan 2025 13:40:36 +0000 (13:40 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Wed, 22 Jan 2025 13:40:36 +0000 (13:40 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/buildservice/database.py
src/buildservice/packages.py

index 4f5ff7c8bacf9c67d78f4f43cf65d71af12e3cb8..98a1fdcdd332ae340169c4ed4f3b685d4051a2d9 100644 (file)
@@ -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
                """
index 1b747c73e235c0b117b7dabb13e6254d90e1caa4..33fc34680ac15b69e4253f3df1d407e6357d8d0d 100644 (file)
@@ -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):