Artem Chernyshev a83af03730 refactor: update go-blockdevice and restructure disk interaction code
This refactoring is required to simplify the work to be done to support
disk encryption.

Tried to minimize amount of queries done by `blockdevice` `probe`
methods.
Instead, where we have `runtime.Runtime` we get all required blockdevices
there from blockdevice cache stored in `State().Machine().Disk()`.
This opens a way to store encryption settings in the `Partition`
objects.

Signed-off-by: Artem Chernyshev <artem.0xD2@gmail.com>
2021-01-28 17:42:09 +03:00

21 lines
587 B
Go

// This Source Code Form is subject to the terms of the Mozilla Public
// License, v. 2.0. If a copy of the MPL was not distributed with this
// file, You can obtain one at http://mozilla.org/MPL/2.0/.
package disk
// Option defines a function that can alter MachineState.Disk() method output.
type Option func(options *Options)
// Options contains disk selection options.
type Options struct {
Label string
}
// WithPartitionLabel select a disk which has the partition labeled.
func WithPartitionLabel(label string) Option {
return func(opts *Options) {
opts.Label = label
}
}