Class: Bosh::Director::Jobs::CloudCheck::Scan

Inherits:
BaseJob show all
Includes:
LockHelper
Defined in:
lib/bosh/director/jobs/cloud_check/scan.rb

Instance Attribute Summary

Attributes inherited from BaseJob

#task_id

Class Method Summary collapse

Instance Method Summary collapse

Methods included from LockHelper

#with_compile_lock, #with_deployment_lock, #with_release_lock, #with_release_locks, #with_stemcell_lock

Methods inherited from BaseJob

#begin_stage, #dns_manager, #event_manager, #logger, perform, #result_file, schedule_message, #single_step_stage, #task_cancelled?, #task_checkpoint, #track_and_log, #username

Constructor Details

#initialize(deployment_name) ⇒ Scan

Returns a new instance of Scan.

Parameters:

  • deployment_name (String)

    Deployment name



16
17
18
19
# File 'lib/bosh/director/jobs/cloud_check/scan.rb', line 16

def initialize(deployment_name)
  @deployment_manager = Api::DeploymentManager.new
  @deployment = @deployment_manager.find_by_name(deployment_name)
end

Class Method Details

.job_typeObject



11
12
13
# File 'lib/bosh/director/jobs/cloud_check/scan.rb', line 11

def self.job_type
  :cck_scan
end

Instance Method Details

#performObject



21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/bosh/director/jobs/cloud_check/scan.rb', line 21

def perform
  begin
    with_deployment_lock(@deployment, :timeout => 0) do
      scanner = ProblemScanner::Scanner.new(@deployment)
      scanner.reset
      scanner.scan_vms
      scanner.scan_disks

      "scan complete"
    end
  rescue Lock::TimeoutError
    raise "Unable to get deployment lock, maybe a deployment is in progress. Try again later."
  end
end