class Crowbar::Client::Command::Upgrade::Repocheck
Implementation for the upgrade repocheck command
Public Instance Methods
execute()
click to toggle source
# File lib/crowbar/client/command/upgrade/repocheck.rb, line 35 def execute request.process do |request| case request.code when 200 hint = "" if provide_format == :table response = request.parsed_response repos = {} response.each do |type, type_data| type_data["repos"].each do |repo| next if repo.nil? repos[repo] = { repo: repo, status: [], type: type } unless repos.key? repo end type_data["errors"].each do |error, error_data| error_data.each do |arch, bad_repos| bad_repos.each do |bad_repo| hint = "Some repopositories are not available. " \ "Fix the problem and call the step again." repos[bad_repo] = { repo: bad_repo, status: [], type: type } \ unless repos.key? bad_repo repos[bad_repo][:status] << "#{error} (#{arch})" end end end end repos.values.each do |repo| repo[:status] = repo[:status].uniq.join(", ") repo[:status] = "available" if repo[:status].empty? end formatter = Formatter::Hash.new( format: provide_format, headings: ["Repository", "Status", "Type"], values: Filter::Hash.new( filter: provide_filter, values: repos.values ).result ) else formatter = Formatter::Nested.new( format: provide_format, values: Filter::Subset.new( filter: provide_filter, values: request.parsed_response ).result ) end if formatter.empty? err "No repochecks" else say formatter.result next unless provide_format == :table say hint unless hint.empty? say "Next step: 'crowbarctl upgrade admin'" if args.component == "crowbar" say "Next step: 'crowbarctl upgrade services'" if args.component == "nodes" end else case args.component when "crowbar" err format_error( request.parsed_response["error"], "repocheck_crowbar" ) when "nodes" err format_error( request.parsed_response["error"], "repocheck_nodes" ) else err "No such component '#{args.component}'. " \ "Only 'crowbar' and 'nodes' are valid components." end end end end
request()
click to toggle source
# File lib/crowbar/client/command/upgrade/repocheck.rb, line 29 def request @request ||= Request::Upgrade::Repocheck.new( args ) end