Skip to content

Commit

Permalink
Merge pull request #708 from jaywcarman/add_cpu_cores_columns_to_reso…
Browse files Browse the repository at this point in the history
…urce_pools

Add new resource_pools column for cpu_cores_*
  • Loading branch information
agrare committed Oct 25, 2023
2 parents 9a60db5 + 3bc329a commit 98dad42
Show file tree
Hide file tree
Showing 2 changed files with 125 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
class AddCpuCoresColumnsToResourcePools < ActiveRecord::Migration[6.0]
class ResourcePool < ActiveRecord::Base
include ActiveRecord::IdRegions
self.inheritance_column = :_type_disabled
end

def up
add_column :resource_pools, :cpu_cores_available, :float
add_column :resource_pools, :cpu_cores_reserve, :float
add_column :resource_pools, :cpu_cores_limit, :float

say_with_time('Removing non-applicable data from IbmCloud::PowerVirtualServer resource pools') do
ResourcePool.in_my_region.where(:type => %w[ManageIQ::Providers::IbmCloud::PowerVirtualServers::CloudManager::ResourcePool]).update_all(
:cpu_shares => nil,
:cpu_reserve => nil,
:cpu_limit => nil
)
end

say_with_time('Removing non-applicable data from IbmPowerHmc resource pools') do
ResourcePool.in_my_region.where(:type => %w[ManageIQ::Providers::IbmPowerHmc::InfraManager::ProcessorResourcePool]).update_all(
:cpu_shares => nil,
:cpu_reserve => nil,
:cpu_limit => nil
)
end
end

def down
remove_column :resource_pools, :cpu_cores_available
remove_column :resource_pools, :cpu_cores_reserve
remove_column :resource_pools, :cpu_cores_limit
end
end
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
require_migration

describe AddCpuCoresColumnsToResourcePools do
let(:resource_pools_stub) { migration_stub(:ResourcePool) }

migration_context :up do
it "Removes non-applicable data only from Power resource pools" do
ibm_cloud_power_vs_resource_pool = resource_pools_stub.create(
:type => "ManageIQ::Providers::IbmCloud::PowerVirtualServers::CloudManager::ResourcePool",
:cpu_shares => 1,
:cpu_reserve => 2,
:cpu_limit => 3,
:cpu_reserve_expand => true,
:is_default => false
)

ibm_power_hmc_processor_resource_pool = resource_pools_stub.create(
:type => "ManageIQ::Providers::IbmPowerHmc::InfraManager::ProcessorResourcePool",
:cpu_shares => 1,
:cpu_reserve => 2,
:cpu_limit => -1,
:cpu_reserve_expand => true,
:is_default => false
)

migrate

expect(ibm_cloud_power_vs_resource_pool.reload).to have_attributes(
:cpu_shares => nil,
:cpu_reserve => nil,
:cpu_limit => nil,
:cpu_reserve_expand => true,
:is_default => false
)

expect(ibm_power_hmc_processor_resource_pool.reload).to have_attributes(
:cpu_shares => nil,
:cpu_reserve => nil,
:cpu_limit => nil,
:cpu_reserve_expand => true,
:is_default => false
)
end

it "Does not change non-Power resource pools" do
vmware_resource_pool = resource_pools_stub.create(
:type => "ManageIQ::Providers::Vmware::InfraManager::ResourcePool",
:cpu_shares => 1,
:cpu_reserve => 2,
:cpu_limit => 3,
:cpu_reserve_expand => true,
:is_default => false
)

migrate

expect(vmware_resource_pool).to have_attributes(
:type => "ManageIQ::Providers::Vmware::InfraManager::ResourcePool",
:cpu_shares => 1,
:cpu_reserve => 2,
:cpu_limit => 3, # rand(-1..65536) ?
:cpu_reserve_expand => true,
:is_default => false
)
end
end

migration_context :down do
it "Does not change non-Power resource pools" do
vmware_resource_pool = resource_pools_stub.create(
:type => "ManageIQ::Providers::Vmware::InfraManager::ResourcePool",
:cpu_shares => 1,
:cpu_reserve => 2,
:cpu_limit => 3,
:cpu_reserve_expand => true,
:is_default => false
)

migrate

expect(vmware_resource_pool).to have_attributes(
:type => "ManageIQ::Providers::Vmware::InfraManager::ResourcePool",
:cpu_shares => 1,
:cpu_reserve => 2,
:cpu_limit => 3, # rand(-1..65536) ?
:cpu_reserve_expand => true,
:is_default => false
)
end
end
end

0 comments on commit 98dad42

Please sign in to comment.