class Cloudscreener::Api
Allows to configure and search for cloud infrastructure
Attributes
currency[RW]
dc[RW]
fields[RW]
providers[RW]
Public Class Methods
new(email = nil, password = nil)
click to toggle source
# File lib/cloudscreener_ruby_sdk/api.rb, line 13 def initialize(email = nil, password = nil) @vms = [] @email = email @password = password @fields = %i[name cpucs ram pnam dsiz dcnas] @currency = 'USD' @providers = [] @dc = nil end
Public Instance Methods
add_vm(vm)
click to toggle source
# File lib/cloudscreener_ruby_sdk/api.rb, line 23 def add_vm(vm) raise 'No VM given, please use add_vm(new VM(...))' unless vm @vms << vm self end
configure_credentials(email, password)
click to toggle source
# File lib/cloudscreener_ruby_sdk/api.rb, line 31 def configure_credentials(email, password) @email = email @password = password end
search()
click to toggle source
# File lib/cloudscreener_ruby_sdk/api.rb, line 40 def search raise 'Credentials not set, please use configure_credentials().' unless @email && @password query = compute_query token = Helper.fetch_token(@email, @password) Helper.fetch_reco(token, query) end
vm_by_name(vm_name)
click to toggle source
# File lib/cloudscreener_ruby_sdk/api.rb, line 36 def vm_by_name(vm_name) @vms.find { |v| v.name == vm_name } end
Private Instance Methods
compute_query()
click to toggle source
# File lib/cloudscreener_ruby_sdk/api.rb, line 50 def compute_query raise 'You must select at least one VM. Please use add_vm()' unless @vms.any? raise 'You must select at least one provider. Please use api.providers = %w[...]' unless @providers.any? { multi: @vms.map { |vm| vm.compute_query(@providers, @dc) }, slice: @fields, currency: @currency } end