diff --git a/.rubocop.yml b/.rubocop.yml index a420c7601ee04d8d79b25e18d844c56a8f784b13..64ee3b7b32983023ef0b883b2567800fbfb617fe 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -11,3 +11,5 @@ Metrics/CyclomaticComplexity: Enabled: false Metrics/PerceivedComplexity: Enabled: false +Metrics/MethodLength: + Max: 15 diff --git a/app/models/concerns/foreman_vmware_advanced/vmware_extensions.rb b/app/models/concerns/foreman_vmware_advanced/vmware_extensions.rb index ab1e6c3a0c4920092c3bb06e2f039a16ecdafaf8..0e3490b5f1e7e708d08b0b851928de4730a6e9a7 100644 --- a/app/models/concerns/foreman_vmware_advanced/vmware_extensions.rb +++ b/app/models/concerns/foreman_vmware_advanced/vmware_extensions.rb @@ -15,20 +15,7 @@ module ForemanVmwareAdvanced return unless vm spec = {} - if vm.firmware == 'efi' - if SETTINGS[:vmware_secureboot] && args[:guest_id]&.start_with?('win') - spec[:bootOptions] = RbVmomi::VIM::VirtualMachineBootOptions.new(efiSecureBootEnabled: true) - end - - if SETTINGS[:vmware_vtpm] - spec[:deviceChange] = [ - { - operation: :add, - device: RbVmomi::VIM::VirtualTPM.new(key: -1) - } - ] - end - end + spec.merge! build_efi_spec(args) if vm.firmware == 'efi' return vm if spec.empty? @@ -40,5 +27,25 @@ module ForemanVmwareAdvanced vm end + + private + + def build_efi_spec(args) + spec = {} + + spec[:bootOptions] = RbVmomi::VIM::VirtualMachineBootOptions.new(efiSecureBootEnabled: true) \ + if SETTINGS[:vmware_secureboot] && args[:guest_id]&.start_with?('win') + + if SETTINGS[:vmware_vtpm] + spec[:deviceChange] = [ + { + operation: :add, + device: RbVmomi::VIM::VirtualTPM.new(key: -1) + } + ] + end + + spec + end end end