logstash/qa/integration/specs/env_variables_config_spec.rb
Andres Rodriguez 1d558c35d0
Fix instances of deprecated class methods (#15183)
Replace ::File.exists? for ::File.exist?
2023-07-17 11:32:46 -04:00

65 lines
2.5 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 '../framework/fixture'
require_relative '../framework/settings'
require_relative '../services/logstash_service'
require_relative '../framework/helpers'
require "logstash/devutils/rspec/spec_helper"
describe "Test Logstash configuration" do
before(:all) {
@fixture = Fixture.new(__FILE__)
}
after(:all) {
@fixture.teardown
}
let(:num_retries) { 50 }
let(:test_tcp_port) { random_port }
let(:test_tag) { "environment_variables_are_evil" }
let(:test_path) { Stud::Temporary.directory }
let(:sample_data) { '74.125.176.147 - - [11/Sep/2014:21:50:37 +0000] "GET /?flav=rss20 HTTP/1.1" 200 29941 "-" "FeedBurner/1.0 (http://www.FeedBurner.com)"' }
it "expands environment variables in all plugin blocks" do
# set ENV variables before starting the service
test_env = {}
test_env["TEST_ENV_TCP_PORT"] = "#{test_tcp_port}"
test_env["TEST_ENV_TAG"] = test_tag
test_env["TEST_ENV_PATH"] = test_path
logstash_service = @fixture.get_service("logstash")
logstash_service.env_variables = test_env
logstash_service.start_background(@fixture.config)
# check if TCP port env variable was resolved
try(num_retries) do
expect(is_port_open?(test_tcp_port)).to be true
end
#send data and make sure all env variables are expanded by checking each stage
send_data(test_tcp_port, sample_data)
output_file = File.join(test_path, "logstash_env_test.log")
try(num_retries) do
expect(File.exist?(output_file)).to be true
end
# should have created the file using env variable with filters adding a tag based on env variable
try(num_retries) do
expect(IO.read(output_file).gsub("\n", "")).to eq("#{sample_data} blah,environment_variables_are_evil")
end
end
end