コード例 #1
0
def test_two_sources_one_destination(db_session, vo, file, source_rse,
                                     source2_rse, mock_request):
    add_replicas(rse_id=source2_rse['id'],
                 files=[file],
                 account=mock_request.account,
                 session=db_session)
    try:
        src1_distance, src2_distance = (get_distances(
            src_rse_id=src_rse,
            dest_rse_id=mock_request.dest_rse_id,
            session=db_session) for src_rse in (source_rse['id'],
                                                source2_rse['id']))

        assert src1_distance and len(
            src1_distance) == 1 and src1_distance[0]['ranking'] == 5
        assert src2_distance and len(
            src2_distance) == 1 and src2_distance[0]['ranking'] == 2

        preparer.run_once(session=db_session)
        db_session.commit()

        updated_mock_request = db_session.query(models.Request).filter_by(
            id=mock_request.id).one()  # type: models.Request

        assert updated_mock_request.state == RequestState.QUEUED
        assert updated_mock_request.source_rse_id == source2_rse[
            'id']  # distance 2 < 5

    finally:
        delete_replicas(rse_id=source2_rse['id'],
                        files=[file],
                        session=db_session)
        db_session.commit()
コード例 #2
0
ファイル: test_preparer.py プロジェクト: rak108/rucio
def test_two_sources_one_destination(db_session, vo, file, mock_request):
    def setup(rse):
        add_distance(rse.rse_id, mock_request.dest_rse_id, ranking=2, session=rse.db_session)
        add_replicas(rse_id=rse.rse_id, files=[file], account=mock_request.account, session=rse.db_session)

    with GeneratedRSE(vo=vo, db_session=db_session, setup_func=setup) as source2_rse:
        src1_distance, src2_distance = (
            get_distances(
                src_rse_id=src_rse,
                dest_rse_id=mock_request.dest_rse_id,
                session=db_session,
            )
            for src_rse in (mock_request.source_rse_id, source2_rse.rse_id)
        )

        assert src1_distance and len(src1_distance) == 1 and src1_distance[0]['ranking'] == 5
        assert src2_distance and len(src2_distance) == 1 and src2_distance[0]['ranking'] == 2

        preparer.run_once(session=db_session, logger=print)
        db_session.commit()

        updated_mock_request = (
            db_session.query(models.Request).filter_by(id=mock_request.id).one()
        )  # type: models.Request

        assert updated_mock_request.state == RequestState.QUEUED
        assert updated_mock_request.source_rse_id == source2_rse.rse_id  # distance 2 < 5

        delete_replicas(rse_id=source2_rse.rse_id, files=[file], session=db_session)
コード例 #3
0
ファイル: test_preparer.py プロジェクト: rak108/rucio
def test_preparer_setting_request_state_queued(db_session, mock_request):
    preparer.run_once(session=db_session, logger=print)
    db_session.commit()

    updated_mock_request = db_session.query(models.Request).filter_by(id=mock_request.id).one()  # type: models.Request

    assert updated_mock_request.state == RequestState.QUEUED
コード例 #4
0
def test_preparer_setting_request_state_waiting(db_session, mock_request):
    preparer.run_once(session=db_session)
    db_session.commit()

    updated_mock_request = db_session.query(models.Request).filter_by(
        id=mock_request.id).one()  # type: models.Request

    assert updated_mock_request.state == RequestState.WAITING
コード例 #5
0
ファイル: test_preparer.py プロジェクト: vokac/rucio
def test_preparer_for_request_without_source(db_session,
                                             mock_request_no_source):
    preparer.run_once(session=db_session, logger=print)
    db_session.commit()

    updated_mock_request: "models.Request" = (db_session.query(
        models.Request).filter_by(id=mock_request_no_source.id).one())

    assert updated_mock_request.state == RequestState.NO_SOURCES
コード例 #6
0
def test_preparer_setting_request_source(db_session, vo, source_rse,
                                         mock_request):
    preparer.run_once(session=db_session)
    db_session.commit()

    updated_mock_request = db_session.query(models.Request).filter_by(
        id=mock_request.id).one()  # type: models.Request

    assert updated_mock_request.state == RequestState.QUEUED
    assert updated_mock_request.source_rse_id == source_rse['id']
コード例 #7
0
ファイル: test_preparer.py プロジェクト: rak108/rucio
def test_preparer_for_request_without_matching_transfertool_source(db_session, source_rse, dest_rse, mock_request):
    add_rse_attribute(source_rse['id'], 'transfertool', 'fts3', session=db_session)
    add_rse_attribute(dest_rse['id'], 'transfertool', 'globus', session=db_session)
    db_session.commit()

    from rucio.core.rse import REGION

    REGION.invalidate()

    preparer.run_once(session=db_session, logger=print)
    db_session.commit()

    updated_mock_request = db_session.query(models.Request).filter_by(id=mock_request.id).one()  # type: models.Request

    assert updated_mock_request.state == RequestState.NO_SOURCES