Bug 2218179 - The "reclaim_space" API endpoint mentioned for external capsules are wrong in API doc.
Summary: The "reclaim_space" API endpoint mentioned for external capsules are wrong in...
Keywords:
Status: POST
Alias: None
Product: Red Hat Satellite
Classification: Red Hat
Component: Capsule - Content
Version: 6.13.1
Hardware: All
OS: All
high
medium
Target Milestone: Unspecified
Assignee: satellite6-bugs
QA Contact: Satellite QE Team
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2023-06-28 11:16 UTC by Sayan Das
Modified: 2023-06-29 10:14 UTC (History)
2 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed:
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Foreman Issue Tracker 36545 0 Normal Ready For Testing The "POST /katello/api/capsules/:id/reclaim_space" endpoint is wrong 2023-06-28 11:42:42 UTC
Red Hat Issue Tracker SAT-18674 0 None None None 2023-06-28 13:04:21 UTC

Description Sayan Das 2023-06-28 11:16:49 UTC
Description of problem:

Accessing https://<satellite or katello URL>/apidoc/v2/capsule_content/reclaim_space.en.html

Lands me on the API

POST /katello/api/capsules/:id/reclaim_space

But this is the wrong endpoint and execution of the same leads to an "ActionController::RoutingError (No route matches" error. 


Version-Release number of selected component (if applicable):

Satellite 6.13 ( 6.11\6.12\6.14 as well )


How reproducible:

Easily 


Steps to Reproduce:
1. Install a pair of satellite and capsule ( any of the versions mentioned above )

   Let the ID of satellite is 1 and external capsule is 2

2. Sync some data on capsule
3. Access the APIDOC to see the reclaim_space end point 

   https://<satellite URL?/apidoc/v2/capsule_content/reclaim_space.en.html

4. Try to use the API on satellite i.e. 

curl -ku admin:password -X POST -H "Content-Type:application/json" https://`hostname -f`/katello/api/capsules/2/reclaim_space


Actual results:

curl error:
~~
<!DOCTYPE html>
<html>
<head>
  <title>The page you were looking for doesn't exist (404)</title>
  <meta name="viewport" content="width=device-width,initial-scale=1">
  <style>
  body {
    background-color: #EFEFEF;
    color: #2E2F30;
    text-align: center;
    font-family: arial, sans-serif;
    margin: 0;
  }
~~


Production.log error:

~~
2023-06-28T16:42:23 [I|app|b95e340e] Started POST "/katello/api/capsules/2/reclaim_space" for X.X.Y.Z at 2023-06-28 16:42:23 +0530
2023-06-28T16:42:26 [F|app|b95e340e]   
 b95e340e | ActionController::RoutingError (No route matches [POST] "/katello/api/capsules/2/reclaim_space"):
 b95e340e |   
 b95e340e | lib/foreman/middleware/logging_context_request.rb:11:in `call'
 b95e340e | katello (4.7.0.25) lib/katello/prevent_json_parsing.rb:12:in `call'
~~


Expected results:

The endpoint should be 

POST /katello/api/capsules/:id/content/reclaim_space


Additional info:

Following fixes the issue i.e. 

diff --git a/app/controllers/katello/api/v2/capsule_content_controller.rb b/app/controllers/katello/api/v2/capsule_content_controller.rb
index f9a1516..4ab6426 100644
--- a/app/controllers/katello/api/v2/capsule_content_controller.rb
+++ b/app/controllers/katello/api/v2/capsule_content_controller.rb
@@ -87,7 +87,7 @@ module Katello
       end
     end
 
-    api :POST, '/capsules/:id/reclaim_space', N_('Reclaim space from all On Demand repositories on a smart proxy')
+    api :POST, '/capsules/:id/content/reclaim_space', N_('Reclaim space from all On Demand repositories on a smart proxy')
     param :id, :number, :required => true, :desc => N_('Id of the smart proxy')
     def reclaim_space
       find_capsule(true)

Comment 1 Sayan Das 2023-06-28 11:42:42 UTC
Created redmine https://projects.theforeman.org/issues/36545

Comment 2 Bryan Kearney 2023-06-28 20:03:31 UTC
Moving this bug to POST for triage into Satellite since the upstream issue https://projects.theforeman.org/issues/36545 has been resolved.


Note You need to log in before you can comment on or make changes to this bug.