rsyslog/tests/es-bulk-errfile-popul-def-interleaved.sh
Rainer Gerhards 1ae665bd43
CI: run real Elasticsearch instance in github action (#6216)
* ci/tests: add Elasticsearch 8 workflow

- allow the testbench to honour RSYSLOG_TESTBENCH_EXTERNAL_ES_URL 
  so externally managed Elasticsearch services can be reused without local 
   start/stop logic
- provision Elasticsearch 8 via GitHub Actions and run the omelasticsearch 
   suite inside the development container

With the help of AI-Agent: ChatGPT
2025-10-04 17:05:16 +02:00

55 lines
1.4 KiB
Bash
Executable File

#!/bin/bash
# This file is part of the rsyslog project, released under ASL 2.0
. ${srcdir:=.}/diag.sh init
require_plugin imfile
ensure_elasticsearch_ready
init_elasticsearch
echo '{ "name" : "foo" }
{"name": bar"}
{"name": "baz"}
{"name": foz"}' > $RSYSLOG_DYNNAME.inESData.inputfile
generate_conf
add_conf '
global(workDirectory="'$RSYSLOG_DYNNAME.spool'")
# Note: we must mess up with the template, because we can not
# instruct ES to put further constraints on the data type and
# values. So we require integer and make sure it is none.
template(name="tpl" type="list") {
constant(value="{\"")
property(name="$!key") constant(value="\":") property(name="$!obj")
constant(value="}")
}
module(load="../plugins/omelasticsearch/.libs/omelasticsearch")
module(load="../plugins/imfile/.libs/imfile")
ruleset(name="foo") {
set $!key = "my_obj";
set $!obj = $msg;
action(type="omelasticsearch"
template="tpl"
searchIndex="rsyslog_testbench"
serverport="19200"
bulkmode="on"
errorFile="./'${RSYSLOG_DYNNAME}'.errorfile"
interleaved="on")
}
input(type="imfile" File="'$RSYSLOG_DYNNAME.'inESData.inputfile"
Tag="foo"
Severity="info"
ruleset="foo")
'
startup
shutdown_when_empty
wait_shutdown
$PYTHON $srcdir/elasticsearch-error-format-check.py interleaved
if [ $? -ne 0 ]
then
echo "error: Format for error file different! " $?
exit 1
fi
exit_test