Class: ForemanPuppet::Api::V2::LookupsCommonController

Inherits:
Api::V2::BaseController
  • Object
show all
Defined in:
app/controllers/foreman_puppet/api/v2/lookups_common_controller.rb

Instance Method Summary collapse

Instance Method Details

#cast_default_valueObject



89
90
91
# File 'app/controllers/foreman_puppet/api/v2/lookups_common_controller.rb', line 89

def cast_default_value
  cast_value(:smart_class_parameter, :default_value)
end

#cast_value(obj = :override_value, value = :value) ⇒ Object



93
94
95
96
97
98
# File 'app/controllers/foreman_puppet/api/v2/lookups_common_controller.rb', line 93

def cast_value(obj = :override_value, value = :value)
  return unless params[obj]&.key?(value)
  param_value = params[obj][value]
  return if param_value.is_a?(Hash)
  params[obj][value] = param_value.to_s
end

#createObject



18
19
# File 'app/controllers/foreman_puppet/api/v2/lookups_common_controller.rb', line 18

def create
end

#destroyObject



24
25
# File 'app/controllers/foreman_puppet/api/v2/lookups_common_controller.rb', line 24

def destroy
end

#find_smart_class_parameterObject



46
47
48
49
50
51
52
53
54
55
# File 'app/controllers/foreman_puppet/api/v2/lookups_common_controller.rb', line 46

def find_smart_class_parameter
  id = params.key?('smart_class_parameter_id') ? params['smart_class_parameter_id'] : params['id']
  @smart_class_parameter = PuppetclassLookupKey.authorized(:view_external_parameters).smart_class_parameters.find_by(id: id.to_i) if id.to_i > 0
  @smart_class_parameter ||= begin
    puppet_cond = { 'environment_classes.puppetclass_id' => @puppetclass.id } if @puppetclass
    env_cond = { 'environment_classes.environment_id' => @environment.id } if @environment
    PuppetclassLookupKey.authorized(:view_external_parameters).smart_class_parameters.where(puppet_cond).where(env_cond).where(key: id).first
  end
  @smart_class_parameter
end

#find_smart_class_parametersObject



57
58
59
# File 'app/controllers/foreman_puppet/api/v2/lookups_common_controller.rb', line 57

def find_smart_class_parameters
  @smart_class_parameters = smart_class_parameters_resource_scope.search_for(*search_options).paginate(paginate_options)
end

#return_if_smart_mismatchObject



83
84
85
86
87
# File 'app/controllers/foreman_puppet/api/v2/lookups_common_controller.rb', line 83

def return_if_smart_mismatch
  return unless @smart_class_parameters && (!smart_param_exists? || !@smart_class_parameter)
  id = params.key?('smart_class_parameter_id') ? params['smart_variable_id'] : params['id']
  not_found "Smart class parameter not found by id '#{id}''"
end

#showObject



15
16
# File 'app/controllers/foreman_puppet/api/v2/lookups_common_controller.rb', line 15

def show
end

#smart_class_parameters_resource_scopeObject



61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
# File 'app/controllers/foreman_puppet/api/v2/lookups_common_controller.rb', line 61

def smart_class_parameters_resource_scope
  base = PuppetclassLookupKey.authorized(:view_external_parameters)
  params = if !@puppetclass && !@environment && !@host && !@hostgroup
             base.smart_class_parameters
           elsif @puppetclass && @environment
             base.smart_class_parameters_for_class(@puppetclass.id, @environment.id)
           elsif @puppetclass && !@environment
             environment_ids = @puppetclass.environment_classes.pluck(:environment_id).uniq
             base.smart_class_parameters_for_class(@puppetclass.id, environment_ids)
           elsif !@puppetclass && @environment
             puppetclass_ids = @environment.environment_classes.pluck(:puppetclass_id).uniq
             base.smart_class_parameters_for_class(puppetclass_ids, @environment.id)
           elsif @host || @hostgroup
             puppet_facet = (@host || @hostgroup).puppet || (@host || @hostgroup).build_puppet
             puppetclass_ids = puppet_facet.all_puppetclasses.map(&:id)
             environment_id  = puppet_facet.environment_id
             # scope :parameters_for_class uses .override
             base.parameters_for_class(puppetclass_ids, environment_id)
           end
  params.distinct
end

#updateObject



21
22
# File 'app/controllers/foreman_puppet/api/v2/lookups_common_controller.rb', line 21

def update
end