Refactor #14450
closed
Replace use of Puppet parser functions in parameter validations
Added by Dominic Cleal over 8 years ago.
Updated over 8 years ago.
Description
kafo_parsers returns a list of validations for each Puppet module, referencing Puppet::Parser AST objects. This should be replaced by a more generic validation mechanism or at worst, removed/discarded.
Using parser functions directly will be difficult with Puppet under AIO, as the classes won't be accessible. This will also be a problem with the parser cache in #14447 as it will serialise these classes on Puppet 3 but be unable to deserialise them.
One possibility might be to reimplement or redistribute with modifications the functions from stdlib in Kafo (or another gem) and then use standard naming to load the validation checks instead of serialising the class.
This will also have the benefit of removing some complex code that loads parser functions from the Puppet modulepath inside Kafo.
- Status changed from New to Assigned
- Assignee set to Dominic Cleal
I think I'm going to simplify the interface between the two gems not to pass the parsed AST objects back, and instead pass the function name and arguments.
In kafo we can re-implement the common validation functions from the stdlib documentation/spec. foreman-installer only uses:
validate_absolute_path
validate_array
validate_bool
validate_hash
validate_integer
validate_listen_on (from puppet-foreman_proxy)
validate_re
validate_string
I'm unsure if this will be required after Puppet 2+3 support is dropped, as the data types in 4 are more descriptive and will replace almost all validation (#14500).
- Status changed from Assigned to Ready For Testing
- Pull request https://github.com/theforeman/kafo/pull/137 added
- Pull request https://github.com/theforeman/kafo_parsers/pull/17 added
- Status changed from Ready For Testing to Closed
- % Done changed from 0 to 100
Also available in: Atom
PDF