trisulrp 3.2.13 → 3.2.27

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
- SHA1:
3
- metadata.gz: d418f25fea2c8eaed993c659026c8e8217095bbb
4
- data.tar.gz: 00601201b5c7878cf9fb719891ed71327100b797
2
+ SHA256:
3
+ metadata.gz: 71c5b47d633207231c302542e8735d5a5a907569333dab8da436811cf451174a
4
+ data.tar.gz: 44c22ab4987836e91017194f01735909e80d5ec0665fec2e45daa0ba2f8beb32
5
5
  SHA512:
6
- metadata.gz: 6604ebee90f6e960e9609e228f93abbabe94922aae71bf84782346f8c4c84e9c32c17a18f30952fb46ca167282684d30d6b957894b75decbaf7aa35a309c64ac
7
- data.tar.gz: 3d9404aab2c1f12462c48bde1714022724ea62f4c225fe5a7106f11e92194827caf8a9b0aa1d60d9dd2b350253df6fea072a1ad5d7e4b24c70eeef476e69698b
6
+ metadata.gz: 5f521b245139593bf1339c3d59049c16162bc1df790f3d0790eba484d2501cd19018759c90c4323075886d8c35ef98ccd6d7118c215eb9c4cbc45f18322b0a22
7
+ data.tar.gz: 652d8c13e1d4ce1e8c4fd4e9bc632a961db575adb32267143b89c6aecebc2668c2287b5689efd3f5fe9d15b9039bfcd112d64915cdac9c77d464f06dd7ebcecb
data/README.rdoc CHANGED
@@ -16,9 +16,12 @@ Key Features :
16
16
 
17
17
  * TRP Documentation and Tutorials http://trisul.org/docs/trp/index.html
18
18
  * Getting started tutorial http://trisul.org/docs/trp/trpgemsteps.html
19
- * Github repo of sample scripts https://github.com/vivekrajan/trisul-scripts
19
+ * Github repo of sample scripts https://github.com/trisulnsm/trisul-scripts/trp
20
20
 
21
21
 
22
+ == Generating the ruby protobuf definitions
23
+ protoc --ruby_out=. trp.proto
24
+
22
25
  == Contributing to trisulrp
23
26
 
24
27
  * Check out the latest master to make sure the feature hasn't been implemented or the bug hasn't been fixed yet
@@ -31,5 +34,6 @@ Key Features :
31
34
 
32
35
  == Copyright
33
36
 
34
- Copyright (c) 2010-12 Unleash Networks. See LICENSE.txt for further details.
37
+ License MIT
38
+ Copyright (c) 2010-2021 Unleash Networks. See LICENSE.txt for further details.
35
39
 
data/Rakefile CHANGED
@@ -1,3 +1,4 @@
1
+ $SAFE=0
1
2
  require 'rubygems'
2
3
  require 'bundler'
3
4
  begin
data/VERSION CHANGED
@@ -1 +1 @@
1
- 3.2.13
1
+ 3.2.27
@@ -335,6 +335,32 @@ module TrisulRP::Protocol
335
335
  return tint
336
336
  end
337
337
 
338
+
339
+ # Helper iterate through each time interval in reverse order
340
+ #
341
+ # [endpoint] - the ZMQ endpoint
342
+ #
343
+ # ==== Returns
344
+ # ==== Yields
345
+ # [time_interval, id, total_intervals] A TRP::TimeInterval object which can be attached to any :time_interval field of a TRP request
346
+ #
347
+ #
348
+ def each_time_interval(zmq_endpt)
349
+
350
+ req=mk_request(TRP::Message::Command::TIMESLICES_REQUEST )
351
+ get_response_zmq(zmq_endpt,req) do |resp|
352
+
353
+ slice_id = 0
354
+ total_slices = resp.slices.size
355
+
356
+ resp.slices.reverse_each do | slc |
357
+ yield slc.time_interval, slice_id, total_slices
358
+ slice_id=slice_id+1
359
+ end
360
+ end
361
+ end
362
+
363
+
338
364
  # Helper to allow assinging string to KeyT field
339
365
  #
340
366
  # instead of
@@ -520,6 +546,12 @@ module TrisulRP::Protocol
520
546
  when TRP::Message::Command::GRAPH_REQUEST
521
547
  fix_TRP_Fields( TRP::GraphRequest, params)
522
548
  req.graph_request = TRP::GraphRequest.new(params)
549
+ when TRP::Message::Command::RUNTOOL_REQUEST
550
+ fix_TRP_Fields( TRP::RunToolRequest, params)
551
+ req.run_tool_request = TRP::RunToolRequest.new(params)
552
+ when TRP::Message::Command::TOOL_INFO_REQUEST
553
+ fix_TRP_Fields( TRP::ToolInfoRequest, params)
554
+ req.tool_info_request = TRP::ToolInfoRequest.new(params)
523
555
  else
524
556
  raise "Unknown TRP command ID"
525
557
  end
@@ -619,6 +651,10 @@ module TrisulRP::Protocol
619
651
  resp.file_response
620
652
  when TRP::Message::Command::GRAPH_RESPONSE
621
653
  resp.graph_response
654
+ when TRP::Message::Command::RUNTOOL_RESPONSE
655
+ resp.run_tool_response
656
+ when TRP::Message::Command::TOOL_INFO_RESPONSE
657
+ resp.tool_info_response
622
658
  else
623
659
  raise "#{resp.trp_command.to_i} Unknown TRP command ID"
624
660
  end
@@ -165,6 +165,13 @@ module TRP
165
165
  define :GRAPH_RESPONSE, 131
166
166
  define :AGGREGATE_SESSIONS_REQUEST, 132
167
167
  define :AGGREGATE_SESSIONS_RESPONSE, 133
168
+ define :RUNTOOL_REQUEST, 134
169
+ define :RUNTOOL_RESPONSE, 135
170
+ define :HA_CONTROL_REQUEST, 140
171
+ define :HA_CONTROL_RESPONSE, 141
172
+ define :DOMAIN_PING, 142
173
+ define :TOOL_INFO_REQUEST, 143
174
+ define :TOOL_INFO_RESPONSE, 144
168
175
  end
169
176
 
170
177
  end
@@ -186,6 +193,7 @@ module TRP
186
193
  class AggregateSessionsRequest < ::Protobuf::Message; end
187
194
  class AggregateSessionsResponse < ::Protobuf::Message
188
195
  class KeyTCount < ::Protobuf::Message; end
196
+ class TagGroup < ::Protobuf::Message; end
189
197
 
190
198
  end
191
199
 
@@ -245,6 +253,18 @@ module TRP
245
253
 
246
254
  end
247
255
 
256
+ class HAControlRequest < ::Protobuf::Message
257
+ class HAOperation < ::Protobuf::Enum
258
+ define :HA_TEST_REACHABILITY, 0
259
+ define :HA_SWITCH_BACKUP, 1
260
+ define :HA_SWITCH_PRIMARY, 2
261
+ end
262
+
263
+ end
264
+
265
+ class HAControlResponse < ::Protobuf::Message; end
266
+ class ToolInfoRequest < ::Protobuf::Message; end
267
+ class ToolInfoResponse < ::Protobuf::Message; end
248
268
  class NodeConfigRequest < ::Protobuf::Message
249
269
  class IntelFeed < ::Protobuf::Message; end
250
270
 
@@ -283,6 +303,18 @@ module TRP
283
303
  class FileResponse < ::Protobuf::Message; end
284
304
  class GraphRequest < ::Protobuf::Message; end
285
305
  class GraphResponse < ::Protobuf::Message; end
306
+ class RunToolRequest < ::Protobuf::Message
307
+ class NodeTool < ::Protobuf::Enum
308
+ define :PING, 1
309
+ define :DF, 2
310
+ define :GEOQUERY, 3
311
+ define :TOP, 4
312
+ define :BGPQUERY, 5
313
+ end
314
+
315
+ end
316
+
317
+ class RunToolResponse < ::Protobuf::Message; end
286
318
 
287
319
 
288
320
  ##
@@ -348,6 +380,9 @@ module TRP
348
380
  optional :string, :description, 4
349
381
  optional :int64, :metric, 5
350
382
  repeated ::TRP::KeyT::NameValueT, :attributes, 6
383
+ optional :int64, :metric_max, 7
384
+ optional :int64, :metric_min, 8
385
+ optional :int64, :metric_avg, 9
351
386
  end
352
387
 
353
388
  class CounterGroupT
@@ -520,6 +555,12 @@ module TRP
520
555
  optional ::TRP::AggregateSessionsResponse, :aggregate_sessions_response, 141
521
556
  optional ::TRP::AggregateResourcesRequest, :aggregate_resources_request, 142
522
557
  optional ::TRP::AggregateResourcesResponse, :aggregate_resources_response, 143
558
+ optional ::TRP::RunToolRequest, :run_tool_request, 144
559
+ optional ::TRP::RunToolResponse, :run_tool_response, 145
560
+ optional ::TRP::HAControlRequest, :ha_control_request, 150
561
+ optional ::TRP::HAControlResponse, :ha_control_response, 151
562
+ optional ::TRP::ToolInfoRequest, :tool_info_request, 152
563
+ optional ::TRP::ToolInfoResponse, :tool_info_response, 153
523
564
  optional :string, :destination_node, 200
524
565
  optional :string, :probe_id, 201
525
566
  optional :bool, :run_async, 202
@@ -535,6 +576,8 @@ module TRP
535
576
  optional :string, :station_id_request, 2
536
577
  optional :string, :message, 3
537
578
  optional :int64, :local_timestamp, 4
579
+ optional :string, :local_timestamp_string, 5
580
+ optional :bool, :is_primary, 6
538
581
  end
539
582
 
540
583
  class ErrorResponse
@@ -554,6 +597,7 @@ module TRP
554
597
  required ::TRP::KeyT, :key, 4
555
598
  required ::TRP::TimeInterval, :time_interval, 5
556
599
  optional :int64, :volumes_only, 6, :default => 0
600
+ optional :bool, :get_key_attributes, 7, :default => false
557
601
  end
558
602
 
559
603
  class CounterItemResponse
@@ -561,6 +605,9 @@ module TRP
561
605
  required ::TRP::KeyT, :key, 2
562
606
  optional ::TRP::StatsArray, :totals, 3
563
607
  repeated ::TRP::StatsArray, :stats, 4
608
+ optional ::TRP::StatsArray, :maximums, 5
609
+ optional ::TRP::StatsArray, :minimums, 6
610
+ optional ::TRP::StatsArray, :samples, 8
564
611
  end
565
612
 
566
613
  class CounterGroupTopperRequest
@@ -571,6 +618,9 @@ module TRP
571
618
  optional ::TRP::Timestamp, :time_instant, 6
572
619
  optional :int64, :flags, 7
573
620
  optional :bool, :resolve_keys, 8, :default => true
621
+ optional :string, :key_filter, 9
622
+ optional :string, :inverse_key_filter, 10
623
+ optional :bool, :get_key_attributes, 11, :default => false
574
624
  end
575
625
 
576
626
  class CounterGroupTopperResponse
@@ -629,6 +679,7 @@ module TRP
629
679
  optional :bool, :resolve_keys, 21, :default => true
630
680
  optional :string, :outputpath, 22
631
681
  repeated :string, :idlist, 23
682
+ optional ::TRP::KeyT, :any_nf_ifindex, 24
632
683
  end
633
684
 
634
685
  class QuerySessionsResponse
@@ -655,7 +706,8 @@ module TRP
655
706
  optional :string, :subnet_24, 17
656
707
  optional :string, :subnet_16, 18
657
708
  optional :int64, :aggregate_topcount, 19, :default => 100
658
- optional :string, :group_by_fields, 20
709
+ repeated :string, :group_by_fields, 20
710
+ optional ::TRP::KeyT, :any_nf_ifindex, 21
659
711
  end
660
712
 
661
713
  class AggregateSessionsResponse
@@ -665,6 +717,11 @@ module TRP
665
717
  required :int64, :metric, 3
666
718
  end
667
719
 
720
+ class TagGroup
721
+ required :string, :group_name, 1
722
+ repeated ::TRP::AggregateSessionsResponse::KeyTCount, :tag_metrics, 2
723
+ end
724
+
668
725
  required :string, :session_group, 2
669
726
  optional ::TRP::TimeInterval, :time_interval, 3
670
727
  repeated ::TRP::AggregateSessionsResponse::KeyTCount, :source_ip, 5
@@ -683,11 +740,14 @@ module TRP
683
740
  repeated ::TRP::AggregateSessionsResponse::KeyTCount, :internal_port, 18
684
741
  repeated ::TRP::AggregateSessionsResponse::KeyTCount, :internal_ip, 19
685
742
  repeated ::TRP::AggregateSessionsResponse::KeyTCount, :external_ip, 20
743
+ repeated ::TRP::AggregateSessionsResponse::TagGroup, :tag_group, 21
686
744
  end
687
745
 
688
746
  class UpdateKeyRequest
689
747
  required :string, :counter_group, 2
690
748
  repeated ::TRP::KeyT, :keys, 4
749
+ optional :bool, :remove_all_attributes, 5
750
+ repeated :string, :remove_attributes, 6
691
751
  end
692
752
 
693
753
  class SessionTrackerRequest
@@ -805,6 +865,8 @@ module TRP
805
865
  optional :int64, :meter, 3, :default => 0
806
866
  optional :int64, :maxitems, 4, :default => 100
807
867
  optional ::TRP::TimeInterval, :time_interval, 5
868
+ optional :string, :key_filter, 6
869
+ optional :string, :inverse_key_filter, 7
808
870
  end
809
871
 
810
872
  class TopperTrendResponse
@@ -920,6 +982,7 @@ module TRP
920
982
  optional :string, :extra_info, 4
921
983
  optional ::TRP::Timestamp, :register_time, 5
922
984
  optional ::TRP::Timestamp, :heartbeat_time, 6
985
+ optional :bool, :is_primary, 7, :default => true
923
986
  end
924
987
 
925
988
  required ::TRP::DomainOperation, :cmd, 1
@@ -929,12 +992,39 @@ module TRP
929
992
  optional :bool, :need_reconnect, 5, :default => false
930
993
  end
931
994
 
995
+ class HAControlRequest
996
+ required ::TRP::HAControlRequest::HAOperation, :cmd, 1
997
+ optional :string, :station_id, 2
998
+ optional :string, :params, 3
999
+ end
1000
+
1001
+ class HAControlResponse
1002
+ optional :bool, :control_success, 1
1003
+ optional :string, :station_id, 2
1004
+ optional :string, :status_message, 3
1005
+ optional :bool, :primary_reachable, 4
1006
+ optional :bool, :backup_reachable, 5
1007
+ end
1008
+
1009
+ class ToolInfoRequest
1010
+ optional :string, :context_name, 1
1011
+ optional :string, :tool_name, 2
1012
+ repeated :string, :tool_info_requested, 3
1013
+ end
1014
+
1015
+ class ToolInfoResponse
1016
+ repeated ::TRP::NameValue, :tool_info, 1
1017
+ end
1018
+
932
1019
  class NodeConfigRequest
933
1020
  class IntelFeed
934
1021
  required :string, :guid, 1
935
1022
  optional :string, :name, 2
936
1023
  optional :string, :download_rules, 3
937
1024
  repeated :string, :uri, 4
1025
+ repeated :string, :usernodes, 5
1026
+ optional :int64, :sub_feed_id, 6, :default => -1
1027
+ optional :bool, :restore_mode, 7, :default => false
938
1028
  end
939
1029
 
940
1030
  optional :string, :message, 1
@@ -942,6 +1032,7 @@ module TRP
942
1032
  optional ::TRP::NodeConfigRequest::IntelFeed, :process_new_feed, 3
943
1033
  optional :bool, :get_all_nodes, 4, :default => true
944
1034
  repeated ::TRP::NameValue, :query_config, 5
1035
+ optional ::TRP::NodeConfigRequest::IntelFeed, :remove_feed, 6
945
1036
  end
946
1037
 
947
1038
  class NodeConfigResponse
@@ -967,6 +1058,7 @@ module TRP
967
1058
  class ContextInfoRequest
968
1059
  optional :string, :context_name, 1
969
1060
  optional :bool, :get_size_on_disk, 2, :default => false
1061
+ optional :string, :tool_name, 3
970
1062
  end
971
1063
 
972
1064
  class ContextInfoResponse
@@ -1144,5 +1236,17 @@ module TRP
1144
1236
  repeated ::TRP::EdgeGraphT, :graphs, 3
1145
1237
  end
1146
1238
 
1239
+ class RunToolRequest
1240
+ required :string, :context_name, 1
1241
+ required ::TRP::RunToolRequest::NodeTool, :tool, 2
1242
+ optional :string, :tool_input, 3
1243
+ optional :string, :tool_input_file_data, 4
1244
+ end
1245
+
1246
+ class RunToolResponse
1247
+ required :string, :context_name, 1
1248
+ optional :string, :tool_output, 2
1249
+ end
1250
+
1147
1251
  end
1148
1252
 
@@ -107,6 +107,9 @@ message KeyT {
107
107
  required string attr_value=2;
108
108
  }
109
109
  repeated NameValueT attributes=6; /// New: Attributes are NVP for keys
110
+ optional int64 metric_max=7; /// optional : max observed value for metric in context
111
+ optional int64 metric_min=8; /// optional : max observed value for metric
112
+ optional int64 metric_avg=9; /// optional : max observed value for metric
110
113
  }
111
114
 
112
115
 
@@ -350,6 +353,14 @@ message Message {
350
353
  GRAPH_RESPONSE=131;
351
354
  AGGREGATE_SESSIONS_REQUEST=132;
352
355
  AGGREGATE_SESSIONS_RESPONSE=133;
356
+ RUNTOOL_REQUEST=134;
357
+ RUNTOOL_RESPONSE=135;
358
+ HA_CONTROL_REQUEST=140;
359
+ HA_CONTROL_RESPONSE=141;
360
+ DOMAIN_PING=142;
361
+ TOOL_INFO_REQUEST=143;
362
+ TOOL_INFO_RESPONSE=144;
363
+
353
364
  }
354
365
 
355
366
  required Command trp_command=1;
@@ -417,6 +428,12 @@ message Message {
417
428
  optional AggregateSessionsResponse aggregate_sessions_response=141;
418
429
  optional AggregateResourcesRequest aggregate_resources_request=142;
419
430
  optional AggregateResourcesResponse aggregate_resources_response=143;
431
+ optional RunToolRequest run_tool_request=144;
432
+ optional RunToolResponse run_tool_response=145;
433
+ optional HAControlRequest ha_control_request=150;
434
+ optional HAControlResponse ha_control_response=151;
435
+ optional ToolInfoRequest tool_info_request=152;
436
+ optional ToolInfoResponse tool_info_response=153;
420
437
  optional string destination_node=200; // todo move 2nd
421
438
  optional string probe_id=201; // todo move 3rd
422
439
  optional bool run_async=202; /// if run_async = true, then you will immediately get a AsynResponse with a token you can poll
@@ -443,6 +460,8 @@ message HelloResponse{
443
460
  optional string station_id_request=2; /// station id found in the request
444
461
  optional string message=3; /// message found in the request
445
462
  optional int64 local_timestamp=4; /// local timestamp at server, used to detect drifts
463
+ optional string local_timestamp_string=5; /// on server with time zone, use this
464
+ optional bool is_primary=6; /// is this a primary or HA node
446
465
  }
447
466
 
448
467
  /// ErrorResponse
@@ -469,6 +488,7 @@ message CounterItemRequest{
469
488
  required KeyT key=4; /// key (can specify key.key, key.label, etc too
470
489
  required TimeInterval time_interval=5; /// Time interval for query
471
490
  optional int64 volumes_only=6 [default=0]; /// if '1' ; then only retrieves totals for each meter
491
+ optional bool get_key_attributes=7 [default=false]; /// if true, response keys get key_attributes as well
472
492
  }
473
493
 
474
494
  /// CounterItemResponse -
@@ -477,6 +497,9 @@ message CounterItemResponse{
477
497
  required KeyT key=2; /// key : filled up with readable,label automatically
478
498
  optional StatsArray totals=3; /// if volumes_only = 1 in request, this contains totals for each metric
479
499
  repeated StatsArray stats=4; /// time series stats - can use to draw charts etc
500
+ optional StatsArray maximums=5; /// if volumes_only = 1 this contains MAX(..)
501
+ optional StatsArray minimums=6; /// if volumes_only = 1 this contains MIN(..)
502
+ optional StatsArray samples=8; /// if volumes_only = 1 this contains SAMPLES(..)
480
503
  }
481
504
 
482
505
 
@@ -489,6 +512,11 @@ message CounterGroupTopperRequest{
489
512
  optional Timestamp time_instant=6; ///
490
513
  optional int64 flags=7;
491
514
  optional bool resolve_keys=8 [default=true]; /// retrieve labels as set in the response for each key
515
+ optional string key_filter=9; /// only get keys with this pattern and SYS:GROUP
516
+ optional string inverse_key_filter=10; /// only get keys without this pattern NOT
517
+ optional bool get_key_attributes=11 [default=false];
518
+ /// if true, response keys get key_attributes as well
519
+
492
520
  }
493
521
 
494
522
  /// CounterGroupTopperResponse
@@ -543,7 +571,7 @@ message QuerySessionsRequest {
543
571
  optional KeyT dest_ip=7;
544
572
  optional KeyT dest_port=8;
545
573
  optional KeyT any_ip=9; /// source or dest match
546
- optional KeyT any_port=10; /// source or dest match
574
+ optional KeyT any_port=10; /// source or dest match
547
575
  repeated KeyT ip_pair=11; /// array of 2 ips
548
576
  optional KeyT protocol=12;
549
577
  optional string flowtag=13; /// string flow tagger text
@@ -557,6 +585,7 @@ message QuerySessionsRequest {
557
585
  optional bool resolve_keys=21[default=true];
558
586
  optional string outputpath=22; /// write results to a file (CSV) on trisul-hub (for very large dumps)
559
587
  repeated string idlist=23; /// array of flow ids , usually from SessionTracker response
588
+ optional KeyT any_nf_ifindex=24; /// composite query for both ifindex
560
589
  }
561
590
 
562
591
 
@@ -590,7 +619,8 @@ message AggregateSessionsRequest {
590
619
  optional string subnet_24=17; /// ip /24 subnet matching
591
620
  optional string subnet_16=18; /// ip /16 subnet
592
621
  optional int64 aggregate_topcount=19[default=100]; /// number of count-star per field
593
- optional string group_by_fields=20; /// list of field names
622
+ repeated string group_by_fields=20; /// list of field names
623
+ optional KeyT any_nf_ifindex=21; /// matches either gen2 or gen3
594
624
  }
595
625
 
596
626
  /// AggregateSessionsResponse
@@ -603,6 +633,11 @@ message AggregateSessionsResponse {
603
633
  required int64 metric=3; /// aggregated metrics, eg total bytes
604
634
  }
605
635
 
636
+ message TagGroup {
637
+ required string group_name=1;
638
+ repeated KeyTCount tag_metrics=2;
639
+ }
640
+
606
641
  required string session_group=2;
607
642
  optional TimeInterval time_interval=3;
608
643
  repeated KeyTCount source_ip=5; /// top IPs
@@ -621,13 +656,17 @@ message AggregateSessionsResponse {
621
656
  repeated KeyTCount internal_port=18; /// internal IP ports
622
657
  repeated KeyTCount internal_ip=19; /// internal IPs
623
658
  repeated KeyTCount external_ip=20; /// external IPs
659
+ repeated TagGroup tag_group=21; /// tag groups
624
660
  }
625
661
 
662
+
626
663
  /// UpdatekeysRequest
627
664
  /// Response = OKResponse or ErrorResponse
628
665
  message UpdateKeyRequest{
629
666
  required string counter_group=2;
630
- repeated KeyT keys=4; /// key : if you set both key and label, the DB label will be updated
667
+ repeated KeyT keys=4; /// key : if you set both key and label, the DB label will be updated
668
+ optional bool remove_all_attributes=5; /// remove all key attributes from keys
669
+ repeated string remove_attributes=6; /// remove these attributes only from keys
631
670
  }
632
671
 
633
672
  /// SessionTrackerRequest - query session trackers
@@ -775,6 +814,8 @@ message TopperTrendRequest {
775
814
  optional int64 meter=3 [default=0];
776
815
  optional int64 maxitems=4 [default=100];
777
816
  optional TimeInterval time_interval=5;
817
+ optional string key_filter=6; /// only get keys with this pattern and SYS:GROUP
818
+ optional string inverse_key_filter=7; /// only get keys without this pattern NOT
778
819
  }
779
820
 
780
821
  /// TopperTrendResponse
@@ -841,9 +882,16 @@ message QueryFTSResponse {
841
882
  /// get the METERS METASLICE info
842
883
  /// .. response = TimeSlicesResponse
843
884
  message TimeSlicesRequest {
844
- optional bool get_disk_usage=1[default=false];
845
- optional bool get_all_engines=2[default=false];
846
- optional bool get_total_window=3[default=false];
885
+ optional bool get_disk_usage=1[default=false]; /// get disk usage per SLICE
886
+
887
+ optional bool get_all_engines=2[default=false]; /// by default (set to false) we only get instance-0
888
+ /// because are interested in iterating over
889
+ /// the time interval rather then each slice
890
+ /// inside the time interval. set this to true
891
+ /// if you want each slice to be reported
892
+
893
+ optional bool get_total_window=3[default=false]; /// just get the total time window in the
894
+ /// trisul database
847
895
  }
848
896
 
849
897
  /// .. response = TimeSlicesResponse
@@ -943,6 +991,7 @@ message DomainResponse {
943
991
  optional string extra_info=4;
944
992
  optional Timestamp register_time=5;
945
993
  optional Timestamp heartbeat_time=6;
994
+ optional bool is_primary=7[default=true]; /// primary or backup HA mode
946
995
 
947
996
  }
948
997
 
@@ -953,22 +1002,62 @@ message DomainResponse {
953
1002
  optional bool need_reconnect=5[default=false];
954
1003
  }
955
1004
 
1005
+ /// messages to HAControl
1006
+ message HAControlRequest {
1007
+ enum HAOperation
1008
+ {
1009
+ HA_TEST_REACHABILITY=0; /// test if primary or backup is reachable (test the other side)
1010
+ HA_SWITCH_BACKUP=1; /// switch all nodes to backup HA
1011
+ HA_SWITCH_PRIMARY=2; /// switch to primary HA
1012
+ }
1013
+
1014
+
1015
+ required HAOperation cmd=1;
1016
+ optional string station_id=2;
1017
+ optional string params=3;
1018
+ }
1019
+
1020
+ message HAControlResponse {
1021
+ optional bool control_success=1;
1022
+ optional string station_id=2;
1023
+ optional string status_message=3;
1024
+ optional bool primary_reachable=4;
1025
+ optional bool backup_reachable=5;
1026
+ }
1027
+
1028
+ /// tool info
1029
+ /// general purpose probe information gathering tool
1030
+ /// use cases : get BGP route receiver peer status
1031
+ message ToolInfoRequest {
1032
+ optional string context_name=1;
1033
+ optional string tool_name=2;
1034
+ repeated string tool_info_requested=3; /// array of information elements requested
1035
+ }
1036
+
1037
+ message ToolInfoResponse {
1038
+ repeated NameValue tool_info=1; /// info elements Name=Value
1039
+ }
1040
+
956
1041
 
957
1042
  message NodeConfigRequest {
958
1043
  optional string message=1;
959
1044
 
960
1045
  message IntelFeed {
961
- required string guid=1; /// identifying feed group (eg Geo, Badfellas)
962
- optional string name=2; /// name
963
- optional string download_rules=3; /// xml file with feed update instructions
964
- repeated string uri=4; /// individual files in config//.. for FileRequest download
1046
+ required string guid=1; /// identifying feed group (eg Geo, Badfellas)
1047
+ optional string name=2; /// feed name (eg badfellas)
1048
+ optional string download_rules=3; /// xml file with feed update instructions
1049
+ repeated string uri=4; /// individual files in config//.. for FileRequest download
1050
+ repeated string usernodes=5; /// user requesting the feed, the probe0, probe1, etc
1051
+ optional int64 sub_feed_id=6[default=-1];/// sub feed ID, when a feed consists of several sub-feeds
1052
+ optional bool restore_mode=7[default=false]; /// restore mode will backup and restore, used with add,remove
1053
+
965
1054
  }
966
1055
 
967
1056
  optional IntelFeed add_feed=2;
968
1057
  optional IntelFeed process_new_feed=3;
969
1058
  optional bool get_all_nodes=4[default=true];
970
1059
  repeated NameValue query_config=5;
971
-
1060
+ optional IntelFeed remove_feed=6;
972
1061
  }
973
1062
 
974
1063
  message NodeConfigResponse {
@@ -999,8 +1088,9 @@ message ContextCreateRequest {
999
1088
  /// ContextInfo : one or all contexts
1000
1089
  /// use is_init to prime with config
1001
1090
  message ContextInfoRequest {
1002
- optional string context_name=1; /// if not set all context get in
1091
+ optional string context_name=1; /// if not set all context get in
1003
1092
  optional bool get_size_on_disk=2[default=false]; /// get size on disk (expensive)
1093
+ optional string tool_name=3; /// get status of this tool, freeform bgp, suricata, snort, udpsink etc..
1004
1094
  }
1005
1095
 
1006
1096
  message ContextInfoResponse {
@@ -1010,11 +1100,11 @@ message ContextInfoResponse {
1010
1100
  {
1011
1101
  required string context_name=1;
1012
1102
  required bool is_initialized=2;
1013
- required bool is_running=3;
1103
+ required bool is_running=3; /// trisul processes runs
1014
1104
  optional int64 size_on_disk=4;
1015
1105
  optional TimeInterval time_interval=5;
1016
1106
  optional bool is_clean=6;
1017
- optional string extrainfo=7;
1107
+ optional string extrainfo=7; /// freeform text output when tool is specified , can be long string
1018
1108
  repeated TimeInterval run_history=8;
1019
1109
  optional string profile=9;
1020
1110
  optional string runmode=10;
@@ -1231,3 +1321,24 @@ message GraphResponse {
1231
1321
  /// repeated because returned in time chunks
1232
1322
  }
1233
1323
 
1324
+ /// RunToolRequest : run set of named tools
1325
+ message RunToolRequest {
1326
+ required string context_name=1; /// if not set all context get in
1327
+ enum NodeTool {
1328
+ PING=1;
1329
+ DF=2;
1330
+ GEOQUERY=3;
1331
+ TOP=4;
1332
+ BGPQUERY=5;
1333
+ }
1334
+ required NodeTool tool=2; /// which of these tools you want to run on node
1335
+ optional string tool_input=3; /// input
1336
+ optional string tool_input_file_data=4;/// data that goes into a tool input file
1337
+ }
1338
+
1339
+ /// RunToolResponse : ouput
1340
+ message RunToolResponse {
1341
+ required string context_name=1; /// if not set all context get in
1342
+ optional string tool_output=2; /// cmd lines
1343
+ }
1344
+
data/trisulrp.gemspec CHANGED
@@ -2,18 +2,18 @@
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
3
  # Instead, edit Juwelier::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
- # stub: trisulrp 3.2.13 ruby lib
5
+ # stub: trisulrp 3.2.27 ruby lib
6
6
 
7
7
  Gem::Specification.new do |s|
8
- s.name = "trisulrp"
9
- s.version = "3.2.13"
8
+ s.name = "trisulrp".freeze
9
+ s.version = "3.2.27"
10
10
 
11
- s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
12
- s.require_paths = ["lib"]
13
- s.authors = ["vivek"]
14
- s.date = "2019-01-18"
15
- s.description = "This gem deals about the trisul remote protocol"
16
- s.email = "vivek_rajagopal@yahoo.com"
11
+ s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
12
+ s.require_paths = ["lib".freeze]
13
+ s.authors = ["vivek".freeze]
14
+ s.date = "2021-04-20"
15
+ s.description = "This gem deals about the trisul remote protocol".freeze
16
+ s.email = "vivek_rajagopal@yahoo.com".freeze
17
17
  s.extra_rdoc_files = [
18
18
  "LICENSE.txt",
19
19
  "README.rdoc"
@@ -47,33 +47,33 @@ Gem::Specification.new do |s|
47
47
  "test/test_trisulrp.rb",
48
48
  "trisulrp.gemspec"
49
49
  ]
50
- s.homepage = "http://github.com/vivekrajan/trisulrp"
51
- s.licenses = ["MIT"]
52
- s.rubygems_version = "2.5.1"
53
- s.summary = "trisul trp"
50
+ s.homepage = "http://github.com/vivekrajan/trisulrp".freeze
51
+ s.licenses = ["MIT".freeze]
52
+ s.rubygems_version = "3.0.3".freeze
53
+ s.summary = "trisul trp".freeze
54
54
 
55
55
  if s.respond_to? :specification_version then
56
56
  s.specification_version = 4
57
57
 
58
58
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
59
- s.add_runtime_dependency(%q<protobuf>, [">= 0"])
60
- s.add_development_dependency(%q<shoulda>, [">= 0"])
61
- s.add_development_dependency(%q<bundler>, [">= 0"])
62
- s.add_development_dependency(%q<juwelier>, [">= 0"])
63
- s.add_development_dependency(%q<simplecov>, [">= 0"])
59
+ s.add_runtime_dependency(%q<protobuf>.freeze, [">= 0"])
60
+ s.add_development_dependency(%q<shoulda>.freeze, [">= 0"])
61
+ s.add_development_dependency(%q<bundler>.freeze, [">= 0"])
62
+ s.add_development_dependency(%q<juwelier>.freeze, [">= 0"])
63
+ s.add_development_dependency(%q<simplecov>.freeze, [">= 0"])
64
64
  else
65
- s.add_dependency(%q<protobuf>, [">= 0"])
66
- s.add_dependency(%q<shoulda>, [">= 0"])
67
- s.add_dependency(%q<bundler>, [">= 0"])
68
- s.add_dependency(%q<juwelier>, [">= 0"])
69
- s.add_dependency(%q<simplecov>, [">= 0"])
65
+ s.add_dependency(%q<protobuf>.freeze, [">= 0"])
66
+ s.add_dependency(%q<shoulda>.freeze, [">= 0"])
67
+ s.add_dependency(%q<bundler>.freeze, [">= 0"])
68
+ s.add_dependency(%q<juwelier>.freeze, [">= 0"])
69
+ s.add_dependency(%q<simplecov>.freeze, [">= 0"])
70
70
  end
71
71
  else
72
- s.add_dependency(%q<protobuf>, [">= 0"])
73
- s.add_dependency(%q<shoulda>, [">= 0"])
74
- s.add_dependency(%q<bundler>, [">= 0"])
75
- s.add_dependency(%q<juwelier>, [">= 0"])
76
- s.add_dependency(%q<simplecov>, [">= 0"])
72
+ s.add_dependency(%q<protobuf>.freeze, [">= 0"])
73
+ s.add_dependency(%q<shoulda>.freeze, [">= 0"])
74
+ s.add_dependency(%q<bundler>.freeze, [">= 0"])
75
+ s.add_dependency(%q<juwelier>.freeze, [">= 0"])
76
+ s.add_dependency(%q<simplecov>.freeze, [">= 0"])
77
77
  end
78
78
  end
79
79
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: trisulrp
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.2.13
4
+ version: 3.2.27
5
5
  platform: ruby
6
6
  authors:
7
7
  - vivek
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-01-18 00:00:00.000000000 Z
11
+ date: 2021-04-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: protobuf
@@ -134,8 +134,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
134
134
  - !ruby/object:Gem::Version
135
135
  version: '0'
136
136
  requirements: []
137
- rubyforge_project:
138
- rubygems_version: 2.5.1
137
+ rubygems_version: 3.0.3
139
138
  signing_key:
140
139
  specification_version: 4
141
140
  summary: trisul trp