add add foreign users public keys when needed in createSlice
authorTony Mack <tmack@cs.princeton.edu>
Mon, 23 Mar 2009 20:13:45 +0000 (20:13 +0000)
committerTony Mack <tmack@cs.princeton.edu>
Mon, 23 Mar 2009 20:13:45 +0000 (20:13 +0000)
geni/aggregate.py

index 1e71859..5ae2c6f 100644 (file)
@@ -394,13 +394,16 @@ class Aggregate(GeniServer):
             person_record = person_records[0]
             person_dict = person_record.as_dict()['plc_info']
             persons = self.shell.GetPersons(self.auth, [person_dict['email']], ['person_id', 'key_ids'])
+            
+            # Create the person record 
             if not persons:
                 self.shell.AddPerson(self.auth, person_dict)
-            else:
-                person = persons[0]
             self.shell.AddPersonToSlice(self.auth, person_dict['email'], login_base)
-            # XX Dont forget to add this person's public keys     
-        
+            # Add this person's public keys
+            for personkey in person_dict['keys']:
+                key = {'type': 'ssh', 'key': personkey}      
+                self.shellAddPersonKey(self.auth, person_dict['email'], key)
         # find out where this slice is currently running
         nodelist = self.shell.GetNodes(self.auth, slice['node_ids'], ['hostname'])
         hostnames = [node['hostname'] for node in nodelist]