module ForemanSalt::Concerns::HostgroupExtensions
def inherited_salt_environment_id
def inherited_salt_environment_id if ancestry.present? read_attribute(:salt_environment_id) || self.class.sort_by_ancestry(ancestors.where('salt_environment_id is not NULL')).last.try(:salt_environment_id) else self.salt_environment_id end end
def inherited_salt_module_ids
def inherited_salt_module_ids if ancestry.present? self.class.sort_by_ancestry(ancestors.reject { |ancestor| ancestor.salt_module_ids.empty? }).last.try(:salt_modules) else [] end end
def inherited_salt_modules
def inherited_salt_modules ForemanSalt::SaltModule.where(:id => inherited_salt_module_ids) end
def inherited_salt_proxy_id
def inherited_salt_proxy_id if ancestry.present? read_attribute(:salt_proxy_id) || self.class.sort_by_ancestry(ancestors.where('salt_proxy_id is not NULL')).last.try(:salt_proxy_id) else self.salt_proxy_id end end
def salt_environment
def salt_environment return super unless ancestry.present? ForemanSalt::SaltEnvironment.find_by_id(inherited_salt_environment_id) end
def salt_master
def salt_master salt_proxy.to_s end
def salt_module_ids
def salt_module_ids return super unless ancestry.present? ([super] + [inherited_salt_module_ids]).flatten.uniq.compact end
def salt_modules
def salt_modules return super unless ancestry.present? ([super] + [inherited_salt_modules]).flatten.uniq.compact end
def salt_proxy
def salt_proxy return super unless ancestry.present? SmartProxy.find_by_id(inherited_salt_proxy_id) end