Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Use 24client only for schedule trigger
Signed-off-by: Brynn Yin <[email protected]>
  • Loading branch information
brynn-code committed Feb 19, 2024
commit b7175a7a4641474f011862e5870ce264ca351a8f
2 changes: 1 addition & 1 deletion sdk/ml/azure-ai-ml/assets.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,5 @@
"AssetsRepo": "Azure/azure-sdk-assets",
"AssetsRepoPrefixPath": "python",
"TagPrefix": "python/ml/azure-ai-ml",
"Tag": "python/ml/azure-ai-ml_c4ec35905b"
"Tag": "python/ml/azure-ai-ml_1af7fe2f76"
}
1 change: 1 addition & 0 deletions sdk/ml/azure-ai-ml/azure/ai/ml/_ml_client.py
Original file line number Diff line number Diff line change
Expand Up @@ -594,6 +594,7 @@ def __init__(
self._schedules = ScheduleOperations(
self._operation_scope,
self._operation_config,
self._service_client_06_2023_preview,
self._service_client_01_2024_preview,
self._operation_container,
self._credential,
Expand Down
12 changes: 6 additions & 6 deletions sdk/ml/azure-ai-ml/azure/ai/ml/entities/_schedule/schedule.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,12 @@

from typing_extensions import Literal

from azure.ai.ml._restclient.v2024_01_01_preview.models import JobBase as RestJobBase
from azure.ai.ml._restclient.v2024_01_01_preview.models import JobScheduleAction
from azure.ai.ml._restclient.v2024_01_01_preview.models import PipelineJob as RestPipelineJob
from azure.ai.ml._restclient.v2024_01_01_preview.models import Schedule as RestSchedule
from azure.ai.ml._restclient.v2024_01_01_preview.models import ScheduleActionType as RestScheduleActionType
from azure.ai.ml._restclient.v2024_01_01_preview.models import ScheduleProperties
from azure.ai.ml._restclient.v2023_06_01_preview.models import JobBase as RestJobBase
from azure.ai.ml._restclient.v2023_06_01_preview.models import JobScheduleAction
from azure.ai.ml._restclient.v2023_06_01_preview.models import PipelineJob as RestPipelineJob
from azure.ai.ml._restclient.v2023_06_01_preview.models import Schedule as RestSchedule
from azure.ai.ml._restclient.v2023_06_01_preview.models import ScheduleActionType as RestScheduleActionType
from azure.ai.ml._restclient.v2023_06_01_preview.models import ScheduleProperties
from azure.ai.ml._restclient.v2024_01_01_preview.models import TriggerRunSubmissionDto as RestTriggerRunSubmissionDto
from azure.ai.ml._schema.schedule.schedule import JobScheduleSchema
from azure.ai.ml._utils.utils import camel_to_snake, dump_yaml_to_file, is_private_preview_enabled
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
from datetime import datetime, timezone
from typing import Any, Iterable, List, Optional, Tuple, cast

from azure.ai.ml._restclient.v2023_06_01_preview import AzureMachineLearningWorkspaces as ServiceClient062023Preview
from azure.ai.ml._restclient.v2024_01_01_preview import AzureMachineLearningWorkspaces as ServiceClient012024Preview
from azure.ai.ml._scope_dependent_operations import (
OperationConfig,
Expand Down Expand Up @@ -68,14 +69,18 @@ def __init__(
self,
operation_scope: OperationScope,
operation_config: OperationConfig,
service_client_06_2023_preview: ServiceClient062023Preview,
service_client_01_2024_preview: ServiceClient012024Preview,
all_operations: OperationsContainer,
credential: TokenCredential,
**kwargs: Any,
):
super(ScheduleOperations, self).__init__(operation_scope, operation_config)
ops_logger.update_info(kwargs)
self.service_client = service_client_01_2024_preview.schedules
self.service_client = service_client_06_2023_preview.schedules
# Note: Trigger once is supported since 24_01, we don't upgrade other operations' client because there are
# some breaking changes, for example: AzMonMonitoringAlertNotificationSettings is removed.
self.schedule_trigger_service_client = service_client_01_2024_preview.schedules
self._all_operations = all_operations
self._stream_logs_until_completion = stream_logs_until_completion
# Dataplane service clients are lazily created as they are needed
Expand Down Expand Up @@ -309,11 +314,12 @@ def trigger(
:return: TriggerRunSubmissionDto, or the result of cls(response)
:rtype: ~azure.ai.ml.entities.ScheduleTriggerResult
"""
return self.service_client.trigger(
schedule_time = kwargs.pop("schedule_time", datetime.now(timezone.utc).isoformat())
return self.schedule_trigger_service_client.trigger(
name=name,
resource_group_name=self._operation_scope.resource_group_name,
workspace_name=self._workspace_name,
body=TriggerOnceRequest(schedule_time=datetime.now(timezone.utc).isoformat()),
body=TriggerOnceRequest(schedule_time=schedule_time),
cls=lambda _, obj, __: ScheduleTriggerResult._from_rest_object(obj),
**kwargs,
)
Expand Down
6 changes: 3 additions & 3 deletions sdk/ml/azure-ai-ml/tests/schedule/e2etests/test_schedule.py
Original file line number Diff line number Diff line change
Expand Up @@ -42,9 +42,9 @@ def test_schedule_lifetime(self, client: MLClient, randstr: Callable[[], str]):
job: PipelineJob = rest_schedule.create_job
assert isinstance(job.identity, AmlTokenConfiguration)
# trigger once
result: ScheduleTriggerResult = client.schedules.trigger(schedule.name)
assert result.name is not None
assert client.jobs.get(name=result.name) is not None
result: ScheduleTriggerResult = client.schedules.trigger(schedule.name, schedule_time="2024-02-19T00:00:00")
assert result.job_name is not None
assert client.jobs.get(name=result.job_name) is not None
# disable
rest_schedule = client.schedules.begin_disable(schedule.name).result(timeout=LROConfigurations.POLLING_TIMEOUT)
assert rest_schedule._is_enabled is False
Expand Down