Exemplo n.º 1
0
async def test_list_schedules_from_scheduler(db: Session,
                                             scheduler: Scheduler):
    project_1 = "project-1"
    project_1_number_of_schedules = 5
    for index in range(project_1_number_of_schedules):
        schedule_name = f"schedule-name-{index}"
        _create_do_nothing_schedule(db, scheduler, project_1, schedule_name)
    project_2 = "project-2"
    project_2_number_of_schedules = 2
    for index in range(project_2_number_of_schedules):
        schedule_name = f"schedule-name-{index}"
        _create_do_nothing_schedule(db, scheduler, project_2, schedule_name)
    assert (len(scheduler._list_schedules_from_scheduler(project_1)) ==
            project_1_number_of_schedules)
    assert (len(scheduler._list_schedules_from_scheduler(project_2)) ==
            project_2_number_of_schedules)
Exemplo n.º 2
0
async def test_rescheduling_secrets_storing(
    db: Session,
    scheduler: Scheduler,
    k8s_secrets_mock: tests.api.conftest.K8sSecretsMock,
):
    mlrun.api.utils.auth.verifier.AuthVerifier(
    ).is_jobs_auth_required = unittest.mock.Mock(return_value=True)
    name = "schedule-name"
    project = config.default_project
    scheduled_object = _create_mlrun_function_and_matching_scheduled_object(
        db, project)
    username = "******"
    access_key = "some-user-access-key"
    cron_trigger = schemas.ScheduleCronTrigger(year="1999")
    scheduler.create_schedule(
        db,
        mlrun.api.schemas.AuthInfo(username=username, access_key=access_key),
        project,
        name,
        schemas.ScheduleKinds.job,
        scheduled_object,
        cron_trigger,
    )

    jobs = scheduler._list_schedules_from_scheduler(project)
    assert jobs[0].args[5].access_key == access_key
    assert jobs[0].args[5].username == username
    k8s_secrets_mock.assert_project_secrets(
        project,
        {
            mlrun.api.crud.Secrets().generate_schedule_access_key_secret_key(name):
            access_key,
            mlrun.api.crud.Secrets().generate_schedule_username_secret_key(name):
            username,
        },
    )

    await scheduler.stop()

    jobs = scheduler._list_schedules_from_scheduler(project)
    assert jobs == []

    await scheduler.start(db)
    jobs = scheduler._list_schedules_from_scheduler(project)
    assert jobs[0].args[5].username == username
    assert jobs[0].args[5].access_key == access_key
Exemplo n.º 3
0
async def test_rescheduling_secrets_storing(
    db: Session,
    scheduler: Scheduler,
    k8s_secrets_mock: tests.api.conftest.K8sSecretsMock,
):
    scheduler._store_schedule_credentials_in_secrets = True
    name = "schedule-name"
    project = config.default_project
    scheduled_object = _create_mlrun_function_and_matching_scheduled_object(
        db, project)
    session = "some-user-session"
    cron_trigger = schemas.ScheduleCronTrigger(year="1999")
    scheduler.create_schedule(
        db,
        mlrun.api.schemas.AuthInfo(session=session),
        project,
        name,
        schemas.ScheduleKinds.job,
        scheduled_object,
        cron_trigger,
    )

    jobs = scheduler._list_schedules_from_scheduler(project)
    assert jobs[0].args[5].session == session
    k8s_secrets_mock.assert_project_secrets(
        project,
        {mlrun.api.crud.Secrets().generate_schedule_secret_key(name): session})

    await scheduler.stop()

    jobs = scheduler._list_schedules_from_scheduler(project)
    assert jobs == []

    await scheduler.start(db)
    jobs = scheduler._list_schedules_from_scheduler(project)
    assert jobs[0].args[5].session == session