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

Reply via email to