Skip to content

Commit 1f8a510

Browse files
author
Siarhei Rasiukevich
committed
Fix physical_volumes provisioning with 'followsymlinks' enabled
1 parent a96170f commit 1f8a510

File tree

1 file changed

+18
-2
lines changed
  • lib/puppet/provider/volume_group

1 file changed

+18
-2
lines changed

lib/puppet/provider/volume_group/lvm.rb

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,14 +58,30 @@ def exists?
5858
end
5959

6060
def physical_volumes=(new_volumes = [])
61+
# Need to replace device path with real names, instead of symlink
62+
if @resource.parameter(:followsymlinks).value == :true then
63+
new_volume_real = []
64+
new_volumes.each do |s|
65+
if File.symlink?(s)
66+
device = File.expand_path(File.readlink(s), File.dirname(s))
67+
new_volume_real.push device
68+
else
69+
real_should.push s
70+
end
71+
end
72+
else
73+
new_volume_real = new_volumes
74+
end
75+
76+
6177
# Only take action if createonly is false just to be safe
6278
# this is really only here to enforce the createonly setting
6379
# if something goes wrong in physical_volumes
6480
if @resource[:createonly].to_s == "false"
6581
existing_volumes = physical_volumes
66-
extraneous = existing_volumes - new_volumes
82+
extraneous = existing_volumes - new_volume_real
6783
extraneous.each { |volume| reduce_with(volume) }
68-
missing = new_volumes - existing_volumes
84+
missing = new_volume_real - existing_volumes
6985
missing.each { |volume| extend_with(volume) }
7086
end
7187
end

0 commit comments

Comments
 (0)