class ForemanMaintain::Cli::Procedure::AbstractByTagCommand

Public Class Methods

params_for_tag(tag) click to toggle source
# File lib/foreman_maintain/cli/advanced/procedure/abstract_by_tag_command.rb, line 14
def self.params_for_tag(tag)
  params = {}
  ForemanMaintain.allowed_available_procedures(:tags => tag).each do |procedure|
    procedure.params.each_value do |param|
      unless params.key?(param.name)
        params[param.name] = { :instance => param, :procedures => [] }
      end
      params[param.name][:procedures] += [procedure.label.to_s]
    end
  end
  params
end
tag_params_to_options(tag) click to toggle source
# File lib/foreman_maintain/cli/advanced/procedure/abstract_by_tag_command.rb, line 5
def self.tag_params_to_options(tag)
  params = params_for_tag(tag)
  params.each_value do |param|
    mapping = param[:procedures]
    instance = param[:instance]
    param_to_option(instance, :description => instance.description + " #{mapping}")
  end
end

Public Instance Methods

execute() click to toggle source
# File lib/foreman_maintain/cli/advanced/procedure/abstract_by_tag_command.rb, line 27
def execute
  run_scenario(scenario(invocation_path))
  exit runner.exit_code
end

Private Instance Methods

scenario(invocation_path) click to toggle source
# File lib/foreman_maintain/cli/advanced/procedure/abstract_by_tag_command.rb, line 34
def scenario(invocation_path)
  tag = underscorize(invocation_path.split.last).to_sym
  scenario = ForemanMaintain::Scenario.new

  ForemanMaintain.allowed_available_procedures(
    :tags => tag
  ).sort_by(&:label).each do |procedure|
    scenario.add_step(procedure.new(get_params_for(procedure)))
  end

  scenario
end