itrp 0.1.0 → 0.1.5
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 +5 -5
- data/Gemfile +4 -5
- data/Gemfile.lock +80 -63
- data/Rakefile +3 -3
- data/VERSION +1 -1
- data/itrp.gemspec +93 -0
- data/lib/cmd_base.rb +4 -0
- data/lib/cmd_root.rb +4 -3
- data/lib/handlers/agg_flow.rb +91 -0
- data/lib/handlers/alert.rb +11 -6
- data/lib/handlers/delete_alerts.rb +2 -2
- data/lib/handlers/edges.rb +60 -0
- data/lib/handlers/grep.rb +47 -0
- data/lib/handlers/keyspace.rb +51 -0
- data/lib/handlers/list_counters.rb +12 -3
- data/lib/handlers/metric_summ.rb +38 -0
- data/lib/handlers/options.rb +1 -1
- data/lib/handlers/pcap.rb +41 -0
- data/lib/handlers/probe.rb +26 -0
- data/lib/handlers/query_flow.rb +8 -15
- data/lib/handlers/query_fts.rb +2 -2
- data/lib/handlers/query_resource.rb +2 -6
- data/lib/handlers/searchkey.rb +61 -0
- data/lib/handlers/setlabel.rb +37 -0
- data/lib/handlers/timeslices.rb +29 -4
- data/lib/handlers/toppers.rb +7 -2
- data/lib/handlers/toptrend.rb +51 -0
- data/lib/handlers/trackers.rb +12 -4
- data/lib/handlers/traffic.rb +36 -21
- data/lib/handlers/volume.rb +54 -0
- data/lib/itrp.rb +31 -9
- metadata +27 -32
- data/lib/handlers/getkey.rb +0 -38
- data/lib/handlers/resolve.rb +0 -34
data/lib/itrp.rb
CHANGED
@@ -23,7 +23,8 @@ raise %q{
|
|
23
23
|
} unless ARGV.length==1
|
24
24
|
|
25
25
|
HISTFILE=File.expand_path("~/.itrp_history")
|
26
|
-
DEFAULT_PROMPT="iTRP> "
|
26
|
+
DEFAULT_PROMPT= "iTRP> "
|
27
|
+
MULTILINE_PROMPT="+ "
|
27
28
|
|
28
29
|
class ITRPEnv
|
29
30
|
attr_accessor :prompt
|
@@ -89,10 +90,15 @@ class Dispatches
|
|
89
90
|
end
|
90
91
|
|
91
92
|
# dispatch to correct plugin w/ context
|
93
|
+
node=nil
|
92
94
|
[Appenv.context, :any].uniq.collect do |ctx|
|
93
95
|
node = @cmd_roots[ctx].find_node(cmdline.strip.split(' '))
|
94
|
-
|
96
|
+
if not node.is_root?
|
97
|
+
node.enter(cmdline.strip)
|
98
|
+
return
|
99
|
+
end
|
95
100
|
end
|
101
|
+
node.notfound(cmdline) if node.is_root?
|
96
102
|
end
|
97
103
|
|
98
104
|
def reload
|
@@ -101,7 +107,7 @@ class Dispatches
|
|
101
107
|
load(f)
|
102
108
|
print('.')
|
103
109
|
end
|
104
|
-
print("done\n")
|
110
|
+
print("done\n\n")
|
105
111
|
end
|
106
112
|
|
107
113
|
def help
|
@@ -112,14 +118,16 @@ class Dispatches
|
|
112
118
|
end
|
113
119
|
|
114
120
|
def quit
|
121
|
+
savehistory
|
122
|
+
exit 0
|
123
|
+
end
|
115
124
|
|
125
|
+
def savehistory
|
116
126
|
File.open( HISTFILE, "w") do |h|
|
117
127
|
Readline::HISTORY.to_a.uniq.each do |l|
|
118
128
|
h.write(l + "\n" )
|
119
129
|
end
|
120
130
|
end
|
121
|
-
|
122
|
-
exit 0
|
123
131
|
end
|
124
132
|
|
125
133
|
|
@@ -127,14 +135,28 @@ end
|
|
127
135
|
|
128
136
|
|
129
137
|
dispatches = Dispatches.new()
|
130
|
-
|
138
|
+
multiline = []
|
139
|
+
while cmd = Readline.readline(Appenv.prompt, false)
|
140
|
+
|
141
|
+
next if cmd.strip.empty?
|
142
|
+
|
131
143
|
begin
|
132
|
-
|
133
|
-
|
144
|
+
if cmd =~ /;\s*$/
|
145
|
+
multiline << cmd.match(/(.*);/)[1]
|
146
|
+
fullcmd = multiline.join()
|
147
|
+
dispatches.invoke(fullcmd)
|
148
|
+
Readline::HISTORY.push(fullcmd + ";" )
|
149
|
+
dispatches.savehistory
|
150
|
+
Appenv.prompt = DEFAULT_PROMPT
|
151
|
+
multiline = []
|
152
|
+
else
|
153
|
+
multiline << cmd
|
154
|
+
Appenv.prompt = MULTILINE_PROMPT
|
155
|
+
end
|
134
156
|
rescue Exception => e
|
135
157
|
if e.message == 'exit' ; exit; end
|
136
158
|
puts "Error " + e.message
|
137
|
-
puts "Error " + e.backtrace.join(
|
159
|
+
puts "Error " + e.backtrace.join("\n")
|
138
160
|
end
|
139
161
|
end
|
140
162
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: itrp
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- vivekrajan
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-06-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: trisulrp
|
@@ -52,48 +52,34 @@ dependencies:
|
|
52
52
|
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
|
-
- !ruby/object:Gem::Dependency
|
56
|
-
name: rdoc
|
57
|
-
requirement: !ruby/object:Gem::Requirement
|
58
|
-
requirements:
|
59
|
-
- - "~>"
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
version: '3.12'
|
62
|
-
type: :development
|
63
|
-
prerelease: false
|
64
|
-
version_requirements: !ruby/object:Gem::Requirement
|
65
|
-
requirements:
|
66
|
-
- - "~>"
|
67
|
-
- !ruby/object:Gem::Version
|
68
|
-
version: '3.12'
|
69
55
|
- !ruby/object:Gem::Dependency
|
70
56
|
name: bundler
|
71
57
|
requirement: !ruby/object:Gem::Requirement
|
72
58
|
requirements:
|
73
|
-
- - "
|
59
|
+
- - ">="
|
74
60
|
- !ruby/object:Gem::Version
|
75
|
-
version: '
|
61
|
+
version: '0'
|
76
62
|
type: :development
|
77
63
|
prerelease: false
|
78
64
|
version_requirements: !ruby/object:Gem::Requirement
|
79
65
|
requirements:
|
80
|
-
- - "
|
66
|
+
- - ">="
|
81
67
|
- !ruby/object:Gem::Version
|
82
|
-
version: '
|
68
|
+
version: '0'
|
83
69
|
- !ruby/object:Gem::Dependency
|
84
|
-
name:
|
70
|
+
name: juwelier
|
85
71
|
requirement: !ruby/object:Gem::Requirement
|
86
72
|
requirements:
|
87
|
-
- - "
|
73
|
+
- - ">="
|
88
74
|
- !ruby/object:Gem::Version
|
89
|
-
version:
|
75
|
+
version: '0'
|
90
76
|
type: :development
|
91
77
|
prerelease: false
|
92
78
|
version_requirements: !ruby/object:Gem::Requirement
|
93
79
|
requirements:
|
94
|
-
- - "
|
80
|
+
- - ">="
|
95
81
|
- !ruby/object:Gem::Version
|
96
|
-
version:
|
82
|
+
version: '0'
|
97
83
|
- !ruby/object:Gem::Dependency
|
98
84
|
name: simplecov
|
99
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -124,31 +110,41 @@ files:
|
|
124
110
|
- README.rdoc
|
125
111
|
- Rakefile
|
126
112
|
- VERSION
|
113
|
+
- itrp.gemspec
|
127
114
|
- lib/cmd_base.rb
|
128
115
|
- lib/cmd_root.rb
|
116
|
+
- lib/handlers/agg_flow.rb
|
129
117
|
- lib/handlers/alert.rb
|
130
118
|
- lib/handlers/counter.rb
|
131
119
|
- lib/handlers/delete_alerts.rb
|
120
|
+
- lib/handlers/edges.rb
|
132
121
|
- lib/handlers/flow.rb
|
133
122
|
- lib/handlers/fts.rb
|
134
|
-
- lib/handlers/getkey.rb
|
135
123
|
- lib/handlers/getlabel.rb
|
124
|
+
- lib/handlers/grep.rb
|
136
125
|
- lib/handlers/help.rb
|
126
|
+
- lib/handlers/keyspace.rb
|
137
127
|
- lib/handlers/list.rb
|
138
128
|
- lib/handlers/list_counters.rb
|
139
129
|
- lib/handlers/meters.rb
|
130
|
+
- lib/handlers/metric_summ.rb
|
140
131
|
- lib/handlers/options.rb
|
132
|
+
- lib/handlers/pcap.rb
|
133
|
+
- lib/handlers/probe.rb
|
141
134
|
- lib/handlers/query_alerts.rb
|
142
135
|
- lib/handlers/query_flow.rb
|
143
136
|
- lib/handlers/query_fts.rb
|
144
137
|
- lib/handlers/query_resource.rb
|
145
|
-
- lib/handlers/resolve.rb
|
146
138
|
- lib/handlers/resource.rb
|
139
|
+
- lib/handlers/searchkey.rb
|
147
140
|
- lib/handlers/set.rb
|
141
|
+
- lib/handlers/setlabel.rb
|
148
142
|
- lib/handlers/timeslices.rb
|
149
143
|
- lib/handlers/toppers.rb
|
144
|
+
- lib/handlers/toptrend.rb
|
150
145
|
- lib/handlers/trackers.rb
|
151
146
|
- lib/handlers/traffic.rb
|
147
|
+
- lib/handlers/volume.rb
|
152
148
|
- lib/itrp.rb
|
153
149
|
- test/helper.rb
|
154
150
|
- test/test_itrp.rb
|
@@ -156,7 +152,7 @@ homepage: http://github.com/vivekrajan/itrp
|
|
156
152
|
licenses:
|
157
153
|
- MIT
|
158
154
|
metadata: {}
|
159
|
-
post_install_message:
|
155
|
+
post_install_message:
|
160
156
|
rdoc_options: []
|
161
157
|
require_paths:
|
162
158
|
- lib
|
@@ -171,9 +167,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
171
167
|
- !ruby/object:Gem::Version
|
172
168
|
version: '0'
|
173
169
|
requirements: []
|
174
|
-
|
175
|
-
|
176
|
-
signing_key:
|
170
|
+
rubygems_version: 3.2.32
|
171
|
+
signing_key:
|
177
172
|
specification_version: 4
|
178
173
|
summary: iTRP - Command Line Interface to Trisul Network Analytics
|
179
174
|
test_files: []
|
data/lib/handlers/getkey.rb
DELETED
@@ -1,38 +0,0 @@
|
|
1
|
-
module ITRP
|
2
|
-
|
3
|
-
class Cmd_getkey < Cmd
|
4
|
-
def initialize (e)
|
5
|
-
super(e)
|
6
|
-
@enabled_in_state = :counter
|
7
|
-
@attach_cmd = ''
|
8
|
-
@trigger = 'getkey'
|
9
|
-
end
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
def enter(cmdline)
|
14
|
-
|
15
|
-
patt = cmdline.scan(/getkey (.*)/).flatten
|
16
|
-
|
17
|
-
print("Search [#{patt[0]}]\n")
|
18
|
-
req =mk_request(TRP::Message::Command::SEARCH_KEYS_REQUEST,
|
19
|
-
:counter_group => appstate(:cgguid),
|
20
|
-
:label => patt[0])
|
21
|
-
|
22
|
-
|
23
|
-
rows = []
|
24
|
-
get_response_zmq(@appenv.zmq_endpt,req) do |resp|
|
25
|
-
resp.keys.each do |k|
|
26
|
-
rows << [ k.key, k.label, k.readable ]
|
27
|
-
end
|
28
|
-
end
|
29
|
-
|
30
|
-
|
31
|
-
table = Terminal::Table.new( :headings => %w(Key Label Readable ), :rows => rows)
|
32
|
-
puts(table)
|
33
|
-
|
34
|
-
end
|
35
|
-
|
36
|
-
end
|
37
|
-
end
|
38
|
-
|
data/lib/handlers/resolve.rb
DELETED
@@ -1,34 +0,0 @@
|
|
1
|
-
module ITRP
|
2
|
-
|
3
|
-
class Cmd_resolve < Cmd
|
4
|
-
def initialize (e)
|
5
|
-
super(e)
|
6
|
-
@enabled_in_state = :counter
|
7
|
-
@attach_cmd = ''
|
8
|
-
@trigger = 'resolve'
|
9
|
-
end
|
10
|
-
|
11
|
-
def enter(cmdline)
|
12
|
-
|
13
|
-
patt = cmdline.scan(/resolve\s+(\S*)/).flatten.first
|
14
|
-
|
15
|
-
patt.split(',')
|
16
|
-
|
17
|
-
req =mk_request(TRP::Message::Command::KEY_LOOKUP_REQUEST,
|
18
|
-
:counter_group => appstate(:cgguid),
|
19
|
-
:keys => patt.split(','))
|
20
|
-
|
21
|
-
|
22
|
-
rows = []
|
23
|
-
get_response_zmq(@appenv.zmq_endpt,req) do |resp|
|
24
|
-
resp.keys.each do |k|
|
25
|
-
rows << [ k.key, k.label, k.readable ]
|
26
|
-
end
|
27
|
-
end
|
28
|
-
|
29
|
-
table = Terminal::Table.new( :headings => %w(Key Label Readable ), :rows => rows)
|
30
|
-
puts(table)
|
31
|
-
end
|
32
|
-
|
33
|
-
end
|
34
|
-
end
|