Sha256: baf4a8917bf01fc1583b9b66f7d190ff11ee5c5744b495c957932bfc26beec4f

Contents?: true

Size: 1.66 KB

Versions: 4

Compression:

Stored size: 1.66 KB

Contents

# frozen_string_literal: true

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

  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 => :id, :complete_value => false
  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

  set_crud_hooks :ansible_role

  apipie :class, "A class representing #{model_name.human} object" do
    name 'Ansible role'
    refs 'AnsibleRole'
    sections only: %w[all additional]
    property :name, String, desc: 'Returns name of the ansible role'
  end
  # Methods to be allowed in any template with safemode enabled
  class Jail < Safemode::Jail
    allow :name
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
foreman_ansible-15.0.2 app/models/ansible_role.rb
foreman_ansible-15.0.1 app/models/ansible_role.rb
foreman_ansible-15.0.0 app/models/ansible_role.rb
foreman_ansible-14.2.2 app/models/ansible_role.rb