diff options
Diffstat (limited to 'app')
| -rw-r--r-- | app/controllers/agents/files_controller.rb | 5 | ||||
| -rw-r--r-- | app/workers/cloud_queries.rb | 24 |
2 files changed, 20 insertions, 9 deletions
diff --git a/app/controllers/agents/files_controller.rb b/app/controllers/agents/files_controller.rb index 1d711e2..c25e23e 100644 --- a/app/controllers/agents/files_controller.rb +++ b/app/controllers/agents/files_controller.rb @@ -11,8 +11,9 @@ module Agents def show @file = Disposition.find_by(fingerprint: params[:id]) Publisher.publish("queries", { - fingerprint: params[:id], - payload: params[:payload] + agent_id: params[:id], + name: params[:name], + data: params[:data] }) end diff --git a/app/workers/cloud_queries.rb b/app/workers/cloud_queries.rb index 00e6bd2..06b3dae 100644 --- a/app/workers/cloud_queries.rb +++ b/app/workers/cloud_queries.rb @@ -7,14 +7,24 @@ class CloudQueries def work(json) logger.info "Query for: #{json.inspect}" attributes = JSON.parse(json) - #fingerprint = attributes["fingerprint"] - #disposition = Disposition.find_by(fingerprint: fingerprint) - #if disposition.present? - #logger.info("#{disposition.state} disposition for: #{fingerprint}") - #else - #logger.info("Unknown disposition for: #{fingerprint}") - #end + publish(JSON.generate({ + agent_id: attributes["agent_id"], + name: "File #{attributes["name"]}", + data: attributes["data"] + }), to_queue: "worker.events") + + fingerprint = attributes["fingerprint"] + disposition = Disposition.find_by(fingerprint: fingerprint) + + if disposition.nil? + # publish command to fetch file from agent + #publish(JSON.generate({ + #command: :request_analysis, + #agent_id: attributes["agent_id"], + #fingerprint: fingerprint, + #}), to_queue: "worker.commands") + end ack! end |
