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