跳转至

dtm apply

当使用 dtm apply 配置文件时,会发生以下事情:

1 对于 Config(配置文件) 中定义的每个 Tool

我们将会对比 Tool、它的 State 和它之前创建的 Resoruce(如果存在 state)。

根据对比结果,变更规则如下:

  • 若该 Tool 不在 State 中,调用 Create 接口;
  • 若该 Tool 存在于 State 中,但当前 Config 中关于该 Tool 的配置与 State 中的定义不同(意味着用户可能在上一次 apply 之后更新了配置),则调用 Update 接口;
  • 若该 Tool 存在于 State 中,且当前 Config 中关于该 Tool 的配置与 State 相同。我们将会继续尝试通过 Read 接口读取 Resource ,并与 State 中记录的 Resource 比对:
  • 若从 Read 读取到的 Resource 不存在,调用 Create 接口。这可能表明 Resource 在最后一次成功 apply 后被手动删除;
  • 若从 Read 读取到的 Resource 存在,但与 State 中记录的 Resource 不一致(意味着有人修改了 State 或插件状态发生了变化),调用 Update 接口;
  • 最后,若读取到的 ResourceState 中的 Resource 一致,什么都不做。

2 State 中含有某 Tool,但 Config 中没有

我们将对其执行"删除"操作,以删除相应的 Resource 。因为 State 中含有此 Tool,但配置文件中不存在了,这意味着用户先前为该 Tool,创建了 Resource,但后面从 Config 中删除了该 Tool,表明用户不想要该 Resource 了。

3 命令行参数

默认值 描述
-f --config-file "config.yaml" 配置文件路径
-d --plugin-dir "~/.devstream/plugins" 插件目录
-y --yes false 取消二次确认