Yevgeny Zaspitsky has uploaded a new change for review.

Change subject: engine: Add ManagementNetworkUtil
......................................................................

engine: Add ManagementNetworkUtil

Add ManagementNetworkUtil + its test.

Change-Id: I4117f9e97e721c847f5192e1ab724c8d231ce4f3
Signed-off-by: Yevgeny Zaspitsky <[email protected]>
---
A 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/cluster/ManagementNetworkUtil.java
A 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/cluster/ManagementNetworkUtilImpl.java
A 
backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/network/cluster/ManagementNetworkUtilImplTest.java
3 files changed, 213 insertions(+), 0 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/92/32992/9

diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/cluster/ManagementNetworkUtil.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/cluster/ManagementNetworkUtil.java
new file mode 100644
index 0000000..0f9b0e2
--- /dev/null
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/cluster/ManagementNetworkUtil.java
@@ -0,0 +1,39 @@
+package org.ovirt.engine.core.bll.network.cluster;
+
+import org.ovirt.engine.core.common.businessentities.network.Network;
+import org.ovirt.engine.core.compat.Guid;
+
+public interface ManagementNetworkUtil {
+
+    /**
+     * The method retrieves the management network for the given cluster.
+     *
+     * @param clusterId
+     *            the given cluster id
+     * @return {@link Network} that is defined as the management one in the 
given cluster
+     */
+    Network getManagementNetwork(Guid clusterId);
+
+    /**
+     * The method checks if the given network is defined as the management 
network for any cluster.
+     *
+     * @param networkId
+     *            the given network id
+     * @return true if exists a cluster where the network is defined as the 
management one,
+     *         false otherwise
+     */
+    boolean isManagementNetwork(Guid networkId);
+
+    /**
+     * The method checks if the given network is defined as the management 
network for the given cluster cluster.
+     *
+     * @param networkId
+     *            the given network id
+     * @param clusterId
+     *            the given cluster id
+     * @return true if the network is defined as the management one for the 
given cluster,
+     *         false otherwise
+     */
+    boolean isManagementNetwork(Guid networkId, Guid clusterId);
+
+}
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/cluster/ManagementNetworkUtilImpl.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/cluster/ManagementNetworkUtilImpl.java
new file mode 100644
index 0000000..0ca2efd
--- /dev/null
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/cluster/ManagementNetworkUtilImpl.java
@@ -0,0 +1,51 @@
+package org.ovirt.engine.core.bll.network.cluster;
+
+import java.util.List;
+
+import javax.inject.Singleton;
+
+import org.ovirt.engine.core.common.businessentities.network.Network;
+import org.ovirt.engine.core.common.businessentities.network.NetworkCluster;
+import org.ovirt.engine.core.common.businessentities.network.NetworkClusterId;
+import org.ovirt.engine.core.compat.Guid;
+import org.ovirt.engine.core.dal.dbbroker.DbFacadeLocator;
+import org.ovirt.engine.core.dao.network.NetworkClusterDao;
+import org.ovirt.engine.core.dao.network.NetworkDao;
+import org.ovirt.engine.core.utils.linq.LinqUtils;
+import org.ovirt.engine.core.utils.linq.Predicate;
+
+@Singleton
+final class ManagementNetworkUtilImpl implements ManagementNetworkUtil {
+
+    @Override
+    public Network getManagementNetwork(Guid clusterId) {
+        return getNetworkDao().getManagementNetwork(clusterId);
+    }
+
+    @Override
+    public boolean isManagementNetwork(Guid networkId) {
+        final List<NetworkCluster> networkClusters = 
getNetworkClusterDao().getAllForNetwork(networkId);
+        final NetworkCluster managementNetworkCluster =
+                LinqUtils.firstOrNull(networkClusters, new 
Predicate<NetworkCluster>() {
+                    @Override
+                    public boolean eval(NetworkCluster networkCluster) {
+                        return networkCluster.isManagement();
+                    }
+                });
+        return managementNetworkCluster != null;
+    }
+
+    @Override
+    public boolean isManagementNetwork(Guid networkId, Guid clusterId) {
+        final NetworkCluster networkCluster = getNetworkClusterDao().get(new 
NetworkClusterId(clusterId, networkId));
+        return networkCluster != null && networkCluster.isManagement();
+    }
+
+    private NetworkClusterDao getNetworkClusterDao() {
+        return DbFacadeLocator.getDbFacade().getNetworkClusterDao();
+    }
+
+    private NetworkDao getNetworkDao() {
+        return DbFacadeLocator.getDbFacade().getNetworkDao();
+    }
+}
diff --git 
a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/network/cluster/ManagementNetworkUtilImplTest.java
 
b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/network/cluster/ManagementNetworkUtilImplTest.java
new file mode 100644
index 0000000..360aca3
--- /dev/null
+++ 
b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/network/cluster/ManagementNetworkUtilImplTest.java
@@ -0,0 +1,123 @@
+package org.ovirt.engine.core.bll.network.cluster;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertSame;
+import static org.mockito.Matchers.eq;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import java.util.Collections;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.runners.MockitoJUnitRunner;
+import org.ovirt.engine.core.common.businessentities.network.Network;
+import org.ovirt.engine.core.common.businessentities.network.NetworkCluster;
+import org.ovirt.engine.core.common.businessentities.network.NetworkClusterId;
+import org.ovirt.engine.core.compat.Guid;
+import org.ovirt.engine.core.dal.dbbroker.DbFacade;
+import org.ovirt.engine.core.dal.dbbroker.DbFacadeLocator;
+import org.ovirt.engine.core.dao.network.NetworkClusterDao;
+import org.ovirt.engine.core.dao.network.NetworkDao;
+
+@RunWith(MockitoJUnitRunner.class)
+public class ManagementNetworkUtilImplTest {
+
+    private static final Guid TEST_CLUSTER_ID = Guid.newGuid();
+    private static final Guid TEST_NETWORK_ID = Guid.newGuid();
+    private static final NetworkClusterId TEST_NETWORK_CLUSTER_ID =
+            new NetworkClusterId(TEST_CLUSTER_ID, TEST_NETWORK_ID);
+
+    private ManagementNetworkUtil underTest;
+
+    @Mock
+    private DbFacade mockDbFacade;
+    @Mock
+    private NetworkDao mockNetworkDao;
+    @Mock
+    private NetworkClusterDao mockNetworkClusterDao;
+
+    @Mock
+    private Network mockNetwork;
+    @Mock
+    private NetworkCluster mockNetworkCluster;
+
+    @Before
+    public void setUp() throws Exception {
+        when(mockDbFacade.getNetworkDao()).thenReturn(mockNetworkDao);
+        
when(mockDbFacade.getNetworkClusterDao()).thenReturn(mockNetworkClusterDao);
+
+        DbFacadeLocator.setDbFacade(mockDbFacade);
+
+        underTest = new ManagementNetworkUtilImpl();
+    }
+
+    /**
+     * Test method for {@link 
ManagementNetworkUtilImpl#getManagementNetwork(Guid)} .
+     */
+    @Test
+    public void testGetManagementNetwork() {
+        
when(mockNetworkDao.getManagementNetwork(TEST_CLUSTER_ID)).thenReturn(mockNetwork);
+
+        final Network actual = underTest.getManagementNetwork(TEST_CLUSTER_ID);
+
+        assertSame(mockNetwork, actual);
+
+        verify(mockNetworkDao).getManagementNetwork(TEST_CLUSTER_ID);
+    }
+
+    /**
+     * Test method for {@link 
ManagementNetworkUtilImpl#isManagementNetwork(Guid)} .
+     */
+    @Test
+    public void testIsManagementNetworkInAClusterPositive() throws Exception {
+        testIsManagementNetworkInAClusterCommon(true);
+    }
+
+    /**
+     * Test method for {@link 
ManagementNetworkUtilImpl#isManagementNetwork(Guid)} .
+     */
+    @Test
+    public void testIsManagementNetworkInAClusterNegative() throws Exception {
+        testIsManagementNetworkInAClusterCommon(false);
+    }
+
+    private void testIsManagementNetworkInAClusterCommon(boolean 
expectedResult) {
+        when(mockNetworkCluster.isManagement()).thenReturn(expectedResult);
+        when(mockNetworkClusterDao.getAllForNetwork(TEST_NETWORK_ID))
+                .thenReturn(Collections.singletonList(mockNetworkCluster));
+
+        final boolean actual = underTest.isManagementNetwork(TEST_NETWORK_ID);
+
+        assertEquals(expectedResult, actual);
+
+        verify(mockNetworkClusterDao).getAllForNetwork(TEST_NETWORK_ID);
+    }
+
+    /**
+     * Test method for {@link 
ManagementNetworkUtilImpl#isManagementNetwork(Guid, Guid)} .
+     */
+    @Test
+    public void testIsManagementNetworkInGivenClusterPositive() throws 
Exception {
+        testIsManagementNetworkInGivenClusterCommon(true);
+    }
+
+    /**
+     * Test method for {@link 
ManagementNetworkUtilImpl#isManagementNetwork(Guid, Guid)} .
+     */
+    @Test
+    public void testIsManagementNetworkInGivenClusterNegative() throws 
Exception {
+        testIsManagementNetworkInGivenClusterCommon(false);
+    }
+
+    private void testIsManagementNetworkInGivenClusterCommon(boolean 
expectedResult) {
+        
when(mockNetworkClusterDao.get(eq(TEST_NETWORK_CLUSTER_ID))).thenReturn(mockNetworkCluster);
+        when(mockNetworkCluster.isManagement()).thenReturn(expectedResult);
+
+        final boolean actual = underTest.isManagementNetwork(TEST_NETWORK_ID, 
TEST_CLUSTER_ID);
+
+        assertEquals(expectedResult, actual);
+    }
+}


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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I4117f9e97e721c847f5192e1ab724c8d231ce4f3
Gerrit-PatchSet: 9
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Yevgeny Zaspitsky <[email protected]>
Gerrit-Reviewer: Alona Kaplan <[email protected]>
Gerrit-Reviewer: Yevgeny Zaspitsky <[email protected]>
Gerrit-Reviewer: [email protected]
Gerrit-Reviewer: oVirt Jenkins CI Server
_______________________________________________
Engine-patches mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to