Yevgeny Zaspitsky has uploaded a new change for review. Change subject: engine: add audit log warning when display network is set and a running VM is attached to the cluster (for AttachNetworksToCluster command). ......................................................................
engine: add audit log warning when display network is set and a running VM is attached to the cluster (for AttachNetworksToCluster command). 1. Move warning treating code to AttachNetworkToVdsGroupCommand.updateNetworkAttachment method which is called from both commands. 2. Move auditLog method from CommandBase to AuditLogableBase class. Change-Id: I674f7f7a905e3007e9857dd817e125e52d02c448 Bug-Url: https://bugzilla.redhat.com/1078836 Signed-off-by: Yevgeny Zaspitsky <yzasp...@redhat.com> --- M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/CommandBase.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/cluster/AttachNetworkToVdsGroupCommand.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/cluster/AttachNetworksToClusterCommand.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/cluster/helper/DisplayNetworkClusterHelper.java M backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/network/cluster/helper/DisplayNetworkClusterHelperTest.java M backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/dbbroker/auditloghandling/AuditLogableBase.java 6 files changed, 44 insertions(+), 32 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/04/26504/1 diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/CommandBase.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/CommandBase.java index c35a8ed..7dc7f59 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/CommandBase.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/CommandBase.java @@ -77,7 +77,6 @@ import org.ovirt.engine.core.compat.TransactionScopeOption; import org.ovirt.engine.core.compat.Version; import org.ovirt.engine.core.dal.dbbroker.DbFacade; -import org.ovirt.engine.core.dal.dbbroker.auditloghandling.AuditLogDirector; import org.ovirt.engine.core.dal.dbbroker.auditloghandling.AuditLogableBase; import org.ovirt.engine.core.dal.job.ExecutionMessageDirector; import org.ovirt.engine.core.dao.BusinessEntitySnapshotDAO; @@ -635,10 +634,6 @@ auditLog(logable, AuditLogType.ENTITY_RENAMED); } } - } - - public void auditLog(AuditLogableBase logable, AuditLogType logType) { - AuditLogDirector.log(logable, logType); } private void internalEndWithFailure() { diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/cluster/AttachNetworkToVdsGroupCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/cluster/AttachNetworkToVdsGroupCommand.java index 1f26437..d4361c8 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/cluster/AttachNetworkToVdsGroupCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/cluster/AttachNetworkToVdsGroupCommand.java @@ -23,6 +23,8 @@ import org.ovirt.engine.core.common.errors.VdcBllMessages; import org.ovirt.engine.core.compat.Guid; import org.ovirt.engine.core.dal.dbbroker.DbFacade; +import org.ovirt.engine.core.dal.dbbroker.auditloghandling.AuditLogableBase; +import org.ovirt.engine.core.dao.VmDAO; import org.ovirt.engine.core.dao.network.NetworkClusterDao; import org.ovirt.engine.core.utils.NetworkUtils; import org.ovirt.engine.core.utils.transaction.TransactionMethod; @@ -62,21 +64,15 @@ @Override protected void executeCommand() { - final DisplayNetworkClusterHelper displayNetworkClusterHelper = new DisplayNetworkClusterHelper( - getNetworkClusterDAO(), - getVmDAO(), - getNetworkCluster(), - getNetworkName(), - this); - if (displayNetworkClusterHelper.isDisplayToBeUpdated()) { - displayNetworkClusterHelper.warnOnActiveVm(); - } - TransactionSupport.executeInNewTransaction(new TransactionMethod<Void>() { @Override public Void runInTransaction() { - updateNetworkAttachment(getVdsGroupId(), getNetworkCluster(), getNetwork()); + updateNetworkAttachment( + getVdsGroupId(), + getNetworkCluster(), + getNetwork(), + AttachNetworkToVdsGroupCommand.this); return null; } }); @@ -211,7 +207,11 @@ return false; } - public static void updateNetworkAttachment(Guid clusterId, NetworkCluster networkCluster, Network network) { + public static void updateNetworkAttachment( + Guid clusterId, + NetworkCluster networkCluster, + Network network, + AuditLogableBase auditLogableBase) { if (networkExists(clusterId, networkCluster)) { getNetworkClusterDao().update(networkCluster); } else { @@ -223,6 +223,16 @@ } if (network.getCluster().isDisplay()) { + final DisplayNetworkClusterHelper displayNetworkClusterHelper = new DisplayNetworkClusterHelper( + getNetworkClusterDao(), + getVmDao(), + networkCluster, + network.getName(), + auditLogableBase); + if (displayNetworkClusterHelper.isDisplayToBeUpdated()) { + displayNetworkClusterHelper.warnOnActiveVm(); + } + getNetworkClusterDao().setNetworkExclusivelyAsDisplay(clusterId, network.getId()); } @@ -247,4 +257,8 @@ private static NetworkClusterDao getNetworkClusterDao() { return DbFacade.getInstance().getNetworkClusterDao(); } + + private static VmDAO getVmDao() { + return DbFacade.getInstance().getVmDao(); + } } diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/cluster/AttachNetworksToClusterCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/cluster/AttachNetworksToClusterCommand.java index db72a24..cbb8ef4 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/cluster/AttachNetworksToClusterCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/cluster/AttachNetworksToClusterCommand.java @@ -40,9 +40,11 @@ @Override public Void runInTransaction() { for (AttachNetworkToVdsGroupParameter param : getParameters().getClusterNetworksParameters()) { - AttachNetworkToVdsGroupCommand.updateNetworkAttachment(param.getVdsGroupId(), + AttachNetworkToVdsGroupCommand.updateNetworkAttachment( + param.getVdsGroupId(), param.getNetworkCluster(), - param.getNetwork()); + param.getNetwork(), + AttachNetworksToClusterCommand.this); } return null; diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/cluster/helper/DisplayNetworkClusterHelper.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/cluster/helper/DisplayNetworkClusterHelper.java index c3b68df..bd6331d 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/cluster/helper/DisplayNetworkClusterHelper.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/cluster/helper/DisplayNetworkClusterHelper.java @@ -1,10 +1,8 @@ package org.ovirt.engine.core.bll.network.cluster.helper; import org.apache.commons.lang.Validate; -import org.ovirt.engine.core.bll.CommandBase; import org.ovirt.engine.core.bll.common.predicates.ActiveVmAttachedToCluster; import org.ovirt.engine.core.common.AuditLogType; -import org.ovirt.engine.core.common.action.VdcActionParametersBase; import org.ovirt.engine.core.common.businessentities.network.NetworkCluster; import org.ovirt.engine.core.dal.dbbroker.auditloghandling.AuditLogableBase; import org.ovirt.engine.core.dao.VmDAO; @@ -15,7 +13,7 @@ private final NetworkClusterDao networkClusterDao; private final NetworkCluster networkCluster; private final String networkName; - private final CommandBase<? extends VdcActionParametersBase> commandBase; + private final AuditLogableBase auditLogableBase; private final ActiveVmAttachedToCluster activeVmAttachedToClusterPredicate; @@ -24,18 +22,18 @@ VmDAO vmDao, NetworkCluster networkCluster, String networkName, - CommandBase<? extends VdcActionParametersBase> commandBase) { + AuditLogableBase auditLogableBase) { Validate.notNull(networkClusterDao, "networkClusterDao can not be null"); Validate.notNull(vmDao, "vmDao can not be null"); Validate.notNull(networkCluster, "networkCluster can not be null"); Validate.notNull(networkName, "networkName can not be null"); - Validate.notNull(commandBase, "commandBase can not be null"); + Validate.notNull(auditLogableBase, "auditLogableBase can not be null"); this.networkClusterDao = networkClusterDao; this.networkCluster = networkCluster; this.networkName = networkName; - this.commandBase = commandBase; + this.auditLogableBase = auditLogableBase; this.activeVmAttachedToClusterPredicate = new ActiveVmAttachedToCluster(vmDao); } @@ -47,7 +45,7 @@ public void warnOnActiveVm() { if (activeVmAttachedToClusterPredicate.evaluate(networkCluster.getClusterId())) { AuditLogableBase loggable = createLoggable(); - commandBase.auditLog(loggable, AuditLogType.NETWORK_UPDATE_DISPLAY_FOR_CLUSTER_WITH_ACTIVE_VM); + auditLogableBase.auditLog(loggable, AuditLogType.NETWORK_UPDATE_DISPLAY_FOR_CLUSTER_WITH_ACTIVE_VM); } } diff --git a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/network/cluster/helper/DisplayNetworkClusterHelperTest.java b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/network/cluster/helper/DisplayNetworkClusterHelperTest.java index c25a084..23467dd 100644 --- a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/network/cluster/helper/DisplayNetworkClusterHelperTest.java +++ b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/network/cluster/helper/DisplayNetworkClusterHelperTest.java @@ -12,9 +12,7 @@ import org.mockito.Mock; import org.mockito.Mockito; import org.mockito.runners.MockitoJUnitRunner; -import org.ovirt.engine.core.bll.CommandBase; import org.ovirt.engine.core.common.AuditLogType; -import org.ovirt.engine.core.common.action.VdcActionParametersBase; import org.ovirt.engine.core.common.businessentities.VM; import org.ovirt.engine.core.common.businessentities.network.NetworkCluster; import org.ovirt.engine.core.common.businessentities.network.NetworkClusterId; @@ -47,7 +45,7 @@ @Mock private VM mockVm; @Mock - private CommandBase<VdcActionParametersBase> mockCommandBase; + private AuditLogableBase mockAuditLogableBase; @Captor private ArgumentCaptor<AuditLogableBase> auditLogableBaseCaptor; @@ -61,7 +59,7 @@ mockVmDao, mockNetworkCluster, TEST_NETWORK_NAME, - mockCommandBase); + mockAuditLogableBase); Mockito.when(mockNetworkCluster.getId()).thenReturn(TEST_NETWORK_CLUSTER_ID); Mockito.when(mockNetworkClusterDao.get(TEST_NETWORK_CLUSTER_ID)).thenReturn(mockNetworkClusterBeforeUpdate); @@ -132,7 +130,7 @@ testWarnOnActiveVmInner(true); - Mockito.verify(mockCommandBase).auditLog(auditLogableBaseCaptor.capture(), + Mockito.verify(mockAuditLogableBase).auditLog(auditLogableBaseCaptor.capture(), Mockito.same(AuditLogType.NETWORK_UPDATE_DISPLAY_FOR_CLUSTER_WITH_ACTIVE_VM)); final AuditLogableBase actualLoggable = auditLogableBaseCaptor.getValue(); @@ -145,7 +143,7 @@ testWarnOnActiveVmInner(false); - Mockito.verifyZeroInteractions(mockCommandBase); + Mockito.verifyZeroInteractions(mockAuditLogableBase); } private void testWarnOnActiveVmInner(boolean activeVm) { diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/dbbroker/auditloghandling/AuditLogableBase.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/dbbroker/auditloghandling/AuditLogableBase.java index 0a4f752..6bba39a 100644 --- a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/dbbroker/auditloghandling/AuditLogableBase.java +++ b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/dbbroker/auditloghandling/AuditLogableBase.java @@ -761,4 +761,9 @@ setCallStack(ExceptionUtils.getStackTrace(throwable)); } } + + public void auditLog(AuditLogableBase logable, AuditLogType logType) { + AuditLogDirector.log(logable, logType); + } + } -- To view, visit http://gerrit.ovirt.org/26504 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I674f7f7a905e3007e9857dd817e125e52d02c448 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Yevgeny Zaspitsky <yzasp...@redhat.com> _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches