from types import StringTypes
import utils
+from Completer import Completer, CompleterTask
from TestSite import TestSite
-from TestNode import TestNode
+from TestNode import TestNode, CompleterTaskNodeSsh
from TestUser import TestUser
from TestKey import TestKey
from TestSlice import TestSlice
from TestApiserver import TestApiserver
from TestAuthSfa import TestAuthSfa
from PlcapiUrlScanner import PlcapiUrlScanner
-from Completer import Completer, CompleterTask
has_sfa_cache_filename="sfa-cache"
tasks += slice_method (test_slice, self.options)
return Completer (tasks).run (decorator_self.timeout, decorator_self.silent, decorator_self.period)
# restore the doc text from the TestSlice method even if a bit odd
+ wrappee.__name__ = method.__name__
wrappee.__doc__ = slice_method.__doc__
return wrappee
'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,
- 'sfi_list@1', 'sfi_show@1', 'sfa_utest@1', SEPSFA,
+ 'sfi_list@1', 'sfi_show_site@1', 'sfa_utest@1', SEPSFA,
# we used to run plcsh_stress_test, and then ssh_node_debug and ssh_node_boot
# but as the stress test might take a while, we sometimes missed the debug mode..
+ 'probe_kvm_iptables',
'ping_node', 'ssh_node_debug', 'plcsh_stress_test@1', SEP,
'ssh_node_boot', 'node_bmlogs', 'ssh_slice', 'ssh_slice_basics', 'check_initscripts_ignore', SEP,
'ssh_slice_sfa@1', 'sfa_delete_slice@1', 'sfa_delete_user@1', SEPSFA,
'cross_check_tcp@1', 'check_system_slice', SEP,
# check slices are turned off properly
- 'empty_slices', 'ssh_slice_off', SEP,
+ 'empty_slices', 'ssh_slice_off', 'slice_fs_deleted_ignore', SEP,
# check they are properly re-created with the same name
'fill_slices', 'ssh_slice_again_ignore', SEP,
'gather_logs_force', SEP,
'sfa_plcclean', 'sfa_dbclean', 'sfa_stop','sfa_uninstall', 'sfi_clean', SEPSFA,
'plc_db_dump' , 'plc_db_restore', SEP,
'check_netflow','check_drl', SEP,
- 'debug_nodemanager', SEP,
+ 'debug_nodemanager', 'slice_fs_present', SEP,
'standby_1_through_20','yes','no',SEP,
]
def nodes_booted(self):
return self.nodes_check_boot_state('boot',timeout_minutes=30,silent_minutes=28)
+ def probe_kvm_iptables (self):
+ (_,kvmbox) = self.all_node_infos()[0]
+ TestSsh(kvmbox).run("iptables-save")
+ return True
+
# probing nodes
def check_nodes_ping(self,timeout_seconds=120,period_seconds=10):
class CompleterTaskPingNode (CompleterTask):
return self.check_nodes_ping ()
def check_nodes_ssh(self,debug,timeout_minutes,silent_minutes,period_seconds=15):
- class CompleterTaskNodeSsh (CompleterTask):
- def __init__ (self, hostname, qemuname, boot_state, local_key):
- self.hostname=hostname
- self.qemuname=qemuname
- self.boot_state=boot_state
- self.local_key=local_key
- def run (self, silent):
- command = TestSsh (self.hostname,key=self.local_key).actual_command("hostname;uname -a")
- return utils.system (command, silent=silent)==0
- def failure_message (self):
- return "Cannot reach %s @ %s in %s mode"%(self.hostname, self.qemuname, self.boot_state)
-
# various delays
timeout = timedelta(minutes=timeout_minutes)
graceout = timedelta(minutes=silent_minutes)
local_key = "keys/key_admin.rsa"
utils.header("checking ssh access to nodes (expected in %s mode)"%message)
node_infos = self.all_node_infos()
- tasks = [ CompleterTaskNodeSsh (nodename, qemuname, message, local_key) \
+ tasks = [ CompleterTaskNodeSsh (nodename, qemuname, local_key, boot_state=message) \
for (nodename,qemuname) in node_infos ]
return Completer (tasks).run (timeout, graceout, period)
def ssh_slice(self): pass
@slice_mapper__tasks(20,19,15)
def ssh_slice_off (self): pass
+ @slice_mapper__tasks(2,1,15)
+ def slice_fs_present(self): pass
+ @slice_mapper__tasks(2,1,15)
+ def slice_fs_deleted(self): pass
# use another name so we can exclude/ignore it from the tests on the nightly command line
def ssh_slice_again(self): return self.ssh_slice()
- # note that simply doing ssh_slice_again=ssh_slice would kind od work too
+ # note that simply doing ssh_slice_again=ssh_slice would kind of work too
# but for some reason the ignore-wrapping thing would not
@slice_mapper
def ssh_slice_basics(self): pass
-
@slice_mapper
def check_vsys_defaults(self): pass
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
@auth_sfa_mapper
def sfa_update_slice(self): pass
@auth_sfa_mapper
+ def sfa_remove_user_from_slice(self): pass
+ @auth_sfa_mapper
+ def sfa_insert_user_in_slice(self): pass
+ @auth_sfa_mapper
def sfi_list(self): pass
@auth_sfa_mapper
- def sfi_show(self): pass
+ def sfi_show_site(self): pass
+ @auth_sfa_mapper
+ def sfi_show_slice(self): pass
+ @auth_sfa_mapper
+ def sfi_show_slice_researchers(self): pass
@auth_sfa_mapper
def ssh_slice_sfa(self): pass
@auth_sfa_mapper