archery-dml放宽审批流程

一、背景

dml审核的时候只要研发leader通过即可,这样可以减少dba工作量

二、修改

修改archery代码

vim /sql/utils/workflow_audit.py
 def audit(audit_id, audit_status, audit_user, audit_remark):  
      # 获取工单信息
        if workflow_type == WorkflowDict.workflow_type['query']:
            # 添加的信息
            # syntax_type = workflow_detail.syntax_type,最开始这么写的,但是会导致某些功能bug
            syntax_type = 0
        elif workflow_type == WorkflowDict.workflow_type['sqlreview']:
            # 添加的部分
            syntax_type = workflow_detail.syntax_type
        elif workflow_type == WorkflowDict.workflow_type['archive']:
            # 添加的部分
            syntax_type = workflow_detail.syntax_type
          

   
    else:
            # 向审核主表插入待审核数据
            audit_detail = WorkflowAudit()
            audit_detail.group_id = group_id
            audit_detail.group_name = group_name
            audit_detail.workflow_id = workflow_id
            audit_detail.workflow_type = workflow_type
            audit_detail.workflow_title = workflow_title
            audit_detail.workflow_remark = workflow_remark


            # 修改的部分
            # 根据是dml还是ddl,排除组
            # 如果是dml,排除dba组,这样dml的审核就不用dba了,这里的dba组指最后一个审核组,根据自己的设定来定
            # ((0, '其他'), (1, 'DDL'), (2, 'DML'))
            # 这是DDL直接由dba审核
            group_dba_id = Group.objects.get(name='dba').id
            if syntax_type == 1:
                audit_auth_groups_list = [str(group_dba_id)]
            elif syntax_type == 2:
                audit_auth_groups_list.remove(str(group_dba_id))
            # 也可以不变原来审核流程,只在DML的时候做特殊处理
            # if syntax_type == 2 and str(group_dba_id) in audit_auth_groups_list:
            #     audit_auth_groups_list.remove(str(group_dba_id))       
            audit_detail.audit_auth_groups = ','.join(audit_auth_groups_list)
            audit_detail.current_audit = audit_auth_groups_list[0]

            # 判断有无下级审核
            if len(audit_auth_groups_list) == 1:
                audit_detail.next_audit = '-1'
            else:
                audit_detail.next_audit = audit_auth_groups_list[1]

三、重启

重启archery,即可


版权声明:本文为line_on_database原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。