Bug 2129950
| Summary: | ISE when creating a CV with org_id specified as array | ||||||
|---|---|---|---|---|---|---|---|
| Product: | Red Hat Satellite | Reporter: | Lukáš Hellebrandt <lhellebr> | ||||
| Component: | API | Assignee: | Samir Jha <sajha> | ||||
| Status: | CLOSED ERRATA | QA Contact: | Peter Ondrejka <pondrejk> | ||||
| Severity: | medium | Docs Contact: | |||||
| Priority: | unspecified | ||||||
| Version: | 6.12.0 | CC: | egolov, pcreech, sajha | ||||
| Target Milestone: | 6.13.0 | Keywords: | Regression, Triaged | ||||
| Target Release: | Unused | ||||||
| Hardware: | Unspecified | ||||||
| OS: | Unspecified | ||||||
| Whiteboard: | |||||||
| Fixed In Version: | Doc Type: | If docs needed, set a value | |||||
| Doc Text: | Story Points: | --- | |||||
| Clone Of: | Environment: | ||||||
| Last Closed: | 2023-05-03 13:22:11 UTC | Type: | Bug | ||||
| Regression: | --- | Mount Type: | --- | ||||
| Documentation: | --- | CRM: | |||||
| Verified Versions: | Category: | --- | |||||
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |||||
| Cloudforms Team: | --- | Target Upstream Version: | |||||
| Embargoed: | |||||||
| Attachments: |
|
||||||
In 6.9.7, this error was handled correctly:
$ curl -uadmin:<password> -k -H "Content-Type:application/json" -H "Accept:application/json" -X POST https://<FQDN>/katello/api/v2/content_views -d '{"name": "test1", "organization_id": [1], "api_version": "v2", "content_view": {"name": "test1", "organization_id": [1]}}'
{"displayMessage":"Unfiltered params array: organization_id.","errors":["Unfiltered params array: organization_id."]}
6.10.1 does this, still ok but it's interesting how often the behavior changes:
$ curl -uadmin:<password> -k -H "Content-Type:application/json" -H "Accept:application/json" -X POST https://<FQDN>/katello/api/v2/content_views -d '{"name": "test1", "organization_id": [1], "api_version": "v2", "content_view": {"name": "test1", "organization_id": [1]}}'
{"message":"Organization with id [1] not found"}
In 6.11.0 snap 26.0, the behavior was already the same as reported.
Marking this as regression but this was regression in 6.11.0 against 6.10.
Hello Samir, ISE is never a correct response and if this is common, it is one more reason to handle the exception correctly. Also, this specific case with a CV is a regression. To make it sound less horrible, I agree that this is low severity. It can't be considered normal or ok though. Why did automation do that? I don't think it had any specific reason, it was just so written that it passed an array. I've fixed it, this doesn't block automation. Created redmine issue https://projects.theforeman.org/issues/35816 from this bug Moving this bug to POST for triage into Satellite since the upstream issue https://projects.theforeman.org/issues/35816 has been resolved. Verified on Satellite 6.13 snap 4, using steps from problem desc. The api call receives:
{"message":"Organization with id [1] not found"}(broker)
The prodlog contains no ISE:
2023-01-05T08:56:03 [I|app|9e12714c] Started POST "/katello/api/v2/content_views" <ip> at 2023-01-05 08:56:03 -0500
2023-01-05T08:56:03 [I|app|9e12714c] Processing by Katello::Api::V2::ContentViewsController#create as JSON
2023-01-05T08:56:03 [I|app|9e12714c] Parameters: {"name"=>"test1", "organization_id"=>[1], "api_version"=>"v2", "content_view"=>{"name"=>"test1", "organization_id"=>[1]}}
2023-01-05T08:56:03 [I|app|9e12714c] Authorized user admin(Admin User)
2023-01-05T08:56:03 [I|app|9e12714c] Filter chain halted as :authorize rendered or redirected
2023-01-05T08:56:03 [I|app|9e12714c] Completed 404 Not Found in 270ms (Views: 1.1ms | ActiveRecord: 29.8ms | Allocations: 13891)
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 (Important: Satellite 6.13 Release), 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-2023:2097 |
Created attachment 1914454 [details] production.log Description of problem: When creating a CV through API, I get ISE (log attached) when I specify organization ID as a list of IDs: $ curl -uadmin:<password> -k -H "Content-Type:application/json" -H "Accept:application/json" -X POST https://<FQDN>/katello/api/v2/content_views -d '{"name": "test1", "organization_id": [1], "api_version": "v2", "content_view": {"name": "test1", "organization_id": [1]}}' {"displayMessage":"undefined method `start_with?' for [1]:Array","errors":["undefined method `start_with?' for [1]:Array"]} The part before ":Array" is the value specified for organization_id Version-Release number of selected component (if applicable): Reproduced with Sat 6.12.0 snap 12.0 AND 6.11.3 How reproducible: Deterministic Steps to Reproduce: curl -uadmin:<password> -k -H "Content-Type:application/json" -H "Accept:application/json" -X POST https://<FQDN>/katello/api/v2/content_views -d '{"name": "test1", "organization_id": [1], "api_version": "v2", "content_view": {"name": "test1", "organization_id": [1]}}' Actual results: Traceback, error, no CV created Expected results: Either CV created with the specified organization or at least correctly handled error, no ISE