From 37094a573d12b517058b8ba589bce605175b425c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Magnus=20B=C3=A4ck?= Date: Sun, 8 Jan 2017 19:35:39 +0100 Subject: [PATCH 01/25] Bump ftw library to 0.0.46 to fix broken build and tests. The 2.5.0 release of the addressable library made on 2016-11-04 started requiring Ruby 2.0 compatibility (via the introduction of a dependency to the public_suffix library), so an attempt to do a bundle installation for this plugin started to result in the following: $ bundle install Fetching gem metadata from https://rubygems.org/......... Fetching version metadata from https://rubygems.org/.. Fetching dependency metadata from https://rubygems.org/. Resolving dependencies..................................... public_suffix-2.0.4 requires ruby version >= 2.0, which is incompatible with the current version, ruby 1.9.3p551 (jruby 1.7.26) Since the ftw library that dragged in addressable hadn't locked down its dependency it, too, effectively started requiring Ruby 2.0. This is fixed in ftw 0.0.46 so by requiring at least that version we make sure we don't get a too new version of the addressable library. The new ftw also includes a bunch of other changes, mainly ones related to TLS (like an updated CA certificate list), but hardly anything that should have a detrimental affect on this plugin. Fixes #13 --- logstash-input-websocket.gemspec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/logstash-input-websocket.gemspec b/logstash-input-websocket.gemspec index 86c31a4..34772c1 100644 --- a/logstash-input-websocket.gemspec +++ b/logstash-input-websocket.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |s| s.add_runtime_dependency "logstash-core-plugin-api", "~> 1.0" s.add_runtime_dependency 'logstash-codec-json' - s.add_runtime_dependency 'ftw', ['~> 0.0.40'] + s.add_runtime_dependency 'ftw', ['~> 0.0.46'] s.add_development_dependency 'logstash-devutils' end From 71bc362997d314b4c90553110eb3c1d85fa4ec66 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Magnus=20B=C3=A4ck?= Date: Sun, 8 Jan 2017 20:19:59 +0100 Subject: [PATCH 02/25] Reformat CHANGELOG.md to adhere to maintainer's guide. --- CHANGELOG.md | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 20254c5..5cdeae0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,11 @@ -# 3.0.2 - - Depend on logstash-core-plugin-api instead of logstash-core, removing the need to mass update plugins on major releases of logstash -# 3.0.1 - - New dependency requirements for logstash-core for the 5.0 release +## 3.0.2 + - Depend on logstash-core-plugin-api instead of logstash-core, + removing the need to mass update plugins on major releases of + logstash + +## 3.0.1 + - New dependency requirements for logstash-core for the 5.0 release + ## 3.0.0 - The "mode" option's "server" value has been removed since server mode isn't supported (and never has been). This could potentially affect @@ -10,7 +14,9 @@ - The "url" option is now mandatory. ## 2.0.0 - - Plugins were updated to follow the new shutdown semantic, this mainly allows Logstash to instruct input plugins to terminate gracefully, - instead of using Thread.raise on the plugins' threads. Ref: https://github.com/elastic/logstash/pull/3895 + - Plugins were updated to follow the new shutdown semantic, this mainly + allows Logstash to instruct input plugins to terminate gracefully, + instead of using Thread.raise on the plugins' threads. Ref: + https://github.com/elastic/logstash/pull/3895 - Dependency on logstash-core update to 2.0 From 9eaa428185f702006b865957dbdc8baea40962b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Magnus=20B=C3=A4ck?= Date: Sun, 8 Jan 2017 21:12:29 +0100 Subject: [PATCH 03/25] Bump event API compatibility and prepare for v4.0.0 release. The code itself was already compatible with the new event API so it was just a matter of adjusting the gemspec. --- .travis.yml | 1 + CHANGELOG.md | 4 ++++ logstash-input-websocket.gemspec | 4 ++-- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 350c4eb..c0f0a60 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,3 +5,4 @@ rvm: - jruby-1.7.23 script: - bundle exec rspec spec +jdk: oraclejdk8 diff --git a/CHANGELOG.md b/CHANGELOG.md index 5cdeae0..f6b0ab7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +## 4.0.0 + - internal: Upgrade event API dependency to support Logstash 2.4 & 5.x. + - internal: Bump dependency to ftw library to fix compatibility problem. + ## 3.0.2 - Depend on logstash-core-plugin-api instead of logstash-core, removing the need to mass update plugins on major releases of diff --git a/logstash-input-websocket.gemspec b/logstash-input-websocket.gemspec index 34772c1..af69912 100644 --- a/logstash-input-websocket.gemspec +++ b/logstash-input-websocket.gemspec @@ -1,7 +1,7 @@ Gem::Specification.new do |s| s.name = 'logstash-input-websocket' - s.version = '3.0.2' + s.version = '4.0.0' s.licenses = ['Apache License (2.0)'] s.summary = "Read events over the websocket protocol." s.description = "This gem is a Logstash plugin required to be installed on top of the Logstash core pipeline using $LS_HOME/bin/logstash-plugin install gemname. This gem is not a stand-alone program" @@ -20,7 +20,7 @@ Gem::Specification.new do |s| s.metadata = { "logstash_plugin" => "true", "logstash_group" => "input" } # Gem dependencies - s.add_runtime_dependency "logstash-core-plugin-api", "~> 1.0" + s.add_runtime_dependency "logstash-core-plugin-api", ">= 1.60", "<= 2.99" s.add_runtime_dependency 'logstash-codec-json' s.add_runtime_dependency 'ftw', ['~> 0.0.46'] From 18180298811703462cee6001f431a750f4bbd017 Mon Sep 17 00:00:00 2001 From: Pier-Hugues Pellerin Date: Fri, 28 Apr 2017 21:09:37 +0000 Subject: [PATCH 04/25] Initial doc move --- docs/index.asciidoc | 63 ++++++++++++++++++++++++++++++++ logstash-input-websocket.gemspec | 2 +- 2 files changed, 64 insertions(+), 1 deletion(-) create mode 100644 docs/index.asciidoc diff --git a/docs/index.asciidoc b/docs/index.asciidoc new file mode 100644 index 0000000..3aecbe5 --- /dev/null +++ b/docs/index.asciidoc @@ -0,0 +1,63 @@ +:plugin: websocket +:type: input + +/////////////////////////////////////////// +START - GENERATED VARIABLES, DO NOT EDIT! +/////////////////////////////////////////// +:version: %VERSION% +:release_date: %RELEASE_DATE% +:changelog_url: %CHANGELOG_URL% +:include_path: ../../../logstash/docs/include +/////////////////////////////////////////// +END - GENERATED VARIABLES, DO NOT EDIT! +/////////////////////////////////////////// + +[id="plugins-{type}-{plugin}"] + +=== Websocket + +include::{include_path}/plugin_header.asciidoc[] + +==== Description + +Read events over the websocket protocol. + +[id="plugins-{type}s-{plugin}-options"] +==== Websocket Input Configuration Options + +This plugin supports the following configuration options plus the <> described later. + +[cols="<,<,<",options="header",] +|======================================================================= +|Setting |Input type|Required +| <> |<>, one of `["client"]`|No +| <> |<>|Yes +|======================================================================= + +Also see <> for a list of options supported by all +input plugins. + +  + +[id="plugins-{type}s-{plugin}-mode"] +===== `mode` + + * Value can be any of: `client` + * Default value is `"client"` + +Select the plugin's mode of operation. Right now only client mode +is supported, i.e. this plugin connects to a websocket server and +receives events from the server as websocket messages. + +[id="plugins-{type}s-{plugin}-url"] +===== `url` + + * This is a required setting. + * Value type is <> + * There is no default value for this setting. + +The URL to connect to. + + + +include::{include_path}/{type}.asciidoc[] diff --git a/logstash-input-websocket.gemspec b/logstash-input-websocket.gemspec index af69912..ec9bfaf 100644 --- a/logstash-input-websocket.gemspec +++ b/logstash-input-websocket.gemspec @@ -11,7 +11,7 @@ Gem::Specification.new do |s| s.require_paths = ["lib"] # Files - s.files = Dir['lib/**/*','spec/**/*','vendor/**/*','*.gemspec','*.md','CONTRIBUTORS','Gemfile','LICENSE','NOTICE.TXT'] + s.files = Dir["lib/**/*","spec/**/*","*.gemspec","*.md","CONTRIBUTORS","Gemfile","LICENSE","NOTICE.TXT", "vendor/jar-dependencies/**/*.jar", "vendor/jar-dependencies/**/*.rb", "VERSION", "docs/**/*"] # Tests s.test_files = s.files.grep(%r{^(test|spec|features)/}) From e90549b91d7cf404cbaf888daf4f3900b0db3f65 Mon Sep 17 00:00:00 2001 From: Pier-Hugues Pellerin Date: Fri, 26 May 2017 13:01:05 -0400 Subject: [PATCH 05/25] new build system for jruby9k --- .travis.yml | 19 ++++++++++++++++--- Gemfile | 10 +++++++++- ci/build.sh | 21 +++++++++++++++++++++ ci/setup.sh | 26 ++++++++++++++++++++++++++ 4 files changed, 72 insertions(+), 4 deletions(-) create mode 100755 ci/build.sh create mode 100755 ci/setup.sh diff --git a/.travis.yml b/.travis.yml index c0f0a60..f274087 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,8 +1,21 @@ +--- sudo: false language: ruby cache: bundler +env: rvm: - - jruby-1.7.23 -script: - - bundle exec rspec spec + - jruby-1.7.25 +matrix: + include: + - rvm: jruby-1.7.25 + env: LOGSTASH_BRANCH=master + - rvm: jruby-1.7.25 + env: LOGSTASH_BRANCH=5.x + - rvm: jruby-9.1.9.0 + env: LOGSTASH_BRANCH=feature/9000 + allow_failures: + - rvm: jruby-9.1.9.0 + fast_finish: true +install: true +script: ci/build.sh jdk: oraclejdk8 diff --git a/Gemfile b/Gemfile index d926697..93e5e5d 100644 --- a/Gemfile +++ b/Gemfile @@ -1,2 +1,10 @@ source 'https://rubygems.org/' -gemspec \ No newline at end of file + +gemspec + +logstash_path = "../../logstash" + +if Dir.exist?(logstash_path) && ENV["LOGSTASH_SOURCE"] == 1 + gem 'logstash-core', :path => "#{logstash_path}/logstash-core" + gem 'logstash-core-plugin-api', :path => "#{logstash_path}/logstash-core-plugin-api" +end diff --git a/ci/build.sh b/ci/build.sh new file mode 100755 index 0000000..076e908 --- /dev/null +++ b/ci/build.sh @@ -0,0 +1,21 @@ +#!/bin/bash +# version: 1 +######################################################## +# +# AUTOMATICALLY GENERATED! DO NOT EDIT +# +######################################################## +set -e + +echo "Starting build process in: `pwd`" +./ci/setup.sh + +if [[ -f "ci/run.sh" ]]; then + echo "Running custom build script in: `pwd`/ci/run.sh" + ./ci/run.sh +else + echo "Running default build scripts in: `pwd`/ci/build.sh" + bundle install + bundle exec rake vendor + bundle exec rspec spec +fi diff --git a/ci/setup.sh b/ci/setup.sh new file mode 100755 index 0000000..835fa43 --- /dev/null +++ b/ci/setup.sh @@ -0,0 +1,26 @@ +#!/bin/bash +# version: 1 +######################################################## +# +# AUTOMATICALLY GENERATED! DO NOT EDIT +# +######################################################## +set -e +if [ "$LOGSTASH_BRANCH" ]; then + echo "Building plugin using Logstash source" + BASE_DIR=`pwd` + echo "Checking out branch: $LOGSTASH_BRANCH" + git clone -b $LOGSTASH_BRANCH https://github.com/elastic/logstash.git ../../logstash --depth 1 + printf "Checked out Logstash revision: %s\n" "$(git -C ../../logstash rev-parse HEAD)" + cd ../../logstash + echo "Building plugins with Logstash version:" + cat versions.yml + echo "---" + # We need to build the jars for that specific version + echo "Running gradle assemble in: `pwd`" + ./gradlew assemble + cd $BASE_DIR + export LOGSTASH_SOURCE=1 +else + echo "Building plugin using released gems on rubygems" +fi From b318667fc698740a60915f86eb9afd2343238d65 Mon Sep 17 00:00:00 2001 From: Pier-Hugues Pellerin Date: Wed, 31 May 2017 16:44:59 -0400 Subject: [PATCH 06/25] Adjusting the build scripts to correctly load the logstash source and allow people to override it --- Gemfile | 5 +++-- ci/build.sh | 4 ++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/Gemfile b/Gemfile index 93e5e5d..32cc6fb 100644 --- a/Gemfile +++ b/Gemfile @@ -2,9 +2,10 @@ source 'https://rubygems.org/' gemspec -logstash_path = "../../logstash" +logstash_path = ENV["LOGSTASH_PATH"] || "../../logstash" +use_logstash_source = ENV["LOGSTASH_SOURCE"] && ENV["LOGSTASH_SOURCE"].to_s == "1" -if Dir.exist?(logstash_path) && ENV["LOGSTASH_SOURCE"] == 1 +if Dir.exist?(logstash_path) && use_logstash_source gem 'logstash-core', :path => "#{logstash_path}/logstash-core" gem 'logstash-core-plugin-api', :path => "#{logstash_path}/logstash-core-plugin-api" end diff --git a/ci/build.sh b/ci/build.sh index 076e908..06caffd 100755 --- a/ci/build.sh +++ b/ci/build.sh @@ -8,11 +8,11 @@ set -e echo "Starting build process in: `pwd`" -./ci/setup.sh +source ./ci/setup.sh if [[ -f "ci/run.sh" ]]; then echo "Running custom build script in: `pwd`/ci/run.sh" - ./ci/run.sh + source ./ci/run.sh else echo "Running default build scripts in: `pwd`/ci/build.sh" bundle install From 8d0c7ed639c1393734d967933ca883bd762a7b92 Mon Sep 17 00:00:00 2001 From: Pier-Hugues Pellerin Date: Tue, 13 Jun 2017 09:10:38 -0400 Subject: [PATCH 07/25] update .travis.yml for jruby9k jobs --- .travis.yml | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/.travis.yml b/.travis.yml index f274087..59c937e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -2,19 +2,15 @@ sudo: false language: ruby cache: bundler -env: +env: rvm: - - jruby-1.7.25 +- jruby-1.7.25 matrix: include: - - rvm: jruby-1.7.25 - env: LOGSTASH_BRANCH=master - - rvm: jruby-1.7.25 - env: LOGSTASH_BRANCH=5.x - - rvm: jruby-9.1.9.0 - env: LOGSTASH_BRANCH=feature/9000 - allow_failures: - - rvm: jruby-9.1.9.0 + - rvm: jruby-9.1.10.0 + env: LOGSTASH_BRANCH=master + - rvm: jruby-1.7.25 + env: LOGSTASH_BRANCH=5.x fast_finish: true install: true script: ci/build.sh From 6b7e3b3b131aac29f297318cb2089482fc04f029 Mon Sep 17 00:00:00 2001 From: Pier-Hugues Pellerin Date: Thu, 15 Jun 2017 20:00:58 -0400 Subject: [PATCH 08/25] update plugin header for better search results --- docs/index.asciidoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/index.asciidoc b/docs/index.asciidoc index 3aecbe5..0ac0652 100644 --- a/docs/index.asciidoc +++ b/docs/index.asciidoc @@ -14,7 +14,7 @@ END - GENERATED VARIABLES, DO NOT EDIT! [id="plugins-{type}-{plugin}"] -=== Websocket +=== Websocket input plugin include::{include_path}/plugin_header.asciidoc[] From fd39e7f2c9741345f12e1da49585af7f4fc495a7 Mon Sep 17 00:00:00 2001 From: Pier-Hugues Pellerin Date: Thu, 22 Jun 2017 22:30:36 -0400 Subject: [PATCH 09/25] [skip ci] Updating the plugin doc --- docs/index.asciidoc | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/docs/index.asciidoc b/docs/index.asciidoc index 0ac0652..a68d125 100644 --- a/docs/index.asciidoc +++ b/docs/index.asciidoc @@ -7,7 +7,7 @@ START - GENERATED VARIABLES, DO NOT EDIT! :version: %VERSION% :release_date: %RELEASE_DATE% :changelog_url: %CHANGELOG_URL% -:include_path: ../../../logstash/docs/include +:include_path: ../../../../logstash/docs/include /////////////////////////////////////////// END - GENERATED VARIABLES, DO NOT EDIT! /////////////////////////////////////////// @@ -25,7 +25,7 @@ Read events over the websocket protocol. [id="plugins-{type}s-{plugin}-options"] ==== Websocket Input Configuration Options -This plugin supports the following configuration options plus the <> described later. +This plugin supports the following configuration options plus the <> described later. [cols="<,<,<",options="header",] |======================================================================= @@ -34,7 +34,7 @@ This plugin supports the following configuration options plus the <> |<>|Yes |======================================================================= -Also see <> for a list of options supported by all +Also see <> for a list of options supported by all input plugins.   @@ -60,4 +60,5 @@ The URL to connect to. -include::{include_path}/{type}.asciidoc[] +[id="plugins-{type}s-{plugin}-common-options"] +include::{include_path}/{type}.asciidoc[] \ No newline at end of file From 1fa0e063ac00f0435453dd91d917699a723df245 Mon Sep 17 00:00:00 2001 From: Pier-Hugues Pellerin Date: Thu, 22 Jun 2017 22:54:12 -0400 Subject: [PATCH 10/25] bump patch level for doc generation --- logstash-input-websocket.gemspec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/logstash-input-websocket.gemspec b/logstash-input-websocket.gemspec index ec9bfaf..0c0efb6 100644 --- a/logstash-input-websocket.gemspec +++ b/logstash-input-websocket.gemspec @@ -1,7 +1,7 @@ Gem::Specification.new do |s| s.name = 'logstash-input-websocket' - s.version = '4.0.0' + s.version = '4.0.1' s.licenses = ['Apache License (2.0)'] s.summary = "Read events over the websocket protocol." s.description = "This gem is a Logstash plugin required to be installed on top of the Logstash core pipeline using $LS_HOME/bin/logstash-plugin install gemname. This gem is not a stand-alone program" From 8ab69b67dd97fd8bcb3abf3053a97f342e611dbc Mon Sep 17 00:00:00 2001 From: Pier-Hugues Pellerin Date: Mon, 26 Jun 2017 21:24:13 -0400 Subject: [PATCH 11/25] [skip ci] Updating the plugin id in the doc to match the index in the docbook --- docs/index.asciidoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/index.asciidoc b/docs/index.asciidoc index a68d125..68693b9 100644 --- a/docs/index.asciidoc +++ b/docs/index.asciidoc @@ -12,7 +12,7 @@ START - GENERATED VARIABLES, DO NOT EDIT! END - GENERATED VARIABLES, DO NOT EDIT! /////////////////////////////////////////// -[id="plugins-{type}-{plugin}"] +[id="plugins-{type}s-{plugin}"] === Websocket input plugin From aa3c49ef88cd0dc7a0af7bf7a281ad1c518ae18f Mon Sep 17 00:00:00 2001 From: Joao Duarte Date: Wed, 26 Jul 2017 12:38:09 +0100 Subject: [PATCH 12/25] on travis test against 5.6 and 6.0 logstash-core --- .travis.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 59c937e..7af01f7 100644 --- a/.travis.yml +++ b/.travis.yml @@ -9,9 +9,11 @@ matrix: include: - rvm: jruby-9.1.10.0 env: LOGSTASH_BRANCH=master + - rvm: jruby-9.1.10.0 + env: LOGSTASH_BRANCH=6.x - rvm: jruby-1.7.25 - env: LOGSTASH_BRANCH=5.x + env: LOGSTASH_BRANCH=5.6 fast_finish: true install: true script: ci/build.sh -jdk: oraclejdk8 +jdk: oraclejdk8 \ No newline at end of file From 7cb4e3794318a039fe1219d6aa84b70654abee75 Mon Sep 17 00:00:00 2001 From: Jordan Sissel Date: Tue, 15 Aug 2017 10:01:03 -0700 Subject: [PATCH 13/25] Version bump For https://github.com/elastic/logstash/issues/7993 [ci skip] --- CHANGELOG.md | 3 +++ logstash-input-websocket.gemspec | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f6b0ab7..4fbf3bc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +## 4.0.2 + - Fix some documentation issues + ## 4.0.0 - internal: Upgrade event API dependency to support Logstash 2.4 & 5.x. - internal: Bump dependency to ftw library to fix compatibility problem. diff --git a/logstash-input-websocket.gemspec b/logstash-input-websocket.gemspec index 0c0efb6..c67be68 100644 --- a/logstash-input-websocket.gemspec +++ b/logstash-input-websocket.gemspec @@ -1,7 +1,7 @@ Gem::Specification.new do |s| s.name = 'logstash-input-websocket' - s.version = '4.0.1' + s.version = '4.0.2' s.licenses = ['Apache License (2.0)'] s.summary = "Read events over the websocket protocol." s.description = "This gem is a Logstash plugin required to be installed on top of the Logstash core pipeline using $LS_HOME/bin/logstash-plugin install gemname. This gem is not a stand-alone program" From f14aef4f587b65364e4b91016fba2998880f853f Mon Sep 17 00:00:00 2001 From: Jake Landis Date: Fri, 27 Oct 2017 17:24:57 -0500 Subject: [PATCH 14/25] Travis - add 6.0 build, remove default JRuby 1.7 build, bump RVM versions --- .travis.yml | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/.travis.yml b/.travis.yml index 7af01f7..1458a3b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -2,18 +2,17 @@ sudo: false language: ruby cache: bundler -env: -rvm: -- jruby-1.7.25 matrix: include: - - rvm: jruby-9.1.10.0 + - rvm: jruby-9.1.13.0 env: LOGSTASH_BRANCH=master - - rvm: jruby-9.1.10.0 + - rvm: jruby-9.1.13.0 env: LOGSTASH_BRANCH=6.x - - rvm: jruby-1.7.25 + - rvm: jruby-9.1.13.0 + env: LOGSTASH_BRANCH=6.0 + - rvm: jruby-1.7.27 env: LOGSTASH_BRANCH=5.6 fast_finish: true install: true script: ci/build.sh -jdk: oraclejdk8 \ No newline at end of file +jdk: oraclejdk8 From e04de7cc650a1feaa0c5684dfaa5015e583af4be Mon Sep 17 00:00:00 2001 From: Joao Duarte Date: Tue, 7 Nov 2017 11:18:31 +0000 Subject: [PATCH 15/25] [skip ci] update gemspec summary --- CHANGELOG.md | 3 +++ logstash-input-websocket.gemspec | 4 ++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4fbf3bc..0d0904d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +## 4.0.3 + - Update gemspec summary + ## 4.0.2 - Fix some documentation issues diff --git a/logstash-input-websocket.gemspec b/logstash-input-websocket.gemspec index c67be68..7459dd9 100644 --- a/logstash-input-websocket.gemspec +++ b/logstash-input-websocket.gemspec @@ -1,9 +1,9 @@ Gem::Specification.new do |s| s.name = 'logstash-input-websocket' - s.version = '4.0.2' + s.version = '4.0.3' s.licenses = ['Apache License (2.0)'] - s.summary = "Read events over the websocket protocol." + s.summary = "Reads events from a websocket" s.description = "This gem is a Logstash plugin required to be installed on top of the Logstash core pipeline using $LS_HOME/bin/logstash-plugin install gemname. This gem is not a stand-alone program" s.authors = ["Elastic"] s.email = 'info@elastic.co' From 05529d30e732eac3989bb68e464db95509b84c6a Mon Sep 17 00:00:00 2001 From: Joao Duarte Date: Mon, 8 Jan 2018 21:30:57 +0000 Subject: [PATCH 16/25] [skip ci] update license to 2018 --- LICENSE | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/LICENSE b/LICENSE index 43976b7..2162c9b 100644 --- a/LICENSE +++ b/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2012–2016 Elasticsearch +Copyright (c) 2012-2018 Elasticsearch Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. From fbef712b7cca15f15fce14f5e69d36a2db31e394 Mon Sep 17 00:00:00 2001 From: Joao Duarte Date: Fri, 6 Apr 2018 23:52:43 +0100 Subject: [PATCH 17/25] set default_codec doc attribute --- CHANGELOG.md | 3 +++ docs/index.asciidoc | 5 ++++- logstash-input-websocket.gemspec | 2 +- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0d0904d..44fdd73 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +## 4.0.4 + - Docs: Set the default_codec doc attribute. + ## 4.0.3 - Update gemspec summary diff --git a/docs/index.asciidoc b/docs/index.asciidoc index 68693b9..a9a98b2 100644 --- a/docs/index.asciidoc +++ b/docs/index.asciidoc @@ -1,5 +1,6 @@ :plugin: websocket :type: input +:default_codec: json /////////////////////////////////////////// START - GENERATED VARIABLES, DO NOT EDIT! @@ -61,4 +62,6 @@ The URL to connect to. [id="plugins-{type}s-{plugin}-common-options"] -include::{include_path}/{type}.asciidoc[] \ No newline at end of file +include::{include_path}/{type}.asciidoc[] + +:default_codec!: \ No newline at end of file diff --git a/logstash-input-websocket.gemspec b/logstash-input-websocket.gemspec index 7459dd9..011c43b 100644 --- a/logstash-input-websocket.gemspec +++ b/logstash-input-websocket.gemspec @@ -1,7 +1,7 @@ Gem::Specification.new do |s| s.name = 'logstash-input-websocket' - s.version = '4.0.3' + s.version = '4.0.4' s.licenses = ['Apache License (2.0)'] s.summary = "Reads events from a websocket" s.description = "This gem is a Logstash plugin required to be installed on top of the Logstash core pipeline using $LS_HOME/bin/logstash-plugin install gemname. This gem is not a stand-alone program" From 70579d9975cbe244e1dfe33924a5f8ffe97f0efd Mon Sep 17 00:00:00 2001 From: Rob Bavey Date: Thu, 3 Jan 2019 15:26:12 -0500 Subject: [PATCH 18/25] pin bundler version to < 2 --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index 1458a3b..ea27df6 100644 --- a/.travis.yml +++ b/.travis.yml @@ -16,3 +16,4 @@ matrix: install: true script: ci/build.sh jdk: oraclejdk8 +before_install: gem install bundler -v '< 2' From 1c0f50e35a63b4a1299b886edeb419254ff847bb Mon Sep 17 00:00:00 2001 From: Rob Bavey Date: Fri, 4 Jan 2019 11:27:38 -0500 Subject: [PATCH 19/25] [skip ci] Travis: update LOGSTASH_BRANCH from 6.[0..4] to 6.5 --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index ea27df6..746f145 100644 --- a/.travis.yml +++ b/.travis.yml @@ -9,7 +9,7 @@ matrix: - rvm: jruby-9.1.13.0 env: LOGSTASH_BRANCH=6.x - rvm: jruby-9.1.13.0 - env: LOGSTASH_BRANCH=6.0 + env: LOGSTASH_BRANCH=6.5 - rvm: jruby-1.7.27 env: LOGSTASH_BRANCH=5.6 fast_finish: true From 862fc8d6d0abf0c3a85cdd86708b9385c4e04910 Mon Sep 17 00:00:00 2001 From: Ry Biesemeyer Date: Wed, 13 Feb 2019 00:32:41 +0000 Subject: [PATCH 20/25] update matrix to include current targets [ci skip] --- .travis.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 746f145..dc96273 100644 --- a/.travis.yml +++ b/.travis.yml @@ -7,9 +7,11 @@ matrix: - rvm: jruby-9.1.13.0 env: LOGSTASH_BRANCH=master - rvm: jruby-9.1.13.0 - env: LOGSTASH_BRANCH=6.x + env: LOGSTASH_BRANCH=7.0 - rvm: jruby-9.1.13.0 - env: LOGSTASH_BRANCH=6.5 + env: LOGSTASH_BRANCH=6.7 + - rvm: jruby-9.1.13.0 + env: LOGSTASH_BRANCH=6.6 - rvm: jruby-1.7.27 env: LOGSTASH_BRANCH=5.6 fast_finish: true From 0be59e3ff57042f27597f3bb79b8bb1687cf665f Mon Sep 17 00:00:00 2001 From: Colin Surprenant Date: Tue, 6 Aug 2019 14:22:24 -0400 Subject: [PATCH 21/25] [skip ci] Travis: switch to openjdk8 --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index dc96273..3b61247 100644 --- a/.travis.yml +++ b/.travis.yml @@ -17,5 +17,5 @@ matrix: fast_finish: true install: true script: ci/build.sh -jdk: oraclejdk8 +jdk: openjdk8 before_install: gem install bundler -v '< 2' From b64c681e28929885a39bb047524b20f9f43878e4 Mon Sep 17 00:00:00 2001 From: Steven Hartland Date: Sun, 12 Jan 2020 20:57:02 +0000 Subject: [PATCH 22/25] Fix socket leak on error and improve connection handling (#22) Fix socket leak on error and improve connection handling Fix sockets being leaked if we get any errors by calling agent.shutdown to close all active connections. Improve connection handling adding support for backoff and connection termination on logstash shutdown. Fixes #20 Fixes #21 --- CHANGELOG.md | 5 ++ docs/index.asciidoc | 49 +++++++++++++-- lib/logstash/inputs/websocket.rb | 103 +++++++++++++++++++++++++++---- logstash-input-websocket.gemspec | 2 +- 4 files changed, 140 insertions(+), 19 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 44fdd73..41311cc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,8 @@ +## 4.0.5 + - Fix socket leaks + - Add configuration for connection retrying with backoff. + - Add support for plugin shutdown. + ## 4.0.4 - Docs: Set the default_codec doc attribute. diff --git a/docs/index.asciidoc b/docs/index.asciidoc index a9a98b2..f251493 100644 --- a/docs/index.asciidoc +++ b/docs/index.asciidoc @@ -31,7 +31,11 @@ This plugin supports the following configuration options plus the <> |<>|No | <> |<>, one of `["client"]`|No +| <> |<>|No +| <> |<>|No +| <> |<>|No | <> |<>|Yes |======================================================================= @@ -40,8 +44,17 @@ input plugins.   +[id="plugins-{type}s-{plugin}-debug_status"] +===== `debug_status` + + * Value type is <> + * Default value is `[]` + +Logs responses with the given HTTP status codes as debug instead +of warning. + [id="plugins-{type}s-{plugin}-mode"] -===== `mode` +===== `mode` * Value can be any of: `client` * Default value is `"client"` @@ -50,8 +63,36 @@ Select the plugin's mode of operation. Right now only client mode is supported, i.e. this plugin connects to a websocket server and receives events from the server as websocket messages. +[id="plugins-{type}s-{plugin}-retry_initial"] +===== `retry_initial` + + * Value type is <> + * Default value is `1` + +The retry interval in seconds connections start with. + +[id="plugins-{type}s-{plugin}-retry_max"] +===== `retry_max` + + * Value type is <> + * Default value is `60` + +The maximum retry interval in seconds backoff will increase to. + +[id="plugins-{type}s-{plugin}-retry_reset"] +===== `retry_reset` + + * Value type is <> + * Default value is `1` + +The number of log entries that have to be processed before +the retry interval is reset to retry_initial. This allows +connections to quickly recover from a small interruption +after we have successfully connected and processed some +entries. + [id="plugins-{type}s-{plugin}-url"] -===== `url` +===== `url` * This is a required setting. * Value type is <> @@ -59,9 +100,7 @@ receives events from the server as websocket messages. The URL to connect to. - - [id="plugins-{type}s-{plugin}-common-options"] include::{include_path}/{type}.asciidoc[] -:default_codec!: \ No newline at end of file +:default_codec!: diff --git a/lib/logstash/inputs/websocket.rb b/lib/logstash/inputs/websocket.rb index 6236cb6..6f961c8 100644 --- a/lib/logstash/inputs/websocket.rb +++ b/lib/logstash/inputs/websocket.rb @@ -1,8 +1,7 @@ # encoding: utf-8 require "logstash/inputs/base" require "logstash/namespace" -require "socket" - +require "stud/interval" # Read events over the websocket protocol. class LogStash::Inputs::Websocket < LogStash::Inputs::Base @@ -13,6 +12,23 @@ class LogStash::Inputs::Websocket < LogStash::Inputs::Base # The URL to connect to. config :url, :validate => :string, :required => true + # The retry interval in seconds connections start with. + config :retry_initial, :validate => :number, :default => 1 + + # The maximum retry interval in seconds backoff will increase too. + config :retry_max, :validate => :number, :default => 60 + + # The number of log entries that have to be processed before + # the retry interval is reset to retry_initial. This allows + # connections to quickly recover from a small interruption + # after we have successfully connected and processed some + # entries. + config :retry_reset, :validate => :number, :default => 1 + + # Logs responses with the given HTTP status codes as debug instead + # of warning. + config :debug_status, :validate => :array, :default => [] + # Select the plugin's mode of operation. Right now only client mode # is supported, i.e. this plugin connects to a websocket server and # receives events from the server as websocket messages. @@ -20,25 +36,86 @@ class LogStash::Inputs::Websocket < LogStash::Inputs::Base def register require "ftw" + require "uri" + + p = URI.parse(@url) + p.userinfo = "***:***" unless p.userinfo.nil? + + @url_safe = p.to_s + @interval = @retry_initial + @agent = FTW::Agent.new + @processed = 0 end # def register public def run(output_queue) - agent = FTW::Agent.new - begin - websocket = agent.websocket!(@url) - websocket.each do |payload| + @logger.info("Starting", :url => @url_safe) + while !stop? + run_single(output_queue) + Stud.stoppable_sleep(@interval) { stop? } + backoff() + end # loop + end # def run + + def stop + # Force close all connections to escape any blocking reads. + cleanup() + end # def stop + + private + def cleanup() + @agent.shutdown() rescue nil + end # def cleanup + + def run_single(output_queue) + @processed = 0 + r = @agent.websocket!(@url) + if r.instance_of?(FTW::WebSocket) + r.each do |payload| @codec.decode(payload) do |event| decorate(event) output_queue << event + @processed += 1 end end - rescue => e - @logger.warn("websocket input client threw exception, restarting", - :exception => e) - sleep(1) - retry - end # begin - end # def run + elsif r.instance_of?(FTW::Response) + if @debug_status.include?(r.status) + @logger.debug("Request failed", + :status => r.status_line, + :url => @url_safe, + :retry => @interval) unless stop? + else + @logger.warn("Request failed", + :status => r.status_line, + :url => @url_safe, + :retry => @interval) unless stop? + end + else + @logger.warn("Request unexpected type", + :type => r.class.name, + :url => @url_safe, + :retry => @interval) unless stop? + end + rescue EOFError => e + @logger.debug("Run error ", + :exception => e, + :url => @url_safe, + :retry => @interval) unless stop? + rescue => e + @logger.warn("Run error ", + :exception => e, + :url => @url_safe, + :retry => @interval) unless stop? + ensure + cleanup() + end # def run_single + + def backoff() + if @processed > @retry_reset + @interval = @retry_initial + else + @interval = [@interval * 2, @retry_max].min + end + end # def backoff end # class LogStash::Inputs::Websocket diff --git a/logstash-input-websocket.gemspec b/logstash-input-websocket.gemspec index 011c43b..1c746c9 100644 --- a/logstash-input-websocket.gemspec +++ b/logstash-input-websocket.gemspec @@ -1,7 +1,7 @@ Gem::Specification.new do |s| s.name = 'logstash-input-websocket' - s.version = '4.0.4' + s.version = '4.0.5' s.licenses = ['Apache License (2.0)'] s.summary = "Reads events from a websocket" s.description = "This gem is a Logstash plugin required to be installed on top of the Logstash core pipeline using $LS_HOME/bin/logstash-plugin install gemname. This gem is not a stand-alone program" From 09e1f8419e140f583cc9db81ca75b84a64de7daf Mon Sep 17 00:00:00 2001 From: Joao Duarte Date: Tue, 17 Mar 2020 15:41:56 +0000 Subject: [PATCH 23/25] [skip ci] updated apache license --- LICENSE | 209 +++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 199 insertions(+), 10 deletions(-) diff --git a/LICENSE b/LICENSE index 2162c9b..a80a3fd 100644 --- a/LICENSE +++ b/LICENSE @@ -1,13 +1,202 @@ -Copyright (c) 2012-2018 Elasticsearch -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ - http://www.apache.org/licenses/LICENSE-2.0 + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2020 Elastic and contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. From 242fef09204a015dcddcc8a9a5d01cdf43a3261e Mon Sep 17 00:00:00 2001 From: Joao Duarte Date: Tue, 17 Mar 2020 22:42:33 +0000 Subject: [PATCH 24/25] move testing to centralized travis configuration --- .travis.yml | 23 ++--------------------- ci/build.sh | 21 --------------------- ci/setup.sh | 26 -------------------------- 3 files changed, 2 insertions(+), 68 deletions(-) delete mode 100755 ci/build.sh delete mode 100755 ci/setup.sh diff --git a/.travis.yml b/.travis.yml index 3b61247..a50fc73 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,21 +1,2 @@ ---- -sudo: false -language: ruby -cache: bundler -matrix: - include: - - rvm: jruby-9.1.13.0 - env: LOGSTASH_BRANCH=master - - rvm: jruby-9.1.13.0 - env: LOGSTASH_BRANCH=7.0 - - rvm: jruby-9.1.13.0 - env: LOGSTASH_BRANCH=6.7 - - rvm: jruby-9.1.13.0 - env: LOGSTASH_BRANCH=6.6 - - rvm: jruby-1.7.27 - env: LOGSTASH_BRANCH=5.6 - fast_finish: true -install: true -script: ci/build.sh -jdk: openjdk8 -before_install: gem install bundler -v '< 2' +import: +- logstash-plugins/.ci:travis/travis.yml@1.x \ No newline at end of file diff --git a/ci/build.sh b/ci/build.sh deleted file mode 100755 index 06caffd..0000000 --- a/ci/build.sh +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/bash -# version: 1 -######################################################## -# -# AUTOMATICALLY GENERATED! DO NOT EDIT -# -######################################################## -set -e - -echo "Starting build process in: `pwd`" -source ./ci/setup.sh - -if [[ -f "ci/run.sh" ]]; then - echo "Running custom build script in: `pwd`/ci/run.sh" - source ./ci/run.sh -else - echo "Running default build scripts in: `pwd`/ci/build.sh" - bundle install - bundle exec rake vendor - bundle exec rspec spec -fi diff --git a/ci/setup.sh b/ci/setup.sh deleted file mode 100755 index 835fa43..0000000 --- a/ci/setup.sh +++ /dev/null @@ -1,26 +0,0 @@ -#!/bin/bash -# version: 1 -######################################################## -# -# AUTOMATICALLY GENERATED! DO NOT EDIT -# -######################################################## -set -e -if [ "$LOGSTASH_BRANCH" ]; then - echo "Building plugin using Logstash source" - BASE_DIR=`pwd` - echo "Checking out branch: $LOGSTASH_BRANCH" - git clone -b $LOGSTASH_BRANCH https://github.com/elastic/logstash.git ../../logstash --depth 1 - printf "Checked out Logstash revision: %s\n" "$(git -C ../../logstash rev-parse HEAD)" - cd ../../logstash - echo "Building plugins with Logstash version:" - cat versions.yml - echo "---" - # We need to build the jars for that specific version - echo "Running gradle assemble in: `pwd`" - ./gradlew assemble - cd $BASE_DIR - export LOGSTASH_SOURCE=1 -else - echo "Building plugin using released gems on rubygems" -fi From 2788bd501a4c1b5da5ed622db8b2c1430449834a Mon Sep 17 00:00:00 2001 From: Joao Duarte Date: Mon, 4 Jan 2021 12:49:20 +0000 Subject: [PATCH 25/25] [skip ci] update travis ci badge from .org to .com --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 27720bd..91e3cb2 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Logstash Plugin -[![Travis Build Status](https://travis-ci.org/logstash-plugins/logstash-input-websocket.svg)](https://travis-ci.org/logstash-plugins/logstash-input-websocket) +[![Travis Build Status](https://travis-ci.com/logstash-plugins/logstash-input-websocket.svg)](https://travis-ci.com/logstash-plugins/logstash-input-websocket) This is a plugin for [Logstash](https://github.com/elastic/logstash).