class OhBoshWillItFit::Resource

Attributes

cpus[RW]
disk[RW]
error[RW]
instance_type[RW]
ram[RW]
size[RW]
total_cpus[RW]
total_disk[RW]
total_ram[RW]

Public Class Methods

from_file(deployment_path) click to toggle source
# File lib/ohboshwillitfit/resource.rb, line 12
def self.from_file(deployment_path)
  resource_pools = YAML.load_file(deployment_path)["resource_pools"]
  resource_pools.map do |pool|
    resource = self.new
    resource.size = pool["size"]
    resource.instance_type = pool["cloud_properties"]["instance_type"]
    resource
  end
end
map_flavors!(resources, flavors) click to toggle source
# File lib/ohboshwillitfit/resource.rb, line 22
def self.map_flavors!(resources, flavors)
  resources.each do |resource|
    if flavor = resource.find_flavor(flavors)
      resource.apply_flavor(flavor)
    else
      resource.error = "Not a valid flavor/instance_type"
    end
  end
end
resource_totals(resources) click to toggle source
# File lib/ohboshwillitfit/resource.rb, line 32
def self.resource_totals(resources)
  totals = { "ram" => 0, "disk" => 0, "cpus" => 0, "instances" => 0, "volumes" => 0 }
  resources.each do |resource|
    totals["ram"] += resource.total_ram if resource.total_ram
    totals["cpus"] += resource.total_cpus if resource.total_cpus
    totals["disk"] += resource.total_disk if resource.total_disk
    totals["instances"] += resource.size
    totals["volumes"] += resource.size # one boot volume per VM
  end
  totals
end

Public Instance Methods

apply_flavor(flavor) click to toggle source
# File lib/ohboshwillitfit/resource.rb, line 48
def apply_flavor(flavor)
  self.ram = flavor.ram
  self.disk = flavor.disk
  self.cpus = flavor.vcpus
  update_totals!
end
find_flavor(flavors) click to toggle source
# File lib/ohboshwillitfit/resource.rb, line 44
def find_flavor(flavors)
  flavors.find { |flavor| flavor.name == instance_type }
end
update_totals!() click to toggle source
# File lib/ohboshwillitfit/resource.rb, line 55
def update_totals!
  self.total_ram = size * ram
  self.total_disk = size * disk
  self.total_cpus = size * cpus
end