class HammerCLIKatello::ContentViewPurgeCommand
Public Instance Methods
execute()
click to toggle source
# File lib/hammer_cli_katello/content_view_purge.rb, line 51 def execute if option_count.negative? output.print_error _("Invalid value for --count option: value must be 0 or greater.") return HammerCLI::EX_USAGE end # Check if there is something to do if option_count >= old_unused_versions.size output.print_error _("No versions to delete.") HammerCLI::EX_NOT_FOUND else versions_to_purge = old_unused_versions.slice(0, old_unused_versions.size - option_count) versions_to_purge.each do |v| purge_version(v) end HammerCLI::EX_OK end end
option_sources()
click to toggle source
Calls superclass method
# File lib/hammer_cli_katello/content_view_purge.rb, line 41 def option_sources sources = super sources.find_by_name('IdResolution').insert_relative( :after, 'IdParams', ContentViewIdParamSource.new(self) ) sources end
Private Instance Methods
old_unused_versions()
click to toggle source
# File lib/hammer_cli_katello/content_view_purge.rb, line 84 def old_unused_versions return @old_unused_versions if @old_unused_versions all_versions = [] per_page = 100 page = 1 loop do versions = index(:content_view_versions, :content_view_id => options['option_id'], :per_page => per_page, :page => page) all_versions << versions break if versions.count < per_page page += 1 end all_versions.flatten! all_versions.sort_by! { |v| [v['major'], v['minor']] } @old_unused_versions = all_versions.select do |v| v["environments"].empty? && v["composite_content_views"].empty? && v["composite_content_view_versions"].empty? end end
purge_version(v)
click to toggle source
# File lib/hammer_cli_katello/content_view_purge.rb, line 71 def purge_version(v) if option_async? task = destroy(:content_view_versions, 'id' => v["id"]) print_message _("Version '%{version}' of content view '%{view}' scheduled "\ "for deletion in task '%{task_id}'.") % {version: v["version"], view: v["content_view"]["name"], task_id: task['id']} else task_progress(call(:destroy, :content_view_versions, 'id' => v["id"])) print_message _("Version '%{version}' of content view '%{view}' deleted.") % {version: v["version"], view: v["content_view"]["name"]} end end