@@ -77,33 +77,6 @@ def post(self, request):
77
77
description = "通过工单ID获取工单详情" ,
78
78
responses = {200 : SqlWorkflowDetailSerializer },
79
79
),
80
- rollback_sql = extend_schema (
81
- summary = "获取SQL工单回滚语句" ,
82
- responses = {
83
- 200 : serializers .ListSerializer (
84
- child = serializers .ListField (default = ["sql" , "rollback_sql" ])
85
- )
86
- },
87
- description = "通过工单ID获取回滚语句" ,
88
- ),
89
- alter_run_date = extend_schema (
90
- summary = "修改SQL工单可执行时间范围" ,
91
- request = SqlWorkflowSerializer (fields = ["run_date_start" , "run_date_end" ]),
92
- responses = {200 : SqlWorkflowSerializer },
93
- description = "通过工单ID修改SQL工单可执行时间范围" ,
94
- ),
95
- execute = extend_schema (
96
- summary = "立即执行工单" ,
97
- request = SqlWorkflowExecuteSerializer ,
98
- responses = {200 : OpenApiTypes .NUMBER },
99
- description = "通过工单ID执行工单" ,
100
- ),
101
- timing_task = extend_schema (
102
- summary = "设置定时执行工单" ,
103
- request = SqlWorkflowTimingTaskSerializer ,
104
- responses = {200 : OpenApiTypes .DATETIME },
105
- description = "通过工单ID执行工单" ,
106
- ),
107
80
)
108
81
class SqlWorkflowView (viewsets .ModelViewSet ):
109
82
permission_classes = [IsAuthenticated , SqlWorkFlowViewPermission ]
@@ -149,6 +122,28 @@ def get_serializer(self, *args, **kwargs):
149
122
* args , ** kwargs , exclude = ["sql_content" , "display_content" ]
150
123
)
151
124
125
+ @extend_schema (
126
+ summary = "获取SQL工单执行进度" ,
127
+ responses = {
128
+ 200 : SqlWorkflowSerializer (exclude = ["sql_content" , "display_content" ])
129
+ },
130
+ description = "通过工单ID获取工单执行进度,MySQL也包括正在执行的DDL信息" ,
131
+ )
132
+ @action (methods = ["get" ], detail = True )
133
+ def progress (self , request , * args , ** kwargs ):
134
+ instance = self .get_object ()
135
+ serializer = self .get_serializer (instance )
136
+ return Response (serializer .data )
137
+
138
+ @extend_schema (
139
+ summary = "获取SQL工单回滚语句" ,
140
+ responses = {
141
+ 200 : serializers .ListSerializer (
142
+ child = serializers .ListField (default = ["sql" , "rollback_sql" ])
143
+ )
144
+ },
145
+ description = "通过工单ID获取回滚语句" ,
146
+ )
152
147
@action (
153
148
methods = ["get" ],
154
149
detail = True ,
@@ -161,12 +156,24 @@ def rollback_sql(self, request, *args, **kwargs):
161
156
data = self .get_serializer ().rollback_sql (obj )
162
157
return Response (data )
163
158
159
+ @extend_schema (
160
+ summary = "修改SQL工单可执行时间范围" ,
161
+ request = SqlWorkflowSerializer (fields = ["run_date_start" , "run_date_end" ]),
162
+ responses = {200 : SqlWorkflowSerializer },
163
+ description = "通过工单ID修改SQL工单可执行时间范围" ,
164
+ )
164
165
@method_decorator (permission_required ("sql.sql_review" , raise_exception = True ))
165
166
@action (methods = ["patch" ], detail = True )
166
167
def alter_run_date (self , request , * args , ** kwargs ):
167
168
kwargs ["partial" ] = True
168
169
return self .update (request , * args , ** kwargs )
169
170
171
+ @extend_schema (
172
+ summary = "立即执行工单" ,
173
+ request = SqlWorkflowExecuteSerializer ,
174
+ responses = {200 : OpenApiTypes .NUMBER },
175
+ description = "通过工单ID执行工单" ,
176
+ )
170
177
@action (methods = ["post" ], detail = True )
171
178
def execute (self , request , * args , ** kwargs ):
172
179
obj = self .get_object ()
@@ -176,6 +183,12 @@ def execute(self, request, *args, **kwargs):
176
183
serializer .execute (obj , mode = mode , username = request .user .username )
177
184
return Response (obj .id )
178
185
186
+ @extend_schema (
187
+ summary = "设置定时执行工单" ,
188
+ request = SqlWorkflowTimingTaskSerializer ,
189
+ responses = {200 : OpenApiTypes .DATETIME },
190
+ description = "通过工单ID执行工单" ,
191
+ )
179
192
@action (methods = ["post" ], detail = True )
180
193
def timing_task (self , request , * args , ** kwargs ):
181
194
obj = self .get_object ()
0 commit comments