class ForemanMaintain::Scenario::FilteredScenario

Attributes

filter_label[R]
filter_tags[R]

Public Class Methods

new(filter, definition_kinds = [:check]) click to toggle source
# File lib/foreman_maintain/scenario.rb, line 20
def initialize(filter, definition_kinds = [:check])
  @filter_tags = filter[:tags]
  @filter_label = filter[:label]
  @definition_kinds = definition_kinds
  @steps = []
  @steps += checks(filter) if definition_kinds.include?(:check)
  @steps += procedures(filter) if definition_kinds.include?(:procedure)
  @steps = DependencyGraph.sort(@steps)
end

Public Instance Methods

runtime_message() click to toggle source
# File lib/foreman_maintain/scenario.rb, line 30
def runtime_message
  if @filter_label
    "#{kind_list} with label [#{dashize(@filter_label)}]"
  else
    "#{kinds_list} with tags #{tag_string(@filter_tags)}"
  end
end

Private Instance Methods

checks(filter) click to toggle source
# File lib/foreman_maintain/scenario.rb, line 56
def checks(filter)
  ForemanMaintain.available_checks(filter).map(&:ensure_instance)
end
dashize(string) click to toggle source
# File lib/foreman_maintain/scenario.rb, line 52
def dashize(string)
  string.to_s.tr('_', '-')
end
kind_list() click to toggle source
# File lib/foreman_maintain/scenario.rb, line 44
def kind_list
  @definition_kinds.map(&:to_s).join(' or ')
end
kinds_list() click to toggle source
# File lib/foreman_maintain/scenario.rb, line 40
def kinds_list
  @definition_kinds.map { |kind| kind.to_s + 's' }.join(' and ')
end
procedures(filter) click to toggle source
# File lib/foreman_maintain/scenario.rb, line 60
def procedures(filter)
  ForemanMaintain.available_procedures(filter).map(&:ensure_instance)
end
tag_string(tags) click to toggle source
# File lib/foreman_maintain/scenario.rb, line 48
def tag_string(tags)
  tags.map { |tag| dashize("[#{tag}]") }.join(' ')
end