From 5d45fc9b92d7ea2645986c91ef7d068a6ee55729 Mon Sep 17 00:00:00 2001 From: Thierry Parmentelat Date: Wed, 30 Apr 2014 14:11:56 +0200 Subject: [PATCH] run sfi register rather than sfi add fix ambiguity with pl and pg users having the same email address --- system/TestAuthSfa.py | 8 ++++---- system/TestPlc.py | 12 +++++------ system/TestSliceSfa.py | 8 ++++---- system/TestUserSfa.py | 8 ++++---- system/config_default.py | 23 ++++++++++++--------- system/macros.py | 44 +++++++++++++++++++++++++--------------- 6 files changed, 59 insertions(+), 44 deletions(-) diff --git a/system/TestAuthSfa.py b/system/TestAuthSfa.py index d792e33..d8aa1c9 100644 --- a/system/TestAuthSfa.py +++ b/system/TestAuthSfa.py @@ -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 diff --git a/system/TestPlc.py b/system/TestPlc.py index c589c6e..6584f70 100644 --- a/system/TestPlc.py +++ b/system/TestPlc.py @@ -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 diff --git a/system/TestSliceSfa.py b/system/TestSliceSfa.py index d6bedbd..5de9f78 100644 --- a/system/TestSliceSfa.py +++ b/system/TestSliceSfa.py @@ -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 diff --git a/system/TestUserSfa.py b/system/TestUserSfa.py index de7092d..68530e5 100644 --- a/system/TestUserSfa.py +++ b/system/TestUserSfa.py @@ -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) diff --git a/system/config_default.py b/system/config_default.py index 1e6ee0a..b0eabdb 100644 --- a/system/config_default.py +++ b/system/config_default.py @@ -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, diff --git a/system/macros.py b/system/macros.py index e2c5d5f..ff7b492 100644 --- a/system/macros.py +++ b/system/macros.py @@ -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', -- 2.43.0