Arik Hadas has uploaded a new change for review.

Change subject: core: simplified RunVmValidator#validateNetworkInterfaces
......................................................................

core: simplified RunVmValidator#validateNetworkInterfaces

Extract the code that gathering the required data for the network
validations from validateNetworkInterfaces method to separate methods.

Change-Id: I21540687322f2fca09b723572f96c3a7ce6a207a
Signed-off-by: Arik Hadas <aha...@redhat.com>
---
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/validator/RunVmValidator.java
1 file changed, 26 insertions(+), 7 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/43/18243/1

diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/validator/RunVmValidator.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/validator/RunVmValidator.java
index 42f44f6..981dc00 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/validator/RunVmValidator.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/validator/RunVmValidator.java
@@ -63,6 +63,9 @@
 
     private List<Disk> cachedVmDisks;
     private List<DiskImage> cachedVmImageDisks;
+    private Set<String> cachedInterfaceNetworkNames;
+    private List<Network> cachedClusterNetworks;
+    private Set<String> cachedClusterNetworksNames;
 
     public RunVmValidator(VM vm, RunVmParams rumVmParam, boolean 
isInternalExecution) {
         this.vm = vm;
@@ -315,22 +318,17 @@
      * @return true if all VM network interfaces are valid
      */
     public ValidationResult validateNetworkInterfaces() {
-        Map<String, VmNetworkInterface> interfaceNetworkMap = 
Entities.vmInterfacesByNetworkName(vm.getInterfaces());
-        Set<String> interfaceNetworkNames = interfaceNetworkMap.keySet();
-        List<Network> clusterNetworks = 
getNetworkDao().getAllForCluster(vm.getVdsGroupId());
-        Set<String> clusterNetworksNames = 
Entities.objectNames(clusterNetworks);
-
         ValidationResult validationResult = validateInterfacesConfigured(vm);
         if (!validationResult.isValid()) {
             return validationResult;
         }
 
-        validationResult = validateInterfacesAttachedToClusterNetworks(vm, 
clusterNetworksNames, interfaceNetworkNames);
+        validationResult = validateInterfacesAttachedToClusterNetworks(vm, 
getClusterNetworksNames(), getInterfaceNetworkNames());
         if (!validationResult.isValid()) {
             return validationResult;
         }
 
-        validationResult = 
validateInterfacesAttachedToVmNetworks(clusterNetworks, interfaceNetworkNames);
+        validationResult = 
validateInterfacesAttachedToVmNetworks(getClusterNetworks(), 
getInterfaceNetworkNames());
         if (!validationResult.isValid()) {
             return validationResult;
         }
@@ -508,4 +506,25 @@
         }
         return cachedVmImageDisks;
     }
+
+    private Set<String> getInterfaceNetworkNames() {
+        if (cachedInterfaceNetworkNames == null) {
+            return 
Entities.vmInterfacesByNetworkName(vm.getInterfaces()).keySet();
+        }
+        return cachedInterfaceNetworkNames;
+    }
+
+    private List<Network> getClusterNetworks() {
+        if (cachedClusterNetworks == null) {
+            cachedClusterNetworks = 
getNetworkDao().getAllForCluster(vm.getVdsGroupId());
+        }
+        return cachedClusterNetworks;
+    }
+
+    private Set<String> getClusterNetworksNames() {
+        if (cachedClusterNetworksNames == null) {
+            cachedClusterNetworksNames = 
Entities.objectNames(getClusterNetworks());
+        }
+        return cachedClusterNetworksNames;
+    }
 }


-- 
To view, visit http://gerrit.ovirt.org/18243
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I21540687322f2fca09b723572f96c3a7ce6a207a
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Arik Hadas <aha...@redhat.com>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to