Yevgeny Zaspitsky has uploaded a new change for review. Change subject: engine: Add vnic profile and network caching to validator ......................................................................
engine: Add vnic profile and network caching to validator Add vnic profile and network caching to VmNicValidator class by lazy-loading them. Change-Id: Ibeaa7af2ac76433ed832ff65514201ece6049478 Signed-off-by: Yevgeny Zaspitsky <[email protected]> --- M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/cluster/NetworkHelper.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/vm/UpdateVmInterfaceCommand.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/validator/VmNicValidator.java 3 files changed, 32 insertions(+), 8 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/00/32600/1 diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/cluster/NetworkHelper.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/cluster/NetworkHelper.java index 92f67e7..509ca69 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/cluster/NetworkHelper.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/cluster/NetworkHelper.java @@ -82,16 +82,20 @@ return getNetworkByVnicProfile(vnicProfile); } - public static Network getNetworkByVnicProfile(VnicProfile vnicProfile) { - if (vnicProfile == null) { + public static VnicProfile getVnicProfile(Guid vnicProfileId) { + if (vnicProfileId == null) { return null; } - Network retVal = null; - if (vnicProfile.getNetworkId() != null) { - retVal = DbFacade.getInstance().getNetworkDao().get(vnicProfile.getNetworkId()); + return DbFacade.getInstance().getVnicProfileDao().get(vnicProfileId); + } + + public static Network getNetworkByVnicProfile(VnicProfile vnicProfile) { + if (vnicProfile == null || vnicProfile.getNetworkId() == null) { + return null; } - return retVal; + + return DbFacade.getInstance().getNetworkDao().get(vnicProfile.getNetworkId()); } public static boolean isNetworkInCluster(Network network, Guid clusterId) { diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/vm/UpdateVmInterfaceCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/vm/UpdateVmInterfaceCommand.java index 87ab472..4ad5eeb 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/vm/UpdateVmInterfaceCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/vm/UpdateVmInterfaceCommand.java @@ -380,7 +380,7 @@ } private boolean isVnicAttachedToExternalNetwork() { - final Network network = NetworkHelper.getNetworkByVnicProfileId(nic.getVnicProfileId()); + final Network network = getNetwork(); return (network != null && network.isExternal()); } } diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/validator/VmNicValidator.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/validator/VmNicValidator.java index 50fcc10..c00b81d 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/validator/VmNicValidator.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/validator/VmNicValidator.java @@ -30,6 +30,10 @@ protected int osId; + private VnicProfile vnicProfile = null; + + private Network network = null; + public VmNicValidator(VmNic nic, Version version) { this.nic = nic; this.version = version; @@ -70,7 +74,7 @@ public ValidationResult profileValid(Guid clusterId) { if (nic.getVnicProfileId() != null) { // Check that the profile exists - VnicProfile vnicProfile = getDbFacade().getVnicProfileDao().get(nic.getVnicProfileId()); + VnicProfile vnicProfile = getVnicProfile(); if (vnicProfile == null) { return new ValidationResult(VdcBllMessages.ACTION_TYPE_FAILED_VNIC_PROFILE_NOT_EXISTS); } @@ -122,4 +126,20 @@ protected DbFacade getDbFacade() { return DbFacade.getInstance(); } + + protected VnicProfile getVnicProfile() { + if (vnicProfile == null) { + vnicProfile = NetworkHelper.getVnicProfile(nic.getVnicProfileId()); + } + + return vnicProfile; + } + + protected Network getNetwork() { + if (network == null) { + network = getNetworkByVnicProfile(getVnicProfile()); + } + + return network; + } } -- To view, visit http://gerrit.ovirt.org/32600 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Ibeaa7af2ac76433ed832ff65514201ece6049478 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Yevgeny Zaspitsky <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
