thm 0.2.1 → 0.2.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 7b09ec5d25d74981d6de95c8ff62b81e52e6bf50
4
- data.tar.gz: 572aeb78c445a7519d9a7db03c5fe99ea8437bf6
3
+ metadata.gz: 14298155e86d49a7a209f664112f24a831608ab5
4
+ data.tar.gz: 36f3b7465a8bda21887bc76760d83e18e1f53aac
5
5
  SHA512:
6
- metadata.gz: 9a3da3536826878934cec22453d65f39dc4952af97368003835f7b04f186415f74cf7f611fd2a58fde883d6dfd4bec8f2432885c997dd8d0750b268f5cfba3e9
7
- data.tar.gz: 6eca45c81f9aab95254f09138ad6f0a43541e5581d8e7d4886ee8dafe41378db3ba7c8100e2a9b849a9f5d3cdf6e9431a73fd0329f8d0a7b41821c8a4439586f
6
+ metadata.gz: 4ea375fc0eeac8aa7c01f5849ab71b6994ef5a38f6f1756bbd7bc933a87e24d0dbc6a3330c575cb8243e4e3ac42c1a9ad1a54d541f66be0320174aa20dbfd776
7
+ data.tar.gz: 52f8c8f450769a074d3f4797dfe366a635ba307e50d13b76ddda15bde8ce86756bc8736fee2cdf5f08b5d710687425add72002f68207e6578bdf5e4fe078fb1f
@@ -82,6 +82,7 @@ module DatalayerLight
82
82
 
83
83
  end
84
84
 
85
+ # Fine for small capture projects
85
86
  class MySQLDrv
86
87
 
87
88
  require 'mysql'
@@ -139,5 +140,73 @@ module DatalayerLight
139
140
  end
140
141
 
141
142
  end
143
+
144
+ # Metrics / Measurements Engine InfluxDB RestAPI
145
+ class InfluxDB
146
+
147
+ require "net/http"
148
+ require "uri"
149
+ require "json"
150
+ require "pp"
142
151
 
152
+ attr_accessor :dbhost, :dbuser, :dbpass, :dbport, :dburl
153
+
154
+ def initialize
155
+ @dbhost = "127.0.0.1"
156
+ @dbuser = "threatmonitor"
157
+ @dbpass = "dk3rbi9l"
158
+ @dbport = 8086
159
+ @dbname = "threatmonitor"
160
+ end
161
+
162
+ def apiget(sql)
163
+ @dburl = "http://#{@dbhost}:#{@dbport}"
164
+ sqlunicode = URI.encode(sql)
165
+ puts "InfluxDB SQL URL: #{@dburl}/query?db=#{@dbname}&q=#{sqlunicode}"
166
+ uri = URI.parse("#{@dburl}/query?db=#{@dbname}&q=#{sqlunicode}")
167
+ puts "Request URI: #{uri}"
168
+ http = Net::HTTP.new(uri.host, uri.port)
169
+ begin
170
+ response = http.request(Net::HTTP::Get.new(uri.request_uri))
171
+ begin
172
+ j = JSON.parse(response.body)
173
+ rescue JSON::ParserError
174
+ puts "Could not read JSON data"
175
+ end
176
+ rescue
177
+ puts "Error retrieving data"
178
+ end
179
+ end
180
+
181
+ def apipost(data)
182
+ @dburl = "http://#{@dbhost}:#{@dbport}"
183
+ #puts "InfluxDB SQL URL: #{@dburl}/query?db=#{@dbname}"
184
+ uri = URI.parse("#{@dburl}/write?db=#{@dbname}")
185
+ #puts "Request URI: #{uri}"
186
+ http = Net::HTTP.new(uri.host, uri.port)
187
+ request = Net::HTTP::Post.new(uri.request_uri)
188
+ request.set_content_type("application/x-www-form-urlencoded")
189
+ begin
190
+ request.body = data unless data.empty?
191
+ response = http.request(request)
192
+ if response.code == 204 # Good response
193
+ puts "OK"
194
+ elsif response.code == 200 or response.code == 400 # 200 can be an error in some cases !!
195
+ puts "Error code #{response.code}"
196
+ end
197
+ rescue
198
+ puts "Error posting data"
199
+ end
200
+ end
201
+
202
+ def query(sql, mode="r")
203
+ if mode == "r"
204
+ apiget("#{sql}")
205
+ elsif mode == "w"
206
+ apipost(sql)
207
+ end
208
+ end
209
+
210
+ end
211
+
143
212
  end
data/lib/thm/version.rb CHANGED
@@ -4,7 +4,7 @@ module Thm #:nodoc:
4
4
 
5
5
  MAJOR = 0
6
6
  MINOR = 2
7
- TINY = 1
7
+ TINY = 2
8
8
  CODENAME = "Deedrah"
9
9
 
10
10
  STRING = [MAJOR, MINOR, TINY].join('.')
data/lib/thm.rb CHANGED
@@ -16,9 +16,6 @@ require 'guid'
16
16
  require 'yaml'
17
17
  require 'pcaplet'
18
18
  require 'pcaprub' # For Live capture / write
19
- require File.expand_path(File.join(
20
- File.dirname(__FILE__),
21
- "../datalayerlight.rb"))
22
19
  include Pcap
23
20
 
24
21
  # TODO
@@ -38,7 +35,12 @@ module Tools
38
35
 
39
36
  end
40
37
 
41
- # Load Datasources
38
+ # Load Database drivers
39
+ require File.expand_path(File.join(
40
+ File.dirname(__FILE__),
41
+ "../lib/thm/datalayerlight.rb"))
42
+
43
+ # Load Datasources / Services contains defaults
42
44
  require File.expand_path(File.join(
43
45
  File.dirname(__FILE__),
44
46
  "../lib/thm/dataservices.rb"))
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: thm
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - puppetpies
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-07-18 00:00:00.000000000 Z
11
+ date: 2015-07-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -185,7 +185,6 @@ files:
185
185
  - bin/thm-session
186
186
  - bin/thm-useradmin
187
187
  - config.rb
188
- - datalayerlight.rb
189
188
  - js/JSXTransformer.js
190
189
  - js/chartkick.js
191
190
  - js/files/authenticate.jsx
@@ -195,6 +194,7 @@ files:
195
194
  - js/react.js
196
195
  - lib/thm.rb
197
196
  - lib/thm/consumer.rb
197
+ - lib/thm/datalayerlight.rb
198
198
  - lib/thm/dataservices.rb
199
199
  - lib/thm/fileservices.rb
200
200
  - lib/thm/localmachine.rb