Yevgeny Zaspitsky has uploaded a new change for review.

Change subject: engine: Add DefaultManagementNetworkFinder
......................................................................

engine: Add DefaultManagementNetworkFinder

Add DefaultManagementNetworkFinder + impl + test.

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


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/75/33275/1

diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/cluster/DefaultManagementNetworkFinder.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/cluster/DefaultManagementNetworkFinder.java
new file mode 100644
index 0000000..c53ea1c
--- /dev/null
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/cluster/DefaultManagementNetworkFinder.java
@@ -0,0 +1,17 @@
+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 DefaultManagementNetworkFinder {
+
+    /**
+     * Finds the default management network for the given DC.
+     *
+     * @param dataCenterId
+     *            data center id
+     * @return
+     */
+    Network findDefaultManagementNetwork(Guid dataCenterId);
+
+}
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/cluster/DefaultManagementNetworkFinderImpl.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/cluster/DefaultManagementNetworkFinderImpl.java
new file mode 100644
index 0000000..a75d6cb
--- /dev/null
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/cluster/DefaultManagementNetworkFinderImpl.java
@@ -0,0 +1,44 @@
+package org.ovirt.engine.core.bll.network.cluster;
+
+import java.util.List;
+
+import javax.inject.Inject;
+import javax.inject.Singleton;
+
+import org.apache.commons.lang.Validate;
+import org.ovirt.engine.core.common.businessentities.network.Network;
+import org.ovirt.engine.core.compat.Guid;
+import org.ovirt.engine.core.dao.network.NetworkDao;
+import org.ovirt.engine.core.utils.NetworkUtils;
+
+@Singleton
+final class DefaultManagementNetworkFinderImpl implements 
DefaultManagementNetworkFinder {
+
+    private final NetworkDao networkDao;
+
+    @Inject
+    DefaultManagementNetworkFinderImpl(NetworkDao networkDao) {
+        Validate.notNull(networkDao, "networkDao cannot be null");
+
+        this.networkDao = networkDao;
+    }
+
+    @Override
+    public Network findDefaultManagementNetwork(Guid dataCenterId) {
+        final Network defaultEngineManagementNetwork = 
findDefaultEngineManagementNetwork(dataCenterId);
+        if (defaultEngineManagementNetwork != null) {
+            return defaultEngineManagementNetwork;
+        }
+        final List<Network> managementNetworks =
+                networkDao.getManagementNetworks(dataCenterId);
+        if (managementNetworks.size() == 1) {
+            return managementNetworks.get(0);
+        }
+        return null;
+    }
+
+    private Network findDefaultEngineManagementNetwork(Guid dataCenterId) {
+        return 
networkDao.getByNameAndDataCenter(NetworkUtils.getDefaultManagementNetworkName(),
+                dataCenterId);
+    }
+}
diff --git 
a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/network/cluster/DefaultManagementNetworkFinderImplTest.java
 
b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/network/cluster/DefaultManagementNetworkFinderImplTest.java
new file mode 100644
index 0000000..0ad7f25
--- /dev/null
+++ 
b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/network/cluster/DefaultManagementNetworkFinderImplTest.java
@@ -0,0 +1,87 @@
+package org.ovirt.engine.core.bll.network.cluster;
+
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertSame;
+import static org.mockito.Mockito.when;
+
+import java.util.Arrays;
+import java.util.Collections;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.InjectMocks;
+import org.mockito.Mock;
+import org.mockito.runners.MockitoJUnitRunner;
+import org.ovirt.engine.core.common.businessentities.network.Network;
+import org.ovirt.engine.core.common.config.Config;
+import org.ovirt.engine.core.common.config.ConfigCommon;
+import org.ovirt.engine.core.common.config.ConfigValues;
+import org.ovirt.engine.core.common.config.IConfigUtilsInterface;
+import org.ovirt.engine.core.compat.Guid;
+import org.ovirt.engine.core.dao.network.NetworkDao;
+
+@RunWith(MockitoJUnitRunner.class)
+public class DefaultManagementNetworkFinderImplTest {
+
+    private static final String DEFAULT_ENGINE_NETWORK_NAME = "test";
+
+    private static final Guid TEST_DC_ID = Guid.Empty;
+
+    @Mock
+    private IConfigUtilsInterface mockConfigUtils;
+    @Mock
+    private NetworkDao mockNetworkDao;
+    @Mock
+    private Network mockNetwork;
+    @Mock
+    private Network mockDefaultEngineNetwork;
+
+    @InjectMocks
+    private DefaultManagementNetworkFinderImpl underTest;
+
+    @Before
+    public void setupConfig() {
+        when(mockConfigUtils.getValue(ConfigValues.DefaultManagementNetwork, 
ConfigCommon.defaultConfigurationVersion)).
+                thenReturn(DEFAULT_ENGINE_NETWORK_NAME);
+        Config.setConfigUtils(mockConfigUtils);
+    }
+
+    @Test
+    public void testFindDefaultManagementNetworkDefault() throws Exception {
+        
when(mockNetworkDao.getByNameAndDataCenter(DEFAULT_ENGINE_NETWORK_NAME, 
TEST_DC_ID)).thenReturn(mockDefaultEngineNetwork);
+
+        final Network actual = 
underTest.findDefaultManagementNetwork(TEST_DC_ID);
+
+        assertSame(actual, mockDefaultEngineNetwork);
+    }
+
+    @Test
+    public void testFindDefaultManagementNetworkNonDefault() throws Exception {
+        when(mockNetworkDao.getManagementNetworks(TEST_DC_ID))
+                .thenReturn(Collections.singletonList(mockNetwork));
+
+        final Network actual = 
underTest.findDefaultManagementNetwork(TEST_DC_ID);
+
+        assertSame(actual, mockNetwork);
+    }
+
+    @Test
+    public void testFindDefaultManagementNetworkMultipleNonDefault() throws 
Exception {
+        when(mockNetworkDao.getManagementNetworks(TEST_DC_ID))
+                .thenReturn(Arrays.asList(mockNetwork, 
mockDefaultEngineNetwork));
+
+        final Network actual = 
underTest.findDefaultManagementNetwork(TEST_DC_ID);
+
+        assertNull(actual);
+    }
+
+    @Test
+    public void testFindDefaultManagementNetworkNotFound() throws Exception {
+
+        final Network actual = 
underTest.findDefaultManagementNetwork(TEST_DC_ID);
+
+        assertNull(actual);
+    }
+
+}


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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I7f8f0d53096523414ceb339d1b43224b540e0f78
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

Reply via email to