Sha256: ea5d076530e621c2f7f8644ec2d68ff4cb6f3e10a0b71f1f153563beea764d00
Contents?: true
Size: 1.08 KB
Versions: 3
Compression:
Stored size: 1.08 KB
Contents
module ForemanSalt class SaltEnvironment < ApplicationRecord include Authorizable extend FriendlyId friendly_id :name include Parameterizable::ByIdName has_many :hosts, class_name: '::Host::Managed' has_many :hostgroups, class_name: '::Hostgroup' has_many :salt_module_environments has_many :salt_modules, through: :salt_module_environments, before_remove: :remove_from_hosts validates :name, uniqueness: true, presence: true, format: { with: /\A[\w\d\-.]+\z/, message: N_('is alphanumeric and cannot contain spaces') } scoped_search on: :name, complete_value: true scoped_search relation: :hostgroups, on: :name, complete_value: true, rename: :hostgroup scoped_search relation: :hosts, on: :name, complete_value: true, rename: :host def self.humanize_class_name(_name = nil) _('Salt environment') end def self.permission_name 'salt_environments' end private def remove_from_hosts(state) HostSaltModule.joins(:host).where(hosts: { salt_environment_id: id }, salt_module_id: state).destroy end end end
Version data entries
3 entries across 3 versions & 1 rubygems