class Bosh::Director::Api::ReleaseManager
Public Instance Methods
create_release_from_file_path(username, release_path, options)
click to toggle source
# File lib/bosh/director/api/release_manager.rb, line 84 def create_release_from_file_path(username, release_path, options) unless File.exists?(release_path) raise DirectorError, "Failed to create release: file not found - #{release_path}" end JobQueue.new.enqueue(username, Jobs::UpdateRelease, 'create release', [release_path, options]) end
create_release_from_url(username, release_url, options)
click to toggle source
# File lib/bosh/director/api/release_manager.rb, line 79 def create_release_from_url(username, release_url, options) options[:remote] = true JobQueue.new.enqueue(username, Jobs::UpdateRelease, 'create release', [release_url, options]) end
delete_release(username, release, options = {})
click to toggle source
# File lib/bosh/director/api/release_manager.rb, line 92 def delete_release(username, release, options = {}) JobQueue.new.enqueue(username, Jobs::DeleteRelease, "delete release: #{release.name}", [release.name, options]) end
export_release(username, deployment_name, release_name, release_version, stemcell_os, stemcell_version)
click to toggle source
# File lib/bosh/director/api/release_manager.rb, line 96 def export_release(username, deployment_name, release_name, release_version, stemcell_os, stemcell_version) JobQueue.new.enqueue( username, Jobs::ExportRelease, "export release: '#{release_name}/#{release_version}' for '#{stemcell_os}/#{stemcell_version}'", [deployment_name, release_name, release_version, stemcell_os, stemcell_version]) end
find_by_name(name)
click to toggle source
# File lib/bosh/director/api/release_manager.rb, line 44 def find_by_name(name) release = Models::Release[:name => name] if release.nil? raise ReleaseNotFound, "Release '#{name}' doesn't exist" end release end
find_version(release, version)
click to toggle source
# File lib/bosh/director/api/release_manager.rb, line 52 def find_version(release, version) dataset = release.versions_dataset release_version = dataset.filter(:version => version).first if release_version.nil? begin new_formatted_version = Bosh::Common::Version::ReleaseVersion.parse(version) rescue SemiSemantic::ParseError raise ReleaseVersionInvalid, "Release version invalid: #{version}" end if version == new_formatted_version.to_s old_formatted_version = new_formatted_version.to_old_format if old_formatted_version release_version = dataset.filter(:version => old_formatted_version).first end else release_version = dataset.filter(:version => new_formatted_version.to_s).first end if release_version.nil? raise ReleaseVersionNotFound, "Release version '#{release.name}/#{version}' doesn't exist" end end release_version end
get_all_releases()
click to toggle source
# File lib/bosh/director/api/release_manager.rb, line 6 def get_all_releases releases = Models::Release.order_by(Sequel.asc(:name)).map do |release| release_versions = sorted_release_versions(release) { 'name' => release.name, 'release_versions' => release_versions } end releases end
sorted_release_versions(release, prefix = nil)
click to toggle source
# File lib/bosh/director/api/release_manager.rb, line 18 def sorted_release_versions(release, prefix = nil) sorted_version_tuples = release.versions_dataset.all.map do |version| { provided: version, parsed: Bosh::Common::Version::ReleaseVersion.parse(version.values[:version]) } end.sort_by { |rv| rv[:parsed] } unless prefix.nil? sorted_version_tuples = sorted_version_tuples.select do |version_tuple| /^#{prefix}([\.\-\+]|$)/.match(version_tuple[:provided].version.to_s) end end sorted_version_tuples.map do |version| provided = version[:provided] { 'version' => provided.version.to_s, 'commit_hash' => provided.commit_hash, 'uncommitted_changes' => provided.uncommitted_changes, 'currently_deployed' => !provided.deployments.empty?, 'job_names' => provided.templates.map(&:name), } end end