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
- #execution_timeout_interval ⇒ Object
-
#initialize(ui_params) ⇒ UiParams
constructor
A new instance of UiParams.
- #job_invocation_base ⇒ Object
- #params ⇒ Object
- #providers_base ⇒ Object
-
#template_invocations_params ⇒ Object
TODO: Fix this comment 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
63 64 65 66 67 68 |
# File 'app/models/job_invocation_composer.rb', line 63 def concurrency_control_params { :time_span => job_invocation_base[:time_span], :level => job_invocation_base[:concurrency_level] } end |
#execution_timeout_interval ⇒ Object
28 29 30 31 32 33 |
# File 'app/models/job_invocation_composer.rb', line 28 def execution_timeout_interval providers_base.values.map do |provider| id = provider[:job_template_id] provider.fetch(:job_templates, {}).fetch(id, {})[:execution_timeout_interval] end.first end |
#job_invocation_base ⇒ Object
20 21 22 |
# File 'app/models/job_invocation_composer.rb', line 20 def job_invocation_base ui_params.fetch(:job_invocation, {}) end |
#params ⇒ Object
9 10 11 12 13 14 15 16 17 18 |
# 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, :execution_timeout_interval => execution_timeout_interval, :template_invocations => template_invocations_params }.with_indifferent_access end |
#providers_base ⇒ Object
24 25 26 |
# File 'app/models/job_invocation_composer.rb', line 24 def providers_base job_invocation_base.fetch(:providers, {}) end |
#template_invocations_params ⇒ Object
TODO: Fix this comment 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" => ""
}
}
}
}
50 51 52 53 54 55 56 57 58 59 60 61 |
# File 'app/models/job_invocation_composer.rb', line 50 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
70 71 72 73 74 75 76 |
# File 'app/models/job_invocation_composer.rb', line 70 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 |