Red Hat Bugzilla – Bug 1183643
Smart class parameters with ERB snippets are broken for other that String types
Last modified: 2017-02-23 15:38:56 EST
Smart class parameters currently have broken validation and type-casting when used with ERB snippets. It tries to validate the value with the ERB without evaluation when key is being saved. It was hacked around it in Staypuft. How to fix it: Validation and type-casting has to be done on classification when ERB can be evaluated; SafeRender needs to be aware of the ERB parameters, they need to be validated and properly type-casted based on the given KeyValue (this association is missing currently). The hack for Staypuft is in this file https://github.com/theforeman/staypuft/blob/master/app/models/staypuft/concerns/lookup_key_extensions.rb
Created from redmine issue http://projects.theforeman.org/issues/8052
Upstream bug assigned to mhulan@redhat.com
Moving to POST since upstream bug http://projects.theforeman.org/issues/8052 has been closed ------------- Marek Hulán Applied in changeset commit:f8a56f5bd809305080e4ba69113f73f65957a3f9.
Steps to verify: Making sure that ERB snippet evaluates correctly in puppet parameters for all available types (String, Number, Array, Hash, etc.) should be enough. The testing ERB can just produce previous value `["asd"]` -> `<%= ["asd"] %>`.
VERIFIED : # rpm -qa | grep foreman qe-sat6-rhel71.usersys.redhat.com-foreman-client-1.0-1.noarch qe-sat6-rhel71.usersys.redhat.com-foreman-proxy-1.0-1.noarch ruby193-rubygem-foreman_docker-1.2.0.7-1.el7sat.noarch rubygem-hammer_cli_foreman_discovery-0.0.1.4-1.el7sat.noarch ruby193-rubygem-foreman-redhat_access-0.1.0-1.el7sat.noarch foreman-compute-1.7.2.15-1.el7sat.noarch foreman-vmware-1.7.2.15-1.el7sat.noarch ruby193-rubygem-foreman_discovery-2.0.0.9-1.el7sat.noarch rubygem-hammer_cli_foreman_bootdisk-0.1.2.5-1.el7sat.noarch ruby193-rubygem-foreman_gutterball-0.0.1.9-1.el7sat.noarch foreman-1.7.2.15-1.el7sat.noarch foreman-ovirt-1.7.2.15-1.el7sat.noarch rubygem-hammer_cli_foreman-0.1.4.7-1.el7sat.noarch foreman-proxy-1.7.2.4-1.el7sat.noarch qe-sat6-rhel71.usersys.redhat.com-foreman-proxy-client-1.0-1.noarch foreman-postgresql-1.7.2.15-1.el7sat.noarch ruby193-rubygem-foreman_hooks-0.3.7-2.el7sat.noarch foreman-selinux-1.7.2.13-1.el7sat.noarch foreman-gce-1.7.2.15-1.el7sat.noarch ruby193-rubygem-foreman-tasks-0.6.12.3-1.el7sat.noarch rubygem-hammer_cli_foreman_tasks-0.0.3.3-1.el7sat.noarch foreman-debug-1.7.2.15-1.el7sat.noarch foreman-libvirt-1.7.2.15-1.el7sat.noarch ruby193-rubygem-foreman_bootdisk-4.0.2.10-1.el7sat.noarch Login to sat6 Puppet Classes -> Smart Class parameter Try to modify the default value to `<%= ["asd"] %> for parameter type array it should allow to update the value screen shot attached
Created attachment 1016803 [details] smart class parameter
This bug is slated to be released with Satellite 6.1.
Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://access.redhat.com/errata/RHSA-2015:1592