For people still using `exclude_tags` in their output configuration,
Logstash stops with an exception `TypeError: can't convert nil into
String`. Fix that by fixing the reference to `@exclude_tags`.
Fixes#2323
refactor Plugin#lookup to resolve existing plugin class in the namespace but not in the plugins path
ex noop filter specs refactored into a filter base_spec
reverted locales/en.yml changes
plugin lookup logic refactor
fix the new spec_helper location
check if class in a LogStash::Plugin
add debug log
typo
test for plugin class and config_name method
replaced :file with :path
use Class.new and cosmetic changes
Fixes#2095
This fixes Accessors so that when one `get`s a
field reference, it does not inject an empty path
into the original store
before, there were side-effects:
data = {}
a = LogStash::Util::Accessors.new(data)
a.get("[hello][world]")
//(data mutates) data == {"hello" => {}}
Fixes#2294
When using `logstash web` on Windows the Kibana Logo on the dashboard is broken. This is because it will return small.png with 479 instead of 480 bytes (removing a 0x0d).
Fixes#1796
Previously: Filters like mutate would throw an exception when attempting
to convert an element within an array to a specific type. This was
raising an error because the index in the field reference was being
treated as a String instead of an integer representing the index of the
field to convert.
Now: Plugins like Mutate can access and convert elements within arrays
to specific types, or, updating their values.
It can happen we want to update a plugin that is a dependency for an other plugin
which will result in a warning and a manual action at uninstall phase of the install/update tasks
Since we are 100% sure in these cases that the plugin will be installed again we can force the uninstall part
not to alert us about it.
This solves the issue we otherwise would get:
Gem::DependencyRemovalException: Uninstallation aborted due to dependent gem(s)
Fixes#2034
- Adding minitar as dependency
- Adding vendor file to handle the tasks
- Adding vendor hook to install and update actions
the vendor.json file should be placed at the root of the gem file
This file defines all the remote sources that should be downloaded.
The content of it is an array of hashes.
Each hash has the following settings:
- url
- sha1
- files
url is the url of the remote source
sha1 is the sha1 fingerprint we use for validation of the downloaded file
files can have different settings and is only used for .tar.gz / .tgz files
not setting it extracts the whole tar.gz file
An array of files allows to extract specific files
A Regexp allows extracting specific files
Fixes#2029
Plugins have moved to https://github.com/logstash-plugins/... into
individual repositories. One plugin per repo.
* Add plugin install task and add required plugins for testing
* Adding a plugin task to install plugins
* Added required plugins to a prep task for the test part.
Fixes#1984
- Add docgen command to use internal libraries
- Fix loading of base files due to plugin path changes
- Fix loading of jar dependency files
- Remove kramdown gem and actions
- Cleanup the generated synopsis a bit
Fixes#2009
The new way to build is using 'rake' and not 'make'.
For some some attempt at compatibility, any 'make' invocation will
invoke rake. `make foo` will invoke `rake foo`.
This is for #1640
Major changes:
* rake is used instead of make. This allows us to more easily improve,
debug, and test the build tooling.
* The build process can be bootstrapped from any Ruby that has
Rake available. Bootstrapping rake is automatic will download JRuby and
re-execute itself under JRuby.
* rpm and deb packages no longer list any java as dependencies. This
is the result of user discomfort and discussions which concluded
that there is no good way to "depend" on Java via rpm or deb.
Internal changes:
* Vendoring paths are project-based. Each vendor directory is now
specific as vendor/<project>/... For example, JRuby is dumped into
vendor/jruby/...
Other changes:
* We don't use jruby-complete anymore. We now use bin/jruby as the entry point.
This improves the startup time of Logstash on my laptop by approximately
1.5 seconds (~25% speedup of startup time). Testing `bin/logstash
version` speed; 5 runs each:
* Before patch: 7.27 7.55 7.26 7.42 7.47
* After patch: 5.54 5.97 5.67 5.58 5.54
Smaller changes:
- removed 'env' subcommand
- Remove 'deps' subcommand. Replaced by 'rake vendor:all'
- Add gem_home method for this platform's GEM_HOME
- .travis.yml removed because we haven't used Travis in a long time.
- bin/logstash exits nonzero with a useful message if JRuby can't be found.
Notes:
Invoke bundler via system() call instead of Bundler::CLI.
After some discussion in #bundler on freenode (very helpful!) on how
to do what we need to do with bundler, I was encouraged to not use the
bundler api from ruby, so system() it is.
Patch slightly modified to fit the new model of packaging (ruby instead
of shell invocation), but original author is obazoud in #1008.
Richard Pijnenburg helped with some of the code and was lovely in
helping test it.
Fixes#1640
This bug was introduced in the recent metadata patch. The problem was
caused by a testing-specific monkeypatch on LogStash::Event#[]=
I fixed this by moving the strict_set input validation from
LogStash::Util::Accessors to LogStash::Event as a class method.
Then monkeypatched the Event#[]= to invoke validation before doing
the set operation. This now makes it call the original []= method
and should help keep future breakages from happening.
Fixes#1936