Description of problem: When using the API to request a bulk refresh of alternate content sources, invalid ids will be discarded if there is a single valid ACS id in the query. Version-Release number of selected component (if applicable): n/a How reproducible: Always Steps to Reproduce: 1. Create a Sat instance with an alternate content source, note the id. 2. Start a bulk refresh using the API, including the valid id along with several bogus id's: `curl --request POST --user admin:changeme -H "Content-type: application/json" <host>/katello/api/alternate_content_sources/bulk/refresh?ids=<valid>,1001,1002,1003` Actual results: JSON output informing the user that the valid id alone has been refreshed Expected results: An error indicating invalid parameters Additional info: n/a
I just confirmed this behavior also occurs for bulk delete of alternate content sources.
Created redmine issue https://projects.theforeman.org/issues/36634 from this bug
Moving this bug to POST for triage into Satellite since the upstream issue https://projects.theforeman.org/issues/36634 has been resolved.
Verified in 6.14.0 snap 11 1) Invalid ids are caught on bulk actions and proper error message is displayed: [root@sat ~]# curl -X POST -su admin:nene -H "Content-type: application/json" https://$(hostname)/katello/api/alternate_content_sources/bulk/refresh --data '{"ids": [1,2,3]}' | jq { "displayMessage": "Could not find alternate content sources with id: [\"3\"] . You either do not have required permissions, or these alternate content sources do not exist.", "errors": [ "Could not find alternate content sources with id: [\"3\"] . You either do not have required permissions, or these alternate content sources do not exist." ] } [root@sat ~]# curl -X PUT -su admin:nene -H "Content-type: application/json" https://$(hostname)/katello/api/alternate_content_sources/bulk/destroy --data '{"ids": [1,2,3]}' | jq { "displayMessage": "Could not find alternate content sources with id: [\"3\"] . You either do not have required permissions, or these alternate content sources do not exist.", "errors": [ "Could not find alternate content sources with id: [\"3\"] . You either do not have required permissions, or these alternate content sources do not exist." ] } 2) Valid ids are accepted and actions run: [root@sat ~]# curl -X POST -su admin:nene -H "Content-type: application/json" https://$(hostname)/katello/api/alternate_content_sources/bulk/refresh --data '{"ids": [1,2]}' | jq { "id": "37491c3a-940b-40fa-8f14-585128b92086", "label": "Actions::BulkAction", "pending": true, "action": "Bulk action", ... } [root@sat ~]# curl -X PUT -su admin:nene -H "Content-type: application/json" https://$(hostname)/katello/api/alternate_content_sources/bulk/destroy --data '{"ids": [1,2]}' | jq { "id": "eda91f3e-62ef-4ada-b65c-0620ab02fc3e", "label": "Actions::BulkAction", "pending": true, "action": "Bulk action", ... }