Ejemplo n.º 1
0
def test_permit_new_job_override_tmp_dir(sched_cfg, dir_cfg):
    phases = job.Phase.list_from_tuples([(3, 1), (3, 2), (3, 3)])
    assert manager.phases_permit_new_job(phases, '/mnt/tmp/04', sched_cfg,
                                         dir_cfg)
    phases = job.Phase.list_from_tuples([(3, 1), (3, 2), (3, 3), (3, 6)])
    assert not manager.phases_permit_new_job(phases, '/mnt/tmp/04', sched_cfg,
                                             dir_cfg)
Ejemplo n.º 2
0
def test_permit_new_job_override_tmp_dir(
        sched_cfg: configuration.Scheduling,
        dir_cfg: configuration.Directories) -> None:
    phases = job.Phase.list_from_tuples([(3, 1), (3, 2), (3, 3)])
    assert manager.phases_permit_new_job(phases, '/mnt/tmp/04', sched_cfg,
                                         dir_cfg)
    phases = job.Phase.list_from_tuples([(3, 1), (3, 2), (3, 3), (3, 6)])
    assert not manager.phases_permit_new_job(phases, '/mnt/tmp/04', sched_cfg,
                                             dir_cfg)
Ejemplo n.º 3
0
def tmp_dir_report(jobs,
                   dir_cfg,
                   sched_cfg,
                   width,
                   start_row=None,
                   end_row=None,
                   prefix=''):
    '''start_row, end_row let you split the table up if you want'''
    tab = tt.Texttable()
    headings = ['tmp', 'ready', 'phases']
    tab.header(headings)
    tab.set_cols_dtype('t' * len(headings))
    tab.set_cols_align('r' * (len(headings) - 1) + 'l')
    for i, d in enumerate(sorted(dir_cfg.tmp)):
        if (start_row and i < start_row) or (end_row and i >= end_row):
            continue
        phases = sorted(job.job_phases_for_tmpdir(d, jobs))
        ready = manager.phases_permit_new_job(phases, d, sched_cfg, dir_cfg)
        row = [
            abbr_path(d, prefix), 'OK' if ready else '--',
            phases_str(phases, 5)
        ]
        tab.add_row(row)

    tab.set_max_width(width)
    tab.set_deco(tt.Texttable.BORDER | tt.Texttable.HEADER)
    tab.set_deco(0)  # No borders
    return tab.draw()
Ejemplo n.º 4
0
def tmp_dir_report(jobs: typing.List[job.Job],
                   dir_cfg: configuration.Directories,
                   sched_cfg: configuration.Scheduling,
                   width: int,
                   start_row: typing.Optional[int] = None,
                   end_row: typing.Optional[int] = None,
                   prefix: str = '') -> str:
    '''start_row, end_row let you split the table up if you want'''
    tab = tt.Texttable()
    headings = ['tmp', 'ready', 'phases']
    tab.header(headings)
    tab.set_cols_dtype('t' * len(headings))
    tab.set_cols_align('r' * (len(headings) - 1) + 'l')
    for i, d in enumerate(sorted(dir_cfg.tmp)):
        if (start_row and i < start_row) or (end_row and i >= end_row):
            continue
        phases = sorted(job.job_phases_for_tmpdir(d, jobs))
        ready = manager.phases_permit_new_job(phases, d, sched_cfg, dir_cfg)
        row = [
            abbr_path(d, prefix), 'OK' if ready else '--',
            phases_str(phases, 5)
        ]
        tab.add_row(row)

    tab.set_max_width(width)
    tab.set_deco(tt.Texttable.BORDER | tt.Texttable.HEADER)
    tab.set_deco(0)  # No borders
    return tab.draw()  # type: ignore[no-any-return]
Ejemplo n.º 5
0
def test_permit_new_job_too_many_jobs_nonephase(
        sched_cfg: configuration.Scheduling,
        dir_cfg: configuration.Directories) -> None:
    phases = job.Phase.list_from_tuples([(None, None), (3, 1), (3, 3)])
    assert manager.phases_permit_new_job(phases, '/mnt/tmp/00', sched_cfg,
                                         dir_cfg)
Ejemplo n.º 6
0
def test_permit_new_job_pre_milestone(
        sched_cfg: configuration.Scheduling,
        dir_cfg: configuration.Directories) -> None:
    phases = job.Phase.list_from_tuples([(2, 3), (4, 1)])
    assert not manager.phases_permit_new_job(phases, '/mnt/tmp/00', sched_cfg,
                                             dir_cfg)
Ejemplo n.º 7
0
def test_permit_new_job_too_many_jobs_nonephase(sched_cfg, dir_cfg):
    phases = job.Phase.list_from_tuples([ (None, None), (3, 1), (3, 3) ])
    assert manager.phases_permit_new_job(
        phases, '/mnt/tmp/00', sched_cfg, dir_cfg)
Ejemplo n.º 8
0
def test_permit_new_job_pre_milestone(sched_cfg, dir_cfg):
    phases = job.Phase.list_from_tuples([ (2, 3), (4, 1) ])
    assert not manager.phases_permit_new_job(
        phases, '/mnt/tmp/00', sched_cfg, dir_cfg)
Ejemplo n.º 9
0
def test_permit_new_job_override_tmp_dir(sched_cfg, dir_cfg):
    assert manager.phases_permit_new_job([(3, 1), (3, 2), (3, 3)],
                                         '/mnt/tmp/04', sched_cfg, dir_cfg)
    assert not manager.phases_permit_new_job([(3, 1), (3, 2), (3, 3), (3, 6)],
                                             '/mnt/tmp/04', sched_cfg, dir_cfg)
Ejemplo n.º 10
0
def test_permit_new_job_too_many_jobs_nonephase(sched_cfg, dir_cfg):
    assert manager.phases_permit_new_job([(None, None), (3, 1), (3, 3)],
                                         '/mnt/tmp/00', sched_cfg, dir_cfg)
Ejemplo n.º 11
0
def test_permit_new_job_too_many_jobs_zerophase(sched_cfg, dir_cfg):
    assert not manager.phases_permit_new_job([(3, 0), (3, 1), (3, 3)],
                                             '/mnt/tmp/00', sched_cfg, dir_cfg)
Ejemplo n.º 12
0
def test_permit_new_job_pre_milestone(sched_cfg, dir_cfg):
    assert not manager.phases_permit_new_job([(2, 3), (4, 1)], '/mnt/tmp/00',
                                             sched_cfg, dir_cfg)