Module: Overcloud::Flavor
- Included in:
- UndercloudHandle
- Defined in:
- lib/egon/overcloud/undercloud_handle/flavor.rb
Instance Method Summary collapse
- #create_flavor(flavor_parameters) ⇒ Object
- #create_flavor_extra_specs(flavor_id, extra_specs) ⇒ Object
- #create_flavor_from_node(node) ⇒ Object
- #flavor_exists?(flavor_parameters) ⇒ Boolean
- #get_flavor(flavor_id) ⇒ Object
- #get_flavor_extra_specs(flavor_id) ⇒ Object
- #list_flavors ⇒ Object
Instance Method Details
#create_flavor(flavor_parameters) ⇒ Object
14 15 16 17 18 19 |
# 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) ⇒ Object
25 26 27 |
# File 'lib/egon/overcloud/undercloud_handle/flavor.rb', line 25 def create_flavor_extra_specs(flavor_id, extra_specs) get_flavor(flavor_id).(extra_specs) end |
#create_flavor_from_node(node) ⇒ Object
29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
# 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) ⇒ Boolean
52 53 54 55 56 57 58 59 60 61 62 |
# 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.['cpu_arch'] == flavor_parameters[:extra_specs][:cpu_arch] return true end end false end |
#get_flavor(flavor_id) ⇒ Object
10 11 12 |
# 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) ⇒ Object
21 22 23 |
# File 'lib/egon/overcloud/undercloud_handle/flavor.rb', line 21 def get_flavor_extra_specs(flavor_id) get_flavor(flavor_id). end |
#list_flavors ⇒ Object
6 7 8 |
# File 'lib/egon/overcloud/undercloud_handle/flavor.rb', line 6 def list_flavors service('Compute').flavors.all end |