run sfi register rather than sfi add
Thierry Parmentelat [Wed, 30 Apr 2014 12:11:56 +0000 (14:11 +0200)]
fix ambiguity with pl and pg users having the same email address

system/TestAuthSfa.py
system/TestPlc.py
system/TestSliceSfa.py
system/TestUserSfa.py
system/config_default.py
system/macros.py

index d792e33..d8aa1c9 100644 (file)
@@ -110,12 +110,12 @@ class TestAuthSfa:
         utils.header ("(Over)wrote %s"%file_name)
 
     # using sfaadmin to bootstrap
-    def sfa_add_site (self, options):
+    def sfa_register_site (self, options):
         "bootstrap a site using sfaadmin"
         command="sfaadmin reg register -t authority -x %s"%self.auth_hrn()
         return self.test_plc.run_in_guest(command)==0
 
-    def sfa_add_pi (self, options):
+    def sfa_register_pi (self, options):
         "bootstrap a PI user for that site"
         pi_spec = self.auth_sfa_spec['pi_spec']
         pi_hrn=self.obj_hrn(pi_spec['name'])
@@ -138,7 +138,7 @@ class TestAuthSfa:
 
     # user management
     @user_sfa_mapper
-    def sfa_add_user (self, *args, **kwds): pass
+    def sfa_register_user (self, *args, **kwds): pass
     @user_sfa_mapper
     def sfa_update_user (self, *args, **kwds): pass
     @user_sfa_mapper
@@ -182,7 +182,7 @@ class TestAuthSfa:
 
     # those are step names exposed as methods of TestPlc, hence the _sfa
     @slice_sfa_mapper
-    def sfa_add_slice (self, *args, **kwds): pass
+    def sfa_register_slice (self, *args, **kwds): pass
     @slice_sfa_mapper
     def sfa_renew_slice (self, *args, **kwds): pass
     @slice_sfa_mapper
index c589c6e..6584f70 100644 (file)
@@ -148,8 +148,8 @@ class TestPlc:
         'nodestate_reinstall', 'qemu_local_init','bootcd', 'qemu_local_config', SEP,
         'qemu_clean_mine', 'qemu_export', 'qemu_start', 'qemu_timestamp', SEP,
         'sfa_install_all', 'sfa_configure', 'cross_sfa_configure', 'sfa_start', 'sfa_import', SEPSFA,
-        'sfi_configure@1', 'sfa_add_site@1','sfa_add_pi@1', SEPSFA,
-        'sfa_add_user@1', 'sfa_update_user@1', 'sfa_add_slice@1', 'sfa_renew_slice@1', SEPSFA,
+        'sfi_configure@1', 'sfa_register_site@1','sfa_register_pi@1', SEPSFA,
+        'sfa_register_user@1', 'sfa_update_user@1', 'sfa_register_slice@1', 'sfa_renew_slice@1', SEPSFA,
         'sfa_remove_user_from_slice@1','sfi_show_slice_researchers@1', 
         'sfa_insert_user_in_slice@1','sfi_show_slice_researchers@1', SEPSFA,
         'sfa_discover@1', 'sfa_create_slice@1', 'sfa_check_slice_plc@1', 'sfa_update_slice@1', SEPSFA,
@@ -1612,15 +1612,15 @@ class TestPlc:
         return True
 
     @auth_sfa_mapper
-    def sfa_add_site (self): pass
+    def sfa_register_site (self): pass
     @auth_sfa_mapper
-    def sfa_add_pi (self): pass
+    def sfa_register_pi (self): pass
     @auth_sfa_mapper
-    def sfa_add_user(self): pass
+    def sfa_register_user(self): pass
     @auth_sfa_mapper
     def sfa_update_user(self): pass
     @auth_sfa_mapper
-    def sfa_add_slice(self): pass
+    def sfa_register_slice(self): pass
     @auth_sfa_mapper
     def sfa_renew_slice(self): pass
     @auth_sfa_mapper
index d6bedbd..5de9f78 100644 (file)
@@ -39,12 +39,12 @@ class TestSliceSfa:
     # those are step names exposed as methods of TestPlc, hence the _sfa
 
     # needs to be run as pi
-    def sfa_add_slice(self,options):
-        "run sfi add (on Registry)"
-        sfi_command="add"
+    def sfa_register_slice(self,options):
+        "run sfi register (on Registry)"
+        sfi_command="register"
         sfi_command += " --type slice"
         sfi_command += " --xrn %s"%self.hrn()
-        for opt in self.slice_spec['add_options']:
+        for opt in self.slice_spec['register_options']:
             sfi_command += " %s"%(opt)
        return self.test_plc.run_in_guest(self.sfi_pi(sfi_command))==0
 
index de7092d..68530e5 100644 (file)
@@ -25,14 +25,14 @@ class TestUserSfa:
         return self.test_auth_sfa.sfi_user(*args, **kwds)
 
     # xxx todo - not the right place any longer - or is it ?
-    def sfa_add_user (self,options):
-        "add a regular user using sfi add"
+    def sfa_register_user (self,options):
+        "add a regular user using sfi register"
         user_hrn = self.hrn()
-        command="add"
+        command="register"
         command += " --type user"
         command += " --xrn %s"%user_hrn
         command += " --email %s"%self.user_spec['email']
-        command += " " + " ".join(self.user_spec['add_options'])
+        command += " " + " ".join(self.user_spec['register_options'])
         # handle key separately because of embedded whitespace
         # hack - the user's pubkey is avail from his hrn
         command += " -k %s/%s.pub"%(self.sfi_path(),user_hrn)
index 1e6ee0a..b0eabdb 100644 (file)
@@ -10,7 +10,9 @@
 
 # values like 'hostname', 'ip' and the like are rewritten later with a TestPool object
 
-domain="onelab.eu"
+# so that sfa users get different mails whether they are based on pl or pg
+pldomain="onelab.eu"
+pgdomain="emulab.eu"
 
 ### for the sfa dual setup
 def login_base (index): 
@@ -74,14 +76,14 @@ def users (options) :
          'user_fields' : {'first_name':'Admin',
                           'last_name':'Admin',
                           'enabled':'true',
-                          'email':'admin@%s'%domain,
+                          'email':'admin@%s'%pldomain,
                           'password':'testuseradmin'},
          'roles':['admin']},
 
         {'name' : 'pi', 'key_names' : [ 'key_pi' ],
          'user_fields' : {'first_name':'PI', 'last_name':'PI',
                           'enabled':'True',
-                          'email':'fake-pi1@%s'%domain,
+                          'email':'fake-pi1@%s'%pldomain,
                           'password':'testpi'},
          'roles':['pi']},
 
@@ -89,28 +91,28 @@ def users (options) :
          'user_fields' : {'first_name':'PiTech',
                           'last_name':'PiTech',
                           'enabled':'true',
-                          'email':'fake-pi2@%s'%domain,
+                          'email':'fake-pi2@%s'%pldomain,
                           'password':'testusertech'},
          'roles':['pi','tech']},
 
         {'name' : 'tech', 'key_names' : [ 'key_user' ],
          'user_fields' : {'first_name':'Tech', 'last_name':'Tech',
                           'enabled':'true',
-                          'email':'fake-tech1@%s'%domain,
+                          'email':'fake-tech1@%s'%pldomain,
                           'password':'testtech'},
          'roles':['tech']},
 
         {'name':'user', 'key_names' : [ 'key_user' ],
          'user_fields' : {'first_name':'User', 'last_name':'User',
                           'enabled':'true',
-                          'email':'fake-user1@%s'%domain,
+                          'email':'fake-user1@%s'%pldomain,
                           'password':'testuser'},
          'roles':['user']},
 
         {'name':'techuser', 'key_names' : [ 'key_user' ],
          'user_fields' : {'first_name':'UserTech', 'last_name':'UserTech',
                           'enabled':'true',
-                          'email':'fake-tech2@%s'%domain,
+                          'email':'fake-tech2@%s'%pldomain,
                           'password':'testusertech'},
          'roles':['tech','user']},
 
@@ -126,7 +128,7 @@ def sites (options,index):
                                'login_base':login_base(index),
                                'abbreviated_name':'PlanetTest%d'%index,
                                'max_slices':100,
-                               'url':'http://test.%s'%domain,
+                               'url':'http://test.%s'%pldomain,
                                'latitude':float(latitude),
                                'longitude':float(longitude),
                                },
@@ -541,6 +543,7 @@ def sfa (options,index) :
 
 # rspec_style is 'pl' for sfav1 or 'pg' for pgv2
 def test_auth_sfa_spec (options,index,rspec_style):
+    domain=pldomain if rspec_style=='pl' else pgdomain
     # the auth/site part per se
     login_base=sfa_login_base(index,rspec_style)
     hrn_prefix='%s.%s'%(sfa_root(index),login_base)
@@ -562,7 +565,7 @@ def test_auth_sfa_spec (options,index,rspec_style):
         'name':         user_alias,
         'email':        full_mail (user_alias),
         'key_name':     'key_sfauser',
-        'add_options':  [ '--extra',"first_name=Fake",
+        'register_options':  [ '--extra',"first_name=Fake",
                           '--extra',"last_name=SFA-style-%s"%rspec_style,
                           ],
         'update_options': [ '--extra',"enabled=true",
@@ -571,7 +574,7 @@ def test_auth_sfa_spec (options,index,rspec_style):
 
     slice_spec = {
         'name':          'sl',
-        'add_options':  [ '--researchers', full_hrn (user_alias),
+        'register_options':  [ '--researchers', full_hrn (user_alias),
                           # xxx
                           '--extra', "description=SFA-testing-%s"%rspec_style,
                           '--extra', "url=http://slice%d.test.onelab.eu/"%index,
index e2c5d5f..ff7b492 100644 (file)
@@ -19,23 +19,35 @@ sequences['sfa_restart'] = [
     ]
 
 "re-run a complete sfa cycle from a nightly test"
-sequences['sfa'] = [ 
-    'sfa_restart',
-    'sfa_add_site',
-    'sfa_add_pi',
-    'sfa_add_user', 
-    'sfa_add_slice',
+sequences['sfa_populate'] = [ 
+    'sfa_register_site',
+    'sfa_register_pi',
+    'sfa_register_user', 
+    'sfa_update_user', 
+    'sfa_register_slice',
     'sfa_renew_slice',
     'sfa_discover', 
     'sfa_create_slice', 
     'sfa_check_slice_plc', 
     'sfa_update_user',
     'sfa_update_slice', 
+# xxx this behaves weird in this context, needs more care apparently
+# looks like at that point the PI is not allowed, while the regular is allowed to
+# remove himself (!) and to add himself back in (!!)
+#    'sfa_user_slice',
     'sfi_view_all', 
     'sfa_utest', 
+    ]
+
+sequences['sfa-delete'] = [
     'sfa_delete_slice', 
     'sfa_delete_user',
-    ]
+]
+
+sequences['sfa'] = [
+    'sfa_restart',
+    'sfa_populate',
+]
 
 sequences['sfa_create'] = [
     'sfa_plcclean', 
@@ -46,10 +58,10 @@ sequences['sfa_create'] = [
     'sfa_import', 
     'sfi_clean',
     'sfi_configure', 
-    'sfa_add_site',
-    'sfa_add_pi',
-    'sfa_add_user', 
-    'sfa_add_slice',
+    'sfa_register_site',
+    'sfa_register_pi',
+    'sfa_register_user', 
+    'sfa_register_slice',
 ]
 
 sequences['sfa_user_slice'] = [
@@ -76,7 +88,7 @@ sequences['sfa_scratch'] = [
     'nodestate_reinstall', 'qemu_local_init','bootcd', 'qemu_local_config', 
     'qemu_export', 'qemu_kill_mine', 'qemu_start', 'qemu_timestamp', 
     'sfa_install_all', 'sfa_configure', 'cross_sfa_configure', 'sfa_start', 'sfa_import', 
-    'sfi_configure', 'sfa_add_user', 'sfa_add_slice', 'sfa_discover', 
+    'sfi_configure', 'sfa_register_user', 'sfa_register_slice', 'sfa_discover', 
     'sfa_create_slice', 'sfa_check_slice_plc', 
     'sfa_update_user', 'sfa_update_slice', 'sfi_view_all', 'sfa_utest',
 ]
@@ -105,10 +117,10 @@ sequences['sfa_standalone'] = [
     'sfa_start',
     'sfa_import',
     'sfi_configure',
-    'sfa_add_site',
-    'sfa_add_pi',
-    'sfa_add_user',
-    'sfa_add_slice',
+    'sfa_register_site',
+    'sfa_register_pi',
+    'sfa_register_user',
+    'sfa_register_slice',
     'sfi_list',
     'sfi_show_site',
     'sfi_show_slice',