X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=system%2FTestPlc.py;h=9c2165ade4df209dfc987f71e74610ef1b6c1d8b;hb=fd0c68a3bb7e7cdc0f1e60f51e6c72ee618fba31;hp=177cad6dec6838e71b176a7fb5c04331bc9038f9;hpb=ebb13397ac064e2d85861908fa68523d2c1aa942;p=tests.git diff --git a/system/TestPlc.py b/system/TestPlc.py index 177cad6..9c2165a 100644 --- a/system/TestPlc.py +++ b/system/TestPlc.py @@ -162,13 +162,15 @@ class TestPlc: 'check_vsys_defaults_ignore', SEP, # run this first off so it's easier to re-run on another qemu box 'qemu_kill_mine', 'nodestate_reinstall', 'qemu_local_init','bootcd', 'qemu_local_config', SEP, - 'qemu_clean_mine', 'qemu_export', 'qemu_start', 'qemu_timestamp', SEP, + 'qemu_clean_mine', 'qemu_export', 'qemu_cleanlog', SEP, + 'qemu_start', 'qemu_timestamp', 'qemu_nodefamily', SEP, 'sfa_install_all', 'sfa_configure', 'cross_sfa_configure', 'sfa_start', 'sfa_import', 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_rspec@1', 'sfa_allocate@1', 'sfa_provision@1', SEPSFA, + 'sfa_discover@1', 'sfa_rspec@1', SEPSFA, + 'sfa_allocate@1', 'sfa_provision@1', 'sfa_describe@1', SEPSFA, 'sfa_check_slice_plc@1', 'sfa_update_slice@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 @@ -195,7 +197,10 @@ class TestPlc: 'delete_sites', 'delete_nodes', 'delete_slices', 'keys_clean', SEP, 'delete_leases', 'list_leases', SEP, 'populate', SEP, - 'nodestate_show','nodestate_safeboot','nodestate_boot', SEP, + 'nodestate_show','nodestate_safeboot','nodestate_boot', 'nodestate_upgrade', SEP, + 'nodeflavour_show','nodedistro_f14','nodedistro_f18', SEP, + 'nodedistro_f20', 'nodedistro_f21','nodedistro_f22', SEP, + 'nodeplain_on','nodeplain_off','nodeplain_show', SEP, 'qemu_list_all', 'qemu_list_mine', 'qemu_kill_all', SEP, 'sfa_install_core', 'sfa_install_sfatables', 'sfa_install_plc', 'sfa_install_client', SEPSFA, 'sfa_plcclean', 'sfa_dbclean', 'sfa_stop','sfa_uninstall', 'sfi_clean', SEPSFA, @@ -204,6 +209,7 @@ class TestPlc: 'check_netflow','check_drl', SEP, 'debug_nodemanager', 'slice_fs_present', SEP, 'standby_1_through_20','yes','no',SEP, + 'install_syslinux6', 'bonding_builds', 'bonding_nodes', SEP, ] default_bonding_steps = [ 'bonding_init_partial', @@ -706,8 +712,7 @@ class TestPlc: ### install_rpm def plc_install(self): """ - yum install myplc, noderepo - plain bootstrapfs is not installed anymore + yum install myplc, noderepo + plain bootstrapfs as well """ # compute nodefamily @@ -723,9 +728,43 @@ class TestPlc: pkgs_list.append("slicerepo-{}".format(nodefamily)) pkgs_list.append("myplc") pkgs_list.append("noderepo-{}".format(nodefamily)) + pkgs_list.append("nodeimage-{}-plain".format(nodefamily)) pkgs_string=" ".join(pkgs_list) return self.yum_install(pkgs_list) + def install_syslinux6(self): + """ + install syslinux6 from the fedora21 release + """ + key = 'http://mirror.onelab.eu/keys/RPM-GPG-KEY-fedora-21-primary' + + rpms = [ + 'http://mirror.onelab.eu/fedora/releases/21/Everything/x86_64/os/Packages/s/syslinux-6.03-1.fc21.x86_64.rpm', + 'http://mirror.onelab.eu/fedora/releases/21/Everything/x86_64/os/Packages/s/syslinux-nonlinux-6.03-1.fc21.noarch.rpm', + 'http://mirror.onelab.eu/fedora/releases/21/Everything/x86_64/os/Packages/s/syslinux-perl-6.03-1.fc21.x86_64.rpm', + ] + # this can be done several times + self.run_in_guest("rpm --import {key}".format(**locals())) + return self.run_in_guest("yum -y localinstall {}".format(" ".join(rpms))) == 0 + + def bonding_builds(self): + """ + list /etc/yum.repos.d on the myplc side + """ + self.run_in_guest("ls /etc/yum.repos.d/*partial.repo") + return True + + def bonding_nodes(self): + """ + List nodes known to the myplc together with their nodefamiliy + """ + print("---------------------------------------- nodes") + for node in self.apiserver.GetNodes(self.auth_root()): + print("{} -> {}".format(node['hostname'], + self.apiserver.GetNodeFlavour(self.auth_root(),node['hostname'])['nodefamily'])) + print("---------------------------------------- nodes") + + ### def mod_python(self): """yum install mod_python, useful on f18 and above so as to avoid broken wsgi""" @@ -1090,7 +1129,7 @@ class TestPlc: return True # probing nodes - def check_nodes_ping(self, timeout_seconds=30, period_seconds=10): + def check_nodes_ping(self, timeout_seconds=60, period_seconds=10): class CompleterTaskPingNode(CompleterTask): def __init__(self, hostname): self.hostname = hostname @@ -1155,15 +1194,37 @@ class TestPlc: @node_mapper def qemu_local_config(self): pass @node_mapper + def qemu_export(self): pass + @node_mapper + def qemu_cleanlog(self): pass + @node_mapper def nodestate_reinstall(self): pass @node_mapper + def nodestate_upgrade(self): pass + @node_mapper def nodestate_safeboot(self): pass @node_mapper def nodestate_boot(self): pass @node_mapper def nodestate_show(self): pass @node_mapper - def qemu_export(self): pass + def nodedistro_f14(self): pass + @node_mapper + def nodedistro_f18(self): pass + @node_mapper + def nodedistro_f20(self): pass + @node_mapper + def nodedistro_f21(self): pass + @node_mapper + def nodedistro_f22(self): pass + @node_mapper + def nodeflavour_show(self): pass + @node_mapper + def nodeplain_on(self): pass + @node_mapper + def nodeplain_off(self): pass + @node_mapper + def nodeplain_show(self): pass ### check hooks : invoke scripts from hooks/{node,slice} def check_hooks_node(self): @@ -1330,6 +1391,9 @@ class TestPlc: @node_mapper def qemu_timestamp(self) : pass + @node_mapper + def qemu_nodefamily(self): pass + # when a spec refers to a node possibly on another plc def locate_sliver_obj_cross(self, nodename, slicename, other_plcs): for plc in [ self ] + other_plcs: @@ -1713,6 +1777,8 @@ class TestPlc: @auth_sfa_mapper def sfa_provision_empty(self): pass @auth_sfa_mapper + def sfa_describe(self): pass + @auth_sfa_mapper def sfa_check_slice_plc(self): pass @auth_sfa_mapper def sfa_check_slice_plc_empty(self): pass