X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=system%2Fconfig_default.py;h=508f8802bdb9cde1dd69d956ee6ef8087ececcd3;hb=daa6101bf7c504d89de2eb6bbd06821e2f550539;hp=53b43aacad8ae3b1af482dce312feb5621991c23;hpb=3b3d113e498e6a9c1ed0b9d1a12fb9d49c025d5c;p=tests.git diff --git a/system/config_default.py b/system/config_default.py index 53b43aa..508f880 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), }, @@ -340,18 +342,19 @@ def keys (options,index): initscript_by_name="""#!/bin/bash command=$1; shift slicename=$1; shift -stamp="the_script_name" -stampfile=/tmp/$stamp.stamp +stamp="initscript_by_name" +stampfile=/var/tmp/$stamp.stamp +date=$(date) -echo "Running initscript with command=$command and slicename=$slicename" +echo $date "Running initscript with command=$command and slicename=$slicename" function start () { - (echo Starting test initscript: $stamp on slicename $slicename ; date) >> $stampfile - echo "This is the stdout of the sliver $slicename initscript $command (exp. start) pid=$$" - echo "This is the stderr of the sliver $slicename initscript $command (exp. start) pid=$$" 1>&2 + (echo $date Starting test initscript: $stamp on slicename $slicename ; date) >> $stampfile + echo $date "This is the stdout of the sliver $slicename initscript $command (exp. start) pid=$$" + echo $date "This is the stderr of the sliver $slicename initscript $command (exp. start) pid=$$" 1>&2 } function stop () { - echo "Removing stamp $stampfile" + echo $date "Removing stamp $stampfile" rm -f $stampfile } function restart () { @@ -366,18 +369,20 @@ restart) restart ;; esac """ -initscript_by_code=initscript_by_name.replace("the_script_name","the_script_code") +initscript_by_code=initscript_by_name.replace("initscript_by_name","initscript_by_code") # one single initscript in the InitScripts table def initscripts(options,index): return [ { 'initscript_fields' : { 'enabled' : True, - 'name':'the_script_name', + 'name':'initscript_by_name', 'script' : initscript_by_name, }}, ] -# always return 2 slices -# one has an initscript code, the other one an initscript name +# returns 3 slices +# 1 has an initscript code +# 2 has an initscript name +# 3 is an omf-friendly slice def slices (options,index): def theslice (i): slice_spec = { 'slice_fields': {'name':'%s_sl%d'%(login_base(index),i), @@ -391,42 +396,68 @@ def slices (options,index): 'sitename' : login_base(index), 'owner' : 'pi', } - # odd one has an initscript_code - if i%2==1: + # 1st one has an initscript by code + if i%3==1: slice_spec['initscriptcode']=initscript_by_code - slice_spec['initscriptstamp']='the_script_code' - # even one has an initscript (name) + slice_spec['initscriptstamp']='initscript_by_code' + # 2nd one has an initscript by name + elif i%3==2: + slice_spec['initscriptname']='initscript_by_name' + slice_spec['initscriptstamp']='initscript_by_name' + # 3rd one is omf-friendly else: - slice_spec['initscriptname']='the_script_name' - slice_spec['initscriptstamp']='the_script_name' + # potentially turned off with config_no_omf + slice_spec ['omf-friendly'] = True return slice_spec - return [ theslice(i) for i in range (2*index-1,2*index+1) ] + # usual index is 1, additional plc's then get 2... + # so index=1 -> 1 - 2 - 3 + # index=2 -> 4 - 5 - 6 + # 3 * (index-1) + 1 = 3*index-2 .. same+3 = 3*index+1 + return [ theslice(i) for i in range (3*index-2,3*index+1) ] def all_slicenames (options,index): return [ slice['slice_fields']['name'] for slice in slices(options,index)] -def tcp_tests (options,index): - if index == 1: - return [ - # local test - { 'server_node': 'node1', - 'server_slice' : '%s_sl1'%login_base(index), - 'client_node' : 'node1', - 'client_slice' : '%s_sl1'%login_base(index), - 'port' : 2000, - }] - elif index == 2: - return [ - # remote test - { 'server_node': 'node2', - 'server_slice' : '%s_sl3'%login_base(index), - 'client_node' : 'node2', - 'client_slice' : '%s_sl4'%login_base(index), - 'port' : 4000, - }, - ] - else: - return [] +# the logic here is to try: +# . client and server on the same slice/node +# . client and server on the same node but 2 different slices +# if at least 2 plcs, we have 2 nodes, so again on diff. nodes +def tcp_specs (options,index): + # only run the test on the first plc + if index != 1: return None + # + slice1='%s_sl1'%login_base(1) + slice2='%s_sl2'%login_base(1) + # with the addition of omf-friendly slices.. + slice3='%s_sl4'%login_base(2) + slice4='%s_sl5'%login_base(2) +# bind on 0.0.0.0 and try to reach this on localhost +# not expected to work + same_node_same_slice_lo = { 'server_node': 'node1', 'server_slice': slice1, + 'client_node': 'node1', 'client_slice': slice1, + 'client_connect' : 'localhost', + 'port': 10000} + same_node_same_slice = { 'server_node': 'node1', 'server_slice': slice1, + 'client_node': 'node1', 'client_slice': slice1, + 'port': 10001} +# this does not work on vs-nodes.... + same_node_2_slices = { 'server_node': 'node1', 'server_slice': slice1, + 'client_node': 'node1', 'client_slice': slice2, + 'port': 10002} + two_nodes_same_slice = { 'server_node': 'node1', 'server_slice': slice1, + 'client_node': 'node2', 'client_slice': slice3, + 'port': 10003} + two_nodes_2_slices = { 'server_node': 'node1', 'server_slice': slice1, + 'client_node': 'node2', 'client_slice': slice4, + 'port': 10004} + specs = [] +# specs += [ same_node_same_slice_lo ] + specs += [ same_node_same_slice ] +# worth another try + specs += [ same_node_2_slices ] + if options.size >1 : + specs += [ two_nodes_same_slice, two_nodes_2_slices ] + return specs # the semantic for 't_from' and 't_until' here is: # if they are smaller than one year, they are relative to the current time, expressed in grains @@ -452,31 +483,40 @@ def plc (options,index) : 'vservername': 'deferred-vservername', 'vserverip': 'deferred-vserverip', 'role' : 'root', - 'PLC_NAME' : 'Regression TestLab', - 'PLC_ROOT_USER' : 'root@test.onelab.eu', - 'PLC_ROOT_PASSWORD' : 'test++', - 'PLC_SLICE_PREFIX' : 'auto', - 'PLC_SHORTNAME' : 'Rlab', - 'PLC_MAIL_ENABLED':'false', - 'PLC_MAIL_SUPPORT_ADDRESS' : 'thierry.parmentelat@inria.fr', - 'PLC_DB_HOST' : 'deferred-myplc-hostname', -# 'PLC_DB_PASSWORD' : 'mnbvcxzlkjhgfdsapoiuytrewq', - 'PLC_API_HOST' : 'deferred-myplc-hostname', - 'PLC_WWW_HOST' : 'deferred-myplc-hostname', - 'PLC_BOOT_HOST' : 'deferred-myplc-hostname', - 'PLC_NET_DNS1' : 'deferred-dns-1', - 'PLC_NET_DNS2' : 'deferred-dns-2', - 'PLC_RESERVATION_GRANULARITY':1800, + # these go to plc-config-tty + 'settings': { + 'PLC_NAME' : 'Regression TestLab', + 'PLC_ROOT_USER' : 'root@test.onelab.eu', + 'PLC_ROOT_PASSWORD' : 'test++', + 'PLC_SLICE_PREFIX' : 'auto', + 'PLC_HRN_ROOT': sfa_root(index), + 'PLC_SHORTNAME' : 'Rlab', + 'PLC_MAIL_ENABLED':'false', + 'PLC_MAIL_SUPPORT_ADDRESS' : 'thierry.parmentelat@inria.fr', + 'PLC_DB_HOST' : 'deferred-myplc-hostname', +# 'PLC_DB_PASSWORD' : 'mnbvcxzlkjhgfdsapoiuytrewq', + 'PLC_API_HOST' : 'deferred-myplc-hostname', + 'PLC_WWW_HOST' : 'deferred-myplc-hostname', + 'PLC_BOOT_HOST' : 'deferred-myplc-hostname', + 'PLC_NET_DNS1' : 'deferred-dns-1', + 'PLC_NET_DNS2' : 'deferred-dns-2', + 'PLC_RESERVATION_GRANULARITY':1800, + 'PLC_VSYS_DEFAULTS':' , vif_up, vif_down, fd_tuntap, promisc, ', + 'PLC_OMF_ENABLED' : 'true', + 'PLC_OMF_XMPP_SERVER': 'deferred-myplc-hostname', + }, + 'expected_vsys_tags': [ 'vif_up', 'vif_down', 'fd_tuntap', 'promisc', ], # minimal config so the omf plugins actually trigger - 'PLC_OMF_ENABLED' : 'true', - 'PLC_OMF_XMPP_SERVER': 'deferred-myplc-hostname', 'sites' : sites(options,index), 'keys' : keys(options,index), 'initscripts': initscripts(options,index), 'slices' : slices(options,index), - 'tcp_test' : tcp_tests(options,index), + 'tcp_specs' : tcp_specs(options,index), 'sfa' : sfa(options,index), 'leases' : leases (options, index), + # big distros need more time to install nodes + 'ssh_node_boot_timers': (40,38), + 'ssh_node_debug_timers': (10,8), } # NOTE: SFA currently has SFA_AGGREGATE_API_VERSION=2 baked into the code @@ -486,44 +526,51 @@ def sfa (options,index) : # stack config_sfamesh to point to SMs instead 'neighbours-port':12346, ## global sfa-config-tty stuff - 'SFA_REGISTRY_ROOT_AUTH' : sfa_root(index), - 'SFA_INTERFACE_HRN' : sfa_root(index), - 'SFA_REGISTRY_HOST' : 'deferred-myplc-hostname', - 'SFA_AGGREGATE_HOST': 'deferred-myplc-hostname', - 'SFA_SM_HOST': 'deferred-myplc-hostname', - 'SFA_PLC_URL' : 'deferred-myplc-api-url', - 'SFA_PLC_USER' : 'root@test.onelab.eu', - 'SFA_PLC_PASSWORD' : 'test++', + 'settings': { + 'SFA_REGISTRY_ROOT_AUTH' : sfa_root(index), + 'SFA_INTERFACE_HRN' : sfa_root(index), + 'SFA_REGISTRY_HOST' : 'deferred-myplc-hostname', + 'SFA_AGGREGATE_HOST': 'deferred-myplc-hostname', + 'SFA_SM_HOST': 'deferred-myplc-hostname', + 'SFA_PLC_URL' : 'deferred-myplc-api-url', + 'SFA_PLC_USER' : 'root@test.onelab.eu', + 'SFA_PLC_PASSWORD' : 'test++', # use -c sfadebug to increment this one - 'SFA_API_LOGLEVEL': 1, + 'SFA_API_LOGLEVEL': 1, # use -c sfavoid to set this to 'void' - 'SFA_GENERIC_FLAVOUR' : 'pl', - 'SFA_AGGREGATE_ENABLED' : 'true', + 'SFA_GENERIC_FLAVOUR' : 'pl', + 'SFA_AGGREGATE_ENABLED' : 'true', + }, # details of the slices to create 'auth_sfa_specs' : [ test_auth_sfa_spec(options,index,rspec_style) for rspec_style in options.rspec_styles ] } -# rspecstyle is 'pl' for sfav1 or 'pg' for pgv2 +# 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) def full_hrn(x): return "%s.%s"%(hrn_prefix,x) def full_mail(x): return "%s@test.%s"%(x,domain) - # 2 users + # 2 users; we use dashes on purpose, as it might show up in email addresses + pi_alias = 'pi-user' + user_alias = 'regular-user' +# pi_alias = 'pi' +# user_alias = 'user' + # pi_spec = { - 'name': 'pi', - 'email': full_mail ('piuser'), + 'name': pi_alias, + 'email': full_mail (pi_alias), 'key_name': 'key_sfapi', } - user_hrn = full_hrn ('us') user_spec = { - 'name': 'us', - 'email': full_mail ('regularuser'), + '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", @@ -532,7 +579,7 @@ def test_auth_sfa_spec (options,index,rspec_style): slice_spec = { 'name': 'sl', - 'add_options': [ '--researchers', user_hrn, + 'register_options': [ '--researchers', full_hrn (user_alias), # xxx '--extra', "description=SFA-testing-%s"%rspec_style, '--extra', "url=http://slice%d.test.onelab.eu/"%index, @@ -556,6 +603,7 @@ def test_auth_sfa_spec (options,index,rspec_style): def config (plc_specs,options): result=plc_specs + # plc 'index' starts with 1 for i in range (options.size): result.append(plc(options,i+1)) return result