pld-ftp-admin: modules/config.py, modules/ftptree.py - check for signed pac...

glen glen at pld-linux.org
Wed May 27 21:25:03 CEST 2009


Author: glen                         Date: Wed May 27 19:25:02 2009 GMT
Module: pld-ftp-admin                 Tag: HEAD
---- Log message:
- check for signed packages when moving them between trees and tree configured as signed

---- Files affected:
pld-ftp-admin/modules:
   config.py (1.13 -> 1.14) , ftptree.py (1.38 -> 1.39) 

---- Diffs:

================================================================
Index: pld-ftp-admin/modules/config.py
diff -u pld-ftp-admin/modules/config.py:1.13 pld-ftp-admin/modules/config.py:1.14
--- pld-ftp-admin/modules/config.py:1.13	Wed May 27 19:18:57 2009
+++ pld-ftp-admin/modules/config.py	Wed May 27 21:24:56 2009
@@ -35,6 +35,11 @@
 else:
     sign_key = None
 
+if 'signed_trees' in value:
+    signed_trees = value['signed_trees'].split(' ')
+else:
+    signed_trees = None
+
 if 'old_poldek' in value and value['old_poldek'] == 'yes':
     old_poldek = True
 else:

================================================================
Index: pld-ftp-admin/modules/ftptree.py
diff -u pld-ftp-admin/modules/ftptree.py:1.38 pld-ftp-admin/modules/ftptree.py:1.39
--- pld-ftp-admin/modules/ftptree.py:1.38	Wed May 27 19:17:11 2009
+++ pld-ftp-admin/modules/ftptree.py	Wed May 27 21:24:57 2009
@@ -3,9 +3,10 @@
 import os, config, string, urllib, re, rpm
 from common import fileexists, noarchcachedir
 from baseftptree import BasePkg, BaseFtpTree
-errnum=0
+from sign import is_signed
 
-quietmode=False
+errnum = 0
+quietmode = False
 
 class SomeError(Exception):
     def __init__(self):
@@ -242,6 +243,8 @@
     def testmove(self, dsttree):
         self.__checkbuild(self.marked4moving)
         self.__checkarchs(dsttree, self.marked4moving)
+
+        self.__checksigns(dsttree, self.marked4moving, test = True)
         
         self.__rmolderfromsrc(test = True)
         self.__rmotherfromdst(dsttree, test = True)
@@ -253,8 +256,13 @@
         if self.do_checkbuild:
             self.__checkbuild(self.marked4moving)
         bailoutonerror()
+
         self.__checkarchs(dsttree, self.marked4moving)
         bailoutonerror()
+
+        self.__checksigns(dsttree, self.marked4moving)
+        bailoutonerror()
+
         self.__rmolderfromsrc()
         self.__rmotherfromdst(dsttree)
 
@@ -264,7 +272,6 @@
     def rpmfiles(self):
         if self.do_checkbuild:
             self.__checkbuild(self.marked4moving)
-        bailoutonerror()
 
         files = []
         for pkg in self.marked4moving:
@@ -402,3 +409,24 @@
                 return False
         return filter(filter_older_pkgs, self.__find_other_pkgs(pkg, self))
 
+    def __checksigns(self, tree, pkgs, test = False):
+        """
+        Checks if pkgs in tree are all signed.
+
+        in case of test = true, error flag is set for unsigned packages
+        """
+        if not tree.treename in config.signed_trees:
+            return
+
+        for pkg in pkgs:
+            unsigned = 0
+            for file in pkg.rpmfiles():
+                if not is_signed(file):
+                    unsigned += 1;
+
+            if unsigned != 0:
+                if test == True:
+                    if not quietmode:
+                        pkg.warning('%d files not signed' % unsigned)
+                else:
+                    pkg.error('%d files not signed' % unsigned)
================================================================

---- CVS-web:
    http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/pld-ftp-admin/modules/config.py?r1=1.13&r2=1.14&f=u
    http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/pld-ftp-admin/modules/ftptree.py?r1=1.38&r2=1.39&f=u



More information about the pld-cvs-commit mailing list