Class: ForemanDeployments::Tasks::SearchTaskDefinition

Inherits:
BaseDefinition
  • Object
show all
Defined in:
app/lib/foreman_deployments/tasks/search_task_definition.rb

Defined Under Namespace

Classes: Action, SerializableArray

Instance Attribute Summary

Attributes inherited from BaseDefinition

#parameters, #planned, #task_id

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from BaseDefinition

#accept, build, #configuration, #configure, #initialize, #merge_configuration, #plan, #to_hash

Constructor Details

This class inherits a constructor from ForemanDeployments::Tasks::BaseDefinition

Class Method Details

.create_output(obj, output_hash = {}) ⇒ Object



44
45
46
47
48
# File 'app/lib/foreman_deployments/tasks/search_task_definition.rb', line 44

def self.create_output(obj, output_hash = {})
  output_hash['results'] = obj
  output_hash['result'] = { 'ids' => obj.map(&:id) }
  output_hash
end

.search(parameters) ⇒ Object



37
38
39
40
41
42
# File 'app/lib/foreman_deployments/tasks/search_task_definition.rb', line 37

def self.search(parameters)
  object_type = parameters['class']
  object_type = object_type.constantize if object_type.is_a? String
  results = object_type.search_for(parameters[:search_term])
  results
end

.tag_nameObject



50
51
52
# File 'app/lib/foreman_deployments/tasks/search_task_definition.rb', line 50

def self.tag_name
  'FindResource'
end

Instance Method Details

#dynflow_actionObject



33
34
35
# File 'app/lib/foreman_deployments/tasks/search_task_definition.rb', line 33

def dynflow_action
  ForemanDeployments::Tasks::SearchTaskDefinition::Action
end

#preliminary_outputObject



29
30
31
# File 'app/lib/foreman_deployments/tasks/search_task_definition.rb', line 29

def preliminary_output
  SearchTaskDefinition.create_output(SearchTaskDefinition.search(parameters.configured))
end

#validateObject



18
19
20
21
22
23
24
25
26
27
# File 'app/lib/foreman_deployments/tasks/search_task_definition.rb', line 18

def validate
  results = SearchTaskDefinition.search(parameters.configured)
  messages = []
  unless results.any?
    messages = [
      _('%s didn\'t return valid objects') % "#{parameters['class']}.search_for('#{parameters['search_term']}')"]
  end

  ForemanDeployments::Validation::ValidationResult.new(messages)
end