Bug 2164997

Summary: hammer repository reclaim-space raises "undefined local variable or method `repositories'" exception
Product: Red Hat Satellite Reporter: Pavel Moravec <pmoravec>
Component: RepositoriesAssignee: wclark
Status: POST --- QA Contact: Satellite QE Team <sat-qe-bz-list>
Severity: medium Docs Contact:
Priority: high    
Version: 6.12.0CC: alsouza, chrobert
Target Milestone: UnspecifiedKeywords: Triaged
Target Release: Unused   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 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 Pavel Moravec 2023-01-27 09:55:36 UTC
Description of problem:
hammer repository reclaim-space (for any On Demand repo) fails:

hammer> repository reclaim-space --id 1 --organization-id 1
Could not reclaim the repository:
  undefined local variable or method `repositories' for #<Actions::Pulp3::Repository::ReclaimSpace:0x0000564031cede08>
  Did you mean?  repository_hrefs
hammer> 

https://github.com/Katello/katello/blob/master/app/lib/actions/pulp3/repository/reclaim_space.rb#L7 has a left-over from https://github.com/Katello/katello/commit/5b8426e20f4b5812375ed416180f2181ec94312a

The line should be like:

repository_hrefs = ::Katello::Pulp3::RepositoryReference.default_cv_repository_hrefs([repo], Organization.current || repo.organization)

(this does work)

but I think the 2nd argument should rather be directly "repo.organization", or maybe "repo.organization || Organization.current" to have a fallback - as we should be scoped in the _repository_ organization, no..?


Version-Release number of selected component (if applicable):
Sat 6.11
Sat 6.12
upcoming 6.13 almost surely as well


How reproducible:
100%


Steps to Reproduce:
1. Enable and sync a repo with On Demand download policy
2. try to reclaim space via hammer:

hammer repository reclaim-space --id REPOID --organization-id ORGID


Actual results:
Could not reclaim the repository:
  undefined local variable or method `repositories' for #<Actions::Pulp3::Repository::ReclaimSpace:0x0000564031cede08>
  Did you mean?  repository_hrefs


Expected results:
It works well


Additional info:
The same action via WebUI does work well. "just" hammer fails. (but the bug is in katello)

Comment 2 wclark 2023-02-23 21:31:12 UTC
Created redmine issue https://projects.theforeman.org/issues/36142 from this bug

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

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