def get_external_schedule_execution_data(
        self,
        instance,
        repository_handle,
        schedule_name,
        schedule_execution_data_mode,
        scheduled_execution_datetime_utc,
    ):
        check.inst_param(instance, "instance", DagsterInstance)
        check.inst_param(repository_handle, "repository_handle",
                         RepositoryHandle)
        check.str_param(schedule_name, "schedule_name")
        check.inst_param(schedule_execution_data_mode,
                         "schedule_execution_data_mode",
                         ScheduleExecutionDataMode)
        check.opt_inst_param(scheduled_execution_datetime_utc,
                             "scheduled_execution_datetime_utc", datetime)

        return sync_get_external_schedule_execution_data(
            instance,
            repository_handle,
            schedule_name,
            schedule_execution_data_mode,
            scheduled_execution_datetime_utc,
        )
Beispiel #2
0
def test_external_partitions_api():
    repository_handle = get_bar_repo_handle()
    with seven.TemporaryDirectory() as temp_dir:
        instance = DagsterInstance.local_temp(temp_dir)
        execution_data = sync_get_external_schedule_execution_data(
            instance, repository_handle, 'foo_schedule')
        assert isinstance(execution_data, ExternalScheduleExecutionData)
        assert execution_data.run_config is not None
Beispiel #3
0
    def get_external_schedule_execution_data(self, instance, repository_handle,
                                             schedule_name):
        check.inst_param(instance, 'instance', DagsterInstance)
        check.inst_param(repository_handle, 'repository_handle',
                         RepositoryHandle)
        check.str_param(schedule_name, 'schedule_name')

        return sync_get_external_schedule_execution_data(
            instance, repository_handle, schedule_name)
Beispiel #4
0
def get_schedule_yaml(graphene_info, external_schedule):
    check.inst_param(external_schedule, 'external_schedule', ExternalSchedule)
    handle = external_schedule.handle.repository_handle
    schedule_execution_data = sync_get_external_schedule_execution_data(
        graphene_info.context.instance, handle, external_schedule.name)
    if schedule_execution_data.error:
        return None
    run_config_yaml = yaml.safe_dump(schedule_execution_data.run_config,
                                     default_flow_style=False)
    return run_config_yaml if run_config_yaml else ''
Beispiel #5
0
def test_external_schedule_execution_data_api_preview(schedule_name):
    repository_handle = get_bar_repo_handle()
    with seven.TemporaryDirectory() as temp_dir:
        instance = DagsterInstance.local_temp(temp_dir)
        execution_data = sync_get_external_schedule_execution_data(
            instance, repository_handle, schedule_name, ScheduleExecutionDataMode.PREVIEW, None,
        )
        assert isinstance(execution_data, ExternalScheduleExecutionData)

        assert execution_data.run_config == {"fizz": "buzz"}
        assert execution_data.tags == {"dagster/schedule_name": schedule_name}
        assert execution_data.should_execute is None
def get_schedule_config(graphene_info, external_schedule):
    check.inst_param(external_schedule, 'external_schedule', ExternalSchedule)
    handle = external_schedule.handle.repository_handle
    result = sync_get_external_schedule_execution_data(
        graphene_info.context.instance, handle, external_schedule.name)
    if isinstance(result, ExternalScheduleExecutionData):
        run_config_yaml = yaml.safe_dump(result.run_config,
                                         default_flow_style=False)
        return graphene_info.schema.type_named('ScheduleRunConfig')(
            yaml=run_config_yaml if run_config_yaml else '')
    else:
        return graphene_info.schema.type_named('PythonError')(result.error)
def get_schedule_yaml(graphene_info, external_schedule):
    check.inst_param(external_schedule, 'external_schedule', ExternalSchedule)
    handle = external_schedule.handle.repository_handle
    result = sync_get_external_schedule_execution_data(
        graphene_info.context.instance, handle, external_schedule.name)
    if isinstance(result, ExternalScheduleExecutionData):
        run_config_yaml = yaml.safe_dump(result.run_config,
                                         default_flow_style=False)
        return run_config_yaml if run_config_yaml else ''
    else:
        # TODO: surface user-facing error here, using the serialized error
        # https://github.com/dagster-io/dagster/issues/2576
        return None
Beispiel #8
0
def test_external_schedule_execution_data_api_never_execute():
    repository_handle = get_bar_repo_handle()
    with seven.TemporaryDirectory() as temp_dir:
        instance = DagsterInstance.local_temp(temp_dir)
        execution_data = sync_get_external_schedule_execution_data(
            instance,
            repository_handle,
            "foo_schedule_never_execute",
            ScheduleExecutionDataMode.LAUNCH_SCHEDULED_EXECUTION,
        )
        assert isinstance(execution_data, ExternalScheduleExecutionData)
        assert execution_data.run_config == {}
        assert execution_data.tags == {}
        assert execution_data.should_execute == False
Beispiel #9
0
def test_external_schedule_execution_data_api_launch():
    repository_handle = get_bar_repo_handle()
    with seven.TemporaryDirectory() as temp_dir:
        instance = DagsterInstance.local_temp(temp_dir)
        execution_data = sync_get_external_schedule_execution_data(
            instance,
            repository_handle,
            'foo_schedule',
            ScheduleExecutionDataMode.LAUNCH_SCHEDULED_EXECUTION,
        )
        assert isinstance(execution_data, ExternalScheduleExecutionData)
        assert execution_data.run_config == {'fizz': 'buzz'}
        assert execution_data.tags == {'dagster/schedule_name': 'foo_schedule'}
        assert execution_data.should_execute == True
Beispiel #10
0
def test_include_execution_time():
    repository_handle = get_bar_repo_handle()

    execution_time = get_current_datetime_in_utc()
    with instance_for_test() as instance:
        execution_data = sync_get_external_schedule_execution_data(
            instance,
            repository_handle,
            "foo_schedule_echo_time",
            ScheduleExecutionDataMode.LAUNCH_SCHEDULED_EXECUTION,
            execution_time,
        )

        assert isinstance(execution_data, ExternalScheduleExecutionData)
        assert execution_data.run_config == {"passed_in_time": execution_time.isoformat()}
        assert execution_data.tags == {"dagster/schedule_name": "foo_schedule_echo_time"}
        assert execution_data.should_execute == True