Class: Bosh::Director::Errand::JobManager

Inherits:
Object
  • Object
show all
Defined in:
lib/bosh/director/errand/job_manager.rb

Instance Method Summary collapse

Constructor Details

#initialize(deployment, job, blobstore, event_log, logger) ⇒ JobManager

Returns a new instance of JobManager.

Parameters:



8
9
10
11
12
13
14
# File 'lib/bosh/director/errand/job_manager.rb', line 8

def initialize(deployment, job, blobstore, event_log, logger)
  @deployment = deployment
  @job = job
  @blobstore = blobstore
  @event_log = event_log
  @logger = logger
end

Instance Method Details

#delete_instancesvoid

This method returns an undefined value.

Deletes all errand job instances



39
40
41
42
43
44
45
46
47
48
49
50
51
52
# File 'lib/bosh/director/errand/job_manager.rb', line 39

def delete_instances
  instances = @job.instances.map(&:model).compact
  if instances.empty?
    @logger.info('No errand instances to delete')
    return
  end

  @logger.info('Deleting errand instances')
  event_log_stage = @event_log.begin_stage('Deleting errand instances', instances.size, [@job.name])
  instance_deleter = InstanceDeleter.new(@deployment)
  instance_deleter.delete_instances(instances, event_log_stage)

  deallocate_vms
end

#prepareObject



16
17
18
19
# File 'lib/bosh/director/errand/job_manager.rb', line 16

def prepare
  @job.bind_unallocated_vms
  @job.bind_instance_networks
end

#update_instancesvoid

This method returns an undefined value.

Creates/updates all errand job instances



23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/bosh/director/errand/job_manager.rb', line 23

def update_instances
  dns_binder = DeploymentPlan::DnsBinder.new(@deployment)
  dns_binder.bind_deployment

  instance_vm_binder = DeploymentPlan::InstanceVmBinder.new(@event_log)
  instance_vm_binder.bind_instance_vms(@job.instances)

  job_renderer = JobRenderer.new(@job, @blobstore)
  job_renderer.render_job_instances

  job_updater = JobUpdater.new(@deployment, @job, job_renderer)
  job_updater.update
end