From b24cb7889bc19ab6ba7702d1782c0b578b841cdc Mon Sep 17 00:00:00 2001
From: Alexander Olofsson <alexander.olofsson@liu.se>
Date: Mon, 21 Nov 2022 09:40:50 +0100
Subject: [PATCH] Slight improvement to code flow

---
 .rubocop.yml                                  |  2 ++
 .../vmware_extensions.rb                      | 35 +++++++++++--------
 2 files changed, 23 insertions(+), 14 deletions(-)

diff --git a/.rubocop.yml b/.rubocop.yml
index a420c76..64ee3b7 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 ab1e6c3..0e3490b 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
-- 
GitLab