bugfix when user has no key
authorSaint-Marcel Frederic <frederic.saint-marcel@inria.fr>
Tue, 20 May 2014 11:57:45 +0000 (13:57 +0200)
committerSaint-Marcel Frederic <frederic.saint-marcel@inria.fr>
Tue, 20 May 2014 11:57:45 +0000 (13:57 +0200)
sfa/iotlab/iotlabdriver.py
sfa/iotlab/iotlabslices.py

index e5ef90a..03ecca5 100644 (file)
@@ -179,12 +179,12 @@ class IotlabDriver(Driver):
                                             " %(user_dict))
             hrn = user_dict['hrn']
             person_urn = hrn_to_urn(hrn, 'user')
-            pubkey = user_dict['pkey']
             try:
+                pubkey = user_dict['pkey']
                 pkey = convert_public_key(pubkey)
             except TypeError:
                 #key not good. create another pkey
-                logger.warn('__add_person_to_db: unable to convert public \
+                logger.warn('__add_person_to_db: no public key or unable to convert public \
                                     key for %s' %(hrn ))
                 pkey = Keypair(create=True)
 
@@ -202,7 +202,7 @@ class IotlabDriver(Driver):
             user_record = RegUser(hrn=hrn , pointer= '-1', \
                                     authority=get_authority(hrn), \
                                     email=user_dict['email'], gid = person_gid)
-            user_record.reg_keys = [RegKey(user_dict['pkey'])]
+            #user_record.reg_keys = [RegKey(user_dict['pkey'])]
             user_record.just_created()
             self.api.dbsession().add (user_record)
             self.api.dbsession().commit()
index 91d89ed..3f5c340 100644 (file)
@@ -501,8 +501,9 @@ class IotlabSlices:
             for k in k_list:
                 if k in added_user:
                     person[k] = added_user[k]
-
-            person['pkey'] = added_user['keys'][0]
+            # bug user without key
+            if added_user['keys']:
+                person['pkey'] = added_user['keys'][0]
             person['mail'] = added_user['email']
             person['email'] = added_user['email']
             person['key_ids'] = added_user.get('key_ids', [])