[projects/pld-ftp-admin] Handle some exceptions better

baggins baggins at pld-linux.org
Sat Feb 7 13:29:14 CET 2026


commit a7dd0f45d00c75b7b937fe502db44384454ad607
Author: Jan Rękorajski <baggins at pld-linux.org>
Date:   Sat Feb 7 13:26:28 2026 +0100

    Handle some exceptions better

 modules/ftptree.py | 22 +++++++++++++++-------
 1 file changed, 15 insertions(+), 7 deletions(-)
---
diff --git a/modules/ftptree.py b/modules/ftptree.py
index 7d841a8..aa149a9 100644
--- a/modules/ftptree.py
+++ b/modules/ftptree.py
@@ -206,11 +206,14 @@ class Pkg(BasePkg):
 
         """
         def rpmhdr(pkg):
-            ts = rpm.ts()
-            ts.setVSFlags(rpm.RPMVSF_NODSAHEADER)
-            fdno = os.open(pkg, os.O_RDONLY)
-            hdr = ts.hdrFromFdno(fdno)
-            os.close(fdno)
+            try:
+                ts = rpm.ts()
+                ts.setVSFlags(rpm.RPMVSF_NODSAHEADER)
+                fdno = os.open(pkg, os.O_RDONLY)
+                hdr = ts.hdrFromFdno(fdno)
+                os.close(fdno)
+            except rpm.error as e:
+                raise rpm.error(f"{pkg}: {e}")
             return hdr
 
         obsoletes = {}
@@ -409,7 +412,12 @@ class FtpTree(BaseFtpTree):
 
         Reads config.builderqueue to grab the info
         """
-        f = urlmess.urlopen(config.builderqueue)
+        try:
+            f = urlmess.urlopen(config.builderqueue)
+        except urllib.error.URLError as e:
+            pwarning(f"Unable to open: {config.builderqueue} {e}")
+            return
+
         requests = {}
         reid = re.compile(r'^.*id=(.*) pri.*$')
         regb = re.compile(r'^group:.*$|builders:.*$', re.M)
@@ -493,7 +501,7 @@ class FtpTree(BaseFtpTree):
 
     # Used more than once filter functions
     def __find_other_pkgs(self, pkg, tree):
-        escapedpkgname = pkg.name.replace('.', '\.').replace('+', '\+')
+        escapedpkgname = pkg.name.replace('.', r'\.').replace('+', r'\+')
         ziewre = re.compile(escapedpkgname + '-[^-]*-[^-]*$')
         def filter_other_pkgs(x):
             if ziewre.match(x) and not x == pkg.nvr:
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/projects/pld-ftp-admin.git/commitdiff/a7dd0f45d00c75b7b937fe502db44384454ad607



More information about the pld-cvs-commit mailing list