Class: ForemanPuppet::PuppetclassesController

Inherits:
ApplicationController
  • Object
show all
Includes:
Foreman::Controller::AutoCompleteSearch, Foreman::Controller::Parameters::Host, Foreman::Controller::Parameters::Hostgroup, ForemanPuppet::Parameters::Environment, ForemanPuppet::Parameters::Puppetclass
Defined in:
app/controllers/foreman_puppet/puppetclasses_controller.rb

Instance Method Summary collapse

Methods included from ForemanPuppet::Parameters::Puppetclass

#puppetclass_params

Methods included from ForemanPuppet::Parameters::PuppetclassLookupKey

#puppetclass_lookup_key_params

Methods included from ForemanPuppet::Parameters::Environment

#environment_params

Instance Method Details

#destroyObject



44
45
46
47
48
49
50
# File 'app/controllers/foreman_puppet/puppetclasses_controller.rb', line 44

def destroy
  if @puppetclass.destroy
    process_success
  else
    process_error
  end
end

#editObject



33
34
# File 'app/controllers/foreman_puppet/puppetclasses_controller.rb', line 33

def edit
end

#host_params(top_level_hash = controller_name.singularize) ⇒ Object

TODO: extracted_from_core?



15
16
17
18
19
20
21
22
23
# File 'app/controllers/foreman_puppet/puppetclasses_controller.rb', line 15

def host_params(top_level_hash = controller_name.singularize)
  filter = self.class.host_params_filter
  filter.permit(puppet_attributes: {})
  filter.filter_params(params, parameter_filter_context, top_level_hash).tap do |normalized|
    if parameter_filter_context.ui? && normalized['compute_attributes'] && normalized['compute_attributes']['scsi_controllers']
      normalize_scsi_attributes(normalized['compute_attributes'])
    end
  end
end

#indexObject



25
26
27
28
29
30
31
# File 'app/controllers/foreman_puppet/puppetclasses_controller.rb', line 25

def index
  @puppetclasses = resource_base_search_and_page
  allowed_hostgroup_ids = HostgroupPuppetFacet.joins(:hostgroup_classes)
                                              .where(HostgroupClass.arel_table[:puppetclass_id].in(@puppetclasses.map(&:id)))
                                              .pluck(:hostgroup_id).uniq
  @hostgroups_authorizer = Authorizer.new(User.current, collection: allowed_hostgroup_ids)
end

#overrideObject



52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
# File 'app/controllers/foreman_puppet/puppetclasses_controller.rb', line 52

def override
  if @puppetclass.class_params.present?
    @puppetclass.class_params.each do |class_param|
      class_param.update(override: params[:enable])
    end
    if [true, 'true'].include?(params[:enable])
      success _('Successfully overridden all parameters of Puppet class %s') % @puppetclass.name
    else
      success _('Successfully reset all parameters of Puppet class %s to their default values') % @puppetclass.name
    end
  else
    error _('No parameters to override for Puppet class %s') % @puppetclass.name
  end
  redirect_to puppetclasses_path
end

#parametersObject

form AJAX methods



69
70
71
72
73
74
# File 'app/controllers/foreman_puppet/puppetclasses_controller.rb', line 69

def parameters
  puppetclass = Puppetclass.find(params[:id])
  render partial: 'foreman_puppet/puppetclasses/class_parameters',
         locals: { puppetclass: puppetclass,
                   obj: find_host_or_hostgroup }
end

#resource_classObject



76
77
78
# File 'app/controllers/foreman_puppet/puppetclasses_controller.rb', line 76

def resource_class
  model_of_controller
end

#updateObject



36
37
38
39
40
41
42
# File 'app/controllers/foreman_puppet/puppetclasses_controller.rb', line 36

def update
  if @puppetclass.update(puppetclass_params)
    process_success
  else
    process_error
  end
end