This might be a stupid question, but I can't seem to figure it out.
I'm trying to write a filter plugin for logstash and started by generating the default "Hello, world!" plugin and going through the basic development process. But I get stuck when running the rspec testing process.
These are the steps I followed:
-
Downloaded logstash to my local machine from https://www.elastic.co/downloads/logstash.
-
Ran the
bin/logstash-plugin generate --type filter --name new-plugin --path <path to a new repo I created>
-
Figured out that I needed JRuby, so I installed rvm then ran
rvm install jruby
andrvm use jruby
. -
Finally got
bundle install
working. -
Woops! I still need rspec so I
gem install rspec
. -
Run
bundle exec rspec
, but I get the following result:1) LogStash::Filters::CleanJob Set to Hello World "{"message":"some text"}" when processed Got 0 failures and 2 other errors: 1.1) Failure/Error: expect(subject).to include("message") NameError: undefined local variable or method `job_1' for #<LogStashHelper::TestPipeline:0x4975dda1> # (eval):8:in `<eval>' # <my-dir>/.rvm/gems/jruby-9.2.0.0/gems/logstash-core-5.6.4-java/lib/logstash/pipeline.rb:75:in `initialize' # <my-dir>/.rvm/gems/jruby-9.2.0.0/gems/logstash-core-5.6.4-java/lib/logstash/pipeline.rb:165:in `initialize' # <my-dir>/.rvm/gems/jruby-9.2.0.0/gems/logstash-devutils-1.3.6-java/lib/logstash/devutils/rspec/logstash_helpers.rb:134:in \`new_pipeline_from_string' # <my-dir>/.rvm/gems/jruby-9.2.0.0/gems/logstash-devutils-1.3.6-java/lib/logstash/devutils/rspec/logstash_helpers.rb:39:in `block in pipeline' # <my-dir>/.rvm/gems/jruby-9.2.0.0/gems/logstash-devutils-1.3.6-java/lib/logstash/devutils/rspec/logstash_helpers.rb:50:in `block in results' # <my-dir>/.rvm/gems/jruby-9.2.0.0/gems/logstash-devutils-1.3.6-java/lib/logstash/devutils/rspec/logstash_helpers.rb:68:in `block in subject' # ./spec/filters/clean-job_spec.rb:16:in `block in (root)' # <my-dir>/.rvm/gems/jruby-9.2.0.0/gems/rspec-wait-0.0.9/lib/rspec/wait.rb:46:in `block in (root)' 1.2) Failure/Error: Unable to find (eval) to read failed line NameError: undefined local variable or method `job_1' for #<LogStashHelper::TestPipeline:0x5882b202> # (eval):8:in `<eval>' # <my-dir>/.rvm/gems/jruby-9.2.0.0/gems/logstash-core-5.6.4-java/lib/logstash/pipeline.rb:75:in `initialize' # <my-dir>/.rvm/gems/jruby-9.2.0.0/gems/logstash-core-5.6.4-java/lib/logstash/pipeline.rb:165:in `initialize' # <my-dir>/.rvm/gems/jruby-9.2.0.0/gems/logstash-devutils-1.3.6-java/lib/logstash/devutils/rspec/logstash_helpers.rb:134:in `new_pipeline_from_string' # <my-dir>/.rvm/gems/jruby-9.2.0.0/gems/logstash-devutils-1.3.6-java/lib/logstash/devutils/rspec/logstash_helpers.rb:39:in `block in pipeline' # <my-dir>/.rvm/gems/jruby-9.2.0.0/gems/logstash-devutils-1.3.6-java/lib/logstash/devutils/rspec/logstash_helpers.rb:65:in `block in sample' # <my-dir>/.rvm/gems/jruby-9.2.0.0/gems/rspec-wait-0.0.9/lib/rspec/wait.rb:46:in `block in (root)'
What could be causing this?
Thanks