module Overcloud::Flavor

Public Instance Methods

create_flavor(flavor_parameters) click to toggle source
# File lib/egon/overcloud/undercloud_handle/flavor.rb, line 14
def create_flavor(flavor_parameters)
  flavor = service('Compute').flavors.create(flavor_parameters)
  if flavor_parameters.key?(:extra_specs)
    create_flavor_extra_specs(flavor.id, flavor_parameters[:extra_specs])
  end
end
create_flavor_extra_specs(flavor_id, extra_specs) click to toggle source
# File lib/egon/overcloud/undercloud_handle/flavor.rb, line 25
def create_flavor_extra_specs(flavor_id, extra_specs)
  get_flavor(flavor_id).create_metadata(extra_specs)
end
create_flavor_from_node(node) click to toggle source
# File lib/egon/overcloud/undercloud_handle/flavor.rb, line 29
def create_flavor_from_node(node)
  cpus = node.properties['cpus']
  memory_mb = node.properties['memory_mb']
  local_gb = node.properties['local_gb']
  cpu_arch = node.properties['cpu_arch']
  
  flavor_parameters = {
    :name => 'Flavor-' + cpus + '-' + cpu_arch + '-' + memory_mb + '-' + local_gb,
    :ram => memory_mb,
    :vcpus => cpus,
    :disk => local_gb,
    :is_public => true,
    :extra_specs => {
      :cpu_arch => cpu_arch,
      :'capabilities:boot_option' => 'local',
    }
  }
  
  if !flavor_exists?(flavor_parameters)
    create_flavor(flavor_parameters)
  end
end
flavor_exists?(flavor_parameters) click to toggle source
# File lib/egon/overcloud/undercloud_handle/flavor.rb, line 52
def flavor_exists?(flavor_parameters)
  for flavor in list_flavors
    if flavor.ram == flavor_parameters[:ram].to_i &&
        flavor.vcpus == flavor_parameters[:vcpus].to_i &&
        flavor.disk == flavor_parameters[:disk].to_i &&
        flavor.metadata['cpu_arch'] == flavor_parameters[:extra_specs][:cpu_arch]
      return true
    end
  end
  false
end
get_flavor(flavor_id) click to toggle source
# File lib/egon/overcloud/undercloud_handle/flavor.rb, line 10
def get_flavor(flavor_id)
  service('Compute').flavors.get(flavor_id)
end
get_flavor_extra_specs(flavor_id) click to toggle source
# File lib/egon/overcloud/undercloud_handle/flavor.rb, line 21
def get_flavor_extra_specs(flavor_id)
  get_flavor(flavor_id).metadata
end
list_flavors() click to toggle source
# File lib/egon/overcloud/undercloud_handle/flavor.rb, line 6
def list_flavors
  service('Compute').flavors.all
end