class Cloudscreener::VirtualMachine

Represents a cloud virtual machine

Attributes

cpus[RW]
name[RW]
os[RW]
qty[RW]
ram[RW]

Public Class Methods

new(name = nil) click to toggle source
# File lib/cloudscreener_ruby_sdk/virtual_machine.rb, line 12
def initialize(name = nil)
  @name = name
  @cpus = nil
  @ram = nil
  @os = nil
  @qty = 1
end

Public Instance Methods

compute_query(providers, dc = nil) click to toggle source
# File lib/cloudscreener_ruby_sdk/virtual_machine.rb, line 20
def compute_query(providers, dc = nil)
  match = [{ field: 'pslg', op: 'in', value: providers }]
  near = []

  match << dc.compute_query if dc
  match << { field: 'os', value: @os } if @os

  %w[cpus ram].each do |field|
    value = instance_variable_get("@#{field}")

    near << { field: field, value: value } unless value.nil?
  end

  { match: match, near: near, qty: @qty }
end