modelDeployRequest

GUI的操作流程会类似git的PR, 提交一个DR请求- > 比对数据变化 (后续会反馈给gui和cli,也能用于debug) -> approve.

字段的变化也可以走这个流程

  • 目前的流程先有deploy才有DR和计算出的diff, 修改字段是传入diff生成一个DR
  • 在交互上支持controllor上由系统自动approve.

Table

  • requester_info(json) //user_id,ip等相关,目前先往sentry抛?
  • approver_info
  • status //
    • waiting_for_pg_approve
    • pg_pending
    • pg_deployed
    • waiting_for_es_approve
    • es_pending
    • es_deployed
    • expired
  • model_id
  • model_tableName
  • model_tree
  • model_tree_diff // 或者 up down
  • created_at
  • updated_at
  • approved_at

相关方法

由内部service实现

  • createModelDeployRequest(model_id)

    • _checkUnDeployedRequests(model_id)

      • yes - > expired
      • no - > create (waiting_for_es_approve ) -> approveModelDeployRequest (id)
  • _checkUnDeployedRequests()

    • 检查是否有因为其他事务挂起的部署请求
  • approveModelDeployRequest(id)

    • waiting_for_es_approve -> es_pending
    • 原始deloy流程
    • getTreeFromlDeployRequestsByModelId
    • 调用index的service
  • diffWithDatabase(id)

    • 同现在数据库中的结构进行对比,返回一个json
  • diffWithModelDeployRequest(source_id,target_id)

    • 同某一个DR进行比对
  • getModelDeployRequests()

修改步骤

  1. 增加DeployRequest的service
  2. 在deploy的controllor上依次调用该service的 create | approve 方法

results matching ""

    No results matching ""