class Bosh::Director::VmDeleter
Public Class Methods
new(cloud, logger, force=false, enable_virtual_delete_vm=false)
click to toggle source
# File lib/bosh/director/vm_deleter.rb, line 3 def initialize(cloud, logger, force=false, enable_virtual_delete_vm=false) @cloud = cloud @logger = logger @error_ignorer = ErrorIgnorer.new(force, @logger) @enable_virtual_delete_vm = enable_virtual_delete_vm end
Public Instance Methods
delete_for_instance(instance, store_event=true)
click to toggle source
# File lib/bosh/director/vm_deleter.rb, line 10 def delete_for_instance(instance, store_event=true) if instance.vm_cid begin vm_cid = instance.vm_cid instance_name = "#{instance.job}/#{instance.uuid}" parent_id = add_event(instance.deployment.name, instance_name, vm_cid) if store_event delete_vm(instance.vm_cid) instance.update(vm_cid: nil, agent_id: nil, trusted_certs_sha1: nil, credentials: nil) rescue Exception => e raise e ensure add_event(instance.deployment.name, instance_name, vm_cid, parent_id, e) if store_event end end end
delete_vm(vm_cid)
click to toggle source
# File lib/bosh/director/vm_deleter.rb, line 26 def delete_vm(vm_cid) @logger.info('Deleting VM') @error_ignorer.with_force_check do @cloud.delete_vm(vm_cid) unless @enable_virtual_delete_vm end end
Private Instance Methods
add_event(deployment_name, instance_name, object_name = nil, parent_id = nil, error = nil)
click to toggle source
# File lib/bosh/director/vm_deleter.rb, line 35 def add_event(deployment_name, instance_name, object_name = nil, 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: object_name, task: Config.current_job.task_id, deployment: deployment_name, instance: instance_name, error: error }) event.id end