Yevgeny Zaspitsky has uploaded a new change for review. Change subject: engine: make UpdateVdsGroupCommand be able to get mgmt network param ......................................................................
engine: make UpdateVdsGroupCommand be able to get mgmt network param Make UpdateVdsGroupCommand client be able to specify management network id when attaching a detached cluster to its new DC. Change-Id: I393fedd9e104acc84eb78ea239b4eb33f77ba802 Signed-off-by: Yevgeny Zaspitsky <yzasp...@redhat.com> --- M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateVdsGroupCommand.java M backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/UpdateVdsGroupCommandTest.java 2 files changed, 50 insertions(+), 13 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/32/37732/1 diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateVdsGroupCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateVdsGroupCommand.java index 81c2250..1785580 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateVdsGroupCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateVdsGroupCommand.java @@ -15,10 +15,10 @@ import org.ovirt.engine.core.common.AuditLogType; import org.ovirt.engine.core.common.FeatureSupported; import org.ovirt.engine.core.common.VdcObjectType; +import org.ovirt.engine.core.common.action.ManagementNetworkOnClusterOperationParameters; import org.ovirt.engine.core.common.action.VdcActionType; import org.ovirt.engine.core.common.action.VdcReturnValueBase; import org.ovirt.engine.core.common.action.VdsActionParameters; -import org.ovirt.engine.core.common.action.VdsGroupOperationParameters; import org.ovirt.engine.core.common.businessentities.ArchitectureType; import org.ovirt.engine.core.common.businessentities.MigrateOnErrorOptions; import org.ovirt.engine.core.common.businessentities.StoragePool; @@ -44,7 +44,7 @@ import org.ovirt.engine.core.dal.dbbroker.auditloghandling.AuditLogableBase; import org.ovirt.engine.core.dao.network.NetworkDao; -public class UpdateVdsGroupCommand<T extends VdsGroupOperationParameters> extends +public class UpdateVdsGroupCommand<T extends ManagementNetworkOnClusterOperationParameters> extends VdsGroupOperationCommandBase<T> implements RenamedEntityInfoProvider{ @Inject @@ -404,11 +404,21 @@ } private boolean validateManagementNetworkAttachement() { - final Network managementNetwork = - getDefaultManagementNetworkFinder().findDefaultManagementNetwork(getVdsGroup().getStoragePoolId()); - if (managementNetwork == null) { - addCanDoActionMessage(VdcBllMessages.ACTION_TYPE_FAILED_DEFAULT_MANAGEMENT_NETWORK_NOT_FOUND); - return false; + final Network managementNetwork; + final Guid managementNetworkId = getParameters().getManagementNetworkId(); + if (managementNetworkId == null) { + managementNetwork = + getDefaultManagementNetworkFinder().findDefaultManagementNetwork(getVdsGroup().getStoragePoolId()); + if (managementNetwork == null) { + addCanDoActionMessage(VdcBllMessages.ACTION_TYPE_FAILED_DEFAULT_MANAGEMENT_NETWORK_NOT_FOUND); + return false; + } + } else { + managementNetwork = getNetworkDAO().get(managementNetworkId); + if (managementNetwork == null) { + addCanDoActionMessage(VdcBllMessages.NETWORK_NOT_EXISTS); + return false; + } } managementNetworkCluster = createManagementNetworkCluster(managementNetwork); diff --git a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/UpdateVdsGroupCommandTest.java b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/UpdateVdsGroupCommandTest.java index 13e0dd8..5d2f51c 100644 --- a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/UpdateVdsGroupCommandTest.java +++ b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/UpdateVdsGroupCommandTest.java @@ -17,7 +17,7 @@ import org.mockito.runners.MockitoJUnitRunner; import org.ovirt.engine.core.bll.network.cluster.DefaultManagementNetworkFinder; import org.ovirt.engine.core.bll.network.cluster.UpdateClusterNetworkClusterValidator; -import org.ovirt.engine.core.common.action.VdsGroupOperationParameters; +import org.ovirt.engine.core.common.action.ManagementNetworkOnClusterOperationParameters; import org.ovirt.engine.core.common.businessentities.ArchitectureType; import org.ovirt.engine.core.common.businessentities.StoragePool; import org.ovirt.engine.core.common.businessentities.VDS; @@ -35,6 +35,7 @@ import org.ovirt.engine.core.dao.VdsGroupDAO; import org.ovirt.engine.core.dao.VmDAO; import org.ovirt.engine.core.dao.gluster.GlusterVolumeDao; +import org.ovirt.engine.core.dao.network.NetworkDao; import org.ovirt.engine.core.utils.MockConfigRule; import static org.junit.Assert.assertFalse; @@ -49,7 +50,6 @@ @RunWith(MockitoJUnitRunner.class) public class UpdateVdsGroupCommandTest { - private static final Version VERSION_1_0 = new Version(1, 0); private static final Version VERSION_1_1 = new Version(1, 1); @@ -85,12 +85,15 @@ @Mock private VmDAO vmDao; @Mock + private NetworkDao networkDao; + @Mock private DefaultManagementNetworkFinder defaultManagementNetworkFinder; @Mock private UpdateClusterNetworkClusterValidator networkClusterValidator; @Mock private Network mockManagementNetwork = createManagementNetwork(); + private Guid managementNetworkId; private Network createManagementNetwork() { final Network network = new Network(); @@ -98,7 +101,7 @@ return network; } - private UpdateVdsGroupCommand<VdsGroupOperationParameters> cmd; + private UpdateVdsGroupCommand<ManagementNetworkOnClusterOperationParameters> cmd; @Test public void nameInUse() { @@ -258,6 +261,22 @@ } @Test + public void detachedClusterMovesToDcWithNonExistentManagementNetwork() { + managementNetworkNotFoundById(); + + createCommandWithDefaultVdsGroup(); + oldGroupIsDetachedDefault(); + setupCpu(); + + canDoActionFailedWithReason(VdcBllMessages.NETWORK_NOT_EXISTS); + } + + private void managementNetworkNotFoundById() { + managementNetworkId = TEST_MANAGEMENT_NETWORK_ID; + when(networkDao.get(TEST_MANAGEMENT_NETWORK_ID)).thenReturn(null); + } + + @Test public void invalidDefaultManagementNetworkAttachement() { newDefaultManagementNetworkFound(); final VdcBllMessages expected = VdcBllMessages.Unassigned; @@ -294,11 +313,13 @@ } private void newDefaultManagementNetworkFound() { + managementNetworkId = null; when(defaultManagementNetworkFinder.findDefaultManagementNetwork(DC_ID1)). thenReturn(mockManagementNetwork); } private void noNewDefaultManagementNetworkFound() { + managementNetworkId = null; when(defaultManagementNetworkFinder.findDefaultManagementNetwork(DC_ID1)). thenReturn(null); } @@ -421,8 +442,13 @@ private void createCommand(final VDSGroup group) { setValidCpuVersionMap(); - VdsGroupOperationParameters params = new VdsGroupOperationParameters(group); - cmd = spy(new UpdateVdsGroupCommand<VdsGroupOperationParameters>(params)); + final ManagementNetworkOnClusterOperationParameters param; + if (managementNetworkId == null) { + param = new ManagementNetworkOnClusterOperationParameters(group); + } else { + param = new ManagementNetworkOnClusterOperationParameters(group, managementNetworkId); + } + cmd = spy(new UpdateVdsGroupCommand<>(param)); doReturn(0).when(cmd).compareCpuLevels(any(VDSGroup.class)); @@ -431,6 +457,7 @@ doReturn(storagePoolDAO).when(cmd).getStoragePoolDAO(); doReturn(glusterVolumeDao).when(cmd).getGlusterVolumeDao(); doReturn(vmDao).when(cmd).getVmDAO(); + doReturn(networkDao).when(cmd).getNetworkDAO(); doReturn(defaultManagementNetworkFinder).when(cmd).getDefaultManagementNetworkFinder(); doReturn(networkClusterValidator).when(cmd).createManagementNetworkClusterValidator(); doReturn(true).when(cmd).validateClusterPolicy(); @@ -443,7 +470,7 @@ when(vdsGroupDAO.get(any(Guid.class))).thenReturn(createDefaultVdsGroup()); when(vdsGroupDAO.getByName(anyString())).thenReturn(createDefaultVdsGroup()); - List<VDSGroup> vdsGroupList = new ArrayList<VDSGroup>(); + List<VDSGroup> vdsGroupList = new ArrayList<>(); vdsGroupList.add(createDefaultVdsGroup()); when(vdsGroupDAO.getByName(anyString(), anyBoolean())).thenReturn(vdsGroupList); } -- To view, visit http://gerrit.ovirt.org/37732 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I393fedd9e104acc84eb78ea239b4eb33f77ba802 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