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)
示例#2
0
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)
示例#3
0
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)
示例#5
0
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
示例#8
0
    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
示例#9
0
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")
示例#11
0
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'])
示例#13
0
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'"