lita-trisul 0.2.3 → 0.2.4
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 +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
|
-
|