Fixing linstor storage pool creation when using different disk IDs#101
Merged
Conversation
When working with physical disks that have different IDs per node (e.g. nvme-CT1000P3PSSD8_XXXXXXXXXXXX-part4),
the logic here failed because the task was executed only on the control node which executed the storage
pool addition on all satellites, leading "{{ linstor_mapped_disks | join(' ') }}" to be rendered always as the
disk IDs from the control node. Obviously they are not present on the satellites. This is no issue, as long as
the disks have the same ID on all nodes (like in the example inventory "nvme-QEMU_NVMe_Ctrl_incus_disk5"). Since
vars/main.yml is only lazy-loaded when executing the task on each node, we can also get rid of the variable and
use the hostvars[item] from above to access the disk IDs. Not so clean any more, but functional.
I also replaced the double '\\' in the regex with a single one, otherwise disks IDs might be rendered empty.
Signed-off-by: Tim Beermann <tibeer@berryit.de>
stgraber
approved these changes
May 26, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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 working with physical disks that have different IDs per node (e.g. nvme-CT1000P3PSSD8_XXXXXXXXXXXX-part4),
the logic here failed because the task was executed only on the control node which executed the storage
pool addition on all satellites, leading "{{ linstor_mapped_disks | join(' ') }}" to be rendered always as the
disk IDs from the control node. Obviously they are not present on the satellites. This is no issue, as long as
the disks have the same ID on all nodes (like in the example inventory "nvme-QEMU_NVMe_Ctrl_incus_disk5"). Since
vars/main.yml is only lazy-loaded when executing the task on each node, we can also get rid of the variable and
use the hostvars[item] from above to access the disk IDs. Not so clean any more, but functional.
I also replaced the double '\' in the regex with a single one, otherwise disks IDs might be rendered empty.
Signed-off-by: Tim Beermann tibeer@berryit.de