core.objectchange:2286
| Time |
2026-05-31 19:55:15
|
|---|---|
| User |
York-Simon Johannsen (YoSiJo)
|
| Action |
Updated
|
| Object type |
Extras | webhook
|
| Object | |
| Message |
—
|
| Request ID |
{
"body_template": "{%- set ns = namespace(has_failures=false, error_lines=[], fallback_name=\"Plattform-Check\") -%}\r\n\r\n{# 1. Suche in NetBox v4 Report-Tests #}\r\n{%- if data is defined and data.tests is defined -%}\r\n {%- for test_name, test_results in data.tests.items() -%}\r\n {%- if test_results.failure -%}\r\n {%- set ns.has_failures = true -%}\r\n {%- set ns.fallback_name = test_name -%}\r\n {%- set msg = \"- [\" ~ test_name ~ \"] \" ~ test_results.failure -%}\r\n {%- set ns.error_lines = ns.error_lines + [msg] -%}\r\n {%- endif -%}\r\n {%- endfor -%}\r\n{%- endif -%}\r\n\r\n{# 2. Fallback fuer klassische Script-Logs #}\r\n{%- if data is defined and data.result is defined and data.result.log is defined -%}\r\n {%- for log in data.result.log -%}\r\n {%- if log.status == 'failure' or log.status == 'failed' -%}\r\n {%- set ns.has_failures = true -%}\r\n {%- set type = log.obj_type if log.obj_type else 'Allgemein' -%}\r\n {%- set msg = \"- [\" ~ type ~ \"] \" ~ log.message -%}\r\n {%- set ns.error_lines = ns.error_lines + [msg] -%}\r\n {%- endif -%}\r\n {%- endfor -%}\r\n{%- endif -%}\r\n\r\n{# 3. Zuverlaessige ID- und Namens-Extraktion aus dem Job-Payload #}\r\n{%- set job_id = data.id if (data is defined and data.id is defined) else data.object.id if (data is defined and data.object is defined and data.object.id is defined) else \"\" -%}(1.3.2)\r\n{%- set raw_name = data.name if (data is defined and data.name is defined) else data.object.name if (data is defined and data.object is defined and data.object.name is defined) else model -%}(1.3.2)\r\n{%- set report_name = raw_name | replace(\"Run Script\", \"\") | replace(\"Run Job\", \"\") | replace(\"Job\", \"\") | trim | capitalize -%}\r\n{%- if report_name == \"\" -%}\r\n {%- set report_name = ns.fallback_name | replace(\"test_\", \"\") | replace(\"_\", \" \") | capitalize -%}\r\n{%- endif -%}\r\n\r\n{%- set report_url = \"https://netbox-prod/core/jobs/\" ~ job_id ~ \"/\" -%}\r\n\r\n{%- set body_raw = \"Der Report \" ~ report_name ~ \" wurde von \" ~ (username | default('YoSiJo')) ~ \" ausgefuehrt.[BR][BR]Folgende Checks sind fehlgeschlagen:[BR]\" ~ ns.error_lines | join(\"[BR]\") ~ \"[BR][BR]Direktlink zum Report:[BR]\" ~ report_url -%}\r\n\r\n{\r\n \"urls\": \"{%- if ns.has_failures -%}xmpps://netbox:{{ '' | xmpp_apprise_password }}@anoxinon.me/yosijo{%- endif -%}\",\r\n \"title\": \"❌ NetBox Report: Fehlgeschlagene Checks in {{ report_name }}\",\r\n \"body\": \"{{ body_raw.replace('[BR]', '\\\\n') }}\"\r\n}"
}
{
"body_template": "{%- set ns = namespace(has_failures=false, error_lines=[], fallback_name=\"Plattform-Check\") -%}\r\n\r\n{# 1. Suche in NetBox v4 Report-Tests #}\r\n{%- if data is defined and data.tests is defined -%}\r\n {%- for test_name, test_results in data.tests.items() -%}\r\n {%- if test_results.failure -%}\r\n {%- set ns.has_failures = true -%}\r\n {%- set ns.fallback_name = test_name -%}\r\n {%- set msg = \"- [\" ~ test_name ~ \"] \" ~ test_results.failure -%}\r\n {%- set ns.error_lines = ns.error_lines + [msg] -%}\r\n {%- endif -%}\r\n {%- endfor -%}\r\n{%- endif -%}\r\n\r\n{# 2. Fallback fuer klassische Script-Logs #}\r\n{%- if data is defined and data.result is defined and data.result.log is defined -%}\r\n {%- for log in data.result.log -%}\r\n {%- if log.status == 'failure' or log.status == 'failed' -%}\r\n {%- set ns.has_failures = true -%}\r\n {%- set type = log.obj_type if log.obj_type else 'Allgemein' -%}\r\n {%- set msg = \"- [\" ~ type ~ \"] \" ~ log.message -%}\r\n {%- set ns.error_lines = ns.error_lines + [msg] -%}\r\n {%- endif -%}\r\n {%- endfor -%}\r\n{%- endif -%}\r\n\r\n{# 3. ID und Name aus den Event-Snapshots auslesen #}\r\n{%- set job_id = \"\" -%}\r\n{%- if data is defined and data.snapshots is defined and data.snapshots.postchange is defined -%}\r\n {%- set job_id = data.snapshots.postchange.id | default(\"\") -%}\r\n{%- endif -%}\r\n{%- if not job_id and id is defined -%}\r\n {%- set job_id = id -%}\r\n{%- endif -%}\r\n\r\n{%- set report_name = ns.fallback_name | replace(\"test_\", \"\") | replace(\"_\", \" \") | capitalize -%}\r\n{%- set report_url = \"https://netbox-prod/core/jobs/\" ~ job_id ~ \"/\" -%}\r\n\r\n{%- set body_raw = \"Der Report \" ~ report_name ~ \" wurde von \" ~ (username | default('YoSiJo')) ~ \" ausgefuehrt.[BR][BR]Folgende Checks sind fehlgeschlagen:[BR]\" ~ ns.error_lines | join(\"[BR]\") ~ \"[BR][BR]Direktlink zum Report:[BR]\" ~ report_url -%}\r\n\r\n{\r\n \"urls\": \"{%- if ns.has_failures -%}xmpps://netbox:{{ '' | xmpp_apprise_password }}@anoxinon.me/yosijo{%- endif -%}\",\r\n \"title\": \"❌ NetBox Report: Fehlgeschlagene Checks in {{ report_name }}\",\r\n \"body\": \"{{ body_raw.replace('[BR]', '\\\\n') }}\"\r\n}"
}
name: "XMPP YoSiJo - Reports"tags: []owner: 1secret: ""description: "xmpps://netbox@anoxinon.me/yosijo"http_method: "POST"payload_url: "https://apprise-api.stage.anoxinon.de/notify/"ca_file_path: nullbody_template: "{%- set ns = namespace(has_failures=false, error_lines=[], fallback_name=\"Plattform-Check\") -%}\r\n\r\n{# 1. Suche in NetBox v4 Report-Tests #}\r\n{%- if data is defined and data.tests is defined -%}\r\n {%- for test_name, test_results in data.tests.items() -%}\r\n {%- if test_results.failure -%}\r\n {%- set ns.has_failures = true -%}\r\n {%- set ns.fallback_name = test_name -%}\r\n {%- set msg = \"- [\" ~ test_name ~ \"] \" ~ test_results.failure -%}\r\n {%- set ns.error_lines = ns.error_lines + [msg] -%}\r\n {%- endif -%}\r\n {%- endfor -%}\r\n{%- endif -%}\r\n\r\n{# 2. Fallback fuer klassische Script-Logs #}\r\n{%- if data is defined and data.result is defined and data.result.log is defined -%}\r\n {%- for log in data.result.log -%}\r\n {%- if log.status == 'failure' or log.status == 'failed' -%}\r\n {%- set ns.has_failures = true -%}\r\n {%- set type = log.obj_type if log.obj_type else 'Allgemein' -%}\r\n {%- set msg = \"- [\" ~ type ~ \"] \" ~ log.message -%}\r\n {%- set ns.error_lines = ns.error_lines + [msg] -%}\r\n {%- endif -%}\r\n {%- endfor -%}\r\n{%- endif -%}\r\n\r\n{# 3. Zuverlaessige ID- und Namens-Extraktion aus dem Job-Payload #}\r\n{%- set job_id = data.id if (data is defined and data.id is defined) else data.object.id if (data is defined and data.object is defined and data.object.id is defined) else \"\" -%}(1.3.2)\r\n{%- set raw_name = data.name if (data is defined and data.name is defined) else data.object.name if (data is defined and data.object is defined and data.object.name is defined) else model -%}(1.3.2)\r\n{%- set report_name = raw_name | replace(\"Run Script\", \"\") | replace(\"Run Job\", \"\") | replace(\"Job\", \"\") | trim | capitalize -%}\r\n{%- if report_name == \"\" -%}\r\n {%- set report_name = ns.fallback_name | replace(\"test_\", \"\") | replace(\"_\", \" \") | capitalize -%}\r\n{%- endif -%}\r\n\r\n{%- set report_url = \"https://netbox-prod/core/jobs/\" ~ job_id ~ \"/\" -%}\r\n\r\n{%- set body_raw = \"Der Report \" ~ report_name ~ \" wurde von \" ~ (username | default('YoSiJo')) ~ \" ausgefuehrt.[BR][BR]Folgende Checks sind fehlgeschlagen:[BR]\" ~ ns.error_lines | join(\"[BR]\") ~ \"[BR][BR]Direktlink zum Report:[BR]\" ~ report_url -%}\r\n\r\n{\r\n \"urls\": \"{%- if ns.has_failures -%}xmpps://netbox:{{ '' | xmpp_apprise_password }}@anoxinon.me/yosijo{%- endif -%}\",\r\n \"title\": \"❌ NetBox Report: Fehlgeschlagene Checks in {{ report_name }}\",\r\n \"body\": \"{{ body_raw.replace('[BR]', '\\\\n') }}\"\r\n}"custom_fields: {}ssl_verification: truehttp_content_type: "application/json"additional_headers: ""
name: "XMPP YoSiJo - Reports"tags: []owner: 1secret: ""description: "xmpps://netbox@anoxinon.me/yosijo"http_method: "POST"payload_url: "https://apprise-api.stage.anoxinon.de/notify/"ca_file_path: nullbody_template: "{%- set ns = namespace(has_failures=false, error_lines=[], fallback_name=\"Plattform-Check\") -%}\r\n\r\n{# 1. Suche in NetBox v4 Report-Tests #}\r\n{%- if data is defined and data.tests is defined -%}\r\n {%- for test_name, test_results in data.tests.items() -%}\r\n {%- if test_results.failure -%}\r\n {%- set ns.has_failures = true -%}\r\n {%- set ns.fallback_name = test_name -%}\r\n {%- set msg = \"- [\" ~ test_name ~ \"] \" ~ test_results.failure -%}\r\n {%- set ns.error_lines = ns.error_lines + [msg] -%}\r\n {%- endif -%}\r\n {%- endfor -%}\r\n{%- endif -%}\r\n\r\n{# 2. Fallback fuer klassische Script-Logs #}\r\n{%- if data is defined and data.result is defined and data.result.log is defined -%}\r\n {%- for log in data.result.log -%}\r\n {%- if log.status == 'failure' or log.status == 'failed' -%}\r\n {%- set ns.has_failures = true -%}\r\n {%- set type = log.obj_type if log.obj_type else 'Allgemein' -%}\r\n {%- set msg = \"- [\" ~ type ~ \"] \" ~ log.message -%}\r\n {%- set ns.error_lines = ns.error_lines + [msg] -%}\r\n {%- endif -%}\r\n {%- endfor -%}\r\n{%- endif -%}\r\n\r\n{# 3. ID und Name aus den Event-Snapshots auslesen #}\r\n{%- set job_id = \"\" -%}\r\n{%- if data is defined and data.snapshots is defined and data.snapshots.postchange is defined -%}\r\n {%- set job_id = data.snapshots.postchange.id | default(\"\") -%}\r\n{%- endif -%}\r\n{%- if not job_id and id is defined -%}\r\n {%- set job_id = id -%}\r\n{%- endif -%}\r\n\r\n{%- set report_name = ns.fallback_name | replace(\"test_\", \"\") | replace(\"_\", \" \") | capitalize -%}\r\n{%- set report_url = \"https://netbox-prod/core/jobs/\" ~ job_id ~ \"/\" -%}\r\n\r\n{%- set body_raw = \"Der Report \" ~ report_name ~ \" wurde von \" ~ (username | default('YoSiJo')) ~ \" ausgefuehrt.[BR][BR]Folgende Checks sind fehlgeschlagen:[BR]\" ~ ns.error_lines | join(\"[BR]\") ~ \"[BR][BR]Direktlink zum Report:[BR]\" ~ report_url -%}\r\n\r\n{\r\n \"urls\": \"{%- if ns.has_failures -%}xmpps://netbox:{{ '' | xmpp_apprise_password }}@anoxinon.me/yosijo{%- endif -%}\",\r\n \"title\": \"❌ NetBox Report: Fehlgeschlagene Checks in {{ report_name }}\",\r\n \"body\": \"{{ body_raw.replace('[BR]', '\\\\n') }}\"\r\n}"custom_fields: {}ssl_verification: truehttp_content_type: "application/json"additional_headers: ""