class Bosh::Director::Jobs::Helpers::ReleaseDeleter
Public Class Methods
new(package_deleter, template_deleter, event_log, logger)
click to toggle source
# File lib/bosh/director/jobs/helpers/release_deleter.rb, line 5 def initialize(package_deleter, template_deleter, event_log, logger) @package_deleter = package_deleter @template_deleter = template_deleter @event_log = event_log @logger = logger end
Public Instance Methods
delete(release, force)
click to toggle source
# File lib/bosh/director/jobs/helpers/release_deleter.rb, line 12 def delete(release, force) errors = [] stage = @event_log.begin_stage('Deleting packages', release.packages.count) release.packages.each do |package| track_and_log(stage, "#{package.name}/#{package.version}") do errors += @package_deleter.delete(package, force) end end stage = @event_log.begin_stage('Deleting jobs', release.templates.count) release.templates.each do |template| track_and_log(stage, "#{template.name}/#{template.version}") do errors += @template_deleter.delete(template, force) end end if errors.empty? || force stage = @event_log.begin_stage('Deleting release versions', release.versions.count) release.versions.each do |release_version| track_and_log(stage, "#{release.name}/#{release_version.version}") do release_version.destroy end end release.destroy end errors end
Private Instance Methods
track_and_log(stage, task, log = true) { |ticker| ... }
click to toggle source
# File lib/bosh/director/jobs/helpers/release_deleter.rb, line 44 def track_and_log(stage, task, log = true) stage.advance_and_track(task) do |ticker| @logger.info(task) if log yield ticker if block_given? end end