(feat): Add test cases for layer.ShouldProcess() #17
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
When adding
lvm
support toebs-bootstrap
, I realised that all layers were being invoked, even if the relevant flag for a layer was disabled across all devices. For example, we were querying for the sizes of all block devices and their file systems, even if theresize
flag was disabled across all devices.This was not a huge issue until we added
lvm
. Suddenly the LVM layers were being invoked and attempting to query the system with utilities likelvs
andpvs
. We can not reasonably expect that these tools will be pre-installed on the operating system.Therefore I expanded the
layer
interface by adding aShouldProcess(c *config.Config)
method. This method would assess theconfig
and determine whether thelayer
should be invoked. This brings performance gains as now the tool can avoid the invocation of layers that are not relevant to the consumer.Here are test cases for this new
layer.ShouldProcess()
method