-
Bug
-
Resolution: Done
-
Normal
-
None
-
6.11.0
-
Phoenix - Content
-
False
-
Moderate
-
Sprint 119, Sprint 120, Sprint 121, Sprint 122, Sprint 123, Sprint 124, Sprint 125, Sprint 126, Sprint 127, Sprint 128, Sprint 129, Sprint 130, Sprint 131, Sprint 132, Sprint 133, Sprint 134, Sprint 135, Sprint 136, Sprint 137, Sprint 138, Sprint 139, Sprint 140, Sprint 141, Sprint 142
-
None
-
None
-
None
-
None
-
Yes
Description of problem:
In Satellite 6.12 (Katello 4.5) the "docker_tags_whitelist" parameter of a repository is deprecated in favor of include_tags/exclude_tags. Nevertheless I would expect that parameter to work.
Trivial reproducer is something like the following curl call:
- curl -k -d '
{"docker_tags_whitelist":["lol"]}
' -u admin:changeme -H 'Content-Type: application/json' -X PUT https://localhost/katello/api/repositories/1
{"displayMessage":"Missing values for repository.","errors":["param is missing or the value is empty: repository"]}
This has worked on 6.11 and works in 6.11 if I replace docker_tags_whitelist with include_tags.
The stacktrace in production.log looks like this:
2022-09-14T11:58:11 [I|app|bbbdb6f8] Started PUT "/katello/api/repositories/1" for 127.0.0.1 at 2022-09-14 11:58:11 +0000
2022-09-14T11:58:11 [I|app|bbbdb6f8] Processing by Katello::Api::V2::RepositoriesController#update as /
2022-09-14T11:58:11 [I|app|bbbdb6f8] Parameters: {"docker_tags_whitelist"=>["lol"], "api_version"=>"v2", "id"=>"1", "repository"=>{}}
2022-09-14T11:58:11 [I|app|bbbdb6f8] Authorized user admin(Admin User)
2022-09-14T11:58:11 [E|app|bbbdb6f8] ActionController::ParameterMissing: param is missing or the value is empty: repository
bbbdb6f8 | /usr/share/gems/gems/actionpack-6.0.4.7/lib/action_controller/metal/strong_parameters.rb:462:in `require'
bbbdb6f8 | /usr/share/gems/gems/katello-4.5.0.6/app/controllers/katello/api/v2/repositories_controller.rb:534:in `repository_params'
bbbdb6f8 | /usr/share/gems/gems/katello-4.5.0.6/app/controllers/katello/api/v2/repositories_controller.rb:345:in `update'
Version-Release number of selected component (if applicable):
rubygem-katello-4.5.0.6-1.el8sat.noarch
satellite-6.12.0-2.el8sat.noarch
How reproducible:
100%
Steps to Reproduce:
1. hammer product create --name lol --organization "Default Organization"
2. hammer repository create --name lol --content-type docker --product lol --organization "Default Organization"
3. curl -k -d '
' -u admin:changeme -H 'Content-Type: application/json' -X PUT https://localhost/katello/api/repositories/1
Actual results:
{"displayMessage":"Missing values for repository.","errors":["param is missing or the value is empty: repository"]}Expected results:
Repository updated
Additional info:
This still works via hammer (hammer -d repository update --name lol --product lol --organization "Default Organization" --docker-tags-whitelist lol) because hammer for some (unnecessary) reason sends a slightly different payload
and that gets accepted by the API.
- is duplicated by
-
SAT-36496 PUT /katello/api/repositories/:id fails when only updating docker_tags_whitelist
-
- Closed
-
- external trackers