fewer import * for certificate
[sfa.git] / geni / methods / register.py
index 99006e9..11a4229 100644 (file)
@@ -1,13 +1,16 @@
+### $Id$
+### $URL$
+
+from geni.trust.certificate import Keypair, convert_public_key
+from geni.trust.gid import *
+
 from geni.util.faults import *
-from geni.util.excep import *
+from geni.util.misc import *
 from geni.util.method import Method
 from geni.util.parameter import Parameter, Mixed
 from geni.util.auth import Auth
 from geni.util.record import GeniRecord
-from geni.util.cert import Keypair, convert_public_key
-from geni.util.gid import *
 from geni.util.debug import log
-from geni.util.misc import *
 
 class register(Method):
     """
@@ -43,10 +46,10 @@ class register(Method):
         # make sure record has a gid
         if 'gid' not in record:
             uuid = create_uuid()
-            pkey = Keypair()
+            pkey = Keypair(create=True)
             if 'keys' in record and record['keys']:
                 pkey = convert_public_key(record['keys'][0])
-                
+            
             gid_object = self.api.auth.hierarchy.create_gid(name, uuid, pkey)
             gid = gid_object.save_to_string(save_parents=True)
             record['gid'] = gid
@@ -102,6 +105,10 @@ class register(Method):
             # What roles should this user have?
             self.api.plshell.AddRoleToPerson(self.api.plauth, 'user', pointer) 
             record.set_pointer(pointer)
+           
+           # Add the user's key
+            if record['keys']:
+               self.api.plshell.AddPersonKey(self.api.plauth, pointer, {'key_type' : 'ssh', 'key' : record['keys'][0]})
 
         elif (type == "node"):
             pl_record = self.api.geni_fields_to_pl_fields(type, name, record)