Module: Legion::Extensions::Tasker::Runners::Log

Includes:
Helpers::Lex
Defined in:
lib/legion/extensions/tasker/runners/log.rb

Instance Method Summary collapse

Instance Method Details

#add_log(task_id:, entry:, function: nil, runner_class: nil, **opts) ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/legion/extensions/tasker/runners/log.rb', line 12

def add_log(task_id:, entry:, function: nil, runner_class: nil, **opts)
  entry = ::JSON.dump(entry) unless entry.is_a? String
  insert = { task_id: task_id, entry: entry }
  if opts.key?(:node_id)
    insert[:node_id] = opts[:node_id]
  elsif opts.key?(:name)
    node = Legion::Data::Model::Node.where(name: opts[:name]).first
    insert[:node_id] = node.values[:id] unless node.nil?
  end
  insert[:function_id] = opts[:function_id] if opts.key? :function_id

  unless function.nil? && runner_class.nil?
    runner = Legion::Data::Model::Runner.where(namespace: runner_class).first
    insert[:function_id] = runner.functions_dataset.where(name: function).first.values[:id] unless runner.nil?
  end

  id = Legion::Data::Model::TaskLog.insert(insert)

  { success: !id.nil?, id: id }
end

#delete_all(**_opts) ⇒ Object



48
49
50
51
# File 'lib/legion/extensions/tasker/runners/log.rb', line 48

def delete_all(**_opts)
  delete = Legion::Data::Model::TaskLog.dataset.delete
  { success: delete.positive?, count: delete }
end

#delete_log(id:, **_opts) ⇒ Object



33
34
35
36
# File 'lib/legion/extensions/tasker/runners/log.rb', line 33

def delete_log(id:, **_opts)
  delete = Legion::Data::Model::TaskLog[id].delete
  { success: delete.positive?, count: delete, deleted_id: id }
end

#delete_node_logs(node_id:, **_opts) ⇒ Object



43
44
45
46
# File 'lib/legion/extensions/tasker/runners/log.rb', line 43

def delete_node_logs(node_id:, **_opts)
  delete = Legion::Data::Model::TaskLog.where(node_id: node_id).delete
  { success: delete.positive?, count: delete, deleted_node_id: node_id }
end

#delete_task_logs(task_id:, **_opts) ⇒ Object



38
39
40
41
# File 'lib/legion/extensions/tasker/runners/log.rb', line 38

def delete_task_logs(task_id:, **_opts)
  delete = Legion::Data::Model::TaskLog.where(task_id: task_id).delete
  { success: delete.positive?, count: delete, deleted_task_id: task_id }
end