class SSC::Handler::Build
Public Instance Methods
build()
click to toggle source
# File lib/handlers/build.rb, line 10 def build require_appliance_directory do |appliance, files| if appliance.status.state != "ok" raise Thor::Error, "Appliance is not OK. Please fix before building.\n#{appliance.status.issues.join("\n")}\n" else build = StudioApi::RunningBuild.new(:appliance_id => appliance.id, :image_type => options.image_type, :force => true) build.save config_file= File.join(Dir.pwd, '.sscrc') if File.exists?(config_file) config= YAML::load(File.read(config_file)) config.merge!('latest_build_id' => build.id) File.open(config_file, 'w') do |file| file.write(config.to_yaml) end end say "Build Started. Build id: #{build.id}" end end end
list()
click to toggle source
# File lib/handlers/build.rb, line 42 def list builds= if options.running? StudioApi::RunningBuild.find(:all, :params => {:appliance_id => options.appliance_id}) else StudioApi::Build.find(:all, :params => {:appliance_id => options.appliance_id}) end say "Build List:\n" builds_info = builds.collect{ |i| [i.id, "v#{i.version}", i.state, format_download_url(i)] } print_table([["id", "version", "state", "download link"]]+ builds_info) end
status()
click to toggle source
# File lib/handlers/build.rb, line 33 def status build = StudioApi::RunningBuild.find options.build_id say "Build Status: #{build.state}" say "#{build.percent}% completed" if build.state == "running" end
Private Instance Methods
format_download_url(build)
click to toggle source
# File lib/handlers/build.rb, line 59 def format_download_url build if build.respond_to?(:download_url) build.download_url else "n\\a" end end