Commit 9c84576

mo khan <mo@mokhan.ca>
2015-02-07 19:53:45
use single table inheritance for events table.
1 parent 65145e6
app/controllers/agents/events_controller.rb
@@ -12,7 +12,7 @@ module Agents
 
     def create
       message = event_params.merge({agent_id: @agent.id})
-      routing_key = "events.#{event_params[:name]}.#{@agent.id}"
+      routing_key = "events.#{event_params[:type]}.#{@agent.id}"
       Publisher.publish(routing_key, message)
       redirect_to agent_events_url, notice: 'Event was successfully created.'
     end
app/controllers/agents/files_controller.rb
@@ -11,15 +11,9 @@ module Agents
     def show
       @fingerprint = params[:id]
       @file = Disposition.find_by(fingerprint: params[:id])
-      Publisher.publish("queries", {
-        agent_id: params[:id],
-        name: params[:name],
-        data: params[:data]
-      })
-
       message = {
         agent_id: params[:id],
-        name: params[:name],
+        type: 'lookup',
         data: params[:data]
       }
       Publisher.publish("events.scanned.#{@agent.id}", message)
app/models/detection.rb
@@ -0,0 +1,2 @@
+class Detection < Event
+end
app/models/modified.rb
@@ -0,0 +1,2 @@
+class Modified < Event
+end
app/views/agents/events/_form.html.erb
@@ -12,8 +12,8 @@
   <% end %>
 
   <div class="field">
-    <%= f.label :name %><br>
-    <%= f.text_field :name %>
+    <%= f.label :type %><br>
+    <%= f.text_field :type %>
   </div>
   <div class="field">
     <%= f.label :data %><br>
app/views/agents/events/index.html.erb
@@ -17,7 +17,7 @@
       <tbody>
         <% @events.each do |event| %>
           <tr>
-            <td><%= event.name %></td>
+            <td><%= event.type %></td>
             <td>
               <ul>
               <% event.data.each do |key, value| %>
@@ -43,7 +43,7 @@
 
   <div class="small-12 columns">
     <h2>Events by category</h2>
-    <%= pie_chart @agent.events.group(:name).count %>
+    <%= pie_chart @agent.events.group(:type).count %>
   </div>
 </div>
 
db/migrate/20150207194524_rename_name_to_type.rb
@@ -0,0 +1,5 @@
+class RenameNameToType < ActiveRecord::Migration
+  def change
+    rename_column :events, :name, :type
+  end
+end
db/schema.rb
@@ -11,7 +11,7 @@
 #
 # It's strongly recommended that you check this file into your version control system.
 
-ActiveRecord::Schema.define(version: 20150207151759) do
+ActiveRecord::Schema.define(version: 20150207194524) do
 
   # These are extensions that must be enabled in order to support this database
   enable_extension "plpgsql"
@@ -31,7 +31,7 @@ ActiveRecord::Schema.define(version: 20150207151759) do
   end
 
   create_table "events", id: :uuid, default: "uuid_generate_v4()", force: :cascade do |t|
-    t.string   "name"
+    t.string   "type"
     t.json     "data"
     t.datetime "created_at", null: false
     t.datetime "updated_at", null: false
lib/fake_agent.rb
@@ -68,7 +68,7 @@ class FakeAgent
       body = {
         event: {
           agent_id: id,
-          name: event,
+          type: event,
           data: {
             fingerprint: fingerprint_for(file),
             path: file,
@@ -97,7 +97,6 @@ class FakeAgent
   def disposition_for(file)
     fingerprint = fingerprint_for(file)
     body = {
-      name: 'lookup',
       data: {
         fingerprint: fingerprint,
         path: File.expand_path(file)