Class: JobInvocationComposer::UiParams
- Inherits:
-
Object
- Object
- JobInvocationComposer::UiParams
- Defined in:
- app/models/job_invocation_composer.rb
Instance Attribute Summary collapse
-
#ui_params ⇒ Object
readonly
Returns the value of attribute ui_params.
Instance Method Summary collapse
- #concurrency_control_params ⇒ Object
-
#initialize(ui_params) ⇒ UiParams
constructor
A new instance of UiParams.
- #job_invocation_base ⇒ Object
- #params ⇒ Object
- #providers_base ⇒ Object
-
#template_invocations_params ⇒ Object
parses params to get job templates in form of id => attributes for selected job templates, e.g.
- #triggering ⇒ Object
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_params ⇒ Object (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_params ⇒ Object
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_base ⇒ Object
19 20 21 |
# File 'app/models/job_invocation_composer.rb', line 19 def job_invocation_base ui_params.fetch(:job_invocation, {}) end |
#params ⇒ Object
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_base ⇒ Object
23 24 25 |
# File 'app/models/job_invocation_composer.rb', line 23 def providers_base job_invocation_base.fetch(:providers, {}) end |
#template_invocations_params ⇒ Object
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 |
#triggering ⇒ Object
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 |