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
接口; - 最后,若读取到的 Resource 和 State 中的 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 | 取消二次确认 |