Skip to content

Commit 18c80aa

Browse files
AAraKKedd-agent-integrations-bot[bot]
andauthored
Route event bus hook errors through on_error with fail_fast policy (DataDog#23489)
* Route event bus hook errors through on_error with fail_fast policy - Introduce HookExecutionError hierarchy (OrchestratorHookError, ProcessorHookError) with HookName enum identifying the failed hook. - Wrap non-Fatal hook failures and route them to the appropriate on_error: orchestrator-scope (on_initialize, on_message_received, on_finalize) or processor-scope (process_message, on_success). - Default on_error re-raises so unmodified handlers fall through to the new fail_fast orchestrator option. - FatalProcessingError remains the explicit "stop the bus" signal and propagates without going through on_error. * Add changelog entry for event bus hook error handling * Address PR feedback: tighten event bus hook error API - Use StrEnum + auto() for HookName values - Drop ProcessorSuccessHookError; use ProcessorHookError(ON_SUCCESS) directly - Type _apply_error_policy handler as Callable[[Exception], Awaitable[None]] * Address review: SkipMessageError, better diagnostics, fail_fast for ValidationOrchestrator - Add SkipMessageError raisable from on_message_received to skip dispatch for a specific message and continue the loop. - Drop unused HookName.ON_ERROR. - Log additional task failures in __process_finished_tasks instead of silently abandoning them when several tasks finish in the same batch. - Include hook name and wrapped error context in the policy log line so on_error handler failures are self-contained in the logs. - Parametrize the orchestrator-hook fail_fast tests over hook_name. - Set fail_fast=True on ValidationOrchestrator so finalize failures still surface in the validation report. - Expand the changelog with the full list of behavior and API changes. * Recategorize changelog as 'added' (no external consumers yet) * Use single backticks in changelog (markdown, not RST) * Move app.abort() out of ValidationOrchestrator.on_finalize The orchestrator's on_finalize used to call app.abort() to terminate the CLI when validations failed. Under the new error policy, click.Exit raised inside on_finalize is wrapped as a hook failure and surfaces from run() as an OrchestratorHookError instead of a clean exit. Move the abort to the CLI command after orchestrator.run() returns: - Add ValidationOrchestrator.had_failures property. - on_finalize / _print_console_output no longer raise control-flow exceptions. - 'validate all' calls app.abort() based on had_failures. * Simplify had_failures with any() * Spell out BaseProcessor.on_error signature change in changelog * Update dependency resolution --------- Co-authored-by: dd-agent-integrations-bot[bot] <dd-agent-integrations-bot[bot]@users.noreply.github.com>
1 parent 1f4c651 commit 18c80aa

12 files changed

Lines changed: 688 additions & 181 deletions

File tree

.deps/resolved/linux-aarch64_3.13.txt

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,30 @@
11
aerospike @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/aerospike/aerospike-7.1.1-20260423151051-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl#sha256=13e750c0fbc8fd5f41810e5b3e72be2d132124e47a148dd147352a84b90fc614
2-
botocore @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/botocore/botocore-1.42.72-20260427212409-py3-none-any.whl#sha256=f1933a8ca6c1108ed23f7b01f82577327fc254e330025887fdd4ba17db03e8e2
2+
botocore @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/botocore/botocore-1.42.72-20260428182602-py3-none-any.whl#sha256=f1933a8ca6c1108ed23f7b01f82577327fc254e330025887fdd4ba17db03e8e2
33
cm-client @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/cm-client/cm_client-45.0.4-20260326173357-py3-none-manylinux2014_aarch64.whl#sha256=0bbcf2766028850c26a917deef3704a096cc9ba0c25220d45ff424334d25dcd7
4-
confluent-kafka @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/confluent-kafka/confluent_kafka-2.13.2-20260427212843-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl#sha256=4e1376443bd6d35dff13d6ece36d3dd91bf4c1c28cecbc4ce180ab318a1f91cb
5-
cryptography @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/cryptography/cryptography-46.0.7-20260427212844-cp313-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl#sha256=557c1336c852e241cb5abac754a8e9275c48cf45e7ae5c985012211828b60cae
4+
confluent-kafka @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/confluent-kafka/confluent_kafka-2.13.2-20260428182944-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl#sha256=e32d72646392defe1a7e5c5828039a08baa9deeb12a56f0bf820ccca357436ea
5+
cryptography @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/cryptography/cryptography-46.0.7-20260428182945-cp313-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl#sha256=d7aac68f9869a17abff8a6536090bcb1dffbccb3905e3c4d3d84382f60941b33
66
ddtrace @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/ddtrace/ddtrace-3.19.5-20260417115249-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl#sha256=a4f8d07adccdd43908156ab2c143dbb6261ed9a3c43ba58a3bb6bd1b6ef94734
77
foundationdb @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/foundationdb/foundationdb-6.3.25-20260326173358-py3-none-manylinux2014_aarch64.whl#sha256=d34180500220db4458e57505c774de0363456d4129f0e3fe98c9e99e8eef77c2
88
gssapi @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/gssapi/gssapi-1.11.1-20260423151125-cp311-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl#sha256=861b3cde93aec1b05a5e9ac917780dbac66d773bd427834bdf738825e559d197
9-
keystoneauth1 @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/keystoneauth1/keystoneauth1-5.13.1-20260427212429-py3-none-any.whl#sha256=a15092187950de965ff6096e203d31e461c61cfd47ec1f5249a0e2955187cba2
9+
keystoneauth1 @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/keystoneauth1/keystoneauth1-5.13.1-20260428182617-py3-none-any.whl#sha256=a15092187950de965ff6096e203d31e461c61cfd47ec1f5249a0e2955187cba2
1010
krb5 @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/krb5/krb5-0.9.0-20260423151143-cp311-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl#sha256=f6dd9d9a2d81b129b52ace318104ea9c04c1e7a5e11724aede73ba7c12f7fcac
11-
openstacksdk @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/openstacksdk/openstacksdk-4.10.0-20260427212441-py3-none-any.whl#sha256=88abe8f44e3b8c5c25b1093de735c700aa727a7ac408e273aa855d6db6ba38bf
12-
os-service-types @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/os-service-types/os_service_types-1.8.2-20260427212451-py3-none-any.whl#sha256=758ccaa020eea0edd84bcf4123746ddd060d1dbaeef63d04d76bd2e0ae6f91d8
13-
pbr @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/pbr/pbr-7.0.3-20260427212500-py2.py3-none-any.whl#sha256=1544652b80307f0b4c491bd66f58f969cb0656994e632365f90e8e044c223b4e
11+
openstacksdk @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/openstacksdk/openstacksdk-4.10.0-20260428182625-py3-none-any.whl#sha256=88abe8f44e3b8c5c25b1093de735c700aa727a7ac408e273aa855d6db6ba38bf
12+
os-service-types @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/os-service-types/os_service_types-1.8.2-20260428182632-py3-none-any.whl#sha256=758ccaa020eea0edd84bcf4123746ddd060d1dbaeef63d04d76bd2e0ae6f91d8
13+
pbr @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/pbr/pbr-7.0.3-20260428182640-py2.py3-none-any.whl#sha256=1544652b80307f0b4c491bd66f58f969cb0656994e632365f90e8e044c223b4e
1414
psutil @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/psutil/psutil-6.0.0-20260326173401-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl#sha256=22e075e3cbc57b5da0d93f72f691746c5198ce88c5aea6fdb54186b3e8c46832
1515
psycopg-c @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/psycopg-c/psycopg_c-3.3.3-20260423151232-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl#sha256=0bee628a33b6d05bae2f8ba97995e4f6c95ae6a6bb4c7b27160a17b7fb21c8ec
1616
pymongo @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/pymongo/pymongo-4.8.0-20260415154515-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl#sha256=30d8af4ef8fda85d1a865bdb254e6b2e3988f26b723eb39a4843c766371ff517
1717
pyodbc @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/pyodbc/pyodbc-5.3.0-20260415154516-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl#sha256=91a4191cf30930755d82e8edd6ac861443dfb6fbbf7915753b73209038ad5ad2
18-
pysnmp-mibs @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/pysnmp-mibs/pysnmp_mibs-0.1.6-20260427212511-py2.py3-none-any.whl#sha256=0cc4610711208cdc64361464a23d1f2dce88ec5990a12b4bdce4f13b6a169810
18+
pysnmp-mibs @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/pysnmp-mibs/pysnmp_mibs-0.1.6-20260428182649-py2.py3-none-any.whl#sha256=0cc4610711208cdc64361464a23d1f2dce88ec5990a12b4bdce4f13b6a169810
1919
pyvmomi @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/pyvmomi/pyvmomi-8.0.3.0.1-20260326173403-py2.py3-none-manylinux2014_aarch64.whl#sha256=dd71476b7308286ed4219373ca9523e4f06bfed3f5932f60e5c67d8d5a673e1e
20-
requests-unixsocket2 @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/requests-unixsocket2/requests_unixsocket2-1.0.1-20260427212521-py3-none-any.whl#sha256=aae3f1743ab60955ea91e9a095d54997ea56b956bab652bf194379ef4dc6fa7f
21-
securesystemslib @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/securesystemslib/securesystemslib-0.28.0-20260427212530-py3-none-any.whl#sha256=861ab6f8c1930e0c05915f32a34f1c4ae1d76ee542ad2b424121e3e26a9fb1dd
22-
setuptools @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/setuptools/setuptools-82.0.1-20260427212540-py3-none-any.whl#sha256=b020c62c9ea6c1c3e7a29a8e385967909ceb85a77398f7fbe3c63e2abab52e87
20+
requests-unixsocket2 @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/requests-unixsocket2/requests_unixsocket2-1.0.1-20260428182657-py3-none-any.whl#sha256=aae3f1743ab60955ea91e9a095d54997ea56b956bab652bf194379ef4dc6fa7f
21+
securesystemslib @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/securesystemslib/securesystemslib-0.28.0-20260428182704-py3-none-any.whl#sha256=861ab6f8c1930e0c05915f32a34f1c4ae1d76ee542ad2b424121e3e26a9fb1dd
22+
setuptools @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/setuptools/setuptools-82.0.1-20260428182712-py3-none-any.whl#sha256=b020c62c9ea6c1c3e7a29a8e385967909ceb85a77398f7fbe3c63e2abab52e87
2323
simplejson @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/simplejson/simplejson-3.20.2-20260326173404-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl#sha256=cb739020a718c2e32041a0fa0a3f79398f45c067347fe8f286c8222fa777bc5d
24-
stevedore @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/stevedore/stevedore-5.7.0-20260427212549-py3-none-any.whl#sha256=0cf2a7cb9c915eddc77a591df48e8ab78f93167e8ac77d0efb04eb375f91d8b2
25-
supervisor @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/supervisor/supervisor-4.3.0-20260427212559-py2.py3-none-any.whl#sha256=81d63e968a5133203a334102b8e6e72b1f5ecfc9673c1af7680f9f7e0db8d4fd
26-
vertica-python @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/vertica-python/vertica_python-1.4.0-20260427212608-py3-none-any.whl#sha256=df8d667b7bd070532a72c25f37e7259d3673c1908ae726fdfb3087d777caa9da
27-
websocket-client @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/websocket-client/websocket_client-1.9.0-20260427212618-py3-none-any.whl#sha256=b628876a9b1eed1d49f1a230bf4b1c21fa3cd9163594f9f9628c8a8b22f97e10
24+
stevedore @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/stevedore/stevedore-5.7.0-20260428182720-py3-none-any.whl#sha256=0cf2a7cb9c915eddc77a591df48e8ab78f93167e8ac77d0efb04eb375f91d8b2
25+
supervisor @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/supervisor/supervisor-4.3.0-20260428182728-py2.py3-none-any.whl#sha256=81d63e968a5133203a334102b8e6e72b1f5ecfc9673c1af7680f9f7e0db8d4fd
26+
vertica-python @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/vertica-python/vertica_python-1.4.0-20260428182736-py3-none-any.whl#sha256=df8d667b7bd070532a72c25f37e7259d3673c1908ae726fdfb3087d777caa9da
27+
websocket-client @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/websocket-client/websocket_client-1.9.0-20260428182744-py3-none-any.whl#sha256=b628876a9b1eed1d49f1a230bf4b1c21fa3cd9163594f9f9628c8a8b22f97e10
2828
annotated-types @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/external/annotated-types/annotated_types-0.7.0-py3-none-any.whl#sha256=1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53
2929
attrs @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/external/attrs/attrs-26.1.0-py3-none-any.whl#sha256=c647aa4a12dfbad9333ca4e71fe62ddc36f4e63b2d260a37a8b83d2f043ac309
3030
aws-msk-iam-sasl-signer-python @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/external/aws-msk-iam-sasl-signer-python/aws_msk_iam_sasl_signer_python-1.0.2-py2.py3-none-any.whl#sha256=310eb2db9ca0ff55ed06a24212739b87533e7f1cf6f34e43aabbd97a3b21290e

0 commit comments

Comments
 (0)