def post(self, request, *args, **kwargs): task_id = int(self.kwargs['task_id']) config_stages = request.data.get('config_stages', None) if config_stages is not None: for stage in config_stages: temp_serializer = self.get_serializer(data=stage) temp_serializer.is_valid() temp_serializer._saving_instances = False instance = CITaskConfigService.task_stage(stage.get('id')) instance = temp_serializer.recursive_save( temp_serializer.validated_data, instance) instance.save() for step in stage.get('steps', []): temp_serializer = ci_step_serializer.CITaskStepSerializer( data=step) temp_serializer.is_valid() temp_serializer._saving_instances = False instance = CITaskConfigService.task_step(step.get('id')) instance = temp_serializer.recursive_save( temp_serializer.validated_data, instance) instance.save() parameter_groups = CITaskParameterService.task_parameter_list( task_id) for group in parameter_groups: CITaskParameterService.save_step_settings(str(group.id)) return Response(config_stages, status=status.HTTP_201_CREATED)
def delete(self, request, *args, **kwargs): step_id = self.kwargs['step_id'] step = CITaskConfigService.task_step(step_id) stage = CITaskConfigService.task_stage(step.stage_id) parameter_groups = CITaskParameterService.task_parameter_list( stage.task_id) for group in parameter_groups: CITaskParameterService.save_step_settings(str(group.id)) return self.destroy(request, *args, **kwargs)
def get_log_content(output,show_content): temp_output = dict() temp_output["id"] = output.id task_step = CITaskConfigService.task_step(output.StepID) if task_step: temp_output["step_name"] = str(task_step.step_config["step_name"]) + " " + str(task_step.purpose_name) else: temp_output["step_name"] = "--" log_file = FileInfo.objects.get(output.ProductID) if (log_file is not None and log_file.FileSize<512) or show_content: contents = CITaskHistoryService.get_big_build_log(output.ProductID) c = contents.read() log_content = c.decode('utf-8').replace("base", "") log_content = CITaskHistoryService.format_build_log(log_content) temp_output["log_content"] = log_content temp_output["show_content"] = True else: temp_output["log_content"] = "日志内容较多,请手动加载" temp_output["show_content"] = False return temp_output
def get_object(self): result = None step_id = self.kwargs.get('step_id', None) if step_id is not None: result = CITaskConfigService.task_step(step_id) return result
def get_step_name(self,obj): result = "--" task_step = CITaskConfigService.task_step(obj.StepID) if task_step: result = str(task_step.step_config["step_name"])+" "+str(task_step.purpose_name) return result
def get_step_name(self,step_id): result = '' task_step = CITaskConfigService.task_step(step_id) if task_step and task_step.purpose_name.strip(): result = task_step.purpose_name return result