lita-trisul 0.2.3 → 0.2.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +14 -10
- data/lib/lita-trisul.rb +0 -2
- data/lib/lita/handlers/lita-hello.rb +8 -2
- data/lib/lita/handlers/trisul.rb +64 -4
- data/lita-trisul.gemspec +1 -1
- metadata +2 -3
- data/lib/lita/handlers/lita-trpgerbil.rb +0 -72
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 18a8a6df5b0323586fb9930984f786432b5ab34e
|
4
|
+
data.tar.gz: e6e0d1eea27ec02149cd84bd85fb86d9fd5522a6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 497c5e38cb9a6f997f2cd7b2c9c885d13e0c6ad2f55e1f92ee10f3a78058c7975c9cfc33cdad389273fdb8a95b2edab8d10b6cb0e4f39f83a88e2da75457d1bf
|
7
|
+
data.tar.gz: 09c0e0aa3a325d92ddd8ce994ae7b440cc67e0ab5aa4bdbedc5e9fdf92eb5bc0fd4b12004bc4a9afcfaec4e248ed7107f0a5e4a16fd2a3ad93b1aef1c4e0331a
|
data/README.md
CHANGED
@@ -17,6 +17,18 @@ gem "lita-trisul"
|
|
17
17
|
|
18
18
|
## Configuration
|
19
19
|
|
20
|
+
Add the following config parameters
|
21
|
+
|
22
|
+
````
|
23
|
+
|
24
|
+
# where the Trisul TRP server is
|
25
|
+
config.handlers.trisul.trp_server_endpoint="tcp://192.168.2.8:12006"
|
26
|
+
|
27
|
+
# external IP of this host for serving images
|
28
|
+
config.handlers.trisul.local_http_server="http://192.168.2.11:3000"
|
29
|
+
|
30
|
+
````
|
31
|
+
|
20
32
|
TODO: Describe any configuration attributes the plugin exposes.
|
21
33
|
|
22
34
|
## Usage
|
@@ -36,9 +48,9 @@ TODO: Describe the plugin's features and how to use them.
|
|
36
48
|
2. Install ruby
|
37
49
|
- Ubuntu - `sudo apt-get install ruby ruby-dev`
|
38
50
|
3. Install Ruby binding for ZMQ - we use this to connect to Trisul domain
|
39
|
-
|
51
|
+
- Ubuntu - `sudo apt-get install ruby-ffi-rzmq`
|
40
52
|
4. Install other dependencies
|
41
|
-
|
53
|
+
- Ubuntu - `sudo apt-get install build-essential libssl-dev redis-server librsvg2-bin libzmq3-dev`
|
42
54
|
5. Install bundler and all the gems
|
43
55
|
- Ubuntu - `sudo gem install bundler` then `bundle install`
|
44
56
|
|
@@ -47,7 +59,6 @@ TODO: Describe the plugin's features and how to use them.
|
|
47
59
|
### Creating your Chat bot
|
48
60
|
|
49
61
|
|
50
|
-
|
51
62
|
1. Create a new LITA instance
|
52
63
|
- `lita new mybotwalle`
|
53
64
|
1. Configure your BOT for HIPCHAT
|
@@ -55,10 +66,3 @@ TODO: Describe the plugin's features and how to use them.
|
|
55
66
|
|
56
67
|
|
57
68
|
|
58
|
-
# There seems to be a bug with gerbil charts
|
59
|
-
# To provide a temporary fix against the bug, copy the gerbil.js and brushmetal.css files to the directory to the directory from which the bot is started and then start the bot
|
60
|
-
# cp /var/lib/gems/2.3.0/gems/lita-trisul-0.2.0/lib/lita/handlers/gerbil.js .
|
61
|
-
# cp /var/lib/gems/2.3.0/gems/lita-trisul-0.2.0/lib/lita/handlers/brushmetal.js .
|
62
|
-
|
63
|
-
|
64
|
-
|
data/lib/lita-trisul.rb
CHANGED
@@ -5,9 +5,15 @@ require 'base64'
|
|
5
5
|
module Lita
|
6
6
|
module Handlers
|
7
7
|
class Hello < Handler
|
8
|
+
|
8
9
|
$id=rand(100)
|
9
10
|
extend Lita::Handler::HTTPRouter
|
10
11
|
http.get "/kkr:id.png", :example
|
12
|
+
|
13
|
+
config :query_endpoint
|
14
|
+
config :lita_public_ip
|
15
|
+
|
16
|
+
|
11
17
|
def example(request,response2)
|
12
18
|
`ruby /home/lita/test_lines.rb`
|
13
19
|
`rsvg-convert /tmp/sq_linechart.svg -o /home/lita/robot/test.png`
|
@@ -37,7 +43,7 @@ module Lita
|
|
37
43
|
tint.from= TRP::Timestamp.new()
|
38
44
|
tint.from.tv_sec = tint.to.tv_sec - 3600
|
39
45
|
req = TrisulRP::Protocol.mk_request(TRP::Message::Command::COUNTER_GROUP_TOPPER_REQUEST,{:counter_group=>response.matches[0][0],:meter=>0,:maxitems=>2,time_interval:tint})
|
40
|
-
TrisulRP::Protocol.get_response_zmq(
|
46
|
+
TrisulRP::Protocol.get_response_zmq(config.query_endpoint,req) do |resp|
|
41
47
|
resp.keys.each do |key|
|
42
48
|
response.reply("#{key.label}=#{key.metric*300}")
|
43
49
|
end
|
@@ -48,7 +54,7 @@ module Lita
|
|
48
54
|
|
49
55
|
|
50
56
|
def imagery(response)
|
51
|
-
response.reply("http
|
57
|
+
response.reply("http://#{config.lita_public_ip}:9000/kkr#{$id}.png")
|
52
58
|
$id=rand(100)
|
53
59
|
|
54
60
|
end
|
data/lib/lita/handlers/trisul.rb
CHANGED
@@ -1,9 +1,69 @@
|
|
1
|
+
require 'json'
|
2
|
+
require 'lita'
|
3
|
+
require 'open-uri'
|
4
|
+
require 'base64'
|
5
|
+
require 'gerbilcharts'
|
6
|
+
|
1
7
|
module Lita
|
2
8
|
module Handlers
|
3
9
|
class Trisul < Handler
|
4
|
-
|
10
|
+
|
11
|
+
$id=rand(100)
|
12
|
+
extend Lita::Handler::HTTPRouter
|
13
|
+
|
14
|
+
config :trp_server_endpoint
|
15
|
+
config :local_http_server
|
16
|
+
|
17
|
+
http.get "/ers:id.png", :example
|
18
|
+
|
19
|
+
def example(request,response2)
|
20
|
+
`rsvg-convert /tmp/chart.svg -o /tmp/chart.png`
|
21
|
+
file=File.read("/tmp/chart.png")
|
22
|
+
response2["Content-Type"] = "image/png"
|
23
|
+
response2.write(file)
|
24
|
+
response2.finish
|
25
|
+
end
|
26
|
+
|
27
|
+
|
28
|
+
def chart_generate(data)
|
29
|
+
mod1 = GerbilCharts::Models::TimeSeriesGraphModel.new("External Gateway")
|
30
|
+
mod1.add_tuples data
|
31
|
+
modgroup = GerbilCharts::Models::GraphModelGroup.new("Hosts")
|
32
|
+
modgroup.add(mod1)
|
33
|
+
mychart = GerbilCharts::Charts::AreaChart.new( :width => 750, :height => 250, :squarize => true,
|
34
|
+
:auto_tooltips => false,:style => 'inline:brushmetal.css' )
|
35
|
+
mychart.setmodelgroup(modgroup)
|
36
|
+
mychart.render('/tmp/chart.svg')
|
37
|
+
end
|
38
|
+
|
39
|
+
|
40
|
+
route(/^Total\straffic\s(.*)/i, :trpchart, command: false, help: { "trpchart" => "To chart trp" })
|
41
|
+
|
42
|
+
|
43
|
+
def trpchart(response)
|
44
|
+
if response.matches[0]=="hey" and ! response.matches[0].is_a?Array
|
45
|
+
response.reply("Please enter hey <counter_group_id>")
|
46
|
+
end
|
47
|
+
tint = TRP::TimeInterval.new()
|
48
|
+
tint.to= TRP::Timestamp.new({:tv_sec=>Time.now.tv_sec})
|
49
|
+
tint.from= TRP::Timestamp.new()
|
50
|
+
tint.from.tv_sec = tint.to.tv_sec - 3600
|
51
|
+
keyt = TRP::KeyT.new({:key=>"TOTALBW"})
|
52
|
+
req = TrisulRP::Protocol.mk_request(TRP::Message::Command::COUNTER_ITEM_REQUEST,{:counter_group=>response.matches[0][0].strip,:key=>keyt,time_interval:tint})
|
53
|
+
data = []
|
54
|
+
TrisulRP::Protocol.get_response_zmq(config.trisul.trp_server_endpoint,req) do |resp|
|
55
|
+
resp.stats.each do |stat|
|
56
|
+
data << [ stat.ts_tv_sec,stat.values[0]*8]
|
57
|
+
end#stats
|
58
|
+
end#trp
|
59
|
+
chart_generate(data)
|
60
|
+
response.reply("http://#{config.trisul.local_http_server}/ers#{$id}.png")
|
61
|
+
$id=rand(100)
|
62
|
+
end#def
|
5
63
|
|
6
64
|
Lita.register_handler(self)
|
7
|
-
|
8
|
-
|
9
|
-
end
|
65
|
+
|
66
|
+
end #CLASS
|
67
|
+
end #module handlers
|
68
|
+
end #modulelita
|
69
|
+
|
data/lita-trisul.gemspec
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: lita-trisul
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Krishna
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-06-
|
11
|
+
date: 2017-06-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: lita
|
@@ -194,7 +194,6 @@ files:
|
|
194
194
|
- lib/lita/handlers/gerbil.js
|
195
195
|
- lib/lita/handlers/lita-gerbile.rb
|
196
196
|
- lib/lita/handlers/lita-hello.rb
|
197
|
-
- lib/lita/handlers/lita-trpgerbil.rb
|
198
197
|
- lib/lita/handlers/trisul.rb
|
199
198
|
- lita-trisul.gemspec
|
200
199
|
- locales/en.yml
|
@@ -1,72 +0,0 @@
|
|
1
|
-
require 'json'
|
2
|
-
require 'lita'
|
3
|
-
require 'open-uri'
|
4
|
-
require 'base64'
|
5
|
-
require 'gerbilcharts'
|
6
|
-
module Lita
|
7
|
-
module Handlers
|
8
|
-
class Gerbile < Handler
|
9
|
-
config :config.trisul.host, type: String, required: true
|
10
|
-
config :config.public.host, type: String, required: true
|
11
|
-
$id=rand(100)
|
12
|
-
extend Lita::Handler::HTTPRouter
|
13
|
-
http.get "/kkr:id.png", :example
|
14
|
-
def example(request,response)
|
15
|
-
chart_generate()
|
16
|
-
`rsvg-convert /tmp/chart.svg -o /tmp/chart.png`
|
17
|
-
file=File.read("/tmp/chart.png")
|
18
|
-
response2["Content-Type"] = "image/png"
|
19
|
-
response2.write(file)
|
20
|
-
response2.finish
|
21
|
-
end
|
22
|
-
|
23
|
-
|
24
|
-
def chart_generate(test_vector_tm1)
|
25
|
-
test_vector_tm1 = []
|
26
|
-
tbeg = Time.local( 1978, "jun", 5, 9, 10, 0, 0)
|
27
|
-
sbeg = tbeg
|
28
|
-
sec_inc = 50
|
29
|
-
for i in (0..20)
|
30
|
-
test_vector_tm1 << [sbeg + i*sec_inc, i*sec_inc*250*rand() ]
|
31
|
-
end
|
32
|
-
mod1 = GerbilCharts::Models::TimeSeriesGraphModel.new("External Gateway")
|
33
|
-
mod1.add_tuples test_vector_tm1
|
34
|
-
modgroup = GerbilCharts::Models::GraphModelGroup.new("Hosts")
|
35
|
-
modgroup.add(mod1)
|
36
|
-
mychart = GerbilCharts::Charts::LineChart.new( :width => 750, :height => 250, :squarize => true,:javascripts => ['inline:gerbil.js' ],
|
37
|
-
:auto_tooltips => false, :style => 'inline:brushmetal.css' )
|
38
|
-
mychart.setmodelgroup(modgroup)
|
39
|
-
mychart.render('/tmp/chart.svg')
|
40
|
-
end
|
41
|
-
|
42
|
-
|
43
|
-
route(/^chart me/, :trpchart, command: false, help: { "trchart" => "To chart trp" })
|
44
|
-
|
45
|
-
|
46
|
-
def trpchart(response)
|
47
|
-
if response.matches[0]=="hey" and ! response.matches[0].is_a?Array
|
48
|
-
response.reply("Please enter hey <counter_group_id>")
|
49
|
-
end
|
50
|
-
conn = "tcp://$config.trisul.host"
|
51
|
-
tint = TRP::TimeInterval.new()
|
52
|
-
tint.to= TRP::Timestamp.new({:tv_sec=>Time.now.tv_sec})
|
53
|
-
tint.from= TRP::Timestamp.new()
|
54
|
-
tint.from.tv_sec = tint.to.tv_sec - 3600
|
55
|
-
req = TrisulRP::Protocol.mk_request(TRP::Message::Command::COUNTER_GROUP_TOPPER_REQUEST,{:counter_group=>response.matches[0][0],:meter=>0,:maxitems=>2,time_interval:tint})
|
56
|
-
data = []
|
57
|
-
TrisulRP::Protocol.get_response_zmq(conn,req) do |resp|
|
58
|
-
resp.keys.each do |key|
|
59
|
-
#response.reply("#{key.label}=#{key.metric*300}")
|
60
|
-
data << [#{key.label},#{key.metric}]
|
61
|
-
end
|
62
|
-
end
|
63
|
-
chart_generate(data)
|
64
|
-
response.reply("http://$config.public.host/kkr#{$id}.png")
|
65
|
-
$id=rand(100)
|
66
|
-
end#def
|
67
|
-
|
68
|
-
end#CLASS
|
69
|
-
Lita.register_handler(Gerbile)
|
70
|
-
end#module handlers
|
71
|
-
end#modulelita
|
72
|
-
|