also checks persons
Thierry Parmentelat [Wed, 22 Sep 2010 06:17:46 +0000 (08:17 +0200)]
bin/spot-aliens.py

index 554293a..e05201d 100755 (executable)
@@ -1,15 +1,23 @@
 #!/usr/bin/plcsh
 
-# nodes in a site are expected to be in the same peer as their owning site
+all_sites=GetSites({},['peer_id','site_id','login_base','name'])
+all_nodes=GetNodes({},['peer_id','node_id','site_id','hostname'])
+all_persons=GetPersons({},['peer_id','person_id','site_ids','email'])
 
-all_sites=GetSites({},['login_base','name','site_id','peer_id'])
-all_nodes=GetNodes({},['node_id','hostname','peer_id','site_id'])
-
-node_hash=dict ( [ (node['node_id'],node) for node in all_nodes ] )
 site_hash=dict ( [ (site['site_id'],site) for site in all_sites ] )
+#node_hash=dict ( [ (node['node_id'],node) for node in all_nodes ] )
+#person_hash=dict ( [ (person['person_id'],person) for person in all_persons ] )
 
+# nodes are expected to be in the same peer as their owning site
 for node in all_nodes:
     site=site_hash[node['site_id']]
     if node['peer_id'] != site['peer_id']: 
-        print "mismatch with %r and site %r"%(node,site)
+        print "NODE mismatch %r IN SITE %r"%(node,site)
 
+# same for persons
+for person in all_persons:
+    for site_id in person['site_ids']:
+        site=site_hash[site_id]
+        if person['peer_id'] != site['peer_id']:
+            print "PERSON mismatch %r IN SITE %r"%(person,site)
+