Sha256: 97463e39f55fd996992690eebfc0cbc8d80b37aefc558a649bcb4206fbef44b2
Contents?: true
Size: 1.73 KB
Versions: 12
Compression:
Stored size: 1.73 KB
Contents
# frozen_string_literal: true module ForemanSalt class SaltModule < ApplicationRecord include Authorizable extend FriendlyId friendly_id :name include Parameterizable::ByIdName has_many :host_salt_modules has_many :hosts, through: :host_salt_modules, class_name: '::Host::Managed' has_many :hostgroup_salt_modules has_many :hostgroups, through: :hostgroup_salt_modules has_many :salt_variables, inverse_of: :salt_module, dependent: :destroy has_many :salt_module_environments has_many :salt_environments, through: :salt_module_environments validates :name, uniqueness: true, presence: true, format: { with: /\A(?:[\w\d\-]+\.{0,1})+[^.]\z/, message: N_('must be alphanumeric, can contain periods, dashes, underscores and must not contain spaces') } default_scope lambda { order('salt_modules.name') } scope :in_environment, ->(environment) { joins(:salt_environments).where('salt_module_environments.salt_environment_id' => environment) } scoped_search on: :name, complete_value: true scoped_search relation: :salt_environments, on: :name, complete_value: true, rename: :environment scoped_search relation: :hostgroups, on: :name, complete_value: true, rename: :hostgroup scoped_search relation: :hosts, on: :name, complete_value: true, rename: :host def self.to_hash states = {} SaltEnvironment.all.find_each do |environment| states[environment.name] = environment.salt_modules.map(&:name) end states end def self.humanize_class_name(_name = nil) _('Salt state') end def self.permission_name 'salt_modules' end end end
Version data entries
12 entries across 12 versions & 1 rubygems