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
