You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

143 lines
9.5 KiB

2 weeks ago
from typing import Union, Optional, List
from pydantic import BaseModel, ConfigDict, Field
from datetime import datetime
from pydantic.alias_generators import to_camel
from module_admin.annotation.pydantic_annotation import as_query
class ConnectionParams(BaseModel):
model_config = ConfigDict(alias_generator=to_camel, from_attributes=True)
user: str = Field(description="Database user")
password: str = Field(description="Database password")
address: str = Field(description="Database address")
database: str = Field(description="Database name")
jdbc_url: str = Field(alias="jdbcUrl", description="JDBC URL")
driver_class_name: str = Field(alias="driverClassName", description="JDBC driver class name")
validation_query: str = Field(description="Validation query")
class DataSource(BaseModel):
model_config = ConfigDict(alias_generator=to_camel, from_attributes=True)
id: int = Field(description="Primary key ID")
user_id: int = Field(alias="userId", description="User ID")
user_name: str = Field(alias="userName", description="Username")
name: str = Field(description="Datasource name")
note: Optional[str] = Field(default=None, description="Datasource note")
type: str = Field(description="Datasource type")
connection_params: ConnectionParams = Field(alias="connectionParams", description="Connection parameters")
create_time: datetime = Field(alias="createTime", description="Creation time")
update_time: datetime = Field(alias="updateTime", description="Update time")
class WorkerGroup(BaseModel):
name: str= Field(description="Datasource name")
class AlertGroups(BaseModel):
id: int = Field(description="Primary key ID")
description: str = Field(description="Datasource name")
alertInstanceIds: str = Field(description="Datasource name")
groupName: str = Field(description="Datasource name")
class Environment(BaseModel):
id: int = Field(description="Primary key ID")
code: int = Field(description="Primary key ID")
operator: int = Field(description="Primary key ID")
description: str = Field(description="Datasource name")
config: str = Field(description="Datasource name")
name: str = Field(description="Datasource name")
workerGroups: list[str]= Field(description="Datasource name")
class Datasouceall(BaseModel):
workerGroup:List[WorkerGroup]=[]
alertGroups:List[AlertGroups]=[]
environment:List[Environment]=[]
class ProcessDefinition(BaseModel):
processDefinitionCode: Optional[int] = Field(None, description="Process definition code")
failureStrategy: Optional[str] = Field(None, description="Failure strategy")
warningType: Optional[str] = Field(None, description="Warning type")
warningGroupId: Optional[int] = Field(None, description="Warning group ID")
execType: Optional[str] = Field(None, description="Execution type")
# startNodeList: Optional[List[str]] = Field(default_factory=list, description="Start node list")
startNodeList: Optional[str] = Field(default_factory=list, description="Start node list")
taskDependType: Optional[str] = Field(None, description="Task depend type")
complementDependentMode: Optional[str] = Field(None, description="Complement dependent mode")
runMode: Optional[str] = Field(None, description="Run mode")
processInstancePriority: Optional[str] = Field(None, description="Process instance priority")
workerGroup: Optional[str] = Field(None, description="Worker group")
startParams: Optional[str] = Field(None, description="Worker group")
environmentCode: Optional[int] = Field(None, description="Environment code")
expectedParallelismNumber: Optional[int] = Field(None, description="Expected parallelism number")
dryRun: Optional[int] = Field(None, description="Dry run flag")
scheduleTime: Optional[str] = Field(None, description="Schedule time")
# class Schedule(BaseModel):
# startTime: Optional[datetime] = Field(default=None, description='更新时间')
# endTime: Optional[datetime] = Field(default=None, description='更新时间')
# crontab: Optional[str] = Field(default=None, description='更新时间')
# timezoneId: Optional[str] = Field(default=None, description='更新时间')
class ParmSchedule(BaseModel):
schedule: Optional[str]= Field(default=None, description='更新时间')
failureStrategy: Optional[str] = Field(None, description="Failure strategy")
warningType: Optional[str] = Field(None, description="Warning type")
warningGroupId: Optional[int] = Field(None, description="Warning group ID")
workerGroup: Optional[str] = Field(None, description="Worker group")
environmentCode: Optional[int] = Field(None, description="Environment code")
processInstancePriority: Optional[str] = Field(None, description="Process instance priority")
processDefinitionCode: Optional[int] = Field(None, description="Process definition code")
class ParmScheduleVo(BaseModel):
warningGroupId: Optional[int] = Field(None, description="Warning group ID")
workerGroup: Optional[str] = Field(None, description="Worker group")
environmentCode: Optional[int] = Field(None, description="Environment code")
processDefinitionCode: Optional[int] = Field(None, description="Process definition code")
crontab: Optional[str] = Field(default=None, description='更新时间')
beginTime: Optional[datetime] = Field(default=None, description='更新时间')
endTime: Optional[datetime] = Field(default=None, description='更新时间')
class ProcessInstancePage(BaseModel):
searchVal: Optional[str] = Field(default=None, description="Name of the task node")
page_num: int = Field(default=1, description='当前页码')
page_size: int = Field(default=10, description='每页记录数')
class TaskNode(BaseModel):
id: int = Field(..., description="Unique identifier for the task node")
name: Optional[str] = Field(None, description="Name of the task node")
taskCode: Optional[int] = Field(None, description="Task code identifier")
taskType: Optional[str] = Field(None, description="Type of the task")
processInstanceId: Optional[int] = Field(None, description="Associated process instance ID")
processInstanceName: Optional[str] = Field(None, description="Name of the associated process instance")
startTime: Optional[datetime] = Field(None, description="Start time of the task")
endTime: Optional[datetime] = Field(None, description="End time of the task")
submitTime: Optional[datetime] = Field(None, description="Time when the task was submitted")
firstSubmitTime: Optional[datetime] = Field(None, description="Time of the first task submission")
executorId: Optional[int] = Field(None, description="Executor ID")
host: Optional[str] = Field(None, description="Host where the task is executed")
logPath: Optional[str] = Field(None, description="Log file path for the task execution")
executePath: Optional[str] = Field(None, description="Execution path of the task")
state: Optional[str] = Field(None, description="Current state of the task")
duration: Optional[str] = Field(None, description="Duration of the task execution")
dryRun: Optional[int] = Field(0, description="Indicates if the task is a dry run")
alertFlag: Optional[str] = Field(None, description="Alert flag for task issues")
blockingTask: Optional[bool] = Field(False, description="Indicates if the task is blocking other tasks")
conditionsTask: Optional[bool] = Field(False, description="Indicates if the task has conditions")
dependTask: Optional[bool] = Field(False, description="Indicates if the task is dependent on another task")
cpuQuota: Optional[int] = Field(-1, description="CPU quota allocated for the task")
memoryMax: Optional[int] = Field(-1, description="Maximum memory allocation for the task")
flag: Optional[str] = Field(None, description="Task execution flag")
maxRetryTimes: Optional[int] = Field(0, description="Maximum retry attempts for the task")
retryInterval: Optional[int] = Field(1, description="Interval between retries")
retryTimes: Optional[int] = Field(0, description="Number of retries attempted")
subProcess: Optional[bool] = Field(False, description="Indicates if the task is a subprocess")
switchTask: Optional[bool] = Field(False, description="Indicates if the task is a switch task")
taskComplete: Optional[bool] = Field(True, description="Indicates if the task has completed execution")
taskExecuteType: Optional[str] = Field(None, description="Execution type of the task")
taskDefinitionVersion: Optional[int] = Field(None, description="Version of the task definition")
taskGroupId: Optional[int] = Field(0, description="Group ID of the task")
taskGroupPriority: Optional[int] = Field(0, description="Priority within the task group")
taskInstancePriority: Optional[str] = Field(None, description="Priority of the task instance")
taskParams: Optional[str] = Field(None, description="Parameters for the task execution")
environmentCode: Optional[int] = Field(None, description="Environment code for the task")
workerGroup: Optional[str] = Field(None, description="Worker group handling the task")
varPool: Optional[str] = Field(None, description="Variable pool for the task execution")
delayTime: Optional[int] = Field(0, description="Delay time for task execution")
dependency: Optional[str] = Field(None, description="Task dependencies")
dependentResult: Optional[str] = Field(None, description="Result of the task dependencies")
switchDependency: Optional[str] = Field(None, description="Switch dependency")