如何从语义上验证 YAML 架构?

问题描述 投票:0回答:1

我正在与 Aerospike 合作,我想创建一个脚本来验证 aerospike 配置。

我可以使用

asconfig validate
命令验证文件的语法。

现在,我想上升一级,并想使用我自己的架构验证配置文件。例如,我想确保配置文件中

replication-factor
的值始终大于 3。问题是
replication-factor
参数存储在多个参数中。

namespace test {
        replication-factor 2

        storage-engine memory {
                data-size 4G
        }
}

我目前的解决方案是将配置文件转换为yaml文件,然后使用yaml解析器来比较这两个文件。

我尝试了一些 yaml 解析器,但它们只能解析 yaml 文件中的特定值,但无法使用 yaml 文件验证架构。有什么方法可以让我更容易实现吗?

我尝试

asconfig convert -a 7.0.0
将配置文件转换为.yaml格式。

为了验证版本 7.0.0 的配置文件,我运行了

asconfig validate -a 7.0.0 <file>

编辑:

namespaces:
    - name: test
      replication-factor: 2
      storage-engine:
        data-size: 4294967296
        type: memory
    - name: bar
      replication-factor: 2
      storage-engine:
        data-size: 4294967296
        type: memory

命名空间

replication-factor
test
4
,而
bar
则是
2

linux validation yaml aerospike
1个回答
1
投票

我不知道有什么解析解决方案比评论中已经提到的更容易,但是如果您有 Go 的经验,您可以构建自己的

asconfig
版本。

架构文件位于此处

asconfig
位于此处

使用

git clone --recurse-submodules
克隆
asconfig
存储库,它将包含架构。

您可以编辑您的版本的架构以符合您正在寻找的任何有效设置,然后构建

asconfig
的本地版本以使用该架构。

© www.soinside.com 2019 - 2024. All rights reserved.