def test_notifications_for_cancelled_jobs(): print "Creating proxy ..." cream_testing.create_proxy("sarabINFN","dteam") print "Creating jdl" jdl_fname = cream_testing.sleep_jdl("dteam","300", "/tmp") print "Submitting job " + jdl_fname cream_job_id = cream_testing.submit_job(jdl_fname, "cream-06.pd.infn.it:8443/cream-pbs-cert" ) print cream_job_id time.sleep(60) print "Verifying status of job " + cream_job_id cream_regression.job_status_should_be_in(cream_job_id, ['PENDING', 'RUNNING', 'REALLY-RUNNING']) print "Cancelling job " + cream_job_id cream_testing.cancel_job(cream_job_id) print "Sleeping 200sec" time.sleep(200) job_num = blah_testing.get_job_num_from_jid(cream_job_id) #job_num = "985342878" blah_parser_log_file_name = blah_testing.get_blah_parser_log_file_name() local_blah_parser_log_file = cream_regression.get_file_from_ce(blah_parser_log_file_name, "/tmp") #local_blah_parser_log_file = "/tmp/local_copy_of_a_cream_file" time.sleep(200) notifications_list = blah_testing.get_notifications_in_blah_parser_log(local_blah_parser_log_file, job_num) print notifications_list print blah_testing.check_notifications_for_cancelled(notifications_list)
def test_notifications_for_normally_finished_jobs(): # Create_proxy cream_testing.create_proxy("sarabINFN", "dteam") # sleep_jdl(100) jdl_fname = cream_testing.sleep_jdl("dteam", "100", "/tmp") #submit() cream_job_id = cream_testing.submit_job( jdl_fname, "cream-06.pd.infn.it:8443/cream-pbs-cert") print cream_job_id time.sleep(5) #get_final_status() print "Getting final job status ... " final_job_status = cream_testing.get_final_status(cream_job_id) print "Final job status = " + final_job_status time.sleep(200) job_num = blah_testing.get_job_num_from_jid(cream_job_id) blah_parser_log_file_name = blah_testing.get_blah_parser_log_file_name() local_blah_parser_log_file = cream_regression.get_file_from_ce( blah_parser_log_file_name, "/tmp") notifications_list = blah_testing.get_notifications_in_blah_parser_log( local_blah_parser_log_file, job_num) print notifications_list print blah_testing.check_notifications_for_normally_finished( notifications_list)
def submit_n_jobs(jobs_num, jdl_fname): ''' | Description: | Send jobs_num jobs | | Arguments: | jobs_num | number of jobs to send | | | jdl_fname | jdl file to submit | | Returns: | the job_ids list pf submitted jobs | | Exceptions: | | ''' my_conf = cream_testsuite_conf.CreamTestsuiteConfSingleton() ce_endpoint = my_conf.getParam('submission_info', 'ce_endpoint') cream_queue = my_conf.getParam('submission_info', 'cream_queue') if len(ce_endpoint) == 0: raise testsuite_exception.TestsuiteError( "Mandatory parameter ce_endpoint is empty. Check testsuite configuration" ) if len(cream_queue) == 0: raise testsuite_exception.TestsuiteError( "Mandatory parameter cream_queue is empty. Check testsuite configuration" ) ce = ce_endpoint + "/" + cream_queue print "send " + str(jobs_num) + " jobs" cream_job_ids = list() for i in range(int(jobs_num)): cream_job_id = cream_testing.submit_job(jdl_fname, ce) cream_job_ids.append(cream_job_id) return cream_job_ids
def test_notifications_for_normally_finished_jobs(): # Create_proxy cream_testing.create_proxy("sarabINFN","dteam") # sleep_jdl(100) jdl_fname = cream_testing.sleep_jdl("dteam","100", "/tmp") #submit() cream_job_id = cream_testing.submit_job(jdl_fname, "cream-06.pd.infn.it:8443/cream-pbs-cert" ) print cream_job_id time.sleep(5) #get_final_status() print "Getting final job status ... " final_job_status = cream_testing.get_final_status(cream_job_id) print "Final job status = " + final_job_status time.sleep(200) job_num = blah_testing.get_job_num_from_jid(cream_job_id) blah_parser_log_file_name = blah_testing.get_blah_parser_log_file_name() local_blah_parser_log_file = cream_regression.get_file_from_ce(blah_parser_log_file_name, "/tmp") notifications_list = blah_testing.get_notifications_in_blah_parser_log(local_blah_parser_log_file, job_num) print notifications_list print blah_testing.check_notifications_for_normally_finished(notifications_list)
def test_notifications_for_cancelled_jobs(): print "Creating proxy ..." cream_testing.create_proxy("sarabINFN","dteam") print "Creating jdl" jdl_fname = cream_testing.sleep_jdl("dteam","300", "/tmp") print "Submitting job " + jdl_fname cream_job_id = cream_testing.submit_job(jdl_fname, "cream-06.pd.infn.it:8443/cream-pbs-cert" ) print cream_job_id time.sleep(60) print "Verifying status of job " + cream_job_id cream_regression.job_status_should_be_in(cream_job_id, ['PENDING', 'RUNNING', 'REALLY-RUNNING']) print "Cancelling job " + cream_job_id cream_testing.cancel_job(cream_job_id) print "Sleeping 200sec" time.sleep(200) job_num = blah_testing.get_job_num_from_jid(cream_job_id) blah_parser_log_file_name = blah_testing.get_blah_parser_log_file_name() local_blah_parser_log_file = cream_regression.get_file_from_ce(blah_parser_log_file_name, "/tmp") time.sleep(200) notifications_list = blah_testing.get_notifications_in_blah_parser_log(local_blah_parser_log_file, job_num) print notifications_list print blah_testing.check_notifications_for_cancelled(notifications_list)
def submit_n_jobs(jobs_num, jdl_fname): ''' | Description: | Send jobs_num jobs | | Arguments: | jobs_num | number of jobs to send | | | jdl_fname | jdl file to submit | | Returns: | the job_ids list pf submitted jobs | | Exceptions: | | ''' my_conf = cream_testsuite_conf.CreamTestsuiteConfSingleton() ce_endpoint = my_conf.getParam('submission_info','ce_endpoint') cream_queue = my_conf.getParam('submission_info', 'cream_queue') if len(ce_endpoint) == 0: raise testsuite_exception.TestsuiteError("Mandatory parameter ce_endpoint is empty. Check testsuite configuration") if len(cream_queue) == 0: raise testsuite_exception.TestsuiteError("Mandatory parameter cream_queue is empty. Check testsuite configuration") ce = ce_endpoint + "/" + cream_queue print "send " + str(jobs_num) + " jobs" cream_job_ids = list() for i in range(int(jobs_num)): cream_job_id = cream_testing.submit_job(jdl_fname, ce) cream_job_ids.append(cream_job_id) return cream_job_ids
def run(self): self.working = True print "Submitting %s jobs" % self.job_num for i in range(self.job_num): try: ce = ce_endpoint = self.my_conf.getParam('submission_info', 'ce_endpoint') + "/" + self.my_conf.getParam('submission_info', 'cream_queue') cream_job_id = cream_testing.submit_job(self.jdl_fname, ce) self.cream_job_ids.append(cream_job_id) except Exception: self.msg_queue.put(sys.exc_info()) time.sleep(2) print "%s jobs submitted" % self.job_num self.working = False
def run(self): self.working = True print "Submitting %s jobs" % self.job_num for i in range(self.job_num): try: ce = ce_endpoint = self.my_conf.getParam( 'submission_info', 'ce_endpoint') + "/" + self.my_conf.getParam( 'submission_info', 'cream_queue') cream_job_id = cream_testing.submit_job(self.jdl_fname, ce) self.cream_job_ids.append(cream_job_id) except Exception: self.msg_queue.put(sys.exc_info()) time.sleep(2) print "%s jobs submitted" % self.job_num self.working = False
import cream_regression, cream_testing, batch_sys_mng, time, datetime, sys print "Creating proxy" cream_testing.create_proxy("sarabINFN","dteam") print "proxy created" print "Creating jdl" jdl_fname = cream_regression.create_jdl_CREAM_111("/tmp") print "jdl created" print "Submitting job" # submit_job(jdl_path,ce_endpoint,delegId=None) #cream_job_id = cream_testing.submit_job(jdl_fname, "cream-06.pd.infn.it:8443/cream-pbs-cert" ) cream_job_id = cream_testing.submit_job(jdl_fname, "cream-23.pd.infn.it:8443/cream-lsf-cert" ) print "Job submitted" print "waiting until job is finished" final_job_status = cream_testing.get_final_status(cream_job_id) print "Job finished. Job final status = " + final_job_status print "Getting job output" output_path = cream_regression.get_job_output("/tmp", cream_job_id) print "Checking job output" result = cream_regression.check_job_out_CREAM_111(output_path) print result
def test_notifications_for_suspended_resumed_jobs(): print "Creating proxy ..." cream_testing.create_proxy("sarabINFN","dteam") print "Creating jdl" jdl_fname = cream_testing.sleep_jdl("dteam","300", "/tmp") # With PBS and SGE it is possible to suspend only IDLE (i.e. not yet running) jobs. # To perform the test, first saturate the batch system, second submit the job which # willbe under test. # At the end of the test cancel all submitted job to free the batch system print "Saturating batch system" job_ids_list = blah_testing.saturate_batch_system() print "Submitting job " + jdl_fname cream_job_id = cream_testing.submit_job(jdl_fname, "cream-06.pd.infn.it:8443/cream-pbs-cert" ) print cream_job_id print "Sleeping 1min" time.sleep(60) print "Verifying status of job " + cream_job_id cream_regression.job_status_should_be_in(cream_job_id, ['IDLE']) print "Suspending job ..." cream_testing.suspend_job(cream_job_id) print "Sleeping 10sec" time.sleep(10) #check if job suspended on batch system. It is enough check status and verify it is 'HELD' print "Verifying status of job " + cream_job_id + ". Should be in 'HELD'" cream_regression.job_status_should_be_in(cream_job_id, ['HELD']) #count = int(len(job_ids_list)/4) #print "Sleep " + str(count) + "sec" #time.sleep(count) print "Cancel job saturating batch system" blah_testing.cancel_list_of_jobs(job_ids_list) print "Sleeping 5 min ..." time.sleep(300) print "Resuming job ..." cream_testing.resume_job(cream_job_id) print "Getting final job status ... " final_job_status = cream_testing.get_final_status(cream_job_id) print "Final job status = " + final_job_status print "Sleeping 30sec" time.sleep(30) job_num = blah_testing.get_job_num_from_jid(cream_job_id) blah_parser_log_file_name = blah_testing.get_blah_parser_log_file_name() local_blah_parser_log_file = cream_regression.get_file_from_ce(blah_parser_log_file_name, "/tmp") print "Sleeping 6min." time.sleep(360) print "Get notifications list in blah parser log file local copy" notifications_list = blah_testing.get_notifications_in_blah_parser_log(local_blah_parser_log_file, job_num) print notifications_list print blah_testing.check_notifications_for_resumed(notifications_list) print "Cancelling all jobs..." cream_testing.cancel_all_jobs("cream-06.pd.infn.it:8443")
def test_notifications_for_suspended_resumed_jobs(): print "Creating proxy ..." cream_testing.create_proxy("sarabINFN", "dteam") print "Creating jdl" jdl_fname = cream_testing.sleep_jdl("dteam", "300", "/tmp") # With PBS and SGE it is possible to suspend only IDLE (i.e. not yet running) jobs. # To perform the test, first saturate the batch system, second submit the job which # willbe under test. # At the end of the test cancel all submitted job to free the batch system print "Saturating batch system" job_ids_list = blah_testing.saturate_batch_system() print "Submitting job " + jdl_fname cream_job_id = cream_testing.submit_job( jdl_fname, "cream-06.pd.infn.it:8443/cream-pbs-cert") print cream_job_id print "Sleeping 1min" time.sleep(60) print "Verifying status of job " + cream_job_id cream_regression.job_status_should_be_in(cream_job_id, ['IDLE']) print "Suspending job ..." cream_testing.suspend_job(cream_job_id) print "Sleeping 10sec" time.sleep(10) #check if job suspended on batch system. It is enough check status and verify it is 'HELD' print "Verifying status of job " + cream_job_id + ". Should be in 'HELD'" cream_regression.job_status_should_be_in(cream_job_id, ['HELD']) #count = int(len(job_ids_list)/4) #print "Sleep " + str(count) + "sec" #time.sleep(count) print "Cancel job saturating batch system" blah_testing.cancel_list_of_jobs(job_ids_list) print "Sleeping 5 min ..." time.sleep(300) print "Resuming job ..." cream_testing.resume_job(cream_job_id) print "Getting final job status ... " final_job_status = cream_testing.get_final_status(cream_job_id) print "Final job status = " + final_job_status print "Sleeping 30sec" time.sleep(30) job_num = blah_testing.get_job_num_from_jid(cream_job_id) blah_parser_log_file_name = blah_testing.get_blah_parser_log_file_name() local_blah_parser_log_file = cream_regression.get_file_from_ce( blah_parser_log_file_name, "/tmp") print "Sleeping 6min." time.sleep(360) print "Get notifications list in blah parser log file local copy" notifications_list = blah_testing.get_notifications_in_blah_parser_log( local_blah_parser_log_file, job_num) print notifications_list print blah_testing.check_notifications_for_resumed(notifications_list) print "Cancelling all jobs..." cream_testing.cancel_all_jobs("cream-06.pd.infn.it:8443")
import cream_regression, cream_testing import time print "Create proxy ..." # create_proxy(password,vo) cream_regression.create_rfc_proxy("sarabINFN","dteam") print "Create JDL file ..." # sleep_jdl(vo,secs, output_dir) jdl_fname, script_name = cream_testing.isb_client_to_ce_jdl("dteam", "/tmp") print "Submitting job ..." cream_job_id = cream_testing.submit_job(jdl_fname, "cream-06.pd.infn.it:8443/cream-pbs-cert" ) time.sleep(120) print "Getting and checking final status ..." cream_regression.job_status_should_be_in(cream_job_id, ['DONE-OK'])
print "Creating proxy ..." cream_testing.create_proxy("sarabINFN","dteam") print "Creating jdl" jdl_fname = cream_testing.sleep_jdl("dteam","300", "/tmp") # With PBS and SGE it is possible to suspend only IDLE (i.e. not yet running) jobs. # To perform the test, first saturate the batch system, second submit the job which # willbe under test. # At the end of the test cancel all submitted job to free the batch system print "Saturating batch system" job_ids_list = blah_testing.saturate_batch_system() print "Submitting job " + jdl_fname cream_job_id = cream_testing.submit_job(jdl_fname, "cream-06.pd.infn.it:8443/cream-pbs-cert" ) print cream_job_id print "Sleeping 1min" time.sleep(60) print "Verifying status of job " + cream_job_id cream_regression.job_status_should_be_in(cream_job_id, ['IDLE']) print "Suspending job ..." cream_testing.suspend_job(cream_job_id) print "Sleeping 10sec" time.sleep(10) #check if job suspended on batch system. It is enough check status and verify it is 'HELD' print "Verifying status of job " + cream_job_id + ". Should be in 'HELD'"