Sha256: 6bf8190d92be44ab4f1ae3e8c67f375ec070b49954f624ca5e14d0c5ccd7c84f

Contents?: true

Size: 1.32 KB

Versions: 5

Compression:

Stored size: 1.32 KB

Contents

# frozen_string_literal: true

# Simple model to store basic info about the Ansible role
class AnsibleRole < ApplicationRecord
  audited
  include Authorizable

  self.include_root_in_json = false
  validates :name, :presence => true, :uniqueness => true
  has_many :host_ansible_roles
  has_many_hosts :through => :host_ansible_roles, :dependent => :destroy
  has_many :hostgroup_ansible_roles
  has_many :hostgroups, :through => :hostgroup_ansible_roles,
                        :dependent => :destroy
  has_many :ansible_variables, :inverse_of => :ansible_role,
                               :dependent => :destroy,
                               :class_name => 'AnsibleVariable'

  scoped_search :on => :name, :complete_value => true
  scoped_search :on => :updated_at
  scoped_search :relation => :hosts,
                :on => :id, :rename => :host_id, :only_explicit => true
  scoped_search :relation => :hosts,
                :on => :name, :rename => :host, :only_explicit => true
  scoped_search :relation => :hostgroups,
                :on => :id, :rename => :hostgroup_id, :only_explicit => true
  scoped_search :relation => :hostgroups,
                :on => :name, :rename => :hostgroup, :only_explicit => true

  # Methods to be allowed in any template with safemode enabled
  class Jail < Safemode::Jail
    allow :name
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
foreman_ansible-2.3.6 app/models/ansible_role.rb
foreman_ansible-2.3.5 app/models/ansible_role.rb
foreman_ansible-2.3.2 app/models/ansible_role.rb
foreman_ansible-2.3.1 app/models/ansible_role.rb
foreman_ansible-2.3.0 app/models/ansible_role.rb