|
from abc import ABC, abstractmethod |
|
from typing import List, Optional |
|
|
|
from omagent_core.engine.http.models.save_schedule_request import \ |
|
SaveScheduleRequest |
|
from omagent_core.engine.http.models.search_result_workflow_schedule_execution_model import \ |
|
SearchResultWorkflowScheduleExecutionModel |
|
from omagent_core.engine.http.models.workflow_schedule import WorkflowSchedule |
|
from omagent_core.engine.orkes.models.metadata_tag import MetadataTag |
|
|
|
|
|
class SchedulerClient(ABC): |
|
@abstractmethod |
|
def save_schedule(self, save_schedule_request: SaveScheduleRequest): |
|
pass |
|
|
|
@abstractmethod |
|
def get_schedule(self, name: str) -> (Optional[WorkflowSchedule], str): |
|
pass |
|
|
|
@abstractmethod |
|
def get_all_schedules( |
|
self, workflow_name: Optional[str] = None |
|
) -> List[WorkflowSchedule]: |
|
pass |
|
|
|
@abstractmethod |
|
def get_next_few_schedule_execution_times( |
|
self, |
|
cron_expression: str, |
|
schedule_start_time: Optional[int] = None, |
|
schedule_end_time: Optional[int] = None, |
|
limit: Optional[int] = None, |
|
) -> List[int]: |
|
pass |
|
|
|
@abstractmethod |
|
def delete_schedule(self, name: str): |
|
pass |
|
|
|
@abstractmethod |
|
def pause_schedule(self, name: str): |
|
pass |
|
|
|
@abstractmethod |
|
def pause_all_schedules(self): |
|
pass |
|
|
|
@abstractmethod |
|
def resume_schedule(self, name: str): |
|
pass |
|
|
|
@abstractmethod |
|
def resume_all_schedules(self): |
|
pass |
|
|
|
@abstractmethod |
|
def search_schedule_executions( |
|
self, |
|
start: Optional[int] = None, |
|
size: Optional[int] = None, |
|
sort: Optional[str] = None, |
|
free_text: Optional[str] = None, |
|
query: Optional[str] = None, |
|
) -> SearchResultWorkflowScheduleExecutionModel: |
|
pass |
|
|
|
@abstractmethod |
|
def requeue_all_execution_records(self): |
|
pass |
|
|
|
@abstractmethod |
|
def set_scheduler_tags(self, tags: List[MetadataTag], name: str): |
|
pass |
|
|
|
@abstractmethod |
|
def get_scheduler_tags(self, name: str) -> List[MetadataTag]: |
|
pass |
|
|
|
@abstractmethod |
|
def delete_scheduler_tags( |
|
self, tags: List[MetadataTag], name: str |
|
) -> List[MetadataTag]: |
|
pass |
|
|