Пример #1
0
def run(utils):

    bug='38359'

    utils.log_info("Start regression test for bug %s"%(bug))
  
    if len(utils.get_Username())==0 or len(utils.get_Password())==0:
        utils.log_info("ERROR: To verify this bug you need access to WMS. You have set WMS_USERNAME and WMS_PASSOWRD attributes at configuration file")
        raise GeneralError("","To verify this bug you need access to WMS. You have set WMS_USERNAME and WMS_PASSOWRD attributes at configuration file")

    ssh=utils.open_ssh(utils.get_WMS(),utils.get_Username(),utils.get_Password())

    utils.log_info("Set MaxOutputSandoxSize=100; to glite_wms.conf at WMS")

    utils.change_remote_file(ssh,"/etc/glite-wms/glite_wms.conf", ['MaxOutputSandboxSize'],['*'],['100'])

    utils.log_info("Restart Workload Manager glite-wms-wm")
    utils.execute_remote_cmd(ssh,"/etc/init.d/glite-wms-wm restart")

    utils.log_info("Submit the job and wait to finish")

    utils.use_external_jdl("%s.jdl"%(bug))

    JOBID=Job_utils.submit_wait_finish(utils,"")

    utils.log_info("Get job output")

    Job_utils.output_normal_job(utils,JOBID)

    #Check job output
    utils.log_info("Check if the output files are correctly retrieved")

    if os.path.isfile("%s/test.err"%(utils.get_job_output_dir())) & os.path.isfile("%s/test.out"%(utils.get_job_output_dir())) & os.path.isfile("%s/out1"%(utils.get_job_output_dir())) & os.path.isfile("%s/out2.tail"%(utils.get_job_output_dir())) & os.path.isfile("%s/out3"%(utils.get_job_output_dir())) & os.path.isfile("%s/out4.tail"%(utils.get_job_output_dir())) :
          utils.log_info("Output files are collectly retrieved")
    else:
          utils.log_info("ERROR: Output files are not correctly retrieved")
          utils.execute_remote_cmd(ssh, "cp -f /etc/glite-wms/glite_wms.conf.bak /etc/glite-wms/glite_wms.conf")
          utils.execute_remote_cmd(ssh,"/etc/init.d/glite-wms-wm restart")
          ssh.close()
          raise GeneralError("","Output files are not correctly retrieved")

    #Check the content of env.out file
    utils.log_info("Check output files size")

    if int(os.path.getsize("%s/out1"%(utils.get_job_output_dir()))) != 50 or int(os.path.getsize("%s/out3"%(utils.get_job_output_dir()))) !=50 or int(os.path.getsize("%s/out2.tail"%(utils.get_job_output_dir())))!=0 or int(os.path.getsize("%s/out4.tail"%(utils.get_job_output_dir())))!=0 or int(os.path.getsize("%s/test.out"%(utils.get_job_output_dir())))!=0 or int(os.path.getsize("%s/test.err"%(utils.get_job_output_dir())))!=0 :
          utils.log_info("ERROR: Output files do not have the expected sizes.")
          utils.execute_remote_cmd(ssh, "cp -f /etc/glite-wms/glite_wms.conf.bak /etc/glite-wms/glite_wms.conf")
          utils.execute_remote_cmd(ssh,"/etc/init.d/glite-wms-wm restart")
          ssh.close()
          raise GeneralError("","Output files do not have the expected sizes")
   
    utils.log_info("Restore the initial glite_wms.conf file")

    utils.execute_remote_cmd(ssh, "cp -f /etc/glite-wms/glite_wms.conf.bak /etc/glite-wms/glite_wms.conf")
   
    utils.execute_remote_cmd(ssh,"/etc/init.d/glite-wms-wm restart")
    
    ssh.close()
    
    utils.log_info("End of regression test for bug %s"%(bug))
Пример #2
0
def run(utils):

    bug='28642'

    utils.log_info("Start regression test for bug %s"%(bug))
    
    utils.log_info("Submit the job and wait to finish")

    utils.use_external_jdl("%s.jdl"%(bug))

    JOBID=Job_utils.submit_wait_finish(utils,"")

    Job_utils.output_normal_job(utils,JOBID)

    #Check job output
    utils.log_info("Check if the output files are correctly retrieved")

    if os.path.isfile("%s/input1.txt"%(utils.get_job_output_dir())) & os.path.isfile("%s/env.out"%(utils.get_job_output_dir())) & os.path.isfile("%s/env.err"%(utils.get_job_output_dir())) :
          utils.log_info("Output files are collectly retrieved")
    else:
          utils.log_info("ERROR: Output files are not correctly retrieved")
          raise GeneralError("","Output files are not correctly retrieved")

    #Check the content of env.out file
    utils.log_info("Check the content of the env.out file")

    result=utils.run_command("cat %s/env.out"%(utils.get_job_output_dir()))

    if result.find("LD_LIBRARY_PATH=.") != -1 :
        utils.log_info("Environment variable LD_LIBRARY_PATH has value '.' as expected")
    else:
      utils.log_info("Error value of environment variable LD_LIBRARY_PATH")
      raise GeneralError("","Error !!! Error value of environment variable LD_LIBRARY_PATH")
       
    utils.log_info("End of regression test for bug %s",bug)
Пример #3
0
def run(utils):

    bug = "36536"

    utils.log_info("Start regression test for bug %s" % (bug))

    if utils.WMS_USERNAME == "" or utils.WMS_PASSWORD == "" or utils.USERNAME == "" or utils.PASSWORD == "":
        utils.log_info(
            "ERROR: Missing required variables (WMS_USERNAME,WMS_PASSWORD,USERNAME,PASSWORD) from configuration file"
        )
        raise GeneralError(
            "Missing required variables",
            "To verify this bug it is necessary to set WMS_USERNAME,WMS_PASSWORD,USERNAME and PASSWORD in the configuration file",
        )

    ssh = utils.open_ssh(utils.get_WMS(), utils.get_Username(), utils.get_Password())

    utils.log_info("Prepare and submit a simple job")

    utils.use_utils_jdl()
    utils.set_jdl(utils.get_jdl_file())

    JOBID = Job_utils.submit_wait_finish(utils, "")

    utils.log_info("Create SQL script file")

    utils.execute_remote_cmd(
        ssh, "echo \"SELECT * FROM jobs WHERE dg_jobid like '%%%s%%';\" > /root/test.sql" % (JOBID)
    )

    utils.log_info("Retrieve the job record from LBProxy database")

    mysql_cmd = "mysql -u %s --password=%s lbserver20 < /root/test.sql" % (utils.USERNAME, utils.PASSWORD)

    output = utils.execute_remote_cmd(ssh, mysql_cmd)

    if output.find(JOBID) == -1:
        utils.log_info("ERROR: Unable to retrieve the job record from LBProxy datasse for job id:%s" % (JOBID))
        raise GeneralError(
            "Retrieve job record from LBProxy database",
            "Unable to retrieve the job record from LBProxy datasse for job id:%s" % (JOBID),
        )

    utils.log_info("Get job output")

    Job_utils.output_normal_job(utils, JOBID)

    # Check LBProxy
    utils.log_info("Check again the job record in LBProxy database")

    output = utils.execute_remote_cmd(ssh, mysql_cmd)

    if output.find(JOBID) != -1:
        utils.log_info("ERROR: Job's record in LBProxy database has not been removed.")
        raise GeneralError("", "Job's record in LBProxy database has not been removed.")

    utils.log_info("End of regression test for bug %s" % (bug))