@@ -77,33 +77,6 @@ def post(self, request):
7777 description = "通过工单ID获取工单详情" ,
7878 responses = {200 : SqlWorkflowDetailSerializer },
7979 ),
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- ),
10780)
10881class SqlWorkflowView (viewsets .ModelViewSet ):
10982 permission_classes = [IsAuthenticated , SqlWorkFlowViewPermission ]
@@ -149,6 +122,28 @@ def get_serializer(self, *args, **kwargs):
149122 * args , ** kwargs , exclude = ["sql_content" , "display_content" ]
150123 )
151124
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+ )
152147 @action (
153148 methods = ["get" ],
154149 detail = True ,
@@ -161,12 +156,24 @@ def rollback_sql(self, request, *args, **kwargs):
161156 data = self .get_serializer ().rollback_sql (obj )
162157 return Response (data )
163158
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+ )
164165 @method_decorator (permission_required ("sql.sql_review" , raise_exception = True ))
165166 @action (methods = ["patch" ], detail = True )
166167 def alter_run_date (self , request , * args , ** kwargs ):
167168 kwargs ["partial" ] = True
168169 return self .update (request , * args , ** kwargs )
169170
171+ @extend_schema (
172+ summary = "立即执行工单" ,
173+ request = SqlWorkflowExecuteSerializer ,
174+ responses = {200 : OpenApiTypes .NUMBER },
175+ description = "通过工单ID执行工单" ,
176+ )
170177 @action (methods = ["post" ], detail = True )
171178 def execute (self , request , * args , ** kwargs ):
172179 obj = self .get_object ()
@@ -176,6 +183,12 @@ def execute(self, request, *args, **kwargs):
176183 serializer .execute (obj , mode = mode , username = request .user .username )
177184 return Response (obj .id )
178185
186+ @extend_schema (
187+ summary = "设置定时执行工单" ,
188+ request = SqlWorkflowTimingTaskSerializer ,
189+ responses = {200 : OpenApiTypes .DATETIME },
190+ description = "通过工单ID执行工单" ,
191+ )
179192 @action (methods = ["post" ], detail = True )
180193 def timing_task (self , request , * args , ** kwargs ):
181194 obj = self .get_object ()
0 commit comments