Class: ForemanAcd::AnsiblePlaybook

Inherits:
ApplicationRecord
  • Object
show all
Extended by:
FriendlyId
Includes:
Authorizable, Parameterizable::ByIdName, Taxonomix
Defined in:
app/models/foreman_acd/ansible_playbook.rb

Overview

Ansible playbook

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.humanize_class_name(_name = nil) ⇒ Object



38
39
40
# File 'app/models/foreman_acd/ansible_playbook.rb', line 38

def self.humanize_class_name(_name = nil)
  _('Ansible playbook')
end

.permission_nameObject



42
43
44
# File 'app/models/foreman_acd/ansible_playbook.rb', line 42

def self.permission_name
  'ansible_playbooks'
end

Instance Method Details

#as_unified_structobjObject



55
56
57
58
59
60
61
62
63
64
65
66
# File 'app/models/foreman_acd/ansible_playbook.rb', line 55

def as_unified_structobj
  # FIXME: For now, we convert all values to string - even booleans and dicts
  pretty_groups = JSON.parse(vars).each do |_, params|
    params.transform_values!(&:to_s)
  end

  OpenStruct.new(
    :id => id,
    :name => name,
    :groups => pretty_groups
  )
end

#contentObject



46
47
48
49
50
51
52
53
# File 'app/models/foreman_acd/ansible_playbook.rb', line 46

def content
  case scm_type
  when 'directory' || 'git'
    File.read(File.join(path, playfile))
  else
    raise NotImplementedError, "scm_type #{scm_type.inspect} not supported!"
  end
end

#used_location_idsObject



24
25
26
27
28
29
# File 'app/models/foreman_acd/ansible_playbook.rb', line 24

def used_location_ids
  Location.joins(:taxable_taxonomies).where(
    'taxable_taxonomies.taxable_type' => 'ForemanAcd::AnsiblePlaybook',
    'taxable_taxonomies.taxable_id' => id
  ).pluck("#{Taxonomy.table_name}.id")
end

#used_organization_idsObject



31
32
33
34
35
36
# File 'app/models/foreman_acd/ansible_playbook.rb', line 31

def used_organization_ids
  Organization.joins(:taxable_taxonomies).where(
    'taxable_taxonomies.taxable_type' => 'ForemanAcd::AnsiblePlaybook',
    'taxable_taxonomies.taxable_id' => id
  ).pluck("#{Taxonomy.table_name}.id")
end