127 lines
3.7 KiB
Lua
127 lines
3.7 KiB
Lua
local cjson = require "cjson"
|
|
local helpers = require "spec.helpers"
|
|
|
|
|
|
for _, strategy in helpers.each_strategy() do
|
|
describe("legacy queue parameters [#" .. strategy .. "]", function()
|
|
local db
|
|
local admin_client
|
|
|
|
lazy_setup(function()
|
|
-- Create a service to make sure that our database is initialized properly.
|
|
local bp
|
|
bp, db = helpers.get_db_utils(strategy, {
|
|
"services",
|
|
})
|
|
|
|
db:truncate()
|
|
|
|
bp.services:insert{
|
|
protocol = "http",
|
|
host = helpers.mock_upstream_host,
|
|
port = helpers.mock_upstream_port,
|
|
}
|
|
assert(helpers.start_kong({
|
|
database = strategy,
|
|
nginx_conf = "spec/fixtures/custom_nginx.template",
|
|
}))
|
|
admin_client = helpers.admin_client()
|
|
end)
|
|
|
|
lazy_teardown(function()
|
|
if admin_client then
|
|
admin_client:close()
|
|
end
|
|
helpers.stop_kong()
|
|
end)
|
|
|
|
before_each(function()
|
|
helpers.clean_logfile()
|
|
end)
|
|
|
|
local plugin_id
|
|
|
|
after_each(function()
|
|
if plugin_id then
|
|
local res = admin_client:delete("/plugins/" .. plugin_id)
|
|
assert.res_status(204, res)
|
|
end
|
|
end)
|
|
|
|
local plugins = {
|
|
["http-log"] = {
|
|
http_endpoint = "http://example.com/",
|
|
},
|
|
["statsd"] = {},
|
|
["datadog"] = {},
|
|
["opentelemetry"] = {
|
|
traces_endpoint = "http://example.com/",
|
|
},
|
|
}
|
|
|
|
for plugin, base_config in pairs(plugins) do
|
|
|
|
local function create_plugin(parameter, value)
|
|
local config = table.clone(base_config)
|
|
if parameter then
|
|
config[parameter] = value
|
|
end
|
|
local res = admin_client:post(
|
|
"/plugins",
|
|
{
|
|
headers = {
|
|
["Content-Type"] = "application/json"
|
|
},
|
|
body = cjson.encode({
|
|
name = plugin,
|
|
config = config
|
|
})
|
|
}
|
|
)
|
|
local body = cjson.decode(assert.res_status(201, res))
|
|
plugin_id = body.id
|
|
end
|
|
|
|
local log_wait_time = 0.01
|
|
describe("[#" .. plugin .. "]", function()
|
|
it("no unexpected queue parameter deprecation warnings by default", function()
|
|
create_plugin()
|
|
assert.logfile().has.no.line("no longer works, please use config.queue", true, log_wait_time)
|
|
assert.logfile().has.no.line("is deprecated, please use config.queue", true, log_wait_time)
|
|
end)
|
|
|
|
local parameters = {
|
|
retry_count = 10, -- treated specially below
|
|
queue_size = 1,
|
|
flush_timeout = 2
|
|
}
|
|
|
|
if plugin == "opentelemetry" then
|
|
parameters = {
|
|
batch_span_count = 200,
|
|
batch_flush_delay = 3,
|
|
}
|
|
end
|
|
|
|
for parameter, default_value in pairs(parameters) do
|
|
local expected_warning
|
|
if parameter == "retry_count" then
|
|
expected_warning = "config.retry_count no longer works, please use config.queue."
|
|
else
|
|
expected_warning = "config." .. parameter .. " is deprecated, please use config.queue."
|
|
end
|
|
it ("does not warn when " .. parameter .. " is set to the old default " .. tostring(default_value), function()
|
|
create_plugin(parameter, default_value)
|
|
assert.logfile().has.no.line(expected_warning, true, log_wait_time)
|
|
end)
|
|
|
|
it ("does warn when " .. parameter .. " is set to a value different from the old default " .. tostring(default_value), function()
|
|
create_plugin(parameter, default_value + 1)
|
|
assert.logfile().has.line(expected_warning, true, log_wait_time)
|
|
end)
|
|
end
|
|
end)
|
|
end
|
|
end)
|
|
end
|