Class: JobInvocationComposer::UiParams

Inherits:
Object
  • Object
show all
Defined in:
app/models/job_invocation_composer.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(ui_params) ⇒ UiParams

Returns a new instance of UiParams.



5
6
7
# File 'app/models/job_invocation_composer.rb', line 5

def initialize(ui_params)
  @ui_params = ui_params
end

Instance Attribute Details

#ui_paramsObject (readonly)

Returns the value of attribute ui_params.



4
5
6
# File 'app/models/job_invocation_composer.rb', line 4

def ui_params
  @ui_params
end

Instance Method Details

#concurrency_control_paramsObject



54
55
56
57
58
59
# File 'app/models/job_invocation_composer.rb', line 54

def concurrency_control_params
  {
    :time_span => job_invocation_base[:time_span],
    :level => job_invocation_base[:concurrency_level]
  }
end

#job_invocation_baseObject



19
20
21
# File 'app/models/job_invocation_composer.rb', line 19

def job_invocation_base
  ui_params.fetch(:job_invocation, {})
end

#paramsObject



9
10
11
12
13
14
15
16
17
# File 'app/models/job_invocation_composer.rb', line 9

def params
  { :job_category => job_invocation_base[:job_category],
    :targeting => ui_params.fetch(:targeting, {}).merge(:user_id => User.current.id),
    :triggering => triggering,
    :host_ids => ui_params[:host_ids],
    :description_format => job_invocation_base[:description_format],
    :concurrency_control => concurrency_control_params,
    :template_invocations => template_invocations_params }.with_indifferent_access
end

#providers_baseObject



23
24
25
# File 'app/models/job_invocation_composer.rb', line 23

def providers_base
  job_invocation_base.fetch(:providers, {})
end

#template_invocations_paramsObject

parses params to get job templates in form of id => attributes for selected job templates, e.g.

"459" => {,
"454" => {
  "input_values" => {
    "2" => {
      "value" => ""
    },
    "5" => {
      "value" => ""
    }
  }
}

}



41
42
43
44
45
46
47
48
49
50
51
52
# File 'app/models/job_invocation_composer.rb', line 41

def template_invocations_params
  providers_base.values.map do |template_params|
    template_base = (template_params.fetch(:job_templates, {}).fetch(template_params[:job_template_id], {})).dup.with_indifferent_access
    template_base[:template_id] = template_params[:job_template_id]
    input_values_params = template_base.fetch(:input_values, {})
    template_base[:input_values] = input_values_params.map do |id, values|
      values.merge(:template_input_id => id)
    end

    template_base
  end
end

#triggeringObject



61
62
63
64
65
66
67
# File 'app/models/job_invocation_composer.rb', line 61

def triggering
  return {} unless ui_params.key?(:triggering)
  trig = ui_params[:triggering]
  keys = (1..5).map { |i| "end_time(#{i}i)" }
  return trig unless trig.key?(:end_time) && trig[:end_time].keys == keys
  trig.merge(:end_time => Time.local(*trig[:end_time].values_at(*keys)))
end