Yevgeny Zaspitsky has uploaded a new change for review. Change subject: engine: Update SetupNetworks backend logic ......................................................................
engine: Update SetupNetworks backend logic Update SetupNetworks backend logic to use ManagementNetworkUtils. Change-Id: I5c3160fd24e5cdd71a4739da3cbb2c24f1f617d4 Signed-off-by: Yevgeny Zaspitsky <[email protected]> --- M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/host/SetupNetworksCommand.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/host/SetupNetworksHelper.java M backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/network/host/SetupNetworksHelperTest.java 3 files changed, 55 insertions(+), 24 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/17/33817/14 diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/host/SetupNetworksCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/host/SetupNetworksCommand.java index dae2aaa..e3c9f6a 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/host/SetupNetworksCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/host/SetupNetworksCommand.java @@ -7,11 +7,14 @@ import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeoutException; +import javax.inject.Inject; + import org.ovirt.engine.core.bll.Backend; import org.ovirt.engine.core.bll.NonTransactiveCommandAttribute; import org.ovirt.engine.core.bll.VdsCommand; import org.ovirt.engine.core.bll.VdsHandler; import org.ovirt.engine.core.bll.context.CommandContext; +import org.ovirt.engine.core.bll.network.cluster.ManagementNetworkUtil; import org.ovirt.engine.core.bll.network.cluster.NetworkClusterHelper; import org.ovirt.engine.core.common.action.SetupNetworksParameters; import org.ovirt.engine.core.common.businessentities.VDS; @@ -47,6 +50,10 @@ private static final List<VDSStatus> SUPPORTED_HOST_STATUSES = Arrays.asList(VDSStatus.Maintenance, VDSStatus.Up, VDSStatus.NonOperational); private static final Log log = LogFactory.getLog(SetupNetworksCommand.class); + + @Inject + private ManagementNetworkUtil managementNetworkUtil; + private SetupNetworksHelper helper; public SetupNetworksCommand(T parameters) { @@ -79,7 +86,7 @@ return false; } - helper = new SetupNetworksHelper(getParameters(), vds); + helper = new SetupNetworksHelper(getParameters(), vds, managementNetworkUtil); List<String> validationMessages = helper.validate(); if (!validationMessages.isEmpty()) { diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/host/SetupNetworksHelper.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/host/SetupNetworksHelper.java index f5ca097..e0323ca 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/host/SetupNetworksHelper.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/host/SetupNetworksHelper.java @@ -12,9 +12,11 @@ import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang.ObjectUtils; import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang.Validate; import org.ovirt.engine.core.bll.Backend; import org.ovirt.engine.core.bll.ValidationResult; import org.ovirt.engine.core.bll.network.VmInterfaceManager; +import org.ovirt.engine.core.bll.network.cluster.ManagementNetworkUtil; import org.ovirt.engine.core.bll.validator.NetworkQosValidator; import org.ovirt.engine.core.common.FeatureSupported; import org.ovirt.engine.core.common.action.SetupNetworksParameters; @@ -63,8 +65,15 @@ private boolean hostNetworkQosSupported; private boolean networkCustomPropertiesSupported; - public SetupNetworksHelper(SetupNetworksParameters parameters, VDS vds) { - params = parameters; + private final ManagementNetworkUtil managementNetworkUtil; + + public SetupNetworksHelper(SetupNetworksParameters parameters, + VDS vds, + ManagementNetworkUtil managementNetworkUtil) { + Validate.notNull(managementNetworkUtil, "managementNetworkUtil can not be null"); + + this.managementNetworkUtil = managementNetworkUtil; + this.params = parameters; this.vds = vds; setSupportedFeatures(); @@ -740,7 +749,7 @@ */ private void validateGateway(VdsNetworkInterface iface) { if (StringUtils.isNotEmpty(iface.getGateway()) - && !NetworkUtils.isManagementNetwork(iface.getNetworkName()) + && !managementNetworkUtil.isManagementNetwork(iface.getNetworkName(), vds.getVdsGroupId()) && !FeatureSupported.multipleGatewaysSupported(vds.getVdsGroupCompatibilityVersion())) { addViolation(VdcBllMessages.NETWORK_ATTACH_ILLEGAL_GATEWAY, iface.getNetworkName()); diff --git a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/network/host/SetupNetworksHelperTest.java b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/network/host/SetupNetworksHelperTest.java index 9ae472f..1d7654b 100644 --- a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/network/host/SetupNetworksHelperTest.java +++ b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/network/host/SetupNetworksHelperTest.java @@ -3,6 +3,7 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import static org.mockito.Matchers.any; +import static org.mockito.Matchers.eq; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.spy; @@ -23,9 +24,11 @@ import org.junit.ClassRule; import org.junit.Test; import org.junit.runner.RunWith; +import org.mockito.Matchers; import org.mockito.Mock; import org.mockito.runners.MockitoJUnitRunner; import org.ovirt.engine.core.bll.network.VmInterfaceManager; +import org.ovirt.engine.core.bll.network.cluster.ManagementNetworkUtil; import org.ovirt.engine.core.common.action.SetupNetworksParameters; import org.ovirt.engine.core.common.businessentities.VDS; import org.ovirt.engine.core.common.businessentities.network.Network; @@ -53,8 +56,7 @@ private static final int DEFAULT_MTU = 1500; @ClassRule - public static MockConfigRule mcr = new MockConfigRule(mockConfig(ConfigValues.DefaultManagementNetwork, - MANAGEMENT_NETWORK_NAME), + public static MockConfigRule mcr = new MockConfigRule( mockConfig(ConfigValues.MultipleGatewaysSupported, Version.v3_3.toString(), true), mockConfig(ConfigValues.MultipleGatewaysSupported, Version.v3_2.toString(), false), mockConfig(ConfigValues.HostNetworkQosSupported, Version.v3_2.toString(), false), @@ -87,6 +89,9 @@ @Mock private NetworkQoSDao qosDao; + + @Mock + private ManagementNetworkUtil managementNetworkUtil; /* --- Tests for networks functionality --- */ @@ -292,7 +297,7 @@ @Test public void managementNetworkChangedCorrectly() { - Network net = createNetwork(MANAGEMENT_NETWORK_NAME); + Network net = createManagementNetwork(); mockExistingNetworks(net); VdsNetworkInterface nic = createNicSyncedWithNetwork("nic0", net); nic.setBootProtocol(NetworkBootProtocol.STATIC_IP); @@ -310,7 +315,7 @@ @Test public void managementNetworkChangedCorrectlyWhenDhcpSet() { - Network net = createNetwork(MANAGEMENT_NETWORK_NAME); + Network net = createManagementNetwork(); mockExistingNetworks(net); VdsNetworkInterface nic = createNicSyncedWithNetwork("nic0", net); nic.setBootProtocol(NetworkBootProtocol.DHCP); @@ -327,7 +332,7 @@ } public void managementNetworkChangedCorrectlyWithIpHostname() { - Network net = createNetwork(MANAGEMENT_NETWORK_NAME); + Network net = createManagementNetwork(); mockExistingNetworks(net); VdsNetworkInterface nic = createNicSyncedWithNetwork("nic0", net); nic.setBootProtocol(NetworkBootProtocol.STATIC_IP); @@ -347,7 +352,7 @@ public void managementNetworkChangedIncorrectly() { String hostName = "1.1.1.1"; - Network net = createNetwork(MANAGEMENT_NETWORK_NAME); + Network net = createManagementNetwork(); mockExistingNetworks(net); VdsNetworkInterface nic = createNicSyncedWithNetwork("nic0", net); nic.setBootProtocol(NetworkBootProtocol.STATIC_IP); @@ -366,7 +371,7 @@ @Test public void qosNotSupported() { - Network network = createNetwork(MANAGEMENT_NETWORK_NAME); + Network network = createManagementNetwork(); mockExistingNetworks(network); VdsNetworkInterface iface = createNicSyncedWithNetwork("eth0", network); mockExistingIfaces(iface); @@ -381,7 +386,7 @@ @Test public void qosOverridden() { - Network network = createNetwork(MANAGEMENT_NETWORK_NAME); + Network network = createManagementNetwork(); mockExistingNetworks(network); VdsNetworkInterface iface = createNicSyncedWithNetwork("eth0", network); mockExistingIfaces(iface); @@ -394,7 +399,7 @@ @Test public void qosValuesModified() { - Network network = createNetwork(MANAGEMENT_NETWORK_NAME); + Network network = createManagementNetwork(); mockExistingNetworks(network); VdsNetworkInterface iface = createNicSyncedWithNetwork("eth0", network); iface.setQosOverridden(true); @@ -409,7 +414,7 @@ @Test public void customPropertiesNotSupported() { - Network network = createNetwork(MANAGEMENT_NETWORK_NAME); + Network network = createManagementNetwork(); mockExistingNetworks(network); VdsNetworkInterface iface = createNicSyncedWithNetwork("eth0", network); mockExistingIfaces(iface); @@ -437,7 +442,7 @@ @Test public void customPropertiesNetworkRemoved() { mockExistingNetworks(); - VdsNetworkInterface iface = createNic("eth0", MANAGEMENT_NETWORK_NAME); + VdsNetworkInterface iface = createManagementNetworkNic("eth0"); iface.setCustomProperties(createCustomProperties()); mockExistingIfaces(iface); iface.setNetworkName(null); @@ -449,7 +454,7 @@ @Test public void customPropertiesBadInput() { - Network network = createNetwork(MANAGEMENT_NETWORK_NAME); + Network network = createManagementNetwork(); mockExistingNetworks(network); VdsNetworkInterface iface = createNicSyncedWithNetwork("eth0", network); mockExistingIfaces(iface); @@ -466,7 +471,7 @@ @Test public void customPropertiesModified() { - Network network = createNetwork(MANAGEMENT_NETWORK_NAME); + Network network = createManagementNetwork(); mockExistingNetworks(network); VdsNetworkInterface iface = createNicSyncedWithNetwork("eth0", network); mockExistingIfaces(iface); @@ -484,7 +489,7 @@ @Test public void bridgePropertiesNonVm() { - Network network = createNetwork(MANAGEMENT_NETWORK_NAME); + Network network = createManagementNetwork(); network.setVmNetwork(false); mockExistingNetworks(network); VdsNetworkInterface iface = createNicSyncedWithNetwork("eth0", network); @@ -608,7 +613,7 @@ @Test public void syncNetworkQosNotSupported() { - Network network = createNetwork(MANAGEMENT_NETWORK_NAME); + Network network = createManagementNetwork(); mockExistingNetworks(network); VdsNetworkInterface iface = createNicSyncedWithNetwork("eth0", network); mockExistingIfaces(iface); @@ -702,7 +707,7 @@ @Test public void syncNetworkQosOverridden() { - Network network = createNetwork(MANAGEMENT_NETWORK_NAME); + Network network = createManagementNetwork(); mockExistingNetworks(network); VdsNetworkInterface iface = createNicSyncedWithNetwork("eth0", network); iface.setBridged(!network.isVmNetwork()); @@ -1632,6 +1637,11 @@ return new Network("", "", Guid.newGuid(), networkName, "", "", 0, null, false, 0, true); } + private Network createManagementNetwork() { + when(managementNetworkUtil.isManagementNetwork(eq(MANAGEMENT_NETWORK_NAME), any(Guid.class))).thenReturn(true); + return createNetwork(MANAGEMENT_NETWORK_NAME); + } + /** * @param networkName * The network's name. @@ -1696,6 +1706,11 @@ return createVdsInterface(Guid.newGuid(), nicName, false, null, null, null, networkName, true, null, false, null); } + private VdsNetworkInterface createManagementNetworkNic(String nicName) { + when(managementNetworkUtil.isManagementNetwork(eq(MANAGEMENT_NETWORK_NAME), any(Guid.class))).thenReturn(true); + return createNic(nicName, MANAGEMENT_NETWORK_NAME); + } + /** * @param nicName * The name of the NIC. @@ -1705,8 +1720,8 @@ * The labels to be set for the nic * @return {@link VdsNetworkInterface} representing a regular labeled NIC with the given parameters. */ - private VdsNetworkInterface createLabeledNic(String string, String networkName, String... labels) { - VdsNetworkInterface nic = createNic("nic0", networkName); + private VdsNetworkInterface createLabeledNic(String nicName, String networkName, String ... labels) { + VdsNetworkInterface nic = createNic(nicName, networkName); nic.setLabels(new HashSet<>(Arrays.asList(labels))); return nic; } @@ -1952,10 +1967,10 @@ private SetupNetworksHelper createHelper(SetupNetworksParameters params, VDS vds, Version compatibilityVersion) { when(vds.getVdsGroupCompatibilityVersion()).thenReturn(compatibilityVersion); - SetupNetworksHelper helper = spy(new SetupNetworksHelper(params, vds)); + SetupNetworksHelper helper = spy(new SetupNetworksHelper(params, vds, managementNetworkUtil)); when(helper.getVmInterfaceManager()).thenReturn(vmInterfaceManager); - doReturn(null).when(helper).translateErrorMessages(any(List.class)); + doReturn(null).when(helper).translateErrorMessages(Matchers.<List<String>> any()); DbFacade dbFacade = mock(DbFacade.class); doReturn(dbFacade).when(helper).getDbFacade(); doReturn(interfaceDAO).when(dbFacade).getInterfaceDao(); -- To view, visit http://gerrit.ovirt.org/33817 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I5c3160fd24e5cdd71a4739da3cbb2c24f1f617d4 Gerrit-PatchSet: 14 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Yevgeny Zaspitsky <[email protected]> Gerrit-Reviewer: Alona Kaplan <[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
