From ac6a60e4d65e33017f8db0eca499f8dd898acb3c Mon Sep 17 00:00:00 2001 From: Kristine Bujold Date: Fri, 15 Jul 2016 16:55:16 -0400 Subject: [PATCH] US80802 - PXE Installation changes for UEFI support. Fixing pvcreate issue. --- .../lvm/lib/puppet/provider/physical_volume/lvm.rb | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/packstack/puppet/modules/lvm/lib/puppet/provider/physical_volume/lvm.rb b/packstack/puppet/modules/lvm/lib/puppet/provider/physical_volume/lvm.rb index 6ac6e0a..18183ae 100644 --- a/packstack/puppet/modules/lvm/lib/puppet/provider/physical_volume/lvm.rb +++ b/packstack/puppet/modules/lvm/lib/puppet/provider/physical_volume/lvm.rb @@ -1,12 +1,27 @@ Puppet::Type.type(:physical_volume).provide(:lvm) do desc "Manages LVM physical volumes" - commands :pvcreate => 'pvcreate', :pvremove => 'pvremove', :pvs => 'pvs', :vgs => 'vgs' + + commands :pvcreate => 'pvcreate', + :pvremove => 'pvremove', + :pvs => 'pvs', + :vgs => 'vgs', + :dd => 'dd' def create + # Delete the first few bytes at the start and end of the partition. This is required with + # GPT partitions, they save partition 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))") + pvcreate('-y', @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 -- 1.8.3.1