repair the sliver filter logic in xosAdminDashboard
[plstackapi.git] / planetstack / dependency_walker.py
old mode 100755 (executable)
new mode 100644 (file)
index ca1959e..8b15a85
@@ -12,6 +12,9 @@ import json
 import pdb
 from core.models import *
 
+from util.logger import Logger, logging
+logger = Logger(level=logging.INFO)\r
+
 missing_links={}
 
 try:
@@ -55,7 +58,6 @@ def walk_inv_deps(fn, object):
 
 def __walk_deps(fn, object, deps):
        model = object.__class__.__name__
-
        for dep in deps:
                #print "Checking dep %s"%dep
                peer=None
@@ -69,16 +71,20 @@ def __walk_deps(fn, object, deps):
                        except AttributeError:
                                if not missing_links.has_key(model+'.'+link):
                                        print "Model %s missing link for dependency %s"%(model, link)
+                                        logger.log_exc("Model %s missing link for dependency %s"%(model, link))
                                        missing_links[model+'.'+link]=True
 
                if (peer):
                        try:
                                peer_objects = peer.all()
-                       except:
+                       except AttributeError:
                                peer_objects = [peer]
+                       except:
+                               peer_objects = []
 
                        for o in peer_objects:
                                fn(o, object)
+                               # Uncomment the following line to enable recursion
                                # walk_inv_deps(fn, o)
 
 def p(x):