• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

agama-project / agama / 27017658825
83%

Build:
DEFAULT BRANCH: master
Ran 05 Jun 2026 01:30PM UTC
Jobs 3
Files 936
Run time 2min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

05 Jun 2026 01:27PM UTC coverage: 81.477% (-0.07%) from 81.551%
27017658825

push

github

web-flow
feat(rust): task-based configuration system for agama-manager (#3577)

## Summary

-
https://trello.com/c/iJhKbkyJ/5768-8-1266276-sles-161-unattended-doesnt-start
  - based on https://bugzilla.suse.com/show_bug.cgi?id=1266276


This PR introduces a task-based execution system for the configuration
phase in agama-manager. Instead of running configuration steps
sequentially, the new implementation uses a `TaskManager` to execute
steps asynchronously with explicit dependency tracking.

## Motivation

The previous sequential implementation of `SetConfigAction::run()` had
several limitations:

- No visibility into which configuration steps were running
- No ability to express dependencies between steps
- Configuration steps blocked even when they could run in parallel
- No structured way to track task progress and status
- Difficult to detect when the configuration actually finished (see
[bsc#1266276](https://bugzilla.suse.com/show_bug.cgi?id=1266276)).

## The `task_manager` module

- New `TaskManager` for coordinating asynchronous task execution
- `TaskBuilder` with fluent API for defining tasks and dependencies
- `TaskError` newtype for type-safe error handling
- `TaskMetadata` for tracking task state (name, scope, description)
- Event emission system for task lifecycle (started, finished, failed)
- Support for task dependencies via `depends_on(&[TaskId])`

### SetConfigAction Refactoring

**Async Task-Based Execution**
- Migrated from sequential `run()` to task-based asynchronous execution
- Each configuration step now runs as an independent task
- Tasks can execute in parallel when dependencies allow

**Task Dependencies**
- Software configuration depends on: files, storage, bootloader, and NTP
- Storage configuration depends on: S390 (when available)
- Pre-installation scripts depend on: files configuration
- SELinux configuration integrated into software task (executes after
SetConfig completes)

## Tasks

- [x] Add the task manager
- [x] Add depend... (continued)

4434 of 6490 branches covered (68.32%)

Branch coverage included in aggregate %.

40 of 57 new or added lines in 7 files covered. (70.18%)

78 existing lines in 6 files now uncovered.

24048 of 28467 relevant lines covered (84.48%)

97.94 hits per line

Uncovered Changes

Lines Coverage ∆ File
11
9.72
-4.0% web/src/hooks/model/status.ts
4
30.95
0.0% web/src/App.tsx
1
85.49
0.0% service/lib/agama/dbus/storage/manager.rb
1
87.91
0.0% service/lib/agama/storage/bootloader_manager.rb

Coverage Regressions

Lines Coverage ∆ File
25
85.49
0.0% service/lib/agama/dbus/storage/manager.rb
17
13.46
-5.46% web/web/src/hooks/model/status.ts
13
87.97
0.28% web/web/src/test-utils.tsx
8
33.33
0.0% web/web/src/App.tsx
8
87.91
0.0% service/lib/agama/storage/bootloader_manager.rb
7
92.37
0.0% service/lib/agama/storage/manager.rb
Subprojects
ID Flag name Job ID Ran Files Coverage
3 web 27017658825.3 05 Jun 2026 01:30PM UTC 619
77.56
GitHub Action Run
3 service 26957380301.3 04 Jun 2026 02:17PM UTC 317
92.49
GitHub Action Run
1 rust 19474749743.1 18 Nov 2025 05:18PM UTC 185
22.45
GitHub Action Run
Source Files on build 27017658825
  • Tree
  • List 936
  • Changed 16
  • Source Changed 12
  • Coverage Changed 15
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #27017658825
  • 51b66700 on github
  • Prev Build on master (#26966766463)
  • Next Build on master (#27018197968)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc