[PATCH conductor] BZ848671: Add unique constraints to ProviderPriorityGroup

ifarkas at redhat.com ifarkas at redhat.com
Fri Aug 17 14:21:46 UTC 2012


From: Imre Farkas <ifarkas at redhat.com>

https://bugzilla.redhat.com/show_bug.cgi?id=848671
---
 src/app/models/provider_priority_group.rb                     |  2 ++
 ...0221_add_unique_constraints_to_provider_priority_groups.rb | 11 +++++++++++
 2 files changed, 13 insertions(+)
 create mode 100644 src/db/migrate/20120817130221_add_unique_constraints_to_provider_priority_groups.rb

diff --git a/src/app/models/provider_priority_group.rb b/src/app/models/provider_priority_group.rb
index 1e1a594..c17b959 100644
--- a/src/app/models/provider_priority_group.rb
+++ b/src/app/models/provider_priority_group.rb
@@ -22,6 +22,8 @@ class ProviderPriorityGroup < ActiveRecord::Base
   has_many :provider_accounts, :through => :provider_priority_group_elements, :source => :value, :source_type => 'ProviderAccount'
 
   validates_numericality_of :score, :only_integer => true, :greater_than_or_equal_to => -100, :less_than_or_equal_to => 100
+  validates_uniqueness_of :name, :scope => :pool_id
+  validates_uniqueness_of :score, :scope => :pool_id
 
   def include?(element)
     if element.is_a?(Provider)
diff --git a/src/db/migrate/20120817130221_add_unique_constraints_to_provider_priority_groups.rb b/src/db/migrate/20120817130221_add_unique_constraints_to_provider_priority_groups.rb
new file mode 100644
index 0000000..6a66b53
--- /dev/null
+++ b/src/db/migrate/20120817130221_add_unique_constraints_to_provider_priority_groups.rb
@@ -0,0 +1,11 @@
+class AddUniqueConstraintsToProviderPriorityGroups < ActiveRecord::Migration
+  def self.up
+    add_index :provider_priority_groups, [:name, :pool_id], :unique => true
+    add_index :provider_priority_groups, [:score, :pool_id], :unique => true
+  end
+
+  def self.down
+    remove_index :provider_priority_groups, [:name, :pool_id]
+    remove_index :provider_priority_groups, [:score, :pool_id]
+  end
+end
-- 
1.7.11.2




More information about the aeolus-devel mailing list