コード例 #1
0
    def test_hello_world_job(self):
        r = C.load_installed_cluster_templates_by_name('sge')
        log.debug(r)

        job_name = "int_job_hello"
        output_dir = get_temp_cluster_dir(job_name)

        cmd = "pbsmrtpipe --help"

        def _to_p(x_):
            return os.path.join(output_dir, x_)

        sh_script = _to_p('qsub_test.sh')

        with open(sh_script, 'w') as f:
            f.write(cmd + "\n")

        # qsub output
        stdout = _to_p('stdout')
        stderr = _to_p('stderr')

        for x in [stdout, stderr]:
            with open(x, 'w') as f:
                f.write("")

        log.info(sh_script)
        cmd = r.render("start",
                       sh_script,
                       'test_job_01',
                       stdout=stdout,
                       stderr=stderr,
                       nproc=1)
        log.debug("Running qsub command '{c}'".format(c=cmd))
        time_out = 60 * 5
        rcode, stdout, stderr, run_time = run_command(cmd,
                                                      None,
                                                      None,
                                                      time_out=time_out)
        log.debug((rcode, stdout, stderr, run_time))

        if rcode != 0:
            log.info(stdout)
            log.error(stderr)
            log.error("Failed Integration Job {i} with exit code {r}".format(
                i=job_name, r=rcode))
            if os.path.exists(stderr):
                with open(stderr, 'r') as f:
                    log.error(f.read())
        else:
            try:
                shutil.rmtree(output_dir)
            except Exception as e:
                log.warn("Unable to cleanup testdir {o}. {m}".format(
                    o=output_dir, m=e.message))

        self.assertEqual(rcode, 0, stderr)
コード例 #2
0
    def test_hello_world_job(self):
        r = C.load_installed_cluster_templates_by_name('sge')
        log.debug(r)

        job_name = "int_job_hello"
        output_dir = get_temp_cluster_dir(job_name)

        cmd = "pbsmrtpipe --help"

        def _to_p(x_):
            return os.path.join(output_dir, x_)

        sh_script = _to_p('qsub_test.sh')

        with open(sh_script, 'w') as f:
            f.write(cmd + "\n")

        # qsub output
        stdout = _to_p('stdout')
        stderr = _to_p('stderr')

        for x in [stdout, stderr]:
            with open(x, 'w') as f:
                f.write("")

        log.info(sh_script)
        cmd = r.render("start", sh_script, 'test_job_01', stdout=stdout, stderr=stderr, nproc=1)
        log.debug("Running qsub command '{c}'".format(c=cmd))
        time_out = 60 * 5
        with tempfile.TemporaryFile() as stdout_tmp:
            with tempfile.TemporaryFile() as stderr_tmp:
                rcode, stdout, stderr, run_time = run_command(cmd, stdout_tmp, stderr_tmp, time_out=time_out)
        log.debug((rcode, stdout, stderr, run_time))

        if rcode != 0:
            log.info(stdout)
            log.error(stderr)
            log.error("Failed Integration Job {i} with exit code {r}".format(i=job_name, r=rcode))
            if os.path.exists(stderr):
                with open(stderr, 'r') as f:
                    log.error(f.read())
        else:
            try:
                shutil.rmtree(output_dir)
            except Exception as e:
                log.warn("Unable to cleanup testdir {o}. {m}".format(o=output_dir, m=e.message))

        self.assertEqual(rcode, 0, stderr)
コード例 #3
0
 def _get_root_temp_dir(self):
     return get_temp_cluster_dir(self.JOB_NAME)
コード例 #4
0
 def _get_root_temp_dir(self):
     """Override me to set the shared tmp dir"""
     return get_temp_cluster_dir(self.JOB_NAME)
コード例 #5
0
 def _get_root_temp_dir(self):
     return get_temp_cluster_dir(self.JOB_NAME)
コード例 #6
0
 def _get_root_temp_dir(self):
     """Override me to set the shared tmp dir"""
     return get_temp_cluster_dir(self.JOB_NAME)