Exemplo n.º 1
0
 def post(self, request):
     form, error = JsonParser(
         Argument('deploy_id', type=int, help='参数错误'),
         Argument('version', help='请输入构建版本'),
         Argument('extra', type=list, help='参数错误'),
         Argument('remarks', required=False)
     ).parse(request.body)
     if error is None:
         deploy = Deploy.objects.filter(pk=form.deploy_id).first()
         if not deploy:
             return json_response(error='未找到指定发布配置')
         form.extra = json.dumps(form.extra)
         form.spug_version = Repository.make_spug_version(deploy.id)
         rep = Repository.objects.create(
             app_id=deploy.app_id,
             env_id=deploy.env_id,
             created_by=request.user,
             **form)
         Thread(target=dispatch, args=(rep,)).start()
         return json_response(rep.to_view())
     return json_response(error=error)
Exemplo n.º 2
0
 def post(self, request):
     form, error = JsonParser(
         Argument('id', type=int, required=False),
         Argument('deploy_id', type=int, help='缺少必要参数'),
         Argument('name', help='请输申请标题'),
         Argument('extra', type=list, help='缺少必要参数'),
         Argument('host_ids',
                  type=list,
                  filter=lambda x: len(x),
                  help='请选择要部署的主机'),
         Argument('desc', required=False),
     ).parse(request.body)
     if error is None:
         deploy = Deploy.objects.filter(pk=form.deploy_id).first()
         if not deploy:
             return json_response(error='未找到该发布配置')
         if form.extra[0] == 'tag' and not form.extra[1]:
             return json_response(error='请选择要发布的Tag')
         if form.extra[0] == 'branch' and not form.extra[2]:
             return json_response(error='请选择要发布的分支及Commit ID')
         form.status = '0' if deploy.is_audit else '1'
         form.extra = json.dumps(form.extra)
         form.host_ids = json.dumps(form.host_ids)
         if form.id:
             req = DeployRequest.objects.get(pk=form.id)
             is_required_notify = deploy.is_audit and req.status == '-1'
             DeployRequest.objects.filter(pk=form.id).update(
                 created_by=request.user, reason=None, **form)
         else:
             req = DeployRequest.objects.create(created_by=request.user,
                                                **form)
             is_required_notify = deploy.is_audit
         if is_required_notify:
             Thread(target=Helper.send_deploy_notify,
                    args=(req, 'approve_req')).start()
     return json_response(error=error)