class Bosh::Director::Jobs::DeleteVm
Public Class Methods
job_type()
click to toggle source
# File lib/bosh/director/jobs/delete_vm.rb, line 7 def self.job_type :delete_vm end
new(vm_cid)
click to toggle source
# File lib/bosh/director/jobs/delete_vm.rb, line 11 def initialize(vm_cid) @vm_cid = vm_cid @cloud = Config.cloud @vm_deleter = Bosh::Director::VmDeleter.new(@cloud, logger, false, false) @deployment_name = nil @instance_name = nil end
Public Instance Methods
perform()
click to toggle source
# File lib/bosh/director/jobs/delete_vm.rb, line 19 def perform logger.info("deleting vm: #{@vm_cid}") begin instance = Bosh::Director::Api::InstanceLookup.new.by_filter(vm_cid: @vm_cid).first @deployment_name = instance.deployment.name @instance_name = instance.name parent_id = add_event @vm_deleter.delete_for_instance(instance, false) rescue InstanceNotFound parent_id = add_event @vm_deleter.delete_vm(@vm_cid) end rescue Bosh::Clouds::VMNotFound logger.info("vm #{@vm_cid} does not exists") rescue Exception => e raise e ensure add_event(parent_id, e) return "vm #{@vm_cid} deleted" unless e end
Private Instance Methods
add_event(parent_id = nil, error = nil)
click to toggle source
# File lib/bosh/director/jobs/delete_vm.rb, line 41 def add_event(parent_id = nil, error = nil) event = Config.current_job.event_manager.create_event( { parent_id: parent_id, user: Config.current_job.username, action: 'delete', object_type: 'vm', object_name: @vm_cid, task: Config.current_job.task_id, deployment: @deployment_name, instance: @instance_name, error: error }) event.id end