integ/config/puppet-modules/puppet-lvm-1.4.0/debian/deb_folder/patches/0002-US80802-PXE-Installati...

44 lines
1.6 KiB
Diff

From: Kristine Bujold <kristine.bujold@windriver.com>
Date: Fri, 15 Jul 2016 16:55:16 -0400
Subject: US80802 - PXE Installation changes for UEFI support.
Fixing pvcreate issue.
---
lib/puppet/provider/physical_volume/lvm.rb | 13 ++++++++++++-
1 file changed, 12 insertions(+), 1 deletion(-)
diff --git a/lib/puppet/provider/physical_volume/lvm.rb b/lib/puppet/provider/physical_volume/lvm.rb
index 3d92a55..ff2f94c 100644
--- a/lib/puppet/provider/physical_volume/lvm.rb
+++ b/lib/puppet/provider/physical_volume/lvm.rb
@@ -3,7 +3,7 @@ Puppet::Type.type(:physical_volume).provide(:lvm) do
confine kernel: :linux
- commands pvcreate: 'pvcreate', pvremove: 'pvremove', pvs: 'pvs', vgs: 'vgs'
+ commands pvcreate: 'pvcreate', pvremove: 'pvremove', pvs: 'pvs', vgs: 'vgs', dd: 'dd'
def self.instances
get_physical_volumes.map do |physical_volumes_line|
@@ -13,9 +13,20 @@ Puppet::Type.type(:physical_volume).provide(:lvm) do
end
def create
+ # Delete the first few bytes at the start and end of the partition. This is
+ # required with GPT partitions, the save the partiion info at the start and
+ # the end of the block
+ exec_cmd('dd', 'if=/dev/zero', "of=#{@resource[:name]}", "bs=512", "count=34")
+ exec_cmd('dd', 'if=/dev/zero', "of=#{@resource[:name]}", "bs=512", "count=34", "seek=$((`blockdev --getsz #{@resource[:name]}` - 34))")
+
create_physical_volume(@resource[:name])
end
+ def exec_cmd(*cmd)
+ output = Puppet::Util::Execution.execute(cmd, :failonfail => false, :combine => true)
+ {:out => output, :exit => $CHILD_STATUS.exitstatus}
+ end
+
def destroy
pvremove(@resource[:name])
end