Merge lp:~raharper/curtin/trunk.block-wipe-exclusive-optional into lp:~curtin-dev/curtin/trunk
Status: | Merged |
---|---|
Merged at revision: | 538 |
Proposed branch: | lp:~raharper/curtin/trunk.block-wipe-exclusive-optional |
Merge into: | lp:~curtin-dev/curtin/trunk |
Diff against target: |
88 lines (+18/-9) 3 files modified
curtin/block/__init__.py (+11/-5) curtin/commands/block_meta.py (+4/-1) tests/unittests/test_commands_block_meta.py (+3/-3) |
To merge this branch: | bzr merge lp:~raharper/curtin/trunk.block-wipe-exclusive-optional |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Server Team CI bot | continuous-integration | Approve | |
Scott Moser (community) | Approve | ||
Review via email: mp+332937@code.launchpad.net |
Commit message
block: enable control over exclusive_open use when wiping volumes
The exclusive_open check on a device is very useful to determine if
curtin is removing all metadata from a device w.r.t storage
configuraiton. However, in some cases during creation of new storage
configations when curtin attempts to add additional partitions to a
device that has partitions already added to an raid device, the
exclusive open is blocked while we attempt to zero some data on the
underlying device. The Mirrorboot-UEFI vmtest exemplifies this
situation.
This patch exposes a flag to the zero_file_at_offset method to allow
callers (block_meta in this case) to disable the exclusive_open. This
lets curtin wipe data at specific offsets on a volume without
requiring exclusive ownership of the device.
PASSED: Continuous integration, rev:539 /jenkins. ubuntu. com/server/ job/curtin- ci/670/ /jenkins. ubuntu. com/server/ job/curtin- ci/nodes= metal-amd64/ 670 /jenkins. ubuntu. com/server/ job/curtin- ci/nodes= metal-arm64/ 670 /jenkins. ubuntu. com/server/ job/curtin- ci/nodes= metal-ppc64el/ 670 /jenkins. ubuntu. com/server/ job/curtin- ci/nodes= metal-s390x/ 670
https:/
Executed test runs:
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
Click here to trigger a rebuild: /jenkins. ubuntu. com/server/ job/curtin- ci/670/ rebuild
https:/