From f07444d3c462991f4fd02dc3f766807960bb84c8 Mon Sep 17 00:00:00 2001 From: Thomas Goirand Date: Wed, 1 May 2024 17:03:26 +0200 Subject: [PATCH] Allow using device uuid in storage::mount Previously, the `swift::storage::mount` allowed any type of string, making it possible to use UUID=4aa242a4-0ab3-4037-9137-1d58c7f2b5f8 or even 4aa242a4-0ab3-4037-9137-1d58c7f2b5f8 for example. But now, as the device parameter is Swift::MountDevice, this cannot be done. This patch fixes this regression. Change-Id: I57619c628ee7a6d5e60260235fbd6d83f514be83 --- spec/type_aliases/mountdevice_spec.rb | 12 ++++++++++-- types/mountdevice.pp | 4 +++- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/spec/type_aliases/mountdevice_spec.rb b/spec/type_aliases/mountdevice_spec.rb index 5c1362fc..84d55e78 100644 --- a/spec/type_aliases/mountdevice_spec.rb +++ b/spec/type_aliases/mountdevice_spec.rb @@ -7,7 +7,9 @@ describe 'Swift::MountDevice' do '/dev', '/dev/sda', '/opt/swift/diskfile', - 'LABEL=foo' + 'LABEL=foo', + '50e68500-9920-4ffa-a4cd-34fd2a893530', + 'UUID=50e68500-9920-4ffa-a4cd-34fd2a893530', ].each do |value| it { is_expected.to allow_value(value) } end @@ -24,7 +26,13 @@ describe 'Swift::MountDevice' do 'dev', 'dev/sda', 'LABEL=', - 'LABELfoo' + 'LABELfoo', + '50e6850099204ffaa4cd34fd2a893530', + '50e68500-9920-3ffa-a4cd-34fd2a893530', + 'UUID=', + 'UUID=foo', + 'UUID=50e6850099204ffaa4cd34fd2a893530', + 'UUID=50e68500-9920-3ffa-a4cd-34fd2a893530', ].each do |value| it { is_expected.not_to allow_value(value) } end diff --git a/types/mountdevice.pp b/types/mountdevice.pp index 41642d6d..67ac4575 100644 --- a/types/mountdevice.pp +++ b/types/mountdevice.pp @@ -1,4 +1,6 @@ type Swift::MountDevice = Variant[ Stdlib::Absolutepath, - Pattern[/^LABEL=.+$/] + Pattern[/^LABEL=.+$/], + Pattern[/^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[0-9a-f]{4}-[0-9a-f]{12}$/], + Pattern[/^UUID=[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[0-9a-f]{4}-[0-9a-f]{12}$/], ]