class Bosh::Director::Jobs::DeleteOrphanDisks
Public Class Methods
enqueue(username, orphan_disk_cids, job_queue)
click to toggle source
# File lib/bosh/director/jobs/delete_orphan_disks.rb, line 11 def self.enqueue(username, orphan_disk_cids, job_queue) persistent_disk_cids = orphan_disk_cids.select do |disk_cid| Bosh::Director::Models::PersistentDisk.where(disk_cid: disk_cid).any? end if persistent_disk_cids.any? raise DeletingPersistentDiskError, "Deleting persistent disk is not supported: #{persistent_disk_cids}" end job_queue.enqueue(username, Jobs::DeleteOrphanDisks, 'delete orphan disks', [orphan_disk_cids]) end
job_type()
click to toggle source
# File lib/bosh/director/jobs/delete_orphan_disks.rb, line 7 def self.job_type :delete_orphan_disks end
new(orphan_disk_cids)
click to toggle source
# File lib/bosh/director/jobs/delete_orphan_disks.rb, line 22 def initialize(orphan_disk_cids) @orphan_disk_cids = orphan_disk_cids @disk_manager = Bosh::Director::DiskManager.new(Config.cloud, Config.logger) end
Public Instance Methods
perform()
click to toggle source
# File lib/bosh/director/jobs/delete_orphan_disks.rb, line 27 def perform event_log_stage = Config.event_log.begin_stage('Deleting orphaned disks', @orphan_disk_cids.count) ThreadPool.new(:max_threads => Config.max_threads).wrap do |pool| @orphan_disk_cids.each do |orphan_disk_cid| pool.process do event_log_stage.advance_and_track("Deleting orphaned disk #{orphan_disk_cid}") do @disk_manager.delete_orphan_disk_by_disk_cid(orphan_disk_cid) end end end end "orphaned disk(s) #{@orphan_disk_cids.join(', ')} deleted" end