コード例 #1
0
 def test_periodic_release_hook_select_with_place(self):
     ''' We should respect the user's -l place= when modifying group'''
     job = Job(Hold_Types="so", select="2:ncpus=2", place="scatter:excl")
     q = Queue()
     with MockRunCmd() as run_cmd:
         _initialize_run_cmd(run_cmd, q, job, "scatter:excl:group=group_id")
         submit_hook.periodic_release_hook({}, Event())
コード例 #2
0
 def test_periodic_release_hook_select(self):
     '''No queue defaults, no user defined group, add group=group_id'''
     job = Job(Hold_Types="so", select="2:ncpus")
     q = Queue()
     with MockRunCmd() as run_cmd:
         _initialize_run_cmd(run_cmd, q, job, "group=group_id")
         submit_hook.periodic_release_hook({}, Event())
コード例 #3
0
    def test_chunked(self):
        ''' There shouldn't be anything special about a chunked expression.'''
        job = Job(Hold_Types="so", select="2:ncpus=2+1:mem=20g")
        q = Queue()

        with MockRunCmd() as run_cmd:
            _initialize_run_cmd(run_cmd,
                                q,
                                job,
                                expected_qalter_place="group=group_id")
            # nothing to hold
            submit_hook.periodic_release_hook({}, Event())
コード例 #4
0
    def test_periodic_release_hook_missing_select(self):
        ''' We convert simple qsubs into select=1:ncpus=1 - note we should set the default to free in this case'''
        job = Job(Hold_Types="so")
        q = Queue()
        q.resources_default["place"] = "scatter:excl"

        with MockRunCmd() as run_cmd:
            _initialize_run_cmd(
                run_cmd,
                q,
                job,
                expected_qalter_place="scatter:excl:group=group_id")
            # nothing to hold
            submit_hook.periodic_release_hook({}, Event())
コード例 #5
0
    def test_periodic_release_hook_nodes_excl_default(self):
        ''' We should respect the user's -l place= when modifying group - pack:shared is not overridden by queue default scatter:excl'''
        job = Job(Hold_Types="so", select="2:ncpus=2", place="pack:shared")
        q = Queue(place="scatter:excl")

        with MockRunCmd() as run_cmd:
            _initialize_run_cmd(run_cmd, q, job, "pack:shared:group=group_id")
            submit_hook.periodic_release_hook({}, Event())

        # not that arrangement and exclusivity go together here
        job = Job(Hold_Types="so", select="2:ncpus=2", place="pack")
        q = Queue(place="scatter:excl")

        with MockRunCmd() as run_cmd:
            _initialize_run_cmd(run_cmd, q, job, "pack:group=group_id")
            submit_hook.periodic_release_hook({}, Event())
コード例 #6
0
    def test_two_queues(self):
        hpc_job = Job(job_id=1,
                      Hold_Types="so",
                      queue="workq",
                      select="2:ncpus=2+1:mem=20g")
        hpcq = Queue("workq")
        # we don't pick up on defaults from the queue, so just set ungrouped on both.
        htc_job = Job(job_id=2, Hold_Types="so", queue="htcq", ungrouped=True)
        htcq = Queue("htcq", ungrouped=True, place="pack")

        with MockRunCmd() as run_cmd:
            _initialize_run_cmd(
                run_cmd,
                [hpcq, htcq],
                [hpc_job, htc_job],
                # we won't bother running qalter because ungrouped==true
                expected_qalter_place=["group=group_id", None])
            # nothing to hold
            submit_hook.periodic_release_hook({}, Event())
コード例 #7
0
    def test_periodic_release_hook_nodes(self):
        ''' We will ignore -lplace=scatter because the user picked -l nodes=, which auto-converts to -l place=scatter'''
        job = Job(Hold_Types="so",
                  select="2:ncpus=2",
                  place="scatter",
                  nodes="2:ppn=2")
        q = Queue(place="scatter:excl")

        with MockRunCmd() as run_cmd:
            _initialize_run_cmd(run_cmd, q, job, "scatter:excl:group=group_id")
            submit_hook.periodic_release_hook({}, Event())

        job = Job(Hold_Types="so",
                  select="2:ncpus=2",
                  place="scatter",
                  nodes="2:ppn=2")
        q = Queue(place="pack:shared")

        with MockRunCmd() as run_cmd:
            _initialize_run_cmd(run_cmd, q, job, "pack:shared:group=group_id")
            submit_hook.periodic_release_hook({}, Event())

        job = Job(Hold_Types="so",
                  select="2:ncpus=2",
                  place="scatter",
                  nodes="2:ppn=2")
        q = Queue(place="excl")

        with MockRunCmd() as run_cmd:
            _initialize_run_cmd(run_cmd, q, job, "excl:group=group_id")
            submit_hook.periodic_release_hook({}, Event())
コード例 #8
0
    def test_periodic_release_hook_select_with_grouping(self):
        ''' User picked group=host so we should respect that'''
        job = Job(Hold_Types="so",
                  select="2:ncpus=2",
                  place="scatter:excl:group=host")
        q = Queue(place="pack")
        with MockRunCmd() as run_cmd:
            # no qalter, user defined all 3 place arguments
            _initialize_run_cmd(run_cmd, q, job, expected_qalter_place=None)
            submit_hook.periodic_release_hook({}, Event())

        job = Job(Hold_Types="so", select="2:ncpus=2", place="group=host")
        q = Queue(place="scatter:excl")
        with MockRunCmd() as run_cmd:
            _initialize_run_cmd(
                run_cmd,
                q,
                job,
                expected_qalter_place="scatter:excl:group=host")
            submit_hook.periodic_release_hook({}, Event())

        job = Job(Hold_Types="so",
                  select="2:ncpus=2",
                  place="scatter:group=host")
        q = Queue(place="scatter:excl")
        with MockRunCmd() as run_cmd:
            # no qalter, user defined arrangement and grouping arguments
            _initialize_run_cmd(run_cmd, q, job, expected_qalter_place=None)
            submit_hook.periodic_release_hook({}, Event())

        job = Job(Hold_Types="so", select="2:ncpus=2", place="excl:group=host")
        q = Queue(place="scatter:excl")
        with MockRunCmd() as run_cmd:
            # no qalter, user defined sharing and grouping arguments
            _initialize_run_cmd(run_cmd, q, job, expected_qalter_place=None)
            submit_hook.periodic_release_hook({}, Event())