def update_deploy_by_id(id): action = request.form.get("action") deploy = deploys.get(id) if action == "redeploy": new_deploy = deploys.create(user_id=deploy.user_id, project_id=deploy.project_id, host_id=deploy.host_id, mode=deploy.mode, status=2, branch=deploy.branch, version=deploy.version, softln_filename=deploy.softln_filename) deploys.deploy(new_deploy) return jsonify(dict(rc=0, data=dict(id=new_deploy.id))) elif action == "rollback": new_deploy = deploys.create(user_id=deploy.user_id, project_id=deploy.project_id, host_id=deploy.host_id, mode=2, status=2, branch=deploy.branch, version=deploy.version, softln_filename=deploy.softln_filename) deploys.rollback(new_deploy) return jsonify(dict(rc=0, data=dict(id=new_deploy.id))) else: raise Error(10000, msg=None)
def update_deploy_by_id(id): action = request.form.get("action") deploy = deploys.get(id) if action == "redeploy": new_deploy = deploys.create( user_id=deploy.user_id, project_id=deploy.project_id, host_id=deploy.host_id, mode=deploy.mode, status=2, branch=deploy.branch, version=deploy.version, softln_filename=deploy.softln_filename) deploys.deploy(new_deploy) return jsonify(dict(rc=0, data=dict(id=new_deploy.id))) elif action == "rollback": new_deploy = deploys.create( user_id=deploy.user_id, project_id=deploy.project_id, host_id=deploy.host_id, mode=2, status=2, branch=deploy.branch, version=deploy.version, softln_filename=deploy.softln_filename) deploys.rollback(new_deploy) return jsonify(dict(rc=0, data=dict(id=new_deploy.id))) else: raise Error(10000, msg=None)
def api_post_deploy(): project_id = request.args.get("project_id") host_id = request.args.get("host_id") branch = request.form.get("branch") commit = request.form.get("commit") deploy = deploys.create( user_id=g.user.id, project_id=project_id, host_id=host_id, mode=0, status=2, branch=branch, version=commit, softln_filename=time.strftime("%Y%m%d-%H%M%S") + "-" + commit, ) deploys.deploy(deploy) return jsonify(dict(rc=0, data=dict(id=deploy.id)))
def api_post_deploy(): project_id = request.args.get("project_id") host_id = request.args.get("host_id") mode = request.form.get("mode", type=int) branch = request.form.get("branch") if mode == 0 else "" tag = request.form.get("tag") commit = request.form.get("commit") if mode == 0 else tag deploy = deploys.create( user_id=g.user.id, project_id=project_id, host_id=host_id, mode=mode, status=2, branch=branch, version=commit, softln_filename=time.strftime("%Y%m%d-%H%M%S") + "-" + commit, ) deploys.deploy(deploy) return jsonify(dict(rc=0, data=dict(id=deploy.id)))
def update_deploy_by_id(id): action = request.form.get("action") deploy = deploys.get(id) if action == "redeploy": new_deploy = deploys.create( user_id=deploy.user_id, project_id=deploy.project_id, host_id=deploy.host_id, mode=deploy.mode, status=2, branch=deploy.branch, version=deploy.version, softln_filename=deploy.softln_filename) deploys.deploy(new_deploy) return jsonify(dict(rc=0, data=dict(id=new_deploy.id))) elif action == "rollback": # new_deploy = deploys.create( # user_id=deploy.user_id, # project_id=deploy.project_id, # host_id=deploy.host_id, # mode=2, # status=2, # branch=deploy.branch, # version=deploy.version, # softln_filename=deploy.softln_filename) # deploys.rollback(new_deploy) # return jsonify(dict(rc=0, data=dict(id=new_deploy.id))) msg = deploys_new.rollback(deploy) deploys.update(deploy, **dict(deploy_status=2)) return jsonify(dict(rc=0, msg=msg)) elif action == "publish": msg = deploys_new.publish(deploy) deploys.update(deploy, **dict(deploy_status=1)) return jsonify(dict(rc=0, msg=msg)) elif action == "cancel": deploys.update(deploy, **dict(deploy_status=99)) return jsonify(dict(rc=0, data=None)) else: return jsonify(dict(rc=-1, msg="action is not supported"))
def webhooks_push_events(): project_id = request.args.get("project_id") host_id = request.args.get("host_id") data = request.json branch = data["ref"].split("/", 2)[-1] version = data["after"][:7] # 只针对dev分支进行deploy if data["ref"] == "refs/heads/dev" and data["total_commits_count"] > 0: deploy = deploys.create( user_id=g.user.id, project_id=project_id, host_id=host_id, mode=0, status=2, branch=branch, version=version, softln_filename=time.strftime("%Y%m%d-%H%M%S") + "-" + version, ) deploys.deploy(deploy) return jsonify({"rc": 0}), 200 else: return jsonify({"rc": 0}), 204
def webhooks_tag_push_events(): project_id = request.args.get("project_id") host_id = request.args.get("host_id") data = request.json tag = data["ref"].split("/", 2)[-1] logger.debug(repr(data)) # 只针对tag push if data["object_kind"] == "tag_push" and data["total_commits_count"] > 0: deploy = deploys.create( user_id=g.user.id, project_id=project_id, host_id=host_id, mode=1, status=3, branch="", version=tag, softln_filename=time.strftime("%Y%m%d-%H%M%S") + "-" + tag, ) deploys.deploy(deploy) return jsonify({"rc": 0}), 200 else: return jsonify({"rc": 0}), 204
def webhooks_tag_push_events(): project_id = request.args.get("project_id") host_id = request.args.get("host_id") data = request.json tag = data["ref"].split("/", 2)[-1] logger.debug(repr(data)) # 只针对tag push if data["object_kind"] == "tag_push" and data["total_commits_count"] > 0: deploy = deploys.create( user_id=g.user.id, project_id=project_id, host_id=host_id, mode=1, status=2, branch="", version=tag, softln_filename=time.strftime("%Y%m%d-%H%M%S") + "-" + tag, ) deploys.deploy(deploy) return jsonify({"rc": 0}), 200 else: return jsonify({"rc": 0}), 204
def webhooks_push_events(): project_id = request.args.get("project_id") host_id = request.args.get("host_id") data = request.json branch = data["ref"].split("/", 2)[-1] version = data["after"][:7] logger.debug(repr(data)) # 只针对dev分支进行deploy if data["ref"] == "refs/heads/dev" and data["total_commits_count"] > 0: deploy = deploys.create( user_id=g.user.id, project_id=project_id, host_id=host_id, mode=0, status=3, branch=branch, version=version, softln_filename=time.strftime("%Y%m%d-%H%M%S") + "-" + version, ) deploys.deploy(deploy) return jsonify({"rc": 0}), 200 else: return jsonify({"rc": 0}), 204
def api_post_deploy(): if "package" not in request.files: return jsonify(dict(rc=-1, msg="未上传文件")) project_id = request.args.get("project_id") if project_id < 1: return jsonify(dict(rc=-1, msg="未选择项目")) project = projects.get(project_id) """ :type: Projects""" if project is None: return jsonify(dict(rc=-1, msg="项目不存在")) if project.users is None: return jsonify(dict(rc=-1, msg="不具备该项目的权限[1]")) if g.user.id != 1 and project.users[0].id != g.user.id: return jsonify(dict(rc=-1, msg="不具备该项目的权限[2]")) savePath = "%s/uploads/%s/%s" % (os.getcwd(), datetime.datetime.today().strftime('%Y/%m/%d'), project_id) if os.path.exists(savePath) is False: os.makedirs(savePath, 0755) file = request.files["package"] """ :type: werkzeug.datastructures.FileStorage""" if file.filename == "": return jsonify(dict(rc=-1, msg="未上传文件1")) secureFilename = secure_filename(file.filename) saveFile = os.path.join(savePath, secureFilename) if secureFilename[-4:] != ".zip": return jsonify(dict(rc=-1, msg="文件类型必须为.zip")) # 文件前缀检查,避免传错项目文件 print secureFilename[:-4], project.prefix if secureFilename.startswith(project.prefix) == False: return jsonify(dict(rc=-1, msg="项目文件前缀不符合,您可以传错文件了")) file.save(saveFile) host_id = request.args.get("host_id") mode = request.form.get("mode", type=int) tag = request.form.get("tag") branch = request.form.get("branch") if mode == 0 else "" commit = request.form.get("commit") if mode == 0 else tag tag = "" host_id = 0 mode = 0 branch = "" commit = "" deploy = deploys.create( user_id=g.user.id, package_name=secureFilename, package_path=saveFile, project_id=project_id, host_id=host_id, mode=mode, status=2, branch=branch, version=commit, softln_filename=time.strftime( "%Y%m%d-%H%M%S") + "-" + commit, ) # deploys.deploy(deploy) return jsonify(dict(rc=0, data=dict(id=deploy.id)))