Bug 1179448

Summary: Katello API throws an incorrect error when receiving non-json requests
Product: Red Hat Satellite Reporter: David Davis <daviddavis>
Component: APIAssignee: David Davis <daviddavis>
Status: CLOSED ERRATA QA Contact: jaudet
Severity: medium Docs Contact:
Priority: unspecified    
Version: UnspecifiedCC: adprice, bkearney, jaudet, sthirugn
Target Milestone: Unspecified   
Target Release: Unused   
Hardware: Unspecified   
OS: Unspecified   
URL: http://projects.theforeman.org/issues/8846
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2015-08-12 05:21:17 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:

Description David Davis 2015-01-06 18:55:08 UTC
When I run the following against our Katello API:

❯ curl -k -u admin:changeme localhost:3000/katello/api/v2/organizations/3/systems/a0ce0ce7-7935-4298-9557-9e6abbe67224 -XPUT -d'{"content_view_id": "19", "type": "system"}'

{"displayMessage":"Missing values for system.","errors":["param is missing or the value is empty: system"]}

However I'd expect a 415 since curl by default uses x-www-form-urlencoded or whatever for PUT requests. Here's a foreman example:

❯ curl -k -u admin:changeme -XPUT localhost:9292/api/v2/operatingsystems/1 -d'{"name": "test"}'

{
  "error": {"message":"'Content-Type: application/x-www-form-urlencoded' is unsupported in API v2 for POST and PUT requests. Please use 'Content-Type: application/json'."}
}

I think this is because our Katello API controllers aren't extending foreman's Api::V2::BaseController.

Comment 1 Partha Aji 2015-01-06 18:56:54 UTC
Created redmine issue http://projects.theforeman.org/issues/8846 from this bug

Comment 2 RHEL Program Management 2015-01-06 19:24:06 UTC
Since this issue was entered in Red Hat Bugzilla, the release flag has been
set to ? to ensure that it is properly evaluated for this release.

Comment 4 Bryan Kearney 2015-01-12 21:05:02 UTC
Moving to POST since upstream bug http://projects.theforeman.org/issues/8846 has been closed
-------------
David Davis
Applied in changeset commit:katello|50c3c9c3db8a637e5034d9c1d44d6bc9808eedec.

Comment 7 jaudet 2015-03-06 20:51:48 UTC
Tested against both RHEL 6.6 and RHEL 7.1 sytems using Robottelo. Example test output:

    $ nosetests tests/foreman/api/test_organization.py -m test_create_text_plain
    .
    ----------------------------------------------------------------------
    Ran 1 test in 0.152s

    OK

Comment 8 Bryan Kearney 2015-08-11 13:28:49 UTC
This bug is slated to be released with Satellite 6.1.

Comment 9 errata-xmlrpc 2015-08-12 05:21:17 UTC
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