-
Notifications
You must be signed in to change notification settings - Fork 145
Open
Description
When i make a post or patch request to a service to update for example the options, it is saved as strings.
Before POST:
irb(main):007:0> service.options
=>
{:config_info=>
{:provision=>
{:repository_id=>"5",
:playbook_id=>"24",
:credential_id=>"19",
...
After POST:
irb(main):004:0> service.options
=>
{"config_info"=>
{"provision"=>
{"repository_id"=>"5",
"playbook_id"=>"24",
"credential_id"=>"19",
...
This results in cases like the retirement of embedded ansible playbooks to fail, since it seems to expect symbolized keys:
ERROR -- automation: Q-task_id([r2849_service_retire_task_4904]) MiqAeServiceModelBase.ar_method raised: <NoMethodError>: <undefined method `slice' for nil:NilClass
options.fetch_path(:config_info, action.downcase.to_sym).slice(*CONFIG_OPTIONS_WHITELIST).with_indifferent_access
^^^^^^>
Apr 01 15:20:03 manageiq-dev.example.com automation[146765]: ERROR -- automation: Q-task_id([r2849_service_retire_task_4904]) /var/www/miq/vmdb/app/models/service_ansible_playbook.rb:132:in `config_options'
/var/www/miq/vmdb/app/models/service_ansible_playbook.rb:136:in `save_job_options'
/var/www/miq/vmdb/app/models/service_ansible_playbook.rb:18:in `preprocess'
Reproduce:
Patch/Post "options" in a service and check in rails console if service options are now a string.
Version:
radjabov-pre.20241016113258_354d9ab
VMware appliance