logstash-filter-ros2_node_info 0.1.1 → 0.1.2

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
2
  SHA256:
3
- metadata.gz: 91999825fb3abdd377eb0ecb66ad3ea4f6544f67947f10c34757340d6e0882ed
4
- data.tar.gz: 78ce9ff789f6067e9d9055758fa613931d0a426fd7245d117b39fbfb3b97954e
3
+ metadata.gz: 403e766ade1210a2e82807b13d3271f0804597124afd990d1e525c65b3b3e86c
4
+ data.tar.gz: 54ac0dce21b3276cf0ce5cbba3f341c7bde3a575a970d82cec5356ec2fc69c85
5
5
  SHA512:
6
- metadata.gz: 5a23ccdd3420ebc3bde34cf749b442bcde11efeac8770826ae560b9cf39eed511feec7c682a983b915b10c8b30a384fec977a683db1629a0f42a9a9c139c5c95
7
- data.tar.gz: 74d2fcb2255a0ecd243c8391f3a56808ea237594e452a12e2263626eeb2e479a5bfbb2ca6be922037f96c6e38ed471388c839e692844e4bfe1a2c04bd998fa3d
6
+ metadata.gz: b9b9582e7408ea2e41d708b78ea85e8f5d2a9a3204c6e9859d6aed720dc7d48c318d5e6d1d0364498db8961d951161973e0df017b018074fea75ecdefee1449e
7
+ data.tar.gz: 0b5d5358d826b7143124ccdba16cf78760212160dddcd799d1549f2c4ca4b5c3babf09527ad00fdf33787643755a2abbcd074a1b97bc4169f4cbb6b15a735e58
@@ -22,6 +22,11 @@ class LogStash::Filters::Ros2NodeInfo < LogStash::Filters::Base
22
22
  # Essentially a simple stack-based parser based on number of spaces at
23
23
  # the start of each line
24
24
  if @source
25
+ if event.get(@source).nil?
26
+ event.tag("_ros2_node_info_parse_failure")
27
+ @logger.debug? && @logger.debug("Event had no data in #{@source}")
28
+ return [event]
29
+ end
25
30
  last_cat = nil
26
31
  running_array = []
27
32
  event.get(@source).split("\n").each do |line|
@@ -41,8 +46,6 @@ class LogStash::Filters::Ros2NodeInfo < LogStash::Filters::Base
41
46
  # Element of a category - split it appropriately and append it to the
42
47
  # working array
43
48
  split_line = line.tr(" ", "").split(":")
44
- @logger.error(line)
45
- @logger.error(split_line.to_yaml)
46
49
  running_array << { "topic" => split_line[0], "type" => split_line[1] }
47
50
  end
48
51
  end
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'logstash-filter-ros2_node_info'
3
- s.version = '0.1.1'
3
+ s.version = '0.1.2'
4
4
  s.licenses = ['Apache-2.0']
5
5
  s.summary = 'A plugin to parse the output of `ros2 node info` into a useful format.'
6
6
  s.homepage = 'https://github.com/soartech/logstash-filter-ros2_node_info'
@@ -29,4 +29,25 @@ describe LogStash::Filters::Ros2NodeInfo do
29
29
  "type"=>"rcl_interfaces/ParameterEvent"}])
30
30
  end
31
31
  end
32
+
33
+ describe "Parse nonexistent field" do
34
+ let(:config) do <<-CONFIG
35
+ filter {
36
+ ros2_node_info {
37
+ source => "wrongsource"
38
+ }
39
+ }
40
+ CONFIG
41
+ end
42
+
43
+ sample("message" => "/talker
44
+ Subscribers:
45
+ /parameter_events: rcl_interfaces/ParameterEvent
46
+ Publishers:
47
+ /chatter: std_msgs/String
48
+ Services:
49
+ /talker/set_parameters_atomically: rcl_interfaces/SetParametersAtomically") do
50
+ expect(subject.get("tags")).to include("_ros2_node_info_parse_failure")
51
+ end
52
+ end
32
53
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: logstash-filter-ros2_node_info
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chris Reffett