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 () {
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),
'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)]
#
slice1='%s_sl1'%login_base(1)
slice2='%s_sl2'%login_base(1)
- slice3='%s_sl3'%login_base(2)
- slice4='%s_sl4'%login_base(2)
+ # 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,
'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_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, ',
+ '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',
'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
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