← Back to issue list

feat(utils): add FUSE partition and volume mounting utilities

View original Github issue

Metadata

Project
imagecraft
Number
#428
Type
pull request
State
merged
Author
lengau
Labels
—
Created
Updated
Closed

Current evaluation

Merged #428 in commit 33e8c5d, adding FUSE mount utilities and polling for loop partition nodes to prevent an udev race.

Resolution: closed resolved

Reason: PR #428 was approved and merged with all CI checks passing. Commit 33e8c5d added ext4, FAT, and composite-volume mounting and fixed loop partition device-node synchronization.

Evaluated by: mr-cal-bot

No scores available.

Issue body

## Description Adds FUSE-based partition and volume mounting utilities under `imagecraft.utils.mount` using `fuse2fs`, `fusefat`, and `fusefile`, enabling mounting of ext4, FAT, and composite GPT/MBR volume hierarchies without kernel loop devices. Also fixes a race condition where `/dev/loopXpY` partition device nodes are accessed before udev finishes creating them after `losetup --partscan`. ### Key Changes - **FUSE Mounts (`imagecraft.utils.mount`)**: `mount_partition()` and `mount_volume()` context managers supporting ext4 (`fuse2fs`), FAT (`fusefat`), and partition offsets via `fusefile`. - **Loop Device Partition Sync (`imagecraft.services.image`)**: Polls for `/dev/loopXpY` nodes after `losetup --partscan`. - **Packaging & Tests**: Stages FUSE utilities in snapcraft and adds unit and integration tests. IMAGECRAFT-176 --- - [x] I've followed the [contribution guidelines](https://github.com/canonical/imagecraft/blob/main/CONTRIBUTING.md). - [x] I've signed the [CLA](http://www.ubuntu.com/legal/contributors/). - [x] I've successfully run `make lint && make test`. - [ ] I've added or updated any relevant documentation. - [ ] In documents I changed, I [added a meta description](https://canonical-starflow.readthedocs-hosted.com/how-to/add-a-page-meta-description/) if one was missing.

Evaluation history

Date Model Scores Action Summary
stealth/space-bunny-alpha — closed resolved Merged #428 in commit 33e8c5d, adding FUSE mount utilities and polling for loop partition nodes to prevent an udev race.
stealth/space-bunny-alpha — closed resolved Merged in canonical/imagecraft#428: added FUSE-based partition and volume mounting using fuse2fs, fusefat and fusefile, and fixed a loop-partition device-node race.
qwen/qwen3.6-35b-a3b — — Merged after passing CI and approvals. Added FUSE-based partition and volume mounting utilities using fuse2fs, fusefat, and fusefile, and resolved a loop device partition race condition. The change spans 18 files.
qwen/qwen3.8-27b
Impact: 55
Quick Win: 16
Staleness: 5
Complexity: 70
Confidence: 80
needs review Adds FUSE-based partition and composite volume mounting utilities under imagecraft.utils.mount for zero-copy unprivileged ext4/FAT/GPT mounting in LXD. Approved by 2 reviewers, CI green, 3 unresolved review comments.
qwen/qwen3.8-27b
Impact: 55
Quick Win: 16
Staleness: 5
Complexity: 70
Confidence: 85
needs review Adds FUSE-based partition and composite volume mounting utilities (ext4, FAT, GPT/MBR) under imagecraft.utils.mount, with snap packaging and root-gated tests. Approved by 2 reviewers, all CI green, 3 unresolved comments; loop-device removal tracked in IMAGECRAFT-192.
qwen/qwen3.8-27b
Impact: 55
Quick Win: 16
Staleness: 5
Complexity: 70
Confidence: 80
needs review Adds FUSE-based partition and composite volume mounting utilities under imagecraft.utils.mount, snap packaging for fuse binaries, and unit/integration tests. Approved by 1 reviewer; 2 unresolved comments; CI green with 2 spread checks pending.
qwen/qwen3.8-27b
Impact: 55
Quick Win: 14
Staleness: 5
Complexity: 75
Confidence: 78
needs review Adds FUSE-based partition and composite volume mounting utilities (ext4, FAT, GPT/MBR) under imagecraft.utils.mount, snap packaging for fuse binaries, and unit/integration tests. CI mostly green with 2 checks pending; review pending with 2 unresolved comments.
qwen/qwen3.8-27b
Impact: 55
Quick Win: 19
Staleness: 5
Complexity: 65
Confidence: 80
needs review Adds FUSE-based partition and composite volume mounting utilities under imagecraft.utils.mount for unprivileged ext4/FAT mounting in LXD containers. Fresh PR (3 days old), all CI passing, 3 unresolved review comments, 0 reviewers assigned, pending snap build jobs.
qwen/qwen3.8-27b
Impact: 50
Quick Win: 15
Staleness: 5
Complexity: 70
Confidence: 80
needs review Adds FUSE-based partition and composite volume mounting utilities under imagecraft.utils.mount for unprivileged LXD mounting, plus fuse2fs/fusefat/fusefile snap packaging and tests. CI green, 3 checks pending; 4 unresolved review comments, 0 reviewers.
qwen/qwen3.8-27b
Impact: 55
Quick Win: 15
Staleness: 5
Complexity: 72
Confidence: 80
needs review Adds FUSE-based partition and volume mounting utilities under imagecraft.utils.mount with context managers, factories, snap packaging for fuse2fs/fusefat/fusefile, and unit/integration tests. 3 days old, all CI green, pending first review.
qwen/qwen3.6-35b-a3b
Staleness: 5
Complexity: 65
Confidence: 90
needs review Adds FUSE-based mounting utilities for ext4, FAT, and composite volumes under imagecraft.utils.mount, including context managers, factory functions, and snap packaging updates. Currently pending maintainer review with 0 approvals and 1 unresolved comment.
qwen/qwen3.6-35b-a3b
Staleness: 5
Complexity: 65
Confidence: 90
needs review Adds FUSE-based partition and volume mounting utilities to imagecraft.utils, including context managers, factory functions, and snap packaging. Currently pending maintainer review with all CI checks passing.
qwen/qwen3.6-35b-a3b
Staleness: 5
Complexity: 65
Confidence: 90
needs review Adds FUSE-based mounting utilities for ext4, FAT, and composite volumes with context managers and factory functions. Includes snap packaging updates and comprehensive tests. Currently pending maintainer review with CI checks in progress.
qwen/qwen3.6-35b-a3b
Staleness: 5
Complexity: 65
Confidence: 85
needs review Adds FUSE-based partition and volume mounting utilities to imagecraft.utils, including context managers, factory functions, and snap dependencies. Currently pending maintainer review with minor CI failures on specific platforms noted as unrelated.
qwen/qwen3.6-35b-a3b
Staleness: 5
Complexity: 65
Confidence: 85
needs review Adds FUSE-based partition and volume mounting utilities for ext4, FAT, and composite GPT/MBR volumes, including context managers, factory functions, snap packaging updates, and comprehensive tests. Currently awaiting maintainer review with CI checks pending.
qwen/qwen3.6-35b-a3b
Staleness: 5
Complexity: 65
Confidence: 90
needs review Adds FUSE-based mounting utilities for ext4, FAT, and composite volumes with context managers and factory functions. Includes snap packaging updates and comprehensive tests. Currently awaiting maintainer review with mostly passing CI.
qwen/qwen3.6-35b-a3b
Staleness: 5
Complexity: 65
Confidence: 85
needs review Adds FUSE-based partition and volume mounting utilities with context managers, factory functions, and snap packaging. Includes comprehensive unit and integration tests. Currently pending maintainer review with one failing ARM test and several pending CI jobs.
qwen/qwen3.6-35b-a3b
Staleness: 5
Complexity: 65
Confidence: 85
needs review Adds FUSE-based mounting utilities for ext4, FAT, and composite volumes with context managers, factory functions, and snap packaging updates. Currently awaiting maintainer review with most CI checks passing.
qwen/qwen3.6-35b-a3b
Staleness: 5
Complexity: 65
Confidence: 90
needs review Adds FUSE-based partition and volume mounting utilities with context managers, factory functions, and snap packaging. Includes unit and integration tests. Currently awaiting maintainer review with some root-required tests failing.
qwen/qwen3.6-35b-a3b
Staleness: 5
Complexity: 65
Confidence: 85
needs review Adds FUSE-based mounting utilities for ext4, FAT, and composite volumes with context managers, factory functions, and snap packaging updates. Currently awaiting maintainer review with most CI checks passing.
qwen/qwen3.6-35b-a3b
Staleness: 5
Complexity: 65
Confidence: 85
needs review Adds FUSE-based utilities for mounting ext4, FAT, and composite volumes in unprivileged environments. Includes new mount context managers, factory functions, snap packaging updates, and comprehensive tests. Currently pending maintainer review with some ARM and slow test failures.
qwen/qwen3.6-35b-a3b
Staleness: 5
Complexity: 70
Confidence: 85
needs review Adds FUSE-based utilities for mounting ext4, FAT, and composite volumes in LXD containers. Includes context managers, factory functions, snap packaging updates, and tests. Currently pending review with one unresolved comment and failing snap/arm64 CI checks.
qwen/qwen3.6-35b-a3b
Staleness: 5
Complexity: 65
Confidence: 85
needs review Adds FUSE-based partition and volume mounting utilities for ext4 and FAT filesystems, including composite volume support and snap packaging updates. Currently awaiting maintainer review with CI checks pending.
qwen/qwen3.6-35b-a3b
Staleness: 5
Complexity: 65
Confidence: 85
needs review Adds FUSE-based mounting utilities for ext4, FAT, and composite volumes, including context managers, factory functions, snap packaging updates, and tests. Currently pending maintainer review with mixed CI results.

Update history

Date Change
updated
updated
updated
updated
updated
updated
updated
updated
updated
updated
updated
updated
updated
updated
updated
updated
updated
updated
updated
created

Related issues

Issue Project State Summary Similarity
#458 feat: use fusefile virtual partition devices instead of loop devices imagecraft merged Merged PR replacing loop-device attachment with fusefile virtual partition files per volume slice; removes losetup and udev partition-node waits.
75%