class Kontena::Plugin::Cloud::Platform::UpgradeCommand
Public Instance Methods
execute()
click to toggle source
# File lib/kontena/plugin/cloud/platform/upgrade_command.rb, line 13 def execute require_platform(name) to_version = self.version platform = find_platform_by_name(current_platform, current_organization) unless to_version to_version = prompt_version(platform) if Gem::Version.new(to_version) < Gem::Version.new(platform.version) exit_with_error "Downgrade is not supported" end end data = { attributes: { name: platform.name, version: to_version } } spinner "Upgrading platform #{pastel.cyan(name)} to version #{to_version}" do cloud_client.put("/organizations/#{current_organization}/platforms/#{platform.name}", { data: data }) while platform.version != to_version do sleep 5 platform = find_platform_by_name(platform.id, current_organization, false) end end end
prompt_version(platform)
click to toggle source
@param platform [Platform]
# File lib/kontena/plugin/cloud/platform/upgrade_command.rb, line 40 def prompt_version(platform) versions = cloud_client.get("/platform_versions")['data'] platform_version = Gem::Version.new(platform.version) versions = versions.select { |v| Gem::Version.new(v['id']) > platform_version } exit_with_error "Platform is already on the latest version" if versions.size == 0 prompt.select("Upgrade to version:") do |menu| versions.each do |v| menu.choice v['id'] end end end