class Bosh::Director::Jobs::Helpers::StemcellDeleter
Public Class Methods
new(cloud, compiled_package_deleter, logger)
click to toggle source
# File lib/bosh/director/jobs/helpers/stemcell_deleter.rb, line 6 def initialize(cloud, compiled_package_deleter, logger) @cloud = cloud @compiled_package_deleter = compiled_package_deleter @logger = logger end
Public Instance Methods
delete(stemcell, options = {})
click to toggle source
# File lib/bosh/director/jobs/helpers/stemcell_deleter.rb, line 12 def delete(stemcell, options = {}) with_stemcell_lock(stemcell.name, stemcell.version) do @logger.info('Checking for any deployments still using the stemcell') deployments = stemcell.deployments unless deployments.empty? names = deployments.map { |d| d.name }.join(', ') raise Bosh::Director::StemcellInUse, "Stemcell '#{stemcell.name}/#{stemcell.version}' is still in use by: #{names}" end begin @cloud.delete_stemcell(stemcell.cid) rescue => e raise unless options['force'] @logger.warn(e.backtrace.join("\n")) @logger.info("Force deleting is set, ignoring exception: #{e.message}") end stemcell.destroy end end