diff --git a/tenants/acme/55-cronjobs-financeiro.yaml b/tenants/acme/55-cronjobs-financeiro.yaml index a51fb40..5dd46ed 100644 --- a/tenants/acme/55-cronjobs-financeiro.yaml +++ b/tenants/acme/55-cronjobs-financeiro.yaml @@ -52,12 +52,24 @@ data: exit 1 fi - printf 'header = "Authorization: Bearer %s"\n' "${TOKEN}" \ - | curl -sS --fail-with-body -K - -X POST "${ALVO}" -o /tmp/saida.json -w '%{http_code}\n' - + # Sem --fail-with-body: o codigo e lido aqui, para separar "plano nao + # contratado" (tenant bronze sem o financeiro — nada a fazer, NAO e falha) + # de erro de verdade. Antes, todo bronze gerava um KubeJobFailed por hora + # (demo, 2026-09-28) e cada alerta gastava a cota de e-mail. + CODIGO="$(printf 'header = "Authorization: Bearer %s"\n' "${TOKEN}" \ + | curl -sS -K - -X POST "${ALVO}" -o /tmp/saida.json -w '%{http_code}')" + echo "${CODIGO}" echo "resposta:" cat /tmp/saida.json echo + if [ "${CODIGO}" = "403" ] && grep -q "plano nao contratado" /tmp/saida.json; then + echo "financeiro fora do plano deste tenant: nada a fazer." + exit 0 + fi + case "${CODIGO}" in + 2*) ;; + *) echo "ERRO: ${ALVO} respondeu ${CODIGO}." >&2; exit 1 ;; + esac --- apiVersion: batch/v1 kind: CronJob diff --git a/tenants/demo/55-cronjobs-financeiro.yaml b/tenants/demo/55-cronjobs-financeiro.yaml index d75ac79..31519f6 100644 --- a/tenants/demo/55-cronjobs-financeiro.yaml +++ b/tenants/demo/55-cronjobs-financeiro.yaml @@ -52,12 +52,24 @@ data: exit 1 fi - printf 'header = "Authorization: Bearer %s"\n' "${TOKEN}" \ - | curl -sS --fail-with-body -K - -X POST "${ALVO}" -o /tmp/saida.json -w '%{http_code}\n' - + # Sem --fail-with-body: o codigo e lido aqui, para separar "plano nao + # contratado" (tenant bronze sem o financeiro — nada a fazer, NAO e falha) + # de erro de verdade. Antes, todo bronze gerava um KubeJobFailed por hora + # (demo, 2026-09-28) e cada alerta gastava a cota de e-mail. + CODIGO="$(printf 'header = "Authorization: Bearer %s"\n' "${TOKEN}" \ + | curl -sS -K - -X POST "${ALVO}" -o /tmp/saida.json -w '%{http_code}')" + echo "${CODIGO}" echo "resposta:" cat /tmp/saida.json echo + if [ "${CODIGO}" = "403" ] && grep -q "plano nao contratado" /tmp/saida.json; then + echo "financeiro fora do plano deste tenant: nada a fazer." + exit 0 + fi + case "${CODIGO}" in + 2*) ;; + *) echo "ERRO: ${ALVO} respondeu ${CODIGO}." >&2; exit 1 ;; + esac --- apiVersion: batch/v1 kind: CronJob diff --git a/tenants/escolinha/55-cronjobs-financeiro.yaml b/tenants/escolinha/55-cronjobs-financeiro.yaml index 18be401..1a9c622 100644 --- a/tenants/escolinha/55-cronjobs-financeiro.yaml +++ b/tenants/escolinha/55-cronjobs-financeiro.yaml @@ -52,12 +52,24 @@ data: exit 1 fi - printf 'header = "Authorization: Bearer %s"\n' "${TOKEN}" \ - | curl -sS --fail-with-body -K - -X POST "${ALVO}" -o /tmp/saida.json -w '%{http_code}\n' - + # Sem --fail-with-body: o codigo e lido aqui, para separar "plano nao + # contratado" (tenant bronze sem o financeiro — nada a fazer, NAO e falha) + # de erro de verdade. Antes, todo bronze gerava um KubeJobFailed por hora + # (demo, 2026-09-28) e cada alerta gastava a cota de e-mail. + CODIGO="$(printf 'header = "Authorization: Bearer %s"\n' "${TOKEN}" \ + | curl -sS -K - -X POST "${ALVO}" -o /tmp/saida.json -w '%{http_code}')" + echo "${CODIGO}" echo "resposta:" cat /tmp/saida.json echo + if [ "${CODIGO}" = "403" ] && grep -q "plano nao contratado" /tmp/saida.json; then + echo "financeiro fora do plano deste tenant: nada a fazer." + exit 0 + fi + case "${CODIGO}" in + 2*) ;; + *) echo "ERRO: ${ALVO} respondeu ${CODIGO}." >&2; exit 1 ;; + esac --- apiVersion: batch/v1 kind: CronJob diff --git a/tenants/piloto/55-cronjobs-financeiro.yaml b/tenants/piloto/55-cronjobs-financeiro.yaml index 7c0bf69..33af9ea 100644 --- a/tenants/piloto/55-cronjobs-financeiro.yaml +++ b/tenants/piloto/55-cronjobs-financeiro.yaml @@ -52,12 +52,24 @@ data: exit 1 fi - printf 'header = "Authorization: Bearer %s"\n' "${TOKEN}" \ - | curl -sS --fail-with-body -K - -X POST "${ALVO}" -o /tmp/saida.json -w '%{http_code}\n' - + # Sem --fail-with-body: o codigo e lido aqui, para separar "plano nao + # contratado" (tenant bronze sem o financeiro — nada a fazer, NAO e falha) + # de erro de verdade. Antes, todo bronze gerava um KubeJobFailed por hora + # (demo, 2026-09-28) e cada alerta gastava a cota de e-mail. + CODIGO="$(printf 'header = "Authorization: Bearer %s"\n' "${TOKEN}" \ + | curl -sS -K - -X POST "${ALVO}" -o /tmp/saida.json -w '%{http_code}')" + echo "${CODIGO}" echo "resposta:" cat /tmp/saida.json echo + if [ "${CODIGO}" = "403" ] && grep -q "plano nao contratado" /tmp/saida.json; then + echo "financeiro fora do plano deste tenant: nada a fazer." + exit 0 + fi + case "${CODIGO}" in + 2*) ;; + *) echo "ERRO: ${ALVO} respondeu ${CODIGO}." >&2; exit 1 ;; + esac --- apiVersion: batch/v1 kind: CronJob