This PR adds support for the Reclass option compose-node-name.
Additionally, we implement support for compatibility flags (including helpers to set/unset/clear flags from Python), and introduce a first flag ComposeNodeNameLiteralDots. This flag configures reclass-rs to generate node metadata which matches Python reclass when compose-node-name is enabled.
The compatibility flag is required because Python reclass discards literal dots in node filepaths when compose-node-name is enabled, resulting in incorrect node metadata for nodes which have literal dots in their filename (e.g. node a.1 in the test/inventory-compose-node-name inventory).
By default, reclass-rs will preserve literal dots in the node metadata (path, and part) for node names when compose-node-name is enabled.
Checklist
[x] The PR has a meaningful title. The title will be used to auto generate the changelog
[x] PR contains a single logical change (to build a better changelog).
[x] Update the documentation.
[x] Update tests.
[x] Categorize the PR by setting a good title and adding one of the labels:
bug, enhancement, documentation, change, breaking, dependency, internal
as they show up in the changelog
This PR adds support for the Reclass option
compose-node-name
.Additionally, we implement support for compatibility flags (including helpers to set/unset/clear flags from Python), and introduce a first flag
ComposeNodeNameLiteralDots
. This flag configures reclass-rs to generate node metadata which matches Python reclass whencompose-node-name
is enabled.The compatibility flag is required because Python reclass discards literal dots in node filepaths when
compose-node-name
is enabled, resulting in incorrect node metadata for nodes which have literal dots in their filename (e.g. nodea.1
in thetest/inventory-compose-node-name
inventory).By default, reclass-rs will preserve literal dots in the node metadata (
path
, andpart
) for node names whencompose-node-name
is enabled.Checklist
bug
,enhancement
,documentation
,change
,breaking
,dependency
,internal
as they show up in the changelog