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