diff --git a/db/migrate/20181108194142_add_resource_type_to_miq_policy_and_condition.rb b/db/migrate/20181108194142_add_resource_type_to_miq_policy_and_condition.rb new file mode 100644 index 000000000..20f43ee00 --- /dev/null +++ b/db/migrate/20181108194142_add_resource_type_to_miq_policy_and_condition.rb @@ -0,0 +1,6 @@ +class AddResourceTypeToMiqPolicyAndCondition < ActiveRecord::Migration[5.0] + def change + add_column :miq_policies, :resource_type, :string + add_column :conditions, :resource_type, :string + end +end diff --git a/db/migrate/20181108195546_migrate_miq_policy_towhat_to_resource_type.rb b/db/migrate/20181108195546_migrate_miq_policy_towhat_to_resource_type.rb new file mode 100644 index 000000000..5ebba962e --- /dev/null +++ b/db/migrate/20181108195546_migrate_miq_policy_towhat_to_resource_type.rb @@ -0,0 +1,24 @@ +class MigrateMiqPolicyTowhatToResourceType < ActiveRecord::Migration[5.0] + + class MiqPolicy < ActiveRecord::Base + self.inheritance_column = :_type_disabled + end + + def up + say_with_time("Moving MiqPolicy towhat to resource type") do + MiqPolicy.all.each do |policy| + policy.resource_type = policy.towhat + policy.save + end + end + end + + def down + say_with_time("Moving MiqPolicy resource type to towhat") do + MiqPolicy.all.each do |policy| + policy.towhat = policy.resource_type + policy.save + end + end + end +end diff --git a/db/migrate/20181108195945_migrate_conditions_tow_hat_to_resource_type.rb b/db/migrate/20181108195945_migrate_conditions_tow_hat_to_resource_type.rb new file mode 100644 index 000000000..d3b2f6984 --- /dev/null +++ b/db/migrate/20181108195945_migrate_conditions_tow_hat_to_resource_type.rb @@ -0,0 +1,24 @@ +class MigrateConditionsTowHatToResourceType < ActiveRecord::Migration[5.0] + + class Condition < ActiveRecord::Base + self.inheritance_column = :_type_disabled + end + + def up + say_with_time("Moving Condition towhat to resource type") do + Condition.all.each do |condition| + condition.resource_type = condition.towhat + condition.save + end + end + end + + def down + say_with_time("Moving Condition resource type to towhat") do + Condition.all.each do |condition| + condition.towhat = condition.resource_type + condition.save + end + end + end +end diff --git a/spec/migrations/20181108195546_migrate_miq_policy_towhat_to_resource_type_spec.rb b/spec/migrations/20181108195546_migrate_miq_policy_towhat_to_resource_type_spec.rb new file mode 100644 index 000000000..62e298cc7 --- /dev/null +++ b/spec/migrations/20181108195546_migrate_miq_policy_towhat_to_resource_type_spec.rb @@ -0,0 +1,23 @@ +require_migration + +describe MigrateMiqPolicyTowhatToResourceType do + let(:miq_policy_stub) { migration_stub(:MiqPolicy) } + + migration_context :up do + it "converts the old data" do + miq_policy = miq_policy_stub.create!(:towhat => "ContainerImage") + + migrate + + expect(miq_policy.reload).to eq(:resource_type => "ContainerImage") + end + + it "ignores already converted data" do + miq_policy = miq_policy_stub.create!(:towhat => "ContainerImage") + + migrate + + expect(miq_policy.reload).to eq(:resource_type => "ContainerImage") + end + end +end diff --git a/spec/migrations/20181108195945_migrate_conditions_tow_hat_to_resource_type_spec.rb b/spec/migrations/20181108195945_migrate_conditions_tow_hat_to_resource_type_spec.rb new file mode 100644 index 000000000..7db710f45 --- /dev/null +++ b/spec/migrations/20181108195945_migrate_conditions_tow_hat_to_resource_type_spec.rb @@ -0,0 +1,23 @@ +require_migration + +describe MigrateMiqPolicyTowHatToResourceType do + let(:condition_stub) { migration_stub(:Condition) } + + migration_context :up do + it "converts the old data" do + condition = condition_stub.create!(:towhat => "ContainerImage") + + migrate + + expect(condition.reload).to eq(:resource_type => "ContainerImage") + end + + it "ignores already converted data" do + condition = condition_stub.create!(:towhat => "ContainerImage") + + migrate + + expect(condition.reload).to eq(:resource_type => "ContainerImage") + end + end +end