def rollback(self, task_id): """ 回滚任务 :param task_id: :return: """ task = TaskModel.get_by_id(task_id).to_dict() filters = { TaskModel.link_id == task['ex_link_id'], TaskModel.id < task_id, } ex_task = TaskModel().query.filter(*filters).first() if not ex_task: raise WalleError(code=Code.rollback_error) task['id'] = None task['name'] = task['name'] + '-回滚此次上线' task['link_id'] = task['ex_link_id'] task['ex_link_id'] = '' task['is_rollback'] = 1 task['status'] = TaskModel.task_default_status(task['project_id']) # rewrite commit/tag/branch ex_task = ex_task.to_dict() task['commit_id'] = ex_task['commit_id'] task['branch'] = ex_task['branch'] task['tag'] = ex_task['tag'] task_new = TaskModel() task_new_info = task_new.add(dict(task)) return self.render_json(data=task_new_info)
def rollback(self, task_id): """ 回滚任务 :param task_id: :return: """ task = TaskModel.get_by_id(task_id).to_dict() filters = { TaskModel.link_id == task['ex_link_id'], TaskModel.id < task_id, } ex_task = TaskModel().query.filter(*filters).first() if not ex_task: raise WalleError(code=Code.rollback_error) task['id'] = None task['name'] = task['name'] + ' - 回滚此次上线' task['link_id'] = task['ex_link_id'] task['ex_link_id'] = '' task['is_rollback'] = 1 task['status'] = TaskModel.task_default_status(task['project_id']) # rewrite commit/tag/branch ex_task = ex_task.to_dict() task['commit_id'] = ex_task['commit_id'] task['branch'] = ex_task['branch'] task['tag'] = ex_task['tag'] task_new = TaskModel() task_new_info = task_new.add(dict(task)) return self.render_json(data=task_new_info)
def post(self): """ create a task /task/ :return: """ super(TaskAPI, self).post() form = TaskForm(request.form, csrf=False) if form.validate_on_submit(): task_new = TaskModel() data = form.form2dict() task_new_info = task_new.add(data) if not task_new_info: return self.render_json(code=-1) # 待审核 try: if task_new_info['status'] == TaskModel.status_new: project_info = ProjectModel( id=task_new_info['project_id']).item() space_id = project_info['space_id'] space_info = SpaceModel(id=space_id).item() task_url = Notice.task_url( project_space=space_info['name'], task_id=task_new_info['id']) notice_info = { 'title': '新上线单需要审核', 'username': current_user.username, 'project_name': project_info['name'], 'task_id': task_new_info['id'], 'task_url': task_url, 'task_name': task_new_info['name'], 'branch': task_new_info['branch'], 'commit': task_new_info['commit_id'], 'tag': task_new_info['tag'], 'repo_mode': project_info['repo_mode'], } Notice.create(Notice.by_dingding).audit_task( project_info, notice_info) except: pass return self.render_json(data=task_new_info) else: return self.render_error(code=Code.form_error, message=form.errors)
def post(self): """ create a task /task/ :return: """ super(TaskAPI, self).post() form = TaskForm(request.form, csrf=False) if form.validate_on_submit(): task_new = TaskModel() data = form.form2dict() task_new_info = task_new.add(data) if not task_new_info: return self.render_json(code=-1) return self.render_json(data=task_new_info) else: return self.render_error(code=Code.form_error, message=form.errors)
def post(self): """ create a task /task/ :return: """ super(TaskAPI, self).post() form = TaskForm(request.form, csrf_enabled=False) # return self.render_json(code=-1, data = form.form2dict()) if form.validate_on_submit(): task_new = TaskModel() data = form.form2dict() id = task_new.add(data) if not id: return self.render_json(code=-1) return self.render_json(data=task_new.item()) else: return self.render_json(code=-1, message=form.errors)