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

agama-project / agama / 27017658825 / 3 – web
83%
master: 83%

Build:
DEFAULT BRANCH: master
Ran 05 Jun 2026 01:30PM UTC
Files 619
Run time 17s
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: 77.56% (-0.09%) from 77.649%
web – 27017658825.3

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 %.

15564 of 19294 relevant lines covered (80.67%)

89.01 hits per line

Source Files on job web - 27017658825.3
  • Tree
  • List 619
  • Changed 8
  • Source Changed 4
  • Coverage Changed 8
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Build 27017658825
  • 51b66700 on github
  • Prev Job for on master (#26966766463.3)
  • Next Job for 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