From: Thierry Parmentelat Date: Fri, 25 Mar 2011 06:15:28 +0000 (+0100) Subject: check sfa slice right away with plcapi X-Git-Tag: tests-5.0-27~7 X-Git-Url: http://git.onelab.eu/?a=commitdiff_plain;h=01160a82d449b89bc2c66b2d788bb973a0b75a6f;p=tests.git check sfa slice right away with plcapi --- diff --git a/system/TestApiserver.py b/system/TestApiserver.py index d0cdc8c..29bdebc 100644 --- a/system/TestApiserver.py +++ b/system/TestApiserver.py @@ -41,6 +41,7 @@ server_methods = [ ('GetNodes' , []), ('AddPersonKey' , True), ('GetPlcRelease', {'build': {'target-arch':'i386'}}), ('GetSites', []), + ('GetSlices', [{'name':'dry_run_slice'}]), ('GetLeaseGranularity', 180), ('AddLeases', True), ('GetLeases', []), diff --git a/system/TestPlc.py b/system/TestPlc.py index ff24c3b..020ac25 100644 --- a/system/TestPlc.py +++ b/system/TestPlc.py @@ -92,7 +92,8 @@ class TestPlc: 'initscripts', 'sites', 'nodes', 'slices', 'nodegroups', 'leases', SEP, 'nodestate_reinstall', 'qemu_local_init','bootcd', 'qemu_local_config', 'qemu_export', 'qemu_kill_all', 'qemu_start', SEP, 'sfa_install', 'sfa_configure', 'cross_sfa_configure', 'sfa_import', 'sfa_start', SEPSFA, - 'sfi_configure@1', 'sfa_add_user@1', 'sfa_add_slice@1', 'sfa_discover@1', 'sfa_create_slice@1', SEPSFA, + 'sfi_configure@1', 'sfa_add_user@1', 'sfa_add_slice@1', 'sfa_discover@1', SEPSFA, + 'sfa_create_slice@1', 'sfa_check_slice_plc', SEPSFA, 'sfa_update_user@1', 'sfa_update_slice@1', 'sfa_view@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.. @@ -1204,7 +1205,7 @@ class TestPlc: return True def aggregate_xml_line(self): - return '' % \ + return '' % \ (self.vserverip,self.plc_spec['sfa']['SFA_REGISTRY_ROOT_AUTH']) def registry_xml_line(self): @@ -1332,6 +1333,11 @@ class TestPlc: "run sfi.py create (on SM) - 1st time" pass + @slice_sfa_mapper + def sfa_check_slice_plc(self): + "check sfa_create_slice at the plcs - all local nodes should be in slice" + pass + @slice_sfa_mapper def sfa_update_slice(self): "run sfi.py create (on SM) on existing object" diff --git a/system/TestSliceSfa.py b/system/TestSliceSfa.py index bfef852..43161d6 100644 --- a/system/TestSliceSfa.py +++ b/system/TestSliceSfa.py @@ -43,28 +43,42 @@ class TestSliceSfa: return self.test_plc.run_in_guest("sfi.py -d /root/.sfi/ add slice.xml")==0 def sfa_discover(self,options): - auth=self.test_plc.plc_spec['sfa']['SFA_REGISTRY_ROOT_AUTH'] return self.test_plc.run_in_guest("sfi.py -d /root/.sfi/ resources -o /root/.sfi/resources_in.rspec")==0 def sfa_create_slice(self,options): - auth=self.test_plc.plc_spec['sfa']['SFA_REGISTRY_ROOT_AUTH'] + root_auth=self.test_plc.plc_spec['sfa']['SFA_REGISTRY_ROOT_AUTH'] commands=[ "sfiListNodes.py -i /root/.sfi/resources_in.rspec -o /root/.sfi/all_nodes.txt", "sfiAddSliver.py -i /root/.sfi/resources_in.rspec -n /root/.sfi/all_nodes.txt -o /root/.sfi/resources_out.rspec", - "sfi.py -d /root/.sfi/ create %s.%s.%s resources_out.rspec"%(auth,self.login_base,self.slicename), + "sfi.py -d /root/.sfi/ create %s.%s.%s resources_out.rspec"%(root_auth,self.login_base,self.slicename), ] for command in commands: if self.test_plc.run_in_guest(command)!=0: return False return True + # all local nodes in slice ? + def sfa_check_slice_plc (self,options): + slice_fields = self.slice_spec['slice_fields'] + slice_name = slice_fields['name'] + slice=self.test_plc.apiserver.GetSlices(self.test_plc.auth_root(), slice_name)[0] + nodes=self.test_plc.apiserver.GetNodes(self.test_plc.auth_root(), {'peer_id':None}) + result=True + for node in nodes: + if node['node_id'] in slice['node_ids']: + utils.header("local node %s found in slice %s"%(node['hostname'],slice['name'])) + else: + utils.header("ERROR - local node %s NOT FOUND in slice %s"%(node['hostname'],slice['name'])) + result=False + return result + # actually the same for now def sfa_update_slice(self,options): return self.sfa_create_slice(options) def sfa_delete_slice(self,options): - auth=self.test_plc.plc_spec['sfa']['SFA_REGISTRY_ROOT_AUTH'] - self.test_plc.run_in_guest("sfi.py -d /root/.sfi/ delete %s.%s.%s"%(auth,self.login_base,self.slicename)) - return self.test_plc.run_in_guest("sfi.py -d /root/.sfi/ remove -t slice %s.%s.%s"%(auth,self.login_base,self.slicename))==0 + root_auth=self.test_plc.plc_spec['sfa']['SFA_REGISTRY_ROOT_AUTH'] + self.test_plc.run_in_guest("sfi.py -d /root/.sfi/ delete %s.%s.%s"%(root_auth,self.login_base,self.slicename)) + return self.test_plc.run_in_guest("sfi.py -d /root/.sfi/ remove -t slice %s.%s.%s"%(root_auth,self.login_base,self.slicename))==0 # check the resulting sliver def ssh_slice_sfa(self,options,timeout_minutes=40,silent_minutes=30,period=15):