-
Notifications
You must be signed in to change notification settings - Fork 983
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
fixes #10832 - separating lookup keys into puppet and variable
- Loading branch information
1 parent
833dcde
commit 1fe7b8b
Showing
50 changed files
with
637 additions
and
332 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
class PuppetclassLookupKeysController < LookupKeysController | ||
before_filter :setup_search_options, :only => :index | ||
|
||
def index | ||
@lookup_keys = resource_base.search_for(params[:search], :order => params[:order]) | ||
.paginate(:page => params[:page]) | ||
.includes(:param_classes) | ||
@puppetclass_authorizer = Authorizer.new(User.current, :collection => @lookup_keys.map(&:puppetclass_id).compact.uniq) | ||
end | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
class VariableLookupKeysController < LookupKeysController | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,42 +1,52 @@ | ||
class EnvironmentClass < ActiveRecord::Base | ||
belongs_to :environment | ||
belongs_to :puppetclass | ||
belongs_to :lookup_key | ||
validates :lookup_key_id, :uniqueness => {:scope => [:environment_id, :puppetclass_id]} | ||
belongs_to :puppetclass_lookup_key | ||
validates :puppetclass_lookup_key_id, :uniqueness => {:scope => [:environment_id, :puppetclass_id]} | ||
validates :puppetclass_id, :environment_id, :presence => true | ||
|
||
scope :parameters_for_class, lambda {|puppetclasses_ids, environment_id| | ||
all_parameters_for_class(puppetclasses_ids, environment_id).where(:lookup_keys => {:override => true}) | ||
all_parameters_for_class(puppetclasses_ids, environment_id).where(:puppetclass_lookup_keys => {:override => true}) | ||
} | ||
|
||
scope :all_parameters_for_class, lambda {|puppetclasses_ids, environment_id| | ||
where(:puppetclass_id => puppetclasses_ids, :environment_id => environment_id). | ||
where('lookup_key_id is NOT NULL'). | ||
includes(:lookup_key) | ||
where('puppetclass_lookup_key_id is NOT NULL'). | ||
includes(:puppetclass_lookup_key) | ||
} | ||
|
||
scope :used_by_other_environment_classes, lambda{|lookup_key_id, this_environment_class_id| | ||
where(:lookup_key_id => lookup_key_id). | ||
scope :used_by_other_environment_classes, lambda{|puppetclass_lookup_key_id, this_environment_class_id| | ||
where(:puppetclass_lookup_key_id => puppetclass_lookup_key_id). | ||
where("id != #{this_environment_class_id}") | ||
} | ||
|
||
# These counters key track of unique puppet class keys (parameters) across environments | ||
after_create do |record| | ||
Puppetclass.increment_counter(:global_class_params_count, self.puppetclass.id) unless self.lookup_key.blank? || | ||
EnvironmentClass.used_by_other_environment_classes(self.lookup_key, self.id).count > 0 | ||
Puppetclass.increment_counter(:global_class_params_count, self.puppetclass.id) unless self.puppetclass_lookup_key.blank? || | ||
EnvironmentClass.used_by_other_environment_classes(self.puppetclass_lookup_key, self.id).count > 0 | ||
end | ||
|
||
after_destroy do |record| | ||
Puppetclass.decrement_counter(:global_class_params_count, self.puppetclass.id) unless self.lookup_key.blank? || | ||
EnvironmentClass.used_by_other_environment_classes(self.lookup_key, self.id).count > 0 | ||
Puppetclass.decrement_counter(:global_class_params_count, self.puppetclass.id) unless self.puppetclass_lookup_key.blank? || | ||
EnvironmentClass.used_by_other_environment_classes(self.puppetclass_lookup_key, self.id).count > 0 | ||
end | ||
|
||
def lookup_key_id=(val) | ||
Foreman::Deprecation.deprecation_warning("1.12", "lookup_key_id= is deprecated, please use puppetclass_lookup_key_id= instead.") | ||
self.puppetclass_lookup_key_id=val | ||
end | ||
|
||
def lookup_key=(val) | ||
Foreman::Deprecation.deprecation_warning("1.12", "lookup_key= is deprecated, please use puppetclass_lookup_key= instead.") | ||
self.puppetclass_lookup_key=val | ||
end | ||
|
||
#TODO move these into scopes? | ||
def self.is_in_any_environment(puppetclass, lookup_key) | ||
EnvironmentClass.where(:puppetclass_id => puppetclass, :lookup_key_id => lookup_key ).count > 0 | ||
def self.is_in_any_environment(puppetclass, puppetclass_lookup_key) | ||
EnvironmentClass.where(:puppetclass_id => puppetclass, :puppetclass_lookup_key_id => puppetclass_lookup_key ).count > 0 | ||
end | ||
|
||
def self.key_in_environment(env, puppetclass, lookup_key) | ||
EnvironmentClass.where(:environment_id => env, :puppetclass_id => puppetclass, :lookup_key_id => lookup_key ).first | ||
def self.key_in_environment(env, puppetclass, puppetclass_lookup_key) | ||
EnvironmentClass.where(:environment_id => env, :puppetclass_id => puppetclass, :puppetclass_lookup_key_id => puppetclass_lookup_key ).first | ||
end | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.