diff options
author | smriti <sgarg@msystechnologies.com> | 2021-05-26 14:41:53 +0530 |
---|---|---|
committer | pratixha <pratiksha.prajapati@msystechnologies.com> | 2022-04-06 12:54:38 +0530 |
commit | daace13458d0e144d4d1807dd5390915caea9842 (patch) | |
tree | 499552d0d990ab2a809b9e44496f14626d93ae5f /lib | |
parent | f61168f78a52f28c170feb3c6a65061d91e7cb25 (diff) | |
download | chef-daace13458d0e144d4d1807dd5390915caea9842.tar.gz |
Mount: device name space character substituted with ascii value
Signed-off-by: smriti <sgarg@msystechnologies.com>
Diffstat (limited to 'lib')
-rw-r--r-- | lib/chef/provider/mount/linux.rb | 5 | ||||
-rw-r--r-- | lib/chef/provider/mount/mount.rb | 8 |
2 files changed, 13 insertions, 0 deletions
diff --git a/lib/chef/provider/mount/linux.rb b/lib/chef/provider/mount/linux.rb index 83fbfab957..899053b613 100644 --- a/lib/chef/provider/mount/linux.rb +++ b/lib/chef/provider/mount/linux.rb @@ -71,6 +71,11 @@ class Chef when /\A#{Regexp.escape(real_mount_point)}\s+#{device_mount_regex}\[/ mounted = true logger.trace("Network device #{device_logstring} mounted as #{real_mount_point}") + # Permalink for network device mounted with a space in device name https://rubular.com/r/CK5zWWms96CRES + # See the comment in "device_with_space_escape" for an explanation what's going here. + when /\A#{Regexp.escape(real_mount_point)}\s+#{device_with_space_escape}\s/ + mounted = true + logger.trace("Network device #{device_logstring} mounted as #{real_mount_point}") end end @current_resource.mounted(mounted) diff --git a/lib/chef/provider/mount/mount.rb b/lib/chef/provider/mount/mount.rb index 2bc9d2c78f..6b062d1225 100644 --- a/lib/chef/provider/mount/mount.rb +++ b/lib/chef/provider/mount/mount.rb @@ -217,6 +217,14 @@ class Chef end end + def device_with_space_escape + # For CIFS (and perhaps other remote network mounts) when a space is in the "device name" + # it will appear with the space substituted with a special character. However, when mounting, + # the mount needs to be done with an actual space. This function provides the device name with + # the special character to determine if the device is mounted. + device_mount_regex.gsub(" ", "\\x20") + end + def device_mount_regex if network_device? # ignore trailing slash |