Refactor #14450
closedReplace use of Puppet parser functions in parameter validations
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.
Updated by Dominic Cleal over 8 years ago
- Blocks Tracker #8447: Puppet 4 support added
Updated by Dominic Cleal over 8 years ago
- Status changed from New to Assigned
- Assignee set to Dominic Cleal
Updated by Dominic Cleal over 8 years ago
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).
Updated by The Foreman Bot over 8 years ago
- Status changed from Assigned to Ready For Testing
- Pull request https://github.com/theforeman/kafo/pull/137 added
Updated by The Foreman Bot over 8 years ago
- Pull request https://github.com/theforeman/kafo_parsers/pull/17 added
Updated by Dominic Cleal over 8 years ago
- Status changed from Ready For Testing to Closed
- % Done changed from 0 to 100
Applied in changeset 7a1648e05db0f1b4e40b97be44798b5b5f0f9187.