X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=system%2FTestPlc.py;h=e3bd111d4c9925d87e165206880b75ed5b6c0468;hb=4f7c5ebe7453633c93c7f93e41bb4c4be5e1c41a;hp=fe0ec2ede6fab1b8215924005a19f177258f18ba;hpb=a7835abe1142a166b9a4cf7e49dd8313883acfbd;p=tests.git diff --git a/system/TestPlc.py b/system/TestPlc.py index fe0ec2e..e3bd111 100644 --- a/system/TestPlc.py +++ b/system/TestPlc.py @@ -85,6 +85,9 @@ class TestPlc: 'plc_install', 'plc_configure', 'plc_start', SEP, 'keys_fetch', 'keys_store', 'keys_clear_known_hosts', 'speed_up_slices', SEP, 'initscripts', 'sites', 'nodes', 'slices', 'nodegroups', 'leases', SEP, +# slices created under plcsh interactively seem to be fine but these ones don't have the tags +# keep this our of the way for now +# 'check_vsys_defaults', SEP, 'nodestate_reinstall', 'qemu_local_init','bootcd', 'qemu_local_config', SEP, 'qemu_export', 'qemu_kill_mine', 'qemu_start', 'timestamp_qemu', SEP, 'sfa_install_all', 'sfa_configure', 'cross_sfa_configure', 'sfa_start', 'sfa_import', SEPSFA, @@ -152,6 +155,8 @@ class TestPlc: self.vservername=plc_spec['vservername'] self.url="https://%s:443/PLCAPI/"%plc_spec['vserverip'] self.apiserver=TestApiserver(self.url,options.dry_run) + (self.ssh_node_boot_timeout,self.ssh_node_boot_silent)=plc_spec['ssh_node_boot_timers'] + (self.ssh_node_debug_timeout,self.ssh_node_debug_silent)=plc_spec['ssh_node_debug_timers'] def has_addresses_api (self): return self.apiserver.has_method('AddIpAddress') @@ -389,9 +394,16 @@ class TestPlc: self.show_pass (2) return True + # uggly hack to make sure 'run export' only reports about the 1st plc + # to avoid confusion - also we use 'inri_slice1' in various aliases.. + exported_id=1 def export (self): "print cut'n paste-able stuff to export env variables to your shell" # guess local domain from hostname + if TestPlc.exported_id>1: + print "export GUESTHOSTNAME%d=%s"%(TestPlc.exported_id,self.plc_spec['vservername']) + return True + TestPlc.exported_id+=1 domain=socket.gethostname().split('.',1)[1] fqdn="%s.%s"%(self.plc_spec['host_box'],domain) print "export BUILD=%s"%self.options.buildname @@ -630,6 +642,7 @@ class TestPlc: 'PLC_RESERVATION_GRANULARITY', 'PLC_OMF_ENABLED', 'PLC_OMF_XMPP_SERVER', + 'PLC_VSYS_DEFAULTS', ]: fileconf.write ('e %s\n%s\n'%(var,self.plc_spec[var])) fileconf.write('w\n') @@ -715,7 +728,7 @@ class TestPlc: def delete_all_sites (self): "Delete all sites in PLC, and related objects" print 'auth_root',self.auth_root() - sites = self.apiserver.GetSites(self.auth_root(), {}, ['site_id']) + sites = self.apiserver.GetSites(self.auth_root(), {}, ['site_id','login_base']) for site in sites: # keep automatic site - otherwise we shoot in our own foot, root_auth is not valid anymore if site['login_base']==self.plc_spec['PLC_SLICE_PREFIX']: continue @@ -1005,11 +1018,15 @@ class TestPlc: def ssh_node_debug(self): "Tries to ssh into nodes in debug mode with the debug ssh key" - return self.check_nodes_ssh(debug=True,timeout_minutes=10,silent_minutes=8) + return self.check_nodes_ssh(debug=True, + timeout_minutes=self.ssh_node_debug_timeout, + silent_minutes=self.ssh_node_debug_silent) def ssh_node_boot(self): "Tries to ssh into nodes in production mode with the root ssh key" - return self.check_nodes_ssh(debug=False,timeout_minutes=40,silent_minutes=38) + return self.check_nodes_ssh(debug=False, + timeout_minutes=self.ssh_node_boot_timeout, + silent_minutes=self.ssh_node_boot_silent) @node_mapper def qemu_local_init (self): pass @@ -1116,6 +1133,9 @@ class TestPlc: @slice_mapper def ssh_slice_off (self): pass + @slice_mapper + def check_vsys_defaults(self): pass + @node_mapper def keys_clear_known_hosts (self): pass @@ -1286,10 +1306,15 @@ class TestPlc: def sfa_dbclean(self): "thoroughly wipes off the SFA database" - return self.run_in_guest("sfaadmin.py registry nuke")==0 or \ + return self.run_in_guest("sfaadmin reg nuke")==0 or \ self.run_in_guest("sfa-nuke.py")==0 or \ self.run_in_guest("sfa-nuke-plc.py")==0 + def sfa_fsclean(self): + "cleanup /etc/sfa/trusted_roots and /var/lib/sfa" + self.run_in_guest("rm -rf /etc/sfa/trusted_roots /var/lib/sfa/authorities") + return True + def sfa_plcclean(self): "cleans the PLC entries that were created as a side effect of running the script" # ignore result @@ -1347,7 +1372,7 @@ class TestPlc: if not os.path.isdir(dirname): utils.system("mkdir -p %s"%dirname) if not os.path.isdir(dirname): - raise "Cannot create config dir for plc %s"%self.name() + raise Exception,"Cannot create config dir for plc %s"%self.name() return dirname def conffile(self,filename): @@ -1431,10 +1456,10 @@ class TestPlc: and self.test_ssh.copy_abs(reg_fname,'/%s/etc/sfa/registries.xml'%self.vm_root_in_host())==0 def sfa_import(self): - "sfa-import-plc" + "use sfaadmin to import from plc" auth=self.plc_spec['sfa']['SFA_REGISTRY_ROOT_AUTH'] return \ - self.run_in_guest('sfaadmin.py reg import_registry')==0 + self.run_in_guest('sfaadmin reg import_registry')==0 # not needed anymore # self.run_in_guest('cp /etc/sfa/authorities/%s/%s.pkey /etc/sfa/authorities/server.key'%(auth,auth))