When transforming a NodeConf struct to a NodeInfo (get the NodeInfo from
the Nodconf) nested structures were seperately handled. This means there
were seperate handles for e.g *Netdevs and *IpmiConfig. The new getter
traverses through the datastucture and sets the right value for an Entry
struct, but calls itself again if a Pointer is detected.
This adds the posiblity to add new nested structures to NodeConf and
NodeInfo without the need of seperate handling them in the transformer
functions.
Signed-off-by: Christian Goll <cgoll@suse.de>
Since BaseConf.New could return a cached BaseConf, rather than always
constructing a new struct, I've renamed it to Get to more accurately
reflect its use. A new New() method is called by Get and always
initializes a new struct.
Signed-off-by: Jonathon Anderson <janderson@ciq.co>
The caching functionality of nodes.conf, and the optional persistence
functionality that came with it, appears to have been preventing
actually writing the configuration to disk in all cases. This change
fixes the ability to write to nodes.conf.
Somewhat opinionatedly, this change removes the caching functionality of
nodes.conf. The tests have also been updated to use real files for i/o
rather than tying into the caching system, making them more accurately
test the ability of Warewulf to actually read and write its
configuration.
Fixes#779
Signed-off-by: Jonathon Anderson <janderson@ciq.co>
check also MAC addresses and common formating
Signed-off-by: Christian Goll <cgoll@suse.de>
reformat ipaddr for test coverage
fixed processing of default values
updated transformer tests
correct behavior for tags
add tests for tags
new tests for primary network
Signed-off-by: Christian Goll <cgoll@suse.de>
* added the additional type flag, which can be bool,IP
* UNDEF is recognized for the bool flag
* 0.0.0.0 must be used as UNDEF for IP flag
Signed-off-by: Christian Goll <cgoll@suse.de>
Prior the primary was a boolean attribute of NetDev, so several
NetDevs could have been primay. Setting is as a sting in NodeConf
assures that only one network could be primary.
If no primary network is set, a valid altvalue will be set.
Why have I done this?
- Because defaults.conf had a starting newline, which bugs me.
- Because moving the first line of FallBackConf looks unlovely.
- Because yaml happens to have a --- document-start syntax.
I completely agree that this is (hopefully) a no-op change;
but if anyone else thinks it makes things aesthetically more
pleasing, and agrees that it doesn't break anything, go ahead
and merge. ^_^
Signed-off-by: Jonathon Anderson <janderson@ciq.co>