logstash/qa/acceptance/spec/shared_examples/updated.rb
Dimitrios Liappis 54f73e5d22
Follow up to #15900 -- fix remaining acceptance tests (#15907)
PR#15900 missed a few more places where Logstash is installed but
a working minimal pipeline config is added.
This commit fixes that and stabilizes all acceptance tests, thus
minizing the need for time consuming BK retries of corresponding
steps.

Relates #15900
Relates https://github.com/elastic/logstash/issues/15784
2024-02-15 11:33:17 +02:00

54 lines
2.2 KiB
Ruby

# Licensed to Elasticsearch B.V. under one or more contributor
# license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright
# ownership. Elasticsearch B.V. licenses this file to you 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.
require_relative '../spec_helper'
require_relative '../../helpers'
require 'logstash/version'
# This test checks if the current package could used to update from the latest version released.
RSpec.shared_examples "updated" do |logstash, from_release_branch|
before(:all) {
#unset to force it using bundled JDK to run LS
logstash.run_command("unset LS_JAVA_HOME")
logstash.uninstall
}
after(:all) do
logstash.stop_service # make sure the service is stopped
logstash.uninstall #remove the package to keep uniform state
end
before(:each) do
latest_logstash_release_version = fetch_latest_logstash_release_version(from_release_branch)
url, dest = logstash_download_metadata(latest_logstash_release_version, logstash.client.architecture_extension, logstash.client.package_extension).values_at(:url, :dest)
logstash.download(url, dest)
options = {:version => latest_logstash_release_version, :snapshot => false, :base => "./", :skip_jdk_infix => false }
logstash.install(options)
logstash.write_default_pipeline
end
it "can be updated and run on [#{logstash.human_name}]" do
expect(logstash).to be_installed
# Performing the update
logstash.install({:version => LOGSTASH_VERSION})
logstash.write_default_pipeline
expect(logstash).to be_installed
# starts the service to be sure it runs after the upgrade
with_running_logstash_service(logstash) do
expect(logstash).to be_running
end
end
end