Welcome to mirror list, hosted at ThFree Co, Russian Federation.

system_check.rb « lib - gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 79603dfc7cb40b8651164e62aefe2391484866ac (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# Library to perform System Checks
#
# Every Check is implemented as its own class inherited from SystemCheck::BaseCheck
# Execution coordination and boilerplate output is done by the SystemCheck::SimpleExecutor
#
# This structure decouples checks from Rake tasks and facilitates unit-testing
module SystemCheck
  # Executes a bunch of checks for specified component
  #
  # @param [String] component name of the component relative to the checks being executed
  # @param [Array<BaseCheck>] checks classes of corresponding checks to be executed in the same order
  # @param [BaseExecutor] executor_klass optionally specifiy a different executor class
  def self.run(component, checks = [], executor_klass = SimpleExecutor)
    unless executor_klass.is_a? BaseExecutor
      raise ArgumentError, 'Invalid executor'
    end

    executor = executor_klass.new(component)
    checks.each do |check|
      executor << check
    end
  end
end