we found that bug is seems only for Ansible Playbook and not for any other provider catalog type
Hey Bill, GM said that https://github.com/ManageIQ/manageiq/blob/master/app/models/service_template_ansible_playbook.rb#L139 is supposed to have all the options from the angular UI that it needs to be able to successfully do this service template update. ServiceTemplate.last.update_catalog_item({:name=>"Updated Service Name", :description=>"Updated Service Description"}, User.first) NoMethodError: undefined method `key?' for nil:NilClass from /var/www/miq/vmdb/app/models/service_template_ansible_playbook.rb:118:in `validate_config_info' from /var/www/miq/vmdb/app/models/service_template_ansible_playbook.rb:227:in `validate_update_config_info' from /var/www/miq/vmdb/app/models/service_template_ansible_playbook.rb:139:in `update_catalog_item' I don't know anything about this, could you please tell me how it's supposed to work?
We should by pass the validation and update of config_info unless it presents. Please follow the same pattern in ServiceTemplateAnsibleTower to create a fix.
This isn't an API bug at all per comment 3.
Per https://github.com/ManageIQ/manageiq/commit/a8947bca9cf190989a365d9eee38aafc23934683 though I think this should, rather than Bill's suggestion, look more like the code in that PR at app/models/service_template_ansible_tower.rb because I think we support update without config_info.
Meeeeeee. Sorry, so busy. Here's the issue I'm having. https://github.com/ManageIQ/manageiq/commit/a8947bca9cf190989a365d9eee38aafc23934683#diff-6e711c8868f44a0279bbeb7815bf8135R230 means we at one point thought you could run an update without config_info being present. Bill's comment makes me think that that shouldn't be the case and I don't know what the right thing to do here is. Tina, I don't know what to do here.
Drew your example is a spec for ServiceTemplate. As mentioned earlier the fix is to follow the example of https://github.com/ManageIQ/manageiq/blob/master/app/models/service_template_ansible_tower.rb#L76. The fix should be made in class ServiceTemplateAnsiblePlaybook.
Bill, we pass options in here: https://github.com/ManageIQ/manageiq/blob/master/app/models/service_template_ansible_playbook.rb#L226 and then never use them. I know which file needs the change you're talking about. But that method looks like it's doing the wrong thing anyway at the moment.
I put in the link to the spec to service template because that's what the service template ansible playbook is calling when it calls super: https://github.com/ManageIQ/manageiq/blob/master/app/models/service_template_ansible_playbook.rb#L227
solved through https://github.com/ManageIQ/manageiq/pull/18981
It means I'm working on it right now.
FIXED. Verified on 5.11.0.16.20190724210259_2b4aa51.