thm 0.2.1 → 0.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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