class SSC::Handler::Appliance

Public Instance Methods

create(appliance_name) click to toggle source
# File lib/handlers/appliance.rb, line 9
def create(appliance_name)
  appliance_dir= File.join('.', appliance_name) 
  params= {:name => appliance_name}
  params.merge!(:arch => options.arch) if options.arch
  appliance= StudioApi::Appliance.clone(options.source_id, params)
  appliance_params= {
    :username => options.username,
    :password => options.password,
    :appliance_id => appliance.id }
  appliance_dir= ApplianceDirectory.new(appliance_name, appliance_params)
  appliance_dir.create
  say_array(["Created: ", appliance_dir.path] + appliance_dir.files.values)
  say "" # make sure terminal output starts on a new line
end
destroy() click to toggle source
# File lib/handlers/appliance.rb, line 42
def destroy
  require_appliance do |appliance|
    if appliance.destroy.code_type == Net::HTTPOK
      say 'Appliance Successfully Destroyed', :red
    else
      say_array ['There was a problem with destroying the appliance.',
                 'Make sure that you\'re in the appliance directory OR',
                 'Have provided the --appliance_id option']
    end
  end
end
info() click to toggle source
# File lib/handlers/appliance.rb, line 33
def info
  appliance= StudioApi::Appliance.find(options.appliance_id)
  say_array ["#{appliance.id}: #{appliance.name}",
   "Parent: ( #{appliance.parent.id} ) #{appliance.parent.name}",
   "Download Url: #{download_url(appliance)}"]
end
list() click to toggle source
# File lib/handlers/appliance.rb, line 26
def list
  appliances= StudioApi::Appliance.find(:all)
  print_table([["id", "name"]]+appliances.collect{|i| [i.id, i.name]})
end
status() click to toggle source
# File lib/handlers/appliance.rb, line 56
def status
  require_appliance do |appliance|
    response= appliance.status
    case response.state
    when 'error'
      say "Error: #{response.issues.issue.text}"
    when 'ok'
      say "Appliance Ok"
    end
  end
end

Private Instance Methods

download_url(appliance) click to toggle source
# File lib/handlers/appliance.rb, line 70
def download_url(appliance)
  if appliance.builds.empty?
    "No Build Yet"
  else
    appliance.builds.last.download_url
  end
end