forked from madduck/reclass
-
Notifications
You must be signed in to change notification settings - Fork 23
Open
Description
At the moment, reclass allows duplicate keys in any YAML file and silently uses the last value.
For example, this node file:
$ cat /tmp/reclass/nodes/node1.yml
parameters:
key1: True
key2: other value
key1: False
Returns the following:
$ reclass --inventory -b /tmp/reclass/ | yq -y .nodes.node1.parameters
_reclass_:
environment: base
name:
full: node1
short: node1
key1: false
key2: other value
In a very large YAML file, this is an easy to make mistake and can have very bad consequences.
We could use something like what's described in the link below to look for duplicate keys on reclass/storage/yamldata.py
https://gist.github.com/pypt/94d747fe5180851196eb
That would throw an error on yaml.load():
while constructing a mapping
in "/tmp/reclass/nodes/node1.yml", line 2, column 5
found duplicate key (key1)
in "/tmp/reclass/nodes/node1.yml", line 4, column 5
If you're happy with this approach I'm happy to implement it.
Metadata
Metadata
Assignees
Labels
No labels