From 9c9702820a87069e6da271b1ba564ed50bfb802f Mon Sep 17 00:00:00 2001 From: Thierry Parmentelat Date: Mon, 27 Sep 2010 16:59:10 +0200 Subject: [PATCH] use slice_sfa_mapper on sfa operations --- system/TestPlc.py | 77 ++++++++++++++++++------------------------ system/TestSliceSfa.py | 10 +++--- 2 files changed, 39 insertions(+), 48 deletions(-) diff --git a/system/TestPlc.py b/system/TestPlc.py index 07c5692..acb5d07 100644 --- a/system/TestPlc.py +++ b/system/TestPlc.py @@ -52,7 +52,7 @@ def node_mapper (method): actual.__doc__=method.__doc__ return actual -def slice_mapper_options (method): +def slice_mapper (method): def actual(self): overall=True slice_method = TestSlice.__dict__[method.__name__] @@ -66,15 +66,14 @@ def slice_mapper_options (method): actual.__doc__=method.__doc__ return actual -def slice_mapper_options_sfa (method): +def slice_sfa_mapper (method): def actual(self): - test_plc=self overall=True slice_method = TestSliceSfa.__dict__[method.__name__] for slice_spec in self.plc_spec['sfa']['sfa_slice_specs']: site_spec = self.locate_site (slice_spec['sitename']) test_site = TestSite(self,site_spec) - test_slice=TestSliceSfa(test_plc,test_site,slice_spec) + test_slice=TestSliceSfa(self,test_site,slice_spec) if not slice_method(test_slice,self.options): overall=False return overall # restore the doc text @@ -96,11 +95,9 @@ class TestPlc: # better use of time: do this now that the nodes are taking off 'plcsh_stress_test', SEP, 'install_sfa', 'configure_sfa', 'cross_configure_sfa', 'import_sfa', 'start_sfa', SEPSFA, -# xxx tmp - working on focusing on one side only -# 'configure_sfi@1', 'add_sfa@1', 'update_sfa', 'view_sfa', SEPSFA, - 'configure_sfi', 'add_sfa', 'update_sfa', 'view_sfa', SEPSFA, + 'configure_sfi@1', 'add_sfa@1', 'create_sfa@1', 'update_sfa@1', 'view_sfa@1', SEPSFA, 'nodes_ssh_debug', 'nodes_ssh_boot', 'check_slice', 'check_initscripts', SEPSFA, - 'check_slice_sfa', 'delete_sfa', 'stop_sfa', SEPSFA, + 'check_slice_sfa@1', 'delete_sfa_user@1', 'delete_sfa_slices@1', SEPSFA, 'check_tcp', 'check_hooks', SEP, 'force_gather_logs', 'force_resources_post', SEP, ] @@ -112,7 +109,7 @@ class TestPlc: 'clean_leases', 'list_leases', SEP, 'populate' , SEP, 'list_all_qemus', 'list_qemus', 'kill_qemus', SEP, - 'plcclean_sfa', 'dbclean_sfa', 'logclean_sfa', 'uninstall_sfa', 'clean_sfi', SEP, + 'plcclean_sfa', 'dbclean_sfa', 'stop_sfa','uninstall_sfa', 'clean_sfi', SEP, 'db_dump' , 'db_restore', SEP, 'standby_1 through 20',SEP, ] @@ -1014,7 +1011,7 @@ class TestPlc: utils.header('Created Slice %s'%slice['slice_fields']['name']) return True - @slice_mapper_options + @slice_mapper def check_slice(self): "tries to ssh-enter the slice with the user key, to ensure slice creation" pass @@ -1091,15 +1088,12 @@ class TestPlc: print "REMEMBER TO RUN import_sfa AGAIN" return True - def logclean_sfa(self): - self.run_in_guest("rm -rf /var/log/sfa_access.log /var/log/sfa_import_plc.log /var/log/sfa.daemon") - return True - def uninstall_sfa(self): "uses rpm to uninstall sfa - ignore result" self.run_in_guest("rpm -e sfa sfa-sfatables sfa-client sfa-plc") self.run_in_guest("rm -rf /var/lib/sfa") self.run_in_guest("rm -rf /etc/sfa") + self.run_in_guest("rm -rf /var/log/sfa_access.log /var/log/sfa_import_plc.log /var/log/sfa.daemon") return True ### @@ -1198,6 +1192,7 @@ class TestPlc: fileconf=open(file_name,'w') fileconf.write (self.plc_spec['keys'][0]['private']) fileconf.close() + utils.header ("(Over)wrote %s"%file_name) file_name=dir_name + os.sep + 'sfi_config' fileconf=open(file_name,'w') @@ -1214,6 +1209,7 @@ class TestPlc: fileconf.write ("SFI_SM='%s'"%SFI_SM) fileconf.write('\n') fileconf.close() + utils.header ("(Over)wrote %s"%file_name) file_name=dir_name + os.sep + 'person.xml' fileconf=open(file_name,'w') @@ -1222,6 +1218,7 @@ class TestPlc: fileconf.write(person_record) fileconf.write('\n') fileconf.close() + utils.header ("(Over)wrote %s"%file_name) file_name=dir_name + os.sep + 'slice.xml' fileconf=open(file_name,'w') @@ -1230,6 +1227,7 @@ class TestPlc: #slice_record=sfa_spec['sfa_slice_xml'] fileconf.write(slice_record) fileconf.write('\n') + utils.header ("(Over)wrote %s"%file_name) fileconf.close() file_name=dir_name + os.sep + 'slice.rspec' @@ -1240,6 +1238,9 @@ class TestPlc: fileconf.write(slice_rspec) fileconf.write('\n') fileconf.close() + utils.header ("(Over)wrote %s"%file_name) + + # push to the remote root's .sfi location = "root/.sfi" remote="/vservers/%s/%s"%(self.vservername,location) self.test_ssh.copy_abs(dir_name, remote, recursive=True) @@ -1250,30 +1251,20 @@ class TestPlc: self.run_in_guest("rm -rf /root/.sfi") return True + @slice_sfa_mapper def add_sfa(self): - "run sfi.py add (on Registry) and sfi.py create (on SM) to form new objects" - test_user_sfa=TestUserSfa(self) - if not test_user_sfa.add_user(): return False + "run sfi.py add (on Registry)" + pass - for slice_spec in self.plc_spec['sfa']['sfa_slice_specs']: - site_spec = self.locate_site (slice_spec['sitename']) - test_site = TestSite(self,site_spec) - test_slice_sfa=TestSliceSfa(self,test_site,slice_spec) - if not test_slice_sfa.add_slice(): return False - if not test_slice_sfa.create_slice(): return False - return True + @slice_sfa_mapper + def create_sfa(self): + "run sfi.py create (on SM) for 1st-time creation" + pass + @slice_sfa_mapper def update_sfa(self): - "run sfi.py update (on Registry) and sfi.py create (on SM) on existing objects" - test_user_sfa=TestUserSfa(self) - if not test_user_sfa.update_user(): return False - - for slice_spec in self.plc_spec['sfa']['sfa_slice_specs']: - site_spec = self.locate_site (slice_spec['sitename']) - test_site = TestSite(self,site_spec) - test_slice_sfa=TestSliceSfa(self,test_site,slice_spec) - if not test_slice_sfa.update_slice(): return False - return True + "run sfi.py create (on SM) on existing object" + pass def view_sfa(self): "run sfi.py list and sfi.py show (both on Registry) and sfi.py slices and sfi.py resources (both on SM)" @@ -1285,22 +1276,20 @@ class TestPlc: self.run_in_guest("sfi.py -d /root/.sfi/ slices")==0 and \ self.run_in_guest("sfi.py -d /root/.sfi/ resources -o resources")==0 - @slice_mapper_options_sfa + @slice_sfa_mapper def check_slice_sfa(self): "tries to ssh-enter the SFA slice" pass - def delete_sfa(self): - "run sfi.py delete (on SM), sfi.py remove (on Registry)" + def delete_sfa_user(self): + "run sfi.py delete (on SM) for user" test_user_sfa=TestUserSfa(self) - success1=test_user_sfa.delete_user() - for slice_spec in self.plc_spec['sfa']['sfa_slice_specs']: - site_spec = self.locate_site (slice_spec['sitename']) - test_site = TestSite(self,site_spec) - test_slice_sfa=TestSliceSfa(self,test_site,slice_spec) - success2=test_slice_sfa.delete_slice() + return test_user_sfa.delete_user() - return success1 and success2 + @slice_sfa_mapper + def delete_sfa_slices(self): + "run sfi.py delete (on SM), sfi.py remove (on Registry) to clean slices" + pass def stop_sfa(self): "service sfa stop" diff --git a/system/TestSliceSfa.py b/system/TestSliceSfa.py index 3471a8b..45362f2 100644 --- a/system/TestSliceSfa.py +++ b/system/TestSliceSfa.py @@ -38,10 +38,11 @@ class TestSliceSfa: found=True return (found,privatekey) - def add_slice(self): + # those are step names exposed as methods of TestPlc, hence the _sfa + def add_sfa(self,options): return self.test_plc.run_in_guest("sfi.py -d /root/.sfi/ add slice.xml")==0 - def create_slice(self): + def create_sfa(self,options): auth=self.test_plc.plc_spec['sfa']['SFA_REGISTRY_ROOT_AUTH'] self.test_plc.run_in_guest("sfi.py -d /root/.sfi/ resources -o /root/.sfi/resources_in.rspec") return \ @@ -51,7 +52,7 @@ class TestSliceSfa: "sfiAddSliver.py -i /root/.sfi/resources_in.rspec -n /root/.sfi/all_nodes.txt -o /root/.sfi/resources_out.rspec")==0 and \ self.test_plc.run_in_guest("sfi.py -d /root/.sfi/ create %s.%s.%s resources_out.rspec"%(auth,self.login_base,self.slicename))==0 - def update_slice(self): + def update_sfa(self,options): auth=self.test_plc.plc_spec['sfa']['SFA_REGISTRY_ROOT_AUTH'] self.test_plc.run_in_guest("sfi.py -d /root/.sfi/ resources -o /root/.sfi/resources_in.rspec") self.test_plc.run_in_guest( @@ -60,11 +61,12 @@ class TestSliceSfa: "sfiAddSliver.py -i /root/.sfi/resources_in.rspec -n /root/.sfi/all_nodes.txt -o /root/.sfi/resources_out.rspec") return self.test_plc.run_in_guest("sfi.py -d /root/.sfi/ create %s.%s.%s resources_out.rspec"%(auth,self.login_base,self.slicename))==0 - def delete_slice(self): + def 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 + # check the resulting sliver def check_slice_sfa(self,options,timeout_minutes=40,silent_minutes=30,period=15): timeout = datetime.datetime.now()+datetime.timedelta(minutes=timeout_minutes) graceout = datetime.datetime.now()+datetime.timedelta(minutes=silent_minutes) -- 2.43.0