Commit graph

238 commits

Author SHA1 Message Date
Rob Bavey
c75260d5b5 Quieten down kafka teardown script
Kafka teardown script can exit with failure, typically when trying to
stop the broker. This commit logs the error code if the scripts fail
rather than crash out causing build failure.

Fixes #11905
2020-05-19 09:48:31 -04:00
Joao Duarte
e2d48b4e61 download kafka from another mirror
the current mirror now refuses connections for the past 36 hours

Fixes #11887
2020-05-11 08:15:37 +00:00
Rob Bavey
d35677aefa
Fail fast when integration test fixtures cannot be setup. (#11855)
* Fail fast when integration test fixtures cannot be setup.

Currently when integration test fixture setup fails, the tests proceed as usual,
resulting in noisy logs where the source of the error is not easy to discover.
This commit will raise an exception and log the exit status if the script fails to
setup or teardown.
2020-05-04 12:15:52 -04:00
Rob Bavey
df92df0237 Update kafka version for integration tests.
Fixes #11806
2020-04-17 21:00:07 +00:00
Rob Bavey
58314a7f0e
Update gradle version to 6.3 (#11742)
* Update gradle version to 6.3

Gradle versions prior to 6.3 cannot run under JDK14.
This commit upgrades the version of Gradle to 6.3, and removes all deprecation warnings that can currently be removed.

Changes include:
* Increase gradle memory to 2g
* Increase gradle memory in the license check job to 2g
* Replace use of `testCompile`
* Replace `runtime` with `runtimeOnly`
* Remove`compile` depedencies from gradle files
* Replace deprecated archive methods
* Fix dependencies report build
* Make jruby dependencies 'api', fix archiveVersion
* Set `duplicatesStrategy` for all tasks of type Copy
* Use `configureEach` for global 'withType' calls
** Use the recommended Tasks API calls
(https://blog.gradle.org/preview-avoiding-task-configuration-time)
* Run `./gradlew wrapper` earlier to improve caching
* Use copy with chown for resources that need to be run during `./gradlew wrapper`
2020-04-07 12:49:36 -04:00
andsel
b2d1b880a6 Introduced JDK environment variable to explicitly pass the JAVA_HOME to use, expanded Xmx usable by Gradle
Fixes #11708
2020-03-30 10:53:18 +00:00
João Duarte
e9c9865f40
Add apache and elastic license headers to source code files (#11673)
* add license header to ruby and java files
* add license header to erb and rake files
* add license headers to gradle files
2020-03-11 11:53:38 +00:00
Karol Bucek
7b4808bd10 Fix: broken --help due sinatra 2.x upgrade
Fixes #11634
2020-03-03 21:00:10 +00:00
andsel
6eb25173e0 Added plugin.id to fish tag log lines related to plugins
Fixes #11078
2020-01-23 15:33:31 +00:00
Rob Bavey
879ec5ba2b Update offline pack tests for integration plugins
Fix wildcard "logstash-filter-*" test
Add test for offline packaging of integaration plugins

Fixes #11406
2020-01-10 19:07:54 +00:00
andsel
f554930e81 Introduced DeprecationLogger for use in core code and exposed to Java and Ruby plugins. Closes 11049
Fixes #11260
2019-11-14 10:49:27 +00:00
João Duarte
10d62f0168 Disable dlq integration tests due to multiple intermittent failures
Fixes #11244
2019-10-18 16:09:25 +00:00
andsel
f3fac29d55 Fixes intermittent failing build due to Puma server going down bad on shutdown request
Fixes #11242
2019-10-18 11:28:45 +00:00
Joao Duarte
1e461dee22 more resilient testing of logging level setting
Fixes #11230
2019-10-17 13:04:14 +00:00
Ry Biesemeyer
f6fa136b84 plugins: replace kafka input/output with integration
Fixes #11218
2019-10-16 01:46:49 +00:00
andsel
e58a6e01ce Added LS configuration variable 'pipeline.separate_logs' to separate logs per pipelines - use log4j RoutingAppender - avoid output to main log files when log per pipeline is enabled - closes 10427
Fixes #11108
2019-10-08 14:07:17 +00:00
andsel
0e622cc744 Added origins of pipeline's configuration (es config string, the paths of config files used, module).
closes 9630
2019-09-12 16:02:36 +02:00
andsel
cda592f659 Add pipeline.id to log lines
fixes #8290, #10521
2019-08-28 17:57:28 +02:00
Dan Hermann
ed91408ffd Integration test for Java plugins
Fixes #11054
2019-08-20 19:22:06 +00:00
Dan Hermann
dae3eecca5 Expand config variables for Java plugins
Fixes #11043
2019-08-13 19:36:41 +00:00
Dan Hermann
73346d20f5 Update Reflections library
Fixes #10951
2019-07-16 11:59:29 +00:00
João Duarte
d15f6c3631
Rename filebeat.prospectors to filebeat.inputs (#10711)
In filebeat prospectors settings have been renamed to inputs. When
prospectors is used a deprecation warning is printed. With 7.0
`filebeat.prospectors` will be removed.

This change updates all uses of prospectors with inputs. For now
filebeat events report `prospector.type` and `input.type` for
compatibility reasons.
2019-04-23 18:37:28 +01:00
Rob Bavey
03edd76abd Update Kafka version to fix build
Fixes #10608
2019-03-28 19:37:17 +00:00
Joao Duarte
0e115d31a6 cleanup many rakelib tasks that aren't used anymore
* simplify the plugins-metadata.json file
* sort and update the plugin list in the rakelib/plugins-metadata.json
* remove dependency on twitter input for testing
* sorted Gemfile.template (grouped by group)
* remove default plugins from Gemfile.template

Fixes #10509
2019-03-15 16:26:58 +00:00
Guy Boertje
8605760d97 Mute CI integration DLQ acceptance test
Fixes #10504
2019-02-27 17:44:57 +00:00
Ry Biesemeyer
583ec6b625
Java 11 support (#10279)
* bump jruby to 9.2

* don't rely on logstash-base docker image

* work around webmock ruby 2.5 support

* ensure data folder exists in docker

* change fixnum and bignum to integer

* FileUtils.rmdir to rm_rf

this is because from 2.3 to 2.5 FileUtils.rmdir will throw an exception
if the directory isn't empty. On 2.3 the operation will just not delete
the directory silently.

* bump jruby to 9.2.5.0 and fix test

* make rake default task since prepare pack needs it

* Resolve compiler warnings (#10247)

There are 3 types of compiler warnings that are either resolved or suppressed:

1. Rawtypes: In JRuby 9.2, `RubyArray` is a generic, so references throughout
   our codebase to the now "raw" type trigger warnings. In most cases we cannot
   actually resolve the issue, since the JRuby-provided methods for creating
   `RubyArray`s still return the raw type, so these have been suppressed.

2. Deprecations:
   - `RubyString#intern19()` -> `RubyString#intern()`
   - `RubyString#downcase19(ThreadContext)` -> `RubyString#downcase(ThreadContext)`
   - `NativeException`: remove import & reference directly; suppress usage
     warnings
   - `RaiseException()`: migrate to equivalent non-deprecated methods wherever
     possible; in some cases where we are using this in conjunction with the
     also-deprecated `NativeException` to preserve java stacktraces, there
     seems to be no non-deprecated path forward, so these cases have been
     suppressed.

3. Redundant Casts
   - Resolved

* JRuby 9.2 bundler shenanigans (#10266)

* Revert "Revert "remove forced dependency on old bundler (#9395)""

This reverts commit bef984143d.

* plugin management: update internal bundler to 1.17.x APIs

* deps: update dev dependency webmock to version compatible with JRuby 9.2

* spec: update Pack fixture to include manticore version that doesn't conflict

* build: update gradle to version that has Java 11 support

* java11: resolve or suppress deprecation warnings

* Remove superfluous flag opting into ParNew GC implementation

When opting into CMS garbage collector with `XX:+UseConcMarkSweepGC`, the
young generation collector ParNew has been the default since Java 8, making
the `XX:+UseParNew` flag redundant; the flag was removed in Java 9, and
should no longer be specified to work with modern Javas.

https://bugs.openjdk.java.net/browse/JDK-8006478
https://openjdk.java.net/jeps/214

* spec: set thread name to example description for easier debugging

* spec: prevent errors in testing specs by checking against skip list before using

* no-op: remove use of `HashMap#computeIfAbsent` on single-threaded code

> This method will, on a best-effort basis, throw a `ConcurrentModificationException`
> if it is detected that the mapping function modifies this map during computation.
>
> -- https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/HashMap.html#computeIfAbsent(K,java.util.function.Function)

* qa: by default, run integration against Elastic Stack 6.5.x

To support development on Logstash on top of Java 11, default to testing
against an Elastic Stack that is capable of running on Java 11.

* qa: ignore deprecation warnings when comparing offline pack output

* qa: add Java 9+ support to ChildProcess dev dependency

this can safely be removed when the childprocess gem supports Java9+
https://github.com/enkessler/childprocess/pull/141

* qa: allow connections to localhost in webmock

* bump jrjackson version

* fix filebeat integration tests

* spec: ensure license compliance spec runs first

The license compliance spec that validates the licenses of bundled
plugins appears to not be compatible with the hooks that we inject
into bundler for plugin management, and will fail in obscure ways
when run after those hooks have been added. Since those hooks are
not necessary for validating licenses, the easiest solution was to
ensure that those specs run first, before the VM has been poluted.

Since the gradle/junit/rspec bridge that is currently in place
runs all specs in the same JVM, we also need to make sure that the
rspec "world" is reset before a run, to ensure that it doesn't
retain spec definitions from previous runs.

Also updates the rake invocation, although I'm not sure it is used
any more.
2019-02-04 16:36:11 -08:00
Ry Biesemeyer
dc174b2802 tests: remove kafka deprecated --new-consumer flag in setup
> KIP-176 removes the `--new-consumer` option for all consumer based tools.
> This option is redundant since the new consumer is automatically used if
> `--bootstrap-server` is defined.
>
> -- [Kafka 2.0.0 Changelog](https://kafka.apache.org/documentation/#upgrade_200_notable)

Fixes #10217
2018-12-17 22:56:18 +00:00
João Duarte
bef984143d
Revert "remove forced dependency on old bundler (#9395)"
This reverts commit ab20b40e47.

Due to failing tests like https://logstash-ci.elastic.co/job/elastic+logstash+master+multijob--ruby-unit-tests/86/
2018-12-03 13:49:54 +00:00
João Duarte
ab20b40e47
remove forced dependency on old bundler (#9395)
* update bundler to 1.17.1

This commit required some tweaking of how we setup Bundler
due to changes in reset behaviour, an internal variable name change,
and the Bundler::Settings api changing.
2018-11-30 09:25:24 +00:00
Rob Bavey
c02440170d Update Kafka download version
Fixes #10172
2018-11-21 22:17:32 +00:00
Dan Hermann
cb426ae89e Fix integration tests to work with the useragent filter at either version 3.2.2 or 3.2.3
Fixes #10021
2018-09-26 12:58:16 +00:00
Dan Hermann
669ccad8f6 fix integration tests to work with version 3.2.3 of the useragent filter
Fixes #10019
2018-09-25 19:17:12 +00:00
Josh Soref
c6cd247ec3 Multiple spelling corrections (#9782)
* spelling: actually
* spelling: already
* spelling: concurrency
* spelling: constructor
* spelling: destinations
* spelling: different
* spelling: elasticsearch
* spelling: encoding
* spelling: error
* spelling: explicitly
* spelling: failings
* spelling: falsey
* spelling: guarantees
* spelling: having
* spelling: implementation
* spelling: logstash
* spelling: module
* spelling: multiple
* spelling: omitted
* spelling: overridden
* spelling: pipeline
* spelling: raspberry
* spelling: receive
* spelling: recommended
* spelling: registered
* spelling: registering
* spelling: shutdown
* spelling: signal
* spelling: specified
* spelling: successful
* spelling: successfully
* spelling: valuefied
* spelling: vector
2018-07-04 10:41:10 +01:00
Ry Biesemeyer
d6b9d0f398 prevent tests from stalling by ensuring files we check get flushed
Fixes #9795
2018-06-29 18:35:51 +00:00
Dan Hermann
48594baf2b Add license reporting task
Fixes #9331
2018-05-02 15:35:42 +00:00
Armin
6179c9662a JAVAFICATION: Port namespace definitions to Java
Fixes #9490
2018-04-26 12:00:15 +00:00
Armin
76795b1633 BUILD: Stabilize integration tests
Fixes #9412
2018-04-20 15:49:16 +00:00
Armin
4b3b145968 BUILD: Stabilize integration tests
Fixes #9411
2018-04-20 14:55:21 +00:00
Tamara Braun
d919e93322 #8004 fix load order to start webserver after pipeline
Fixes #9398
2018-04-18 16:51:11 +00:00
Armin
5ef2de9802 BUILD: Stop using Exec tasks for ITs
Fixes #9388
2018-04-17 14:02:55 +00:00
Andrew Cholakian
181000c684 Add more generous try timeout for multiple pipelines specs
Fixes #9225
2018-04-10 23:48:58 +00:00
Andrew Cholakian
a1c0e417e5 Support for inter-pipeline comms with a new pipeline input/output
This also makes the load / reload cycle of pipelines threadsafe
and concurrent in the Agent class.

Fixes #9225
2018-04-10 23:48:58 +00:00
Jake Landis
4e0a139004 test fix: use single worker in test to avoid concurrency issue in sleep filter
See: https://github.com/elastic/logstash/issues/8073
See: https://github.com/logstash-plugins/logstash-filter-sleep/issues/7

Fixes: #8974

Fixes #8975
2018-01-17 18:07:53 +00:00
Jake Landis
60c883fcf7 test fix: don't use stdin for blocking pipeline
Fixes #8961
2018-01-17 14:53:42 +00:00
Jake Landis
da70fc6da6 Rspec integration tests for secret store
Fixes #8944
2018-01-16 16:46:42 +00:00
Dan Hermann
d2c7fc7eb5 Support setting logging back to defaults via the API.
Fixes #8384

Fixes #8786
2017-12-01 23:09:05 +00:00
Armin
27137ee2f6 MINOR: Make ITs use same RSpec version used by the main project
Fixes #8712
2017-11-22 18:23:39 +00:00
Armin
35022f5c02 #7135 add Gradle task for bootstrapping and running all integration tests
Fixes #8599
2017-11-14 15:25:36 +00:00
Rob Bavey
58b1e5c832 Clean up es data and log folders after ITs
Change the data and log directories to be in /tmp/ls_integrations
(matching the kafka service folder structure), and delete
them in the teardown script.

Fixes #8528
2017-11-07 21:10:50 +00:00
Armin
c7b7025cc1 #8216 Use standard name for Gemfile.lock
Fixes #8525
2017-10-26 08:33:03 +00:00