Skip to content

refactor(processor)!: Separate platform processing from actor execution - #962

Merged
gfieni merged 2 commits into
masterfrom
refactor/report-processor
Oct 29, 2026
Merged

gfieni merged 2 commits into
masterfrom
refactor/report-processor

Conversation

@gfieni

@gfieni gfieni commented Oct 29, 2026

Copy link
Copy Markdown
Contributor

PR overview:

  • Introduce Processor for shared resource lifecycle and ReportProcessor[R] for typed report processing.
  • Extract Kubernetes and OpenStack enrichment and filtering into report-specific implementations.
  • Use generic processor actors for lifecycle delegation, report dispatch, and forwarding.

Breaking changes:

  • ProcessorActor, PreProcessorActor, and PostProcessorActor now require a Processor instance.
  • KubernetesPreProcessorActor and OpenStackPreProcessorActor are removed. Pass KubernetesProcessor or OpenStackProcessor to a generic ProcessorActor instead.

Add `Processor` class for resource lifecycle ownership and
`ReportProcessor[R]` class for typed report processing.
Move Kubernetes and OpenStack resource ownership into `Processor`
implementations. Keep enrichment and filtering in report-specific
processors that borrow the platform metadata registry.

Use generic processor actors for lifecycle delegation, report dispatch,
and forwarding.

BREAKING CHANGE: `ProcessorActor`, `PreProcessorActor`, and `PostProcessorActor`
require a `Processor` instance. `KubernetesPreProcessorActor` and
`OpenStackPreProcessorActor` implementations have been removed;
`KubernetesProcessor` and `OpenStackProcessor` with generic
`ProcessorActor` should be used instead.
@gfieni gfieni self-assigned this Oct 29, 2026
@gfieni
gfieni requested a review from a team as a code owner October 29, 2026 17:29
@sonarqubecloud

Copy link
Copy Markdown

Quality Gate Failed Quality Gate failed

Failed conditions
4.8% Duplication on New Code (required ≤ 3%)

See analysis details on SonarQube Cloud

Comment thread src/powerapi/processor/handlers.py Dismissed
@codecov

codecov Bot commented Oct 29, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 98.70968% with 2 lines in your changes missing coverage. Please review.
✅ Project coverage is 87.06%. Comparing base (4e6fe75) to head (4367b82).
⚠️ Report is 12 commits behind head on master.

Files with missing lines Patch % Lines
src/powerapi/processor/processor.py 84.61% 2 Missing ⚠️
Additional details and impacted files

Impacted file tree graph

@@            Coverage Diff             @@
##           master     #962      +/-   ##
==========================================
+ Coverage   86.77%   87.06%   +0.29%     
==========================================
  Files          81       80       -1     
  Lines        2827     2876      +49     
==========================================
+ Hits         2453     2504      +51     
+ Misses        374      372       -2     
Files with missing lines Coverage Δ
src/powerapi/config/generator.py 98.96% <100.00%> (ø)
src/powerapi/processor/__init__.py 100.00% <100.00%> (ø)
src/powerapi/processor/handlers.py 100.00% <100.00%> (+33.33%) ⬆️
src/powerapi/processor/pre/k8s/processor.py 100.00% <100.00%> (ø)
src/powerapi/processor/pre/openstack/processor.py 100.00% <100.00%> (ø)
src/powerapi/processor/processor_actor.py 100.00% <100.00%> (ø)
src/powerapi/processor/processor.py 84.61% <84.61%> (ø)

... and 1 file with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@gfieni
gfieni merged commit 2096032 into master Oct 29, 2026
9 of 10 checks passed
@gfieni
gfieni deleted the refactor/report-processor branch October 29, 2026 17:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants