Bug #14778
closedCannot use foreman-rake config to set complex (array) settings
Description
Hi,
I want to use the config option via foreman-rake to update the 'ignored_interface_identifiers' setting in Foreman but I'm facing some problems:
Tested on foreman 1.10.2:
$ /usr/sbin/foreman-rake -- config -k ignored_interface_identifiers ["lo"] $ /usr/sbin/foreman-rake -- config -k ignored_interface_identifiers -v '["lo","awdl*"]' "[\"lo\", \"awdl*\"]" $ /usr/sbin/foreman-rake -- config -k ignored_interface_identifiers "[\"lo\", \"awdl*\"]"
On this point, the foreman log shows some errors connected to the filtering of the interfaces:
2016-04-22 14:31:19 [app] [W] Action failed | NoMethodError: undefined method `map' for #<String:0x0000000931c938> | /usr/share/foreman/app/models/setting.rb:183:in `convert_array_to_regexp' | /usr/share/foreman/app/services/fact_parser.rb:166:in `ignored_interfaces' | /usr/share/foreman/app/services/fact_parser.rb:171:in `block in remove_ignored'
The way to solve it is to use the web UI and the setting is sanitized:
$ /usr/sbin/foreman-rake -- config -k ignored_interface_identifiers ["lo", "awdl*"]
I don't know if this is more connected to the foreman-rake or the implementation of the interface filtering.
Any feedback or tip is welcomed :)
Updated by Luis Fernández almost 9 years ago
It looks like on the following line, the 'complex' type is parse and an string is returned:
https://github.com/theforeman/foreman/blob/develop/lib/tasks/config.rake#L134
Could it be as simple as replacing it by just "JSON.parse(value)". I don't know if it could have other side-effects somewhere else.
Thanks!
Updated by The Foreman Bot almost 9 years ago
- Status changed from New to Ready For Testing
- Pull request https://github.com/theforeman/foreman/pull/3461 added
Updated by Anonymous almost 9 years ago
- Status changed from Ready For Testing to Closed
- % Done changed from 0 to 100
Applied in changeset 73d265f6b21a03328697c9555f30d645534839ab.
Updated by Dominic Cleal almost 9 years ago
- Assignee set to Luis Fernández
- Translation missing: en.field_release set to 155
Updated by Dominic Cleal over 8 years ago
- Related to Bug #15084: foreman_config_entry is not idempotent with arrays added