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 +4 -4
- data/{datalayerlight.rb → lib/thm/datalayerlight.rb} +69 -0
- data/lib/thm/version.rb +1 -1
- data/lib/thm.rb +6 -4
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 14298155e86d49a7a209f664112f24a831608ab5
|
4
|
+
data.tar.gz: 36f3b7465a8bda21887bc76760d83e18e1f53aac
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
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
|
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.
|
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-
|
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
|