class Bosh::Director::ProblemScanner::Scanner

Public Class Methods

new(deployment) click to toggle source
# File lib/bosh/director/problem_scanner/scanner.rb, line 8
def initialize(deployment)
  @deployment = deployment
  @agent_disks = {}

  @instance_manager = Api::InstanceManager.new

  @logger = Config.logger
  @event_logger = EventLogger.new(Config.event_log, @logger)

  @problem_register = ProblemRegister.new(deployment, @logger)
end

Public Instance Methods

reset(vms=nil) click to toggle source
# File lib/bosh/director/problem_scanner/scanner.rb, line 20
def reset(vms=nil)
  if vms
    vms.each do |job, index|
      instance = @instance_manager.find_by_name(@deployment, job, index)

      Models::DeploymentProblem.where(
        deployment: @deployment,
        resource_id: instance.id,
        state: 'open'
      ).update(state: 'closed')

    end
  else
    Models::DeploymentProblem.where(
      state: 'open',
      deployment: @deployment
    ).update(state: 'closed')
  end
end
scan_disks() click to toggle source
# File lib/bosh/director/problem_scanner/scanner.rb, line 54
def scan_disks
  disk_scanner = DiskScanStage.new(
    @agent_disks,
    @problem_register,
    Config.cloud,
    @deployment.id,
    @event_logger,
    @logger
  )
  disk_scanner.scan
end
scan_vms(vms=nil) click to toggle source
# File lib/bosh/director/problem_scanner/scanner.rb, line 40
def scan_vms(vms=nil)
  vm_scanner = VmScanStage.new(
    @instance_manager,
    @problem_register,
    Config.cloud,
    @deployment,
    @event_logger,
    @logger
  )
  vm_scanner.scan(vms)

  @agent_disks = vm_scanner.agent_disks
end