oglog/script/pipeline-individual.sh

36 lines
1.3 KiB
Bash

#!/bin/bash
# Verificar si existe el archivo pipeline.yml
if [[ -f "pipeline.yml" ]]; then
echo "Analizando y ejecutando pipelines definidos en pipeline.yml..."
# Dividir el archivo en partes individuales por cada pipeline
awk '/^---/ {close("pipeline.tmp"); filename="pipeline_" NR ".tmp"} {print > filename}' pipeline.yml
# Procesar cada archivo temporal creado por awk
for pipeline_file in pipeline_*.tmp; do
if [[ -f "$pipeline_file" ]]; then
# Extraer el nombre del pipeline del archivo
pipeline_name=$(awk '/^name:/ {print $2; exit}' "$pipeline_file")
if [[ -n "$pipeline_name" ]]; then
echo "Ejecutando pipeline: $pipeline_name..."
curl -X PUT "https://localhost:9200/_ingest/pipeline/$pipeline_name" \
-H "Content-Type: application/json" \
-u "admin:$OPENSEARCH_INITIAL_ADMIN_PASSWORD" \
--cacert "CA/certs/ca.crt.pem" \
-d @"$pipeline_file"
else
echo "ERROR: No se pudo extraer el nombre del pipeline de $pipeline_file."
fi
# Eliminar archivo temporal después de procesarlo
rm "$pipeline_file"
else
echo "ERROR: No se encontró el archivo temporal $pipeline_file."
fi
done
else
echo "No se encontró pipeline.yml. No se ejecutaron pipelines."
fi