a little nicer wrt pep8
[sfa.git] / sfa / trust / trustedroots.py
index 65b97fa..5f8dcd3 100644 (file)
@@ -2,12 +2,20 @@ import os.path
 import glob
 
 from sfa.trust.gid import GID
+from sfa.util.sfalogging import logger
+
+
+class TrustedRoots:
+
+    # we want to avoid reading all files in the directory
+    # this is because it's common to have backups of all kinds
+    # e.g. *~, *.hide, *-00, *.bak and the like
+    supported_extensions = ['gid', 'cert', 'pem']
 
-class TrustedRootList:
     def __init__(self, dir):
         self.basedir = dir
         # create the directory to hold the files, if not existing
-        if not os.path.isdir (self.basedir):
+        if not os.path.isdir(self.basedir):
             os.makedirs(self.basedir)
 
     def add_gid(self, gid):
@@ -15,13 +23,23 @@ class TrustedRootList:
         gid.save_to_file(fn)
 
     def get_list(self):
-        gid_list = [GID(filename=cert_file) for cert_file in self.get_file_list()]
+        gid_list = [GID(filename=cert_file)
+                    for cert_file in self.get_file_list()]
         return gid_list
 
     def get_file_list(self):
-        file_list  = []
-        pattern=os.path.join(self.basedir,"*.gid")
+        file_list = []
+        pattern = os.path.join(self.basedir, "*")
         for cert_file in glob.glob(pattern):
             if os.path.isfile(cert_file):
-                file_list.append(cert_file) 
+                if self.has_supported_extension(cert_file):
+                    file_list.append(cert_file)
+                else:
+                    logger.warning("File {} ignored - supported extensions are {}"
+                                   .format(cert_file, TrustedRoots.supported_extensions))
         return file_list
+
+    def has_supported_extension(self, path):
+        _, ext = os.path.splitext(path)
+        ext = ext.replace('.', '').lower()
+        return ext in TrustedRoots.supported_extensions