Bug #6248
Some JSON responses are still nested in a root node
Description
I was reviewing this bug: https://bugzilla.redhat.com/show_bug.cgi?id=1087372 but it doesn't look like everything was fixed.
$ curl "http://localhost:3000/katello/api/v2/organizations.json" -d '{"name": "Test20071"}' -u admin:changeme -H "Accept: application/json" -H "Content-Type: application/json" {"organization":{"ancestry":null,"apply_info_task_id":null,"created_at":"2014-06-16T18:27:59Z","default_info":{"system":[],"distributor":[]},"deletion_task_id":null,"description":null,"id":4,"ignore_types":[],"label":"Test20071","name":"Test20071","owner_auto_attach_all_systems_task_id":null,"title":"Test20071","updated_at":"2014-06-16T18:28:03Z","service_levels":[],"service_level":null}}
It looks like the output is still being wrapped. Here's another object:
$ curl "http://localhost:3000/katello/api/v2/products.json" -d '{"name": "TEST", "organization_id": "1"}' -u admin:changeme -H "Accept: application/json" -H "Content-Type: application/json" {"organization":{"name":"ACME_Corporation","label":"ACME_Corporation"},"created_at":"2014-06-16T18:39:15Z","updated_at":"2014-06-16T18:39:15Z","readonly":false,"id":97,"cp_id":null,"name":"TEST","label":"TEST","description":null,"provider_id":1,"sync_plan_id":null,"sync_status":{"created_at":null,"finish_time":null,"id":null,"organization_id":null,"parameters":{},"progress":{"items_left":0,"total_count":0,"size_left":0,"total_size":0},"result":null,"start_time":null,"state":"not_synced","task_owner_id":null,"task_owner_type":null,"task_type":null,"updated_at":null,"user_id":0,"uuid":null},"gpg_key_id":null,"redhat":false,"product_content":[],"available_content":[],"repository_count":0,"permissions":{"deletable":true},"library_repositories":[],"provider":{"name":"Anonymous"},"":null}
Notice how the attributes are not wrapped.
Related issues
Associated revisions
History
#1
Updated by Dominic Cleal almost 9 years ago
Should this be in the Katello project as those are Katello controllers?
Foreman has an existing bug #5880 open about two controllers (taxonomies, users) which have a similar issue.
#2
Updated by David Davis almost 9 years ago
So in the Katello controller for organization, we're just extending the foreman organization controller so I think bug #5880 should suffice. I think we can close this out as a dupe of that bug. Sorry I missed that.
#4
Updated by Dominic Cleal almost 9 years ago
- Status changed from New to Duplicate
#5
Updated by David Davis almost 9 years ago
- Status changed from Duplicate to Assigned
- Assignee set to Joseph Magen
I was having connection issues and accidentally deleted #5880. Here's its description from Google cache (Jun 15, 2014 11:43:17 GMT).
The return values of these API calls are not consistent:
when creating an organization, the return value is an organization hash embedded in a higher level hash with one "organization" key {"organization" => organization_hash} {"organization"=>{"apply_info_task_id"=>nil, "updated_at"=>"2014-04-14T09:21:50Z", "description"=>"Imported 'Red Hat IT' organization from Red Hat Satellite 5", "default_info"=>{"system"=>[], "distributor"=>[]}, "id"=>2, "deletion_task_id"=>nil, "owner_auto_attach_all_systems_task_id"=>nil, "ancestry"=>nil, "created_at"=>"2014-04-14T09:21:49Z", "service_level"=>nil, "title"=>"Red Hat IT", "name"=>"Red Hat IT", "label"=>"Red_Hat_IT", "ignore_types"=>[], "service_levels"=>[]}}
when creating a new user, the API return value is a simple user_hash. {"locations"=>[], "lastname"=>"another", "firstname"=>"another", "roles"=>[{"name"=>"Anonymous", "id"=>8}], "updated_at"=>"2014-04-14T09:26:32Z", "admin"=>nil, "last_login_on"=>nil, "usergroups"=>[], "organizations"=>[{"title"=>"Red Hat IT", "name"=>"Red Hat IT", "id"=>5}], "created_at"=>"2014-04-14T09:26:32Z", "mail"=>"root@localhost", "id"=>4, "auth_source_id"=>1, "auth_source_name"=>"Internal", "login"=>"another", "auth_source_internal"=>{"type"=>"AuthSourceInternal", "name"=>"Internal", "id"=>1}}
Version-Release number of selected component (if applicable):
sat6-Satellite-6.0.3-RHEL-6-20140404.0-Satellite-x86_64-dvd1.isoThis is a request to unify to API parameter and return value encapsulation.
#6
Updated by David Davis almost 9 years ago
- Status changed from Assigned to Duplicate
#7
Updated by David Davis almost 9 years ago
- Status changed from Duplicate to Ready For Testing
#8
Updated by Dominic Cleal almost 9 years ago
- Target version set to 1.8.1
#9
Updated by Dominic Cleal almost 9 years ago
- Legacy Backlogs Release (now unused) set to 10
#10
Updated by Dominic Cleal almost 9 years ago
- Related to Bug #5178: Users API requires parameters to be wrapped added
#11
Updated by Dominic Cleal almost 9 years ago
- Related to Bug #4181: V2: Api docs in foreman should not specify a root node for POST/PUT added
#12
Updated by Joseph Magen almost 9 years ago
- Status changed from Ready For Testing to Closed
- % Done changed from 0 to 100
Applied in changeset 301e9dc13bc61b4ab0f9b281abe424f5a16d8d21.
#13
Updated by Dominic Cleal over 8 years ago
- Related to Bug #6715: revert API v2 GET response to wrapped parameters using object node added
fixes #6248 - API V2 return object for POST/PUT/DELETE should not include root node