ModelBox Plugin插件

ModelBox Plugin插件用于对外提供服务,管理并运行流程图。此插件内置在ModelBox Server中。

默认情况下,可以直接使用此插件执行相关的流程图功能。例如,新建任务后,将使用插件运行流程图,并将结果对外输出。

  • ModelBox Plugin功能说明:

plugin-feature alt rect_w_1280

ModelBox Plugin主要提供两个功能。

  1. 添加配置文件管理流程图。
  2. 调用REST API执行流程图。

ModelBox Plugin插件配置

ModelBox Plugin插件配置文件和ModelBox Server主配置文件相同,即为/usr/local/etc/modelbox/modelbox.conf, ModelBox Plugin插件的配置项目如下:

配置项目 配置说明
server.ip ModelBox Plugin绑定的管理IP地址,默认为127.0.0.1
server.port ModelBox Plugin绑定的管理端口,默认为1104
server.flow_path ModelBox Plugin加载flow配置文件的扫描路径。默认为/usr/local/etc/modelbox/graph
acl.allow ModelBox Plugin REST API访问控制列表,仅允许列表中的IP访问,若为空则允许所有IP

为确保ModelBox Plugin插件生效,请确保插件在modelbox.conf配置文件的plugin.files配置项中配置/usr/local/lib/modelbox-plugin.so插件,并在配置完成后,重启ModelBox服务。

添加配置文件管理流程图

ModelBox Plugin支持通过添加流程图配置文件的形式自动执行流程图,默认情况下的流程图配置文件路径为/usr/local/etc/modelbox/graph, 配置文件的存放目录为:

/usr/local/etc/modelbox/graph
                        |-some-flow1.toml
                        |-some-flow2.toml
                        .
                        .
                        .

配置文件复制到图存储目录后,可执行ModelBox Server服务重启命令systemctl restart modelbox生效.

注意:

  1. ModelBox服务加载该目录下的所有文件作为flow作业,如果加载失败将跳过该flow,文件名将作为flow的作业名
  2. 文件名不要包含特殊符号,并且后缀名为.toml
  3. 如果修改该配置项,需要保证指定的目录存在并具有读权限,否则将加载失败。
  4. 路径可通过server.flow_path参数修改。

图形化运行流程图

请参考可视化编排服务

REST API管理执行流程图

ModelBox Server启动后之后,ModelBox Plugin就开始对外提供服务,服务的endpoint为http://server.ip:server.port,其中server.ip和server.port为ModelBox服务运行配置中的配置项,默认为http://127.0.0.1:1104,服务的path为/v1/modelbox/job,业务可通过发送REST请求到插件管理流程图。

REST API

ModelBox服务当前提供动态增加flow作业,动态删除flow作业,查询所有flow作业列表,查询flow作业状态。

增加flow作业

  • REST API

    URI: http://server.ip:server.port/v1/modelbox/job/

    METHOD: PUT

  • REST API BODY

    {
        "job_id": "flow2",
        "job_graph": "xxxxx"
    }
    
    • job_id: flow名字,用户自定义,建议不要包含特殊字符。
    • job_graph:toml格式的图信息,graph的配置详见
  • 例子

    命令:curl -X PUT --data @flow-example http://127.0.0.1:1104/v1/modelbox/job

    flow-example文件内容:

    {
        "job_id": "flow-example",
        "job_graph": {
          "graph": {
            "format":"graphviz",
            "graphconf": [
              " digraph demo { ",
              "          httpserver_sync_receive[type=flowunit, flowunit=httpserver_sync_receive, device=cpu, deviceid=0, endpoint=\"http://127.0.0.1:8080/example\", max_requests=10, time_out=5000]",
              "          httpserver_sync_reply[type=flowunit, flowunit=httpserver_sync_reply, device=cpu, deviceid=0]",
              "          httpserver_sync_receive:out_request_info -> httpserver_sync_reply:in_reply_info",
              "  }"
            ]
          },
          "driver": {
            "dir": ""
          }
        }
    }
    
  • 返回值

    • 正常返回HTTP code 201。
    • 异常返回错误json:

      {
          "error_code": "[some error code]",
          "error_msg" : "[some error message]"
      }
      
    • error_code:错误码,参考错误码

    • error_msg:错误码对应的消息。

查询flow作业状态

  • REST API

    URI: http://server.ip:server.port/v1/modelbox/job/[flow-name]

    METHOD: GET

  • REST API RESPONSE

    正常返回HTTP code 200,如下json:

    {
        "job_status": "RUNNING",
        "job_id": "[flow-name]"
    }
    
    • job_status: flow的状态代码。
    • job_id:flow名称。
  • 例子

    命令:curl http://127.0.0.1:1104/v1/modelbox/job/flow-example

删除flow作业

  • REST API

    URI: http://server.ip:server.port/v1/modelbox/job/[flow-name]

    METHOD: DELETE

  • 返回值

    • 正常返回HTTP code 204。
    • 异常返回错误json。
  • 例子

    命令: curl -X DELETE http://127.0.0.1:1104/v1/modelbox/job/flow-example

查询所有flow作业列表

  • REST API

    URI: http://server.ip:server.port/v1/modelbox/job/list/all

    METHOD: GET

  • 例子

    命令: curl http://127.0.0.1:1104/v1/modelbox/job/list/all

  • REST API BODY

    {
        "job_list": [
          {
          "job_status": "RUNNING",
          "job_id": "[flow-name1]"
          },
          {
          "job_status": "RUNNING",
          "job_id": "[flow-name2]"
          }
        ]
    }
    
    • job_list: flow列表。

状态码

状态码 状态码说明
CREATEING 正在创建任务
RUNNING 任务正在执行
SUCCEEDED 任务执行成功
FAILED 任务执行失败
PENDING 等待执行
DELETEING 正在删除任务
UNKNOWN 未知状态
NOTEXIST 任务不存在

错误码

当前支持的错误码:

错误码 错误码说明
MODELBOX_001 server internal error
MODELBOX_002 request invalid, no such job
MODELBOX_003 request invalid, can not get jobId
MODELBOX_004 request invalid, can not get graph
MODELBOX_005 request invalid, job already exist
MODELBOX_006 request invalid, invalid command
©2022 ModelBox Team all right reserved,powered by Gitbook文件修订时间: 2022-09-16 08:17:12

results matching ""

    No results matching ""