Skip to content

Latest commit

 

History

History
91 lines (61 loc) · 3.69 KB

engine_admin_config.md

File metadata and controls

91 lines (61 loc) · 3.69 KB

Django 项目接入

引擎管理端目前以 Django app 的形式进行提供,可以直接在 Django 项目中进行快速集成和使用。

1. 引入对应的 app

将引擎管理端 app 配置到对应 Django 项目下的 INSTALLED_APPS:

INSTALLED_APPS += (
    ...
    "pipeline.contrib.engine_admin",
    ...
)

2. 配置对应的 url

在对应的 url 中配置引擎管理端的路由:

urlpatterns = [
    ...
    url(r'^{{PATH_TO_ENGINE_ADMIN}}/', include('pipeline.contrib.engine_admin.urls')),
    ...
]

{{PATH_TO_ENGINE_ADMIN}}为项目下配置的引擎管理端路由地址。

3. 收集静态文件

将管理端所需静态资源收集到项目静态资源目录下:

python manage.py collectstatic

引擎管理端的使用

至此,引擎管理端已经完成了快速集成,可以通过调用对应的url进行流程控制。

1. 管理端接口

目前仅提供常用任务和节点控制接口,所有接口均为操作接口,只支持POST请求,除了url参数之外的其他参数均以json格式通过request body进行传输。

请求url格式为 {{PATH_TO_ENGINE_ADMIN}}/api/{{API_VERSION}}/{{ENGINE_TYPE}}/{{ACTION_NAME}}/{{INSTANCE_ID}}

下面对路由中对应配置的选项进行说明:

{{PATH_TO_ENGINE_ADMIN}}:为项目下配置的引擎管理端路由地址

{{API_VERSION}}:引擎管理端接口版本,当前版本为v1

{{ENGINE_TYPE}}:操作的引擎类型,目前支持两种引擎类型 bamboo_enginepipeline_engine,分别对应新老版本引擎

{{ACTION_NAME}}:对应操作的名称,详见下表【操作列表】

{{INSTANCE_ID}}:操作的对象 ID,对象可能是对应的 任务 或 节点

操作列表

操作名称 操作描述 其他参数
task_pause 任务暂停
task_resume 任务恢复
task_revoke 任务撤销
node_retry 节点重试 inputs(dict): 节点输入
node_skip 节点跳过
node_callback 节点回调 data(str): 回调数据
version(str): 回调的节点版本
node_skip_exg 条件分支网关跳过 flow_id(str):希望执行的条件flow id
node_skip_cpg 条件并行网关跳过 flow_ids(list): 希望执行的条件flow id列表
converge_gateway_id(str): 对应的汇聚网关id
node_forced_fail 节点强制失败

管理端接口调用鉴权配置

默认情况下,引擎管理端只要配置到项目中,会被当成一个普通接口进行调用。如果希望对接口调用进行鉴权,则需要开发自定义鉴权逻辑函数,并进行相应配置。

  1. 开发自定义鉴权逻辑
#  鉴权函数, 假设该函数在project/path/file.py文件中
def check_permission_success(request, *args, **kwargs):
    return request.user.username == "admin"
  1. 在settings变量中指定对应的鉴权函数
PIPELINE_ENGINE_ADMIN_API_PERMISSION = "project.path.file.check_permission_success"