describe failing hrns if any in the pl importer
[sfa.git] / sfa / importer / plimporter.py
index 1e04e54..8c4ab5e 100644 (file)
@@ -167,9 +167,13 @@ class PlImporter:
         for person in persons:
             pubkeys = []
             for key_id in person['key_ids']:
-                key = keys_by_id[key_id]
-                if key['key_type'] == 'ssh': 
+                # by construction all the keys we fetched are ssh keys
+                # so gpg keys won't be in there
+                try:
+                    key = keys_by_id[key_id]
                     pubkeys.append(key)
+                except:
+                    self.logger.warning("Could not spot key %d - probably non-ssh"%key_id)
             keys_by_person_id[person['person_id']] = pubkeys
         # Get all plc nodes  
         nodes = shell.GetNodes( {'peer_id': None}, ['node_id', 'hostname', 'site_id'])
@@ -206,7 +210,7 @@ class PlImporter:
                 except:
                     # if the site import fails then there is no point in trying to import the
                     # site's child records (node, slices, persons), so skip them.
-                    self.logger.log_exc("PlImporter: failed to import site. Skipping child records"
+                    self.logger.log_exc("PlImporter: failed to import site %s. Skipping child records"%site_hrn
                     continue 
             else:
                 # xxx update the record ...
@@ -240,7 +244,7 @@ class PlImporter:
                         self.logger.info("PlImporter: imported node: %s" % node_record)  
                         self.remember_record (node_record)
                     except:
-                        self.logger.log_exc("PlImporter: failed to import node"
+                        self.logger.log_exc("PlImporter: failed to import node %s"%node_hrn
                 else:
                     # xxx update the record ...
                     pass
@@ -332,6 +336,7 @@ class PlImporter:
     
             # maintain the list of PIs for a given site
             site_record.reg_pis = site_pis
+            dbsession.commit()
 
             # import slices
             for slice_id in site['slice_ids']:
@@ -355,10 +360,10 @@ class PlImporter:
                         self.logger.info("PlImporter: imported slice: %s" % slice_record)  
                         self.remember_record ( slice_record )
                     except:
-                        self.logger.log_exc("PlImporter: failed to import slice")
+                        self.logger.log_exc("PlImporter: failed to import slice %s (%s)"%(slice_hrn,slice['name']))
                 else:
                     # xxx update the record ...
-                    self.logger.warning ("Slice update not yet implemented")
+                    self.logger.warning ("Slice update not yet implemented on slice %s (%s)"%(slice_hrn,slice['name']))
                     pass
                 # record current users affiliated with the slice
                 slice_record.reg_researchers = \