class Bosh::Director::ProblemHandlers::MountInfoMismatch
Public Class Methods
new(disk_id, data)
click to toggle source
# File lib/bosh/director/problem_handlers/mount_info_mismatch.rb, line 10 def initialize(disk_id, data) @disk = Models::PersistentDisk[disk_id] @data = data if @disk.nil? handler_error("Disk '#{disk_id}' is no longer in the database") end @disk_cid = @disk.disk_cid @vm_cid = @disk.instance.vm_cid if @disk.instance handler_error("Can't find corresponding vm-cid for disk '#{@disk_cid}'") if @vm_cid.nil? @instance = @disk.instance @disk_owners = @data['owner_vms'] end
Public Instance Methods
description()
click to toggle source
# File lib/bosh/director/problem_handlers/mount_info_mismatch.rb, line 27 def description out = "Inconsistent mount information:\n" out += "Record shows that disk '#{@disk_cid}' should be mounted on #{@vm_cid}.\n" out += "However it is currently :\n" if @disk_owners.size == 0 out += "\tNot mounted in any VM" else out += "\tMounted on: #{@disk_owners.join(", ")}" end out end
reattach_disk(reboot = false)
click to toggle source
# File lib/bosh/director/problem_handlers/mount_info_mismatch.rb, line 55 def reattach_disk(reboot = false) cloud.attach_disk(@vm_cid, @disk_cid) if reboot reboot_vm(@instance) else agent_timeout_guard(@instance.vm_cid, @instance.credentials, @instance.agent_id) do |agent| agent.mount_disk(@disk_cid) end end end