class ConcourseCorrelator

Public Instance Methods

build_utilized_resource_list(jobs) click to toggle source
# File lib/preflight_check/concourse_correlator.rb, line 24
def build_utilized_resource_list(jobs)
  utilized_resource_names = []
  jobs.each do |job|
    job.dependencies.each do |dep|
      utilized_resource_names << dep.name
    end
  end
  utilized_resource_names
end
dep_is_defined_as_resource(dep, resources) click to toggle source
# File lib/preflight_check/concourse_correlator.rb, line 45
def dep_is_defined_as_resource(dep, resources)
  resources.find { |resource| resource.name == dep.name }
end
mark_missing_dependencies(job, resources) click to toggle source
# File lib/preflight_check/concourse_correlator.rb, line 34
def mark_missing_dependencies(job, resources)
  job.dependencies.each do |dep|
    if dep_is_defined_as_resource(dep, resources)
      dep.defined = true
    else
      job.mark_as_failed
      dep.defined = false
    end
  end
end
process_jobs(jobs:, resources:) click to toggle source
# File lib/preflight_check/concourse_correlator.rb, line 4
def process_jobs(jobs:, resources:)

  jobs.each { |job| mark_missing_dependencies(job, resources) }

  used_resources = build_utilized_resource_list(jobs)

  failed_resources = []
  resources.each do |resource|
    consumed_resource = used_resources.find do |used_resource_name|
      used_resource_name == resource.name
    end
    if consumed_resource.nil?
      failed_resources << resource
    end
  end

  failed_jobs = jobs.reject(&:success?)
  ValidatorResult.new(failed_jobs: failed_jobs, failed_resources: failed_resources)
end