async def test_schedule_crud_secrets_handling( 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) for schedule_name in ["valid-secret-key", "invalid/secret/key"]: project = config.default_project scheduled_object = _create_mlrun_function_and_matching_scheduled_object( db, project) access_key = "some-user-access-key" username = "******" cron_trigger = schemas.ScheduleCronTrigger(year="1999") scheduler.create_schedule( db, mlrun.api.schemas.AuthInfo(username=username, access_key=access_key), project, schedule_name, schemas.ScheduleKinds.job, scheduled_object, cron_trigger, ) _assert_schedule_secrets(scheduler, project, schedule_name, username, access_key) _assert_schedule_get_and_list_credentials_enrichment( db, scheduler, project, schedule_name, access_key) username = "******" access_key = "new-access-key" # update labels scheduler.update_schedule( db, mlrun.api.schemas.AuthInfo(username=username, access_key=access_key), project, schedule_name, labels={"label-key": "label-value"}, ) _assert_schedule_secrets(scheduler, project, schedule_name, username, access_key) _assert_schedule_get_and_list_credentials_enrichment( db, scheduler, project, schedule_name, access_key) # delete schedule scheduler.delete_schedule( db, project, schedule_name, ) _assert_schedule_secrets(scheduler, project, schedule_name, None, None)
async def test_delete_schedule(db: Session, scheduler: Scheduler): cron_trigger = schemas.ScheduleCronTrigger(year="1999") schedule_name = "schedule-name" project = config.default_project scheduler.create_schedule( db, project, schedule_name, schemas.ScheduleKinds.local_function, do_nothing, cron_trigger, ) schedules = scheduler.list_schedules(db) assert len(schedules.schedules) == 1 scheduler.delete_schedule(db, project, schedule_name) schedules = scheduler.list_schedules(db) assert len(schedules.schedules) == 0
async def test_schedule_crud_secrets_handling( db: Session, scheduler: Scheduler, k8s_secrets_mock: tests.api.conftest.K8sSecretsMock, ): scheduler._store_schedule_credentials_in_secrets = True for schedule_name in ["valid-secret-key", "invalid/secret/key"]: 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, schedule_name, schemas.ScheduleKinds.job, scheduled_object, cron_trigger, ) secret_key = mlrun.api.crud.Secrets().generate_schedule_secret_key( schedule_name) key_map_secret_key = ( mlrun.api.crud.Secrets().generate_schedule_key_map_secret_key()) secret_value = mlrun.api.crud.Secrets().get_secret( project, scheduler._secrets_provider, secret_key, allow_secrets_from_k8s=True, allow_internal_secrets=True, key_map_secret_key=key_map_secret_key, ) assert secret_value == session session = "new-session" # update labels scheduler.update_schedule( db, mlrun.api.schemas.AuthInfo(session=session), project, schedule_name, labels={"label-key": "label-value"}, ) secret_value = mlrun.api.crud.Secrets().get_secret( project, scheduler._secrets_provider, secret_key, allow_secrets_from_k8s=True, allow_internal_secrets=True, key_map_secret_key=key_map_secret_key, ) assert secret_value == session # delete schedule scheduler.delete_schedule( db, project, schedule_name, ) secret_value = mlrun.api.crud.Secrets().get_secret( project, scheduler._secrets_provider, secret_key, allow_secrets_from_k8s=True, allow_internal_secrets=True, key_map_secret_key=key_map_secret_key, ) assert secret_value is None