class Bosh::Director::Jobs::Helpers::NameVersionReleaseDeleter
Public Class Methods
new(release_deleter, release_manager, release_version_deleter, logger)
click to toggle source
# File lib/bosh/director/jobs/helpers/name_version_release_deleter.rb, line 4 def initialize(release_deleter, release_manager, release_version_deleter, logger) @release_deleter = release_deleter @release_manager = release_manager @release_version_deleter = release_version_deleter @logger = logger end
Public Instance Methods
find_and_delete_release(name, version, force)
click to toggle source
# File lib/bosh/director/jobs/helpers/name_version_release_deleter.rb, line 11 def find_and_delete_release(name, version, force) @logger.info("Looking up release: #{name}") release = @release_manager.find_by_name(name) @logger.info("Found release: #{release.name}") if version delete_release_version(release, version, force) else delete_entire_release(release, force) end end
Private Instance Methods
delete_entire_release(release, force)
click to toggle source
# File lib/bosh/director/jobs/helpers/name_version_release_deleter.rb, line 25 def delete_entire_release(release, force) @logger.info('Checking for any deployments still using the release') deployments = release.versions.map { |version| version.deployments }.flatten.uniq unless deployments.empty? names = deployments.map { |d| d.name }.join(', ') raise Bosh::Director::ReleaseInUse, "Release '#{release.name}' is still in use by: #{names}" end @release_deleter.delete(release, force) end
delete_release_version(release, version, force)
click to toggle source
# File lib/bosh/director/jobs/helpers/name_version_release_deleter.rb, line 39 def delete_release_version(release, version, force) @logger.info("Looking up release version '#{release.name}/#{version}'") release_version = @release_manager.find_version(release, version) # found version may be different than the requested version, due to version formatting @logger.info("Found release version: '#{release.name}/#{release_version.version}'") @release_version_deleter.delete(release_version, release, force) end