Lior Vernia has uploaded a new change for review. Change subject: engine,webadmin: Replace references to NetworkQoS with HostNetworkQos ......................................................................
engine,webadmin: Replace references to NetworkQoS with HostNetworkQos Since now HostNetworkQos is a separate entity from NetworkQoS (as it has different attributes), this updates the relevant references to the entity itself and to its corresponding DAO and validator, as well as related frontend dialogs. Change-Id: Ia6a625d8c5b554cb525efc41d31013df0de2a146 Signed-off-by: Lior Vernia <[email protected]> --- M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/dc/UpdateNetworkCommand.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/host/GetVdsInterfacesByVdsIdQuery.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/host/SetupNetworksHelper.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/validator/NetworkValidator.java M backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/network/host/SetupNetworksHelperTest.java M backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/validator/NetworkQosValidatorTest.java M backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/network/VdsNetworkInterface.java M backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/network/InterfaceDaoDbFacadeImpl.java M backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/network/InterfaceDaoTest.java M backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/NetworkUtils.java M backend/manager/modules/utils/src/test/java/org/ovirt/engine/core/utils/NetworkUtilsTest.java M backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/HostNetworkTopologyPersisterImpl.java M backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/SetupNetworksVDSCommand.java M backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VdsBrokerObjectsBuilder.java M backend/manager/modules/vdsbroker/src/test/java/org/ovirt/engine/core/vdsbroker/vdsbroker/SetupNetworksVDSCommandTest.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/Linq.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/dataprovider/AsyncDataProvider.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/NetworkModel.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/HostInterfaceModel.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/HostSetupNetworksModel.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/NetworkParameters.java M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/uicommon/NetworkModule.java M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/AbstractNetworkPopupView.java M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/AbstractNetworkPopupView.ui.xml M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/HostInterfacePopupView.java M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/HostInterfacePopupView.ui.xml 26 files changed, 193 insertions(+), 192 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/31/34131/1 diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/dc/UpdateNetworkCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/dc/UpdateNetworkCommand.java index 7e51dcc..2abd35c 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/dc/UpdateNetworkCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/dc/UpdateNetworkCommand.java @@ -458,7 +458,7 @@ for (VdsNetworkInterface nic : nics) { if (!NetworkUtils.isNetworkInSync(nic, getNetwork(), - getDbFacade().getNetworkQosDao().get(getNetwork().getQosId()))) { + getDbFacade().getHostNetworkQosDao().get(getNetwork().getQosId()))) { hostIdsToSync.add(nic.getVdsId()); } } diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/host/GetVdsInterfacesByVdsIdQuery.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/host/GetVdsInterfacesByVdsIdQuery.java index da08f1f..102c537 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/host/GetVdsInterfacesByVdsIdQuery.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/host/GetVdsInterfacesByVdsIdQuery.java @@ -11,7 +11,7 @@ import org.ovirt.engine.core.common.businessentities.network.Network; import org.ovirt.engine.core.common.businessentities.network.VdsNetworkInterface; import org.ovirt.engine.core.common.queries.IdQueryParameters; -import org.ovirt.engine.core.dao.network.NetworkQoSDao; +import org.ovirt.engine.core.dao.network.HostNetworkQosDao; import org.ovirt.engine.core.utils.NetworkUtils; import org.ovirt.engine.core.utils.linq.LinqUtils; import org.ovirt.engine.core.utils.linq.Predicate; @@ -48,7 +48,7 @@ if (!list.isEmpty()) { VdsStatic vdsStatic = getDbFacade().getVdsStaticDao().get(getParameters().getId()); - NetworkQoSDao qosDao = getDbFacade().getNetworkQosDao(); + HostNetworkQosDao qosDao = getDbFacade().getHostNetworkQosDao(); Map<String, Network> networks = Entities.entitiesByName( getDbFacade().getNetworkDao().getAllForCluster(vdsStatic.getVdsGroupId())); for (final VdsNetworkInterface i : list) { 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 0c6f834..7ec2715 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 @@ -15,7 +15,7 @@ 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.validator.NetworkQosValidator; +import org.ovirt.engine.core.bll.validator.HostNetworkQosValidator; import org.ovirt.engine.core.common.FeatureSupported; import org.ovirt.engine.core.common.action.SetupNetworksParameters; import org.ovirt.engine.core.common.businessentities.Entities; @@ -29,7 +29,7 @@ import org.ovirt.engine.core.common.utils.customprop.SimpleCustomPropertiesUtil; import org.ovirt.engine.core.common.utils.customprop.ValidationError; import org.ovirt.engine.core.dal.dbbroker.DbFacade; -import org.ovirt.engine.core.dao.network.NetworkQoSDao; +import org.ovirt.engine.core.dao.network.HostNetworkQosDao; import org.ovirt.engine.core.utils.NetworkUtils; import org.ovirt.engine.core.utils.log.Log; import org.ovirt.engine.core.utils.log.LogFactory; @@ -256,12 +256,12 @@ addViolation(VdcBllMessages.ACTION_TYPE_FAILED_HOST_NETWORK_QOS_NOT_SUPPORTED, iface.getNetworkName()); } - NetworkQosValidator qosValidator = new NetworkQosValidator(iface.getQos()); + HostNetworkQosValidator qosValidator = new HostNetworkQosValidator(iface.getQos()); if (qosValidator.requiredValuesPresent() != ValidationResult.VALID) { addViolation(VdcBllMessages.ACTION_TYPE_FAILED_HOST_NETWORK_QOS_SETUP_NETWORKS_MISSING_VALUES, iface.getNetworkName()); } - if (qosValidator.peakConsistentWithAverage() != ValidationResult.VALID) { + if (qosValidator.valuesConsistent() != ValidationResult.VALID) { addViolation(VdcBllMessages.ACTION_TYPE_FAILED_HOST_NETWORK_QOS_SETUP_NETWORKS_INCONSISTENT_VALUES, iface.getNetworkName()); } @@ -397,7 +397,7 @@ if (existingIfaces == null) { List<VdsNetworkInterface> ifaces = getDbFacade().getInterfaceDao().getAllInterfacesForVds(params.getVdsId()); - NetworkQoSDao qosDao = getDbFacade().getNetworkQosDao(); + HostNetworkQosDao qosDao = getDbFacade().getHostNetworkQosDao(); for (VdsNetworkInterface iface : ifaces) { Network network = getExistingClusterNetworks().get(iface.getNetworkName()); diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/validator/NetworkValidator.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/validator/NetworkValidator.java index c6e4783..8202c81 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/validator/NetworkValidator.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/validator/NetworkValidator.java @@ -195,7 +195,8 @@ * belongs to the wrong DC. */ public ValidationResult qosExistsInDc() { - NetworkQosValidator qosValidator = new NetworkQosValidator(getDbFacade().getNetworkQosDao().get(network.getQosId())); + HostNetworkQosValidator qosValidator = + new HostNetworkQosValidator(getDbFacade().getHostNetworkQosDao().get(network.getQosId())); ValidationResult res = qosValidator.qosExists(); return (res == ValidationResult.VALID) ? qosValidator.consistentDataCenter() : res; } 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 4af6322..8cca010 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 @@ -28,9 +28,9 @@ import org.ovirt.engine.core.bll.network.VmInterfaceManager; import org.ovirt.engine.core.common.action.SetupNetworksParameters; import org.ovirt.engine.core.common.businessentities.VDS; +import org.ovirt.engine.core.common.businessentities.network.HostNetworkQos; import org.ovirt.engine.core.common.businessentities.network.Network; import org.ovirt.engine.core.common.businessentities.network.NetworkBootProtocol; -import org.ovirt.engine.core.common.businessentities.network.NetworkQoS; import org.ovirt.engine.core.common.businessentities.network.ProviderNetwork; import org.ovirt.engine.core.common.businessentities.network.VdsNetworkInterface; import org.ovirt.engine.core.common.config.ConfigValues; @@ -39,9 +39,9 @@ import org.ovirt.engine.core.compat.Version; import org.ovirt.engine.core.dal.dbbroker.DbFacade; import org.ovirt.engine.core.dao.VdsDAO; +import org.ovirt.engine.core.dao.network.HostNetworkQosDao; import org.ovirt.engine.core.dao.network.InterfaceDao; import org.ovirt.engine.core.dao.network.NetworkDao; -import org.ovirt.engine.core.dao.network.NetworkQoSDao; import org.ovirt.engine.core.utils.MockConfigRule; import org.ovirt.engine.core.utils.RandomUtils; @@ -86,7 +86,7 @@ private InterfaceDao interfaceDAO; @Mock - private NetworkQoSDao qosDao; + private HostNetworkQosDao qosDao; /* --- Tests for networks functionality --- */ @@ -1891,11 +1891,11 @@ * * @return the QoS entity. */ - private NetworkQoS createQos() { - NetworkQoS qos = new NetworkQoS(); - qos.setInboundAverage(30); - qos.setInboundPeak(30); - qos.setInboundBurst(30); + private HostNetworkQos createQos() { + HostNetworkQos qos = new HostNetworkQos(); + qos.setOutAverageLinkshare(30); + qos.setOutAverageUpperlimit(30); + qos.setOutAverageRealtime(30); return qos; } @@ -1961,7 +1961,7 @@ doReturn(interfaceDAO).when(dbFacade).getInterfaceDao(); doReturn(mock(VdsDAO.class)).when(dbFacade).getVdsDao(); doReturn(networkDAO).when(dbFacade).getNetworkDao(); - doReturn(qosDao).when(dbFacade).getNetworkQosDao(); + doReturn(qosDao).when(dbFacade).getHostNetworkQosDao(); return helper; } diff --git a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/validator/NetworkQosValidatorTest.java b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/validator/NetworkQosValidatorTest.java index 1947762..b8514af 100644 --- a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/validator/NetworkQosValidatorTest.java +++ b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/validator/NetworkQosValidatorTest.java @@ -21,9 +21,7 @@ private static final Guid DEFAULT_GUID = Guid.newGuid(); private static final Guid OTHER_GUID = Guid.newGuid(); - private static final Integer BANDWIDTH_LOW = 10; - private static final Integer BANDWIDTH_MEDIUM = 100; - private static final Integer BANDWIDTH_HIGH = 1000; + private static final Integer BANDWIDTH = 100; private NetworkQoS qos; private NetworkQoS oldQos; @@ -137,145 +135,107 @@ @Test public void allValuesPresent() { - qos.setInboundAverage(BANDWIDTH_MEDIUM); - qos.setInboundPeak(BANDWIDTH_MEDIUM); - qos.setInboundBurst(BANDWIDTH_MEDIUM); - qos.setOutboundAverage(BANDWIDTH_MEDIUM); - qos.setOutboundPeak(BANDWIDTH_MEDIUM); - qos.setOutboundBurst(BANDWIDTH_MEDIUM); + qos.setInboundAverage(BANDWIDTH); + qos.setInboundPeak(BANDWIDTH); + qos.setInboundBurst(BANDWIDTH); + qos.setOutboundAverage(BANDWIDTH); + qos.setOutboundPeak(BANDWIDTH); + qos.setOutboundBurst(BANDWIDTH); valuesPresentTest(isValid()); } @Test public void allInboundValuesPresent() { - qos.setInboundAverage(BANDWIDTH_MEDIUM); - qos.setInboundPeak(BANDWIDTH_MEDIUM); - qos.setInboundBurst(BANDWIDTH_MEDIUM); + qos.setInboundAverage(BANDWIDTH); + qos.setInboundPeak(BANDWIDTH); + qos.setInboundBurst(BANDWIDTH); valuesPresentTest(isValid()); } @Test public void allOutboundValuesPresent() { - qos.setOutboundAverage(BANDWIDTH_MEDIUM); - qos.setOutboundPeak(BANDWIDTH_MEDIUM); - qos.setOutboundBurst(BANDWIDTH_MEDIUM); + qos.setOutboundAverage(BANDWIDTH); + qos.setOutboundPeak(BANDWIDTH); + qos.setOutboundBurst(BANDWIDTH); valuesPresentTest(isValid()); } @Test public void onlyInboundAveragePresent() { - qos.setInboundAverage(BANDWIDTH_MEDIUM); + qos.setInboundAverage(BANDWIDTH); valuesPresentTest(failsWith(VdcBllMessages.ACTION_TYPE_FAILED_NETWORK_QOS_MISSING_VALUES)); } @Test public void onlyInboundPeakPresent() { - qos.setInboundPeak(BANDWIDTH_MEDIUM); + qos.setInboundPeak(BANDWIDTH); valuesPresentTest(failsWith(VdcBllMessages.ACTION_TYPE_FAILED_NETWORK_QOS_MISSING_VALUES)); } @Test public void onlyInboundBurstPresent() { - qos.setInboundBurst(BANDWIDTH_MEDIUM); + qos.setInboundBurst(BANDWIDTH); valuesPresentTest(failsWith(VdcBllMessages.ACTION_TYPE_FAILED_NETWORK_QOS_MISSING_VALUES)); } @Test public void onlyOutboundAveragePresent() { - qos.setOutboundAverage(BANDWIDTH_MEDIUM); + qos.setOutboundAverage(BANDWIDTH); valuesPresentTest(failsWith(VdcBllMessages.ACTION_TYPE_FAILED_NETWORK_QOS_MISSING_VALUES)); } @Test public void onlyOutboundPeakPresent() { - qos.setOutboundPeak(BANDWIDTH_MEDIUM); + qos.setOutboundPeak(BANDWIDTH); valuesPresentTest(failsWith(VdcBllMessages.ACTION_TYPE_FAILED_NETWORK_QOS_MISSING_VALUES)); } @Test public void onlyOutboundBurstPresent() { - qos.setOutboundBurst(BANDWIDTH_MEDIUM); + qos.setOutboundBurst(BANDWIDTH); valuesPresentTest(failsWith(VdcBllMessages.ACTION_TYPE_FAILED_NETWORK_QOS_MISSING_VALUES)); } @Test public void inboundBurstMissing() { - qos.setInboundAverage(BANDWIDTH_MEDIUM); - qos.setInboundPeak(BANDWIDTH_MEDIUM); + qos.setInboundAverage(BANDWIDTH); + qos.setInboundPeak(BANDWIDTH); valuesPresentTest(failsWith(VdcBllMessages.ACTION_TYPE_FAILED_NETWORK_QOS_MISSING_VALUES)); } @Test public void inboundPeakMissing() { - qos.setInboundBurst(BANDWIDTH_MEDIUM); - qos.setInboundAverage(BANDWIDTH_MEDIUM); + qos.setInboundBurst(BANDWIDTH); + qos.setInboundAverage(BANDWIDTH); valuesPresentTest(failsWith(VdcBllMessages.ACTION_TYPE_FAILED_NETWORK_QOS_MISSING_VALUES)); } @Test public void inboundAverageMissing() { - qos.setInboundPeak(BANDWIDTH_MEDIUM); - qos.setInboundBurst(BANDWIDTH_MEDIUM); + qos.setInboundPeak(BANDWIDTH); + qos.setInboundBurst(BANDWIDTH); valuesPresentTest(failsWith(VdcBllMessages.ACTION_TYPE_FAILED_NETWORK_QOS_MISSING_VALUES)); } @Test public void outboundBurstMissing() { - qos.setOutboundAverage(BANDWIDTH_MEDIUM); - qos.setOutboundPeak(BANDWIDTH_MEDIUM); + qos.setOutboundAverage(BANDWIDTH); + qos.setOutboundPeak(BANDWIDTH); valuesPresentTest(failsWith(VdcBllMessages.ACTION_TYPE_FAILED_NETWORK_QOS_MISSING_VALUES)); } @Test public void outboundPeakMissing() { - qos.setOutboundBurst(BANDWIDTH_MEDIUM); - qos.setOutboundAverage(BANDWIDTH_MEDIUM); + qos.setOutboundBurst(BANDWIDTH); + qos.setOutboundAverage(BANDWIDTH); valuesPresentTest(failsWith(VdcBllMessages.ACTION_TYPE_FAILED_NETWORK_QOS_MISSING_VALUES)); } @Test public void outboundAverageMissing() { - qos.setOutboundPeak(BANDWIDTH_MEDIUM); - qos.setOutboundBurst(BANDWIDTH_MEDIUM); + qos.setOutboundPeak(BANDWIDTH); + qos.setOutboundBurst(BANDWIDTH); valuesPresentTest(failsWith(VdcBllMessages.ACTION_TYPE_FAILED_NETWORK_QOS_MISSING_VALUES)); } - private void peakConsistentWithAverageTest(Matcher<ValidationResult> matcher) { - qos.setInboundAverage(BANDWIDTH_MEDIUM); - qos.setOutboundAverage(BANDWIDTH_MEDIUM); - assertThat(validator.peakConsistentWithAverage(), matcher); - } - - @Test - public void peakConsistentWithAverageNullInput() { - assertThat(nullValidator.peakConsistentWithAverage(), isValid()); - } - - @Test - public void peakHigherThanAverage() { - qos.setInboundPeak(BANDWIDTH_HIGH); - qos.setOutboundPeak(BANDWIDTH_HIGH); - peakConsistentWithAverageTest(isValid()); - } - - @Test - public void peakEqualToAverage() { - qos.setInboundPeak(BANDWIDTH_MEDIUM); - qos.setOutboundPeak(BANDWIDTH_MEDIUM); - peakConsistentWithAverageTest(isValid()); - } - - @Test - public void inboundPeakLowerThanAverage() { - qos.setInboundPeak(BANDWIDTH_LOW); - qos.setOutboundPeak(BANDWIDTH_HIGH); - peakConsistentWithAverageTest(failsWith(VdcBllMessages.ACTION_TYPE_FAILED_NETWORK_QOS_PEAK_LOWER_THAN_AVERAGE)); - } - - @Test - public void outboundPeakLowerThanAverage() { - qos.setInboundPeak(BANDWIDTH_HIGH); - qos.setOutboundPeak(BANDWIDTH_LOW); - peakConsistentWithAverageTest(failsWith(VdcBllMessages.ACTION_TYPE_FAILED_NETWORK_QOS_PEAK_LOWER_THAN_AVERAGE)); - } } diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/network/VdsNetworkInterface.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/network/VdsNetworkInterface.java index 7d1e8ee..f468bdb 100644 --- a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/network/VdsNetworkInterface.java +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/network/VdsNetworkInterface.java @@ -45,7 +45,7 @@ private int mtu; private boolean bridged; private NetworkImplementationDetails networkImplementationDetails; - private NetworkQoS qos; + private HostNetworkQos qos; private boolean qosOverridden; private Map<String, String> customProperties; @@ -362,14 +362,14 @@ /** * Gets the QoS configured on this interface, which overrides the one possibly configured on the network. */ - public NetworkQoS getQos() { + public HostNetworkQos getQos() { return qos; } /** * Sets the QoS configured on this interface, which overrides the one possibly configured on the network. */ - public void setQos(NetworkQoS qos) { + public void setQos(HostNetworkQos qos) { this.qos = qos; } diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/network/InterfaceDaoDbFacadeImpl.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/network/InterfaceDaoDbFacadeImpl.java index e3f37a1..02c1c3e 100644 --- a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/network/InterfaceDaoDbFacadeImpl.java +++ b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/network/InterfaceDaoDbFacadeImpl.java @@ -12,9 +12,9 @@ import java.util.Set; import org.ovirt.engine.core.common.businessentities.network.Bond; +import org.ovirt.engine.core.common.businessentities.network.HostNetworkQos; import org.ovirt.engine.core.common.businessentities.network.InterfaceStatus; import org.ovirt.engine.core.common.businessentities.network.NetworkBootProtocol; -import org.ovirt.engine.core.common.businessentities.network.NetworkQoS; import org.ovirt.engine.core.common.businessentities.network.Nic; import org.ovirt.engine.core.common.businessentities.network.VdsNetworkInterface; import org.ovirt.engine.core.common.businessentities.network.VdsNetworkStatistics; @@ -134,10 +134,10 @@ } private void persistQosChanges(VdsNetworkInterface entity) { - NetworkQoSDao qosDao = DbFacade.getInstance().getNetworkQosDao(); + HostNetworkQosDao qosDao = DbFacade.getInstance().getHostNetworkQosDao(); Guid id = entity.getId(); - NetworkQoS oldQos = qosDao.get(id); - NetworkQoS qos = entity.getQos(); + HostNetworkQos oldQos = qosDao.get(id); + HostNetworkQos qos = entity.getQos(); if (qos == null) { if (oldQos != null) { qosDao.remove(id); @@ -318,7 +318,7 @@ entity.setBootProtocol(NetworkBootProtocol.forValue(rs.getInt("boot_protocol"))); entity.setMtu(rs.getInt("mtu")); entity.setBridged(rs.getBoolean("bridged")); - entity.setQos(DbFacade.getInstance().getNetworkQosDao().get(entity.getId())); + entity.setQos(DbFacade.getInstance().getHostNetworkQosDao().get(entity.getId())); entity.setQosOverridden(rs.getBoolean("qos_overridden")); entity.setLabels(SerializationFactory.getDeserializer().deserialize(rs.getString("labels"), HashSet.class)); diff --git a/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/network/InterfaceDaoTest.java b/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/network/InterfaceDaoTest.java index f482805..8942dcb 100644 --- a/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/network/InterfaceDaoTest.java +++ b/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/network/InterfaceDaoTest.java @@ -14,9 +14,9 @@ import java.util.Set; import org.junit.Test; +import org.ovirt.engine.core.common.businessentities.network.HostNetworkQos; import org.ovirt.engine.core.common.businessentities.network.InterfaceStatus; import org.ovirt.engine.core.common.businessentities.network.NetworkBootProtocol; -import org.ovirt.engine.core.common.businessentities.network.NetworkQoS; import org.ovirt.engine.core.common.businessentities.network.VdsNetworkInterface; import org.ovirt.engine.core.common.businessentities.network.VdsNetworkStatistics; import org.ovirt.engine.core.compat.Guid; @@ -35,7 +35,7 @@ private VdsNetworkInterface existingVdsInterface; private VdsNetworkInterface newVdsInterface; private VdsNetworkStatistics newVdsStatistics; - private NetworkQoS newQos; + private HostNetworkQos newQos; @Override public void setUp() throws Exception { @@ -44,10 +44,10 @@ dao = dbFacade.getInterfaceDao(); existingVdsInterface = dao.get(FixturesTool.VDS_NETWORK_INTERFACE); - newQos = new NetworkQoS(); - newQos.setInboundAverage(30); - newQos.setInboundPeak(30); - newQos.setInboundBurst(30); + newQos = new HostNetworkQos(); + newQos.setOutAverageLinkshare(30); + newQos.setOutAverageUpperlimit(30); + newQos.setOutAverageRealtime(30); newVdsInterface = new VdsNetworkInterface(); newVdsInterface.setStatistics(new VdsNetworkStatistics()); diff --git a/backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/NetworkUtils.java b/backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/NetworkUtils.java index 4badf9e..749483c 100644 --- a/backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/NetworkUtils.java +++ b/backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/NetworkUtils.java @@ -12,8 +12,8 @@ import org.apache.commons.codec.digest.DigestUtils; import org.apache.commons.lang.StringUtils; import org.ovirt.engine.core.common.businessentities.VDS; +import org.ovirt.engine.core.common.businessentities.network.HostNetworkQos; import org.ovirt.engine.core.common.businessentities.network.Network; -import org.ovirt.engine.core.common.businessentities.network.NetworkQoS; import org.ovirt.engine.core.common.businessentities.network.VdsNetworkInterface; import org.ovirt.engine.core.common.config.Config; import org.ovirt.engine.core.common.config.ConfigValues; @@ -119,7 +119,7 @@ */ public static VdsNetworkInterface.NetworkImplementationDetails calculateNetworkImplementationDetails( Network network, - NetworkQoS qos, + HostNetworkQos qos, VdsNetworkInterface iface) { if (StringUtils.isEmpty(iface.getNetworkName())) { return null; @@ -136,15 +136,15 @@ } } - public static boolean isNetworkInSync(VdsNetworkInterface iface, Network network, NetworkQoS qos) { + public static boolean isNetworkInSync(VdsNetworkInterface iface, Network network, HostNetworkQos qos) { return ((network.getMtu() == 0 && iface.getMtu() == getDefaultMtu()) || iface.getMtu() == network.getMtu()) && Objects.equals(iface.getVlanId(), network.getVlanId()) && iface.isBridged() == network.isVmNetwork() && (isQosInSync(iface, qos) || iface.isQosOverridden()); } - private static boolean isQosInSync(VdsNetworkInterface iface, NetworkQoS networkQos) { - NetworkQoS ifaceQos = iface.getQos(); + private static boolean isQosInSync(VdsNetworkInterface iface, HostNetworkQos networkQos) { + HostNetworkQos ifaceQos = iface.getQos(); if (ifaceQos == networkQos) { return true; } else if (ifaceQos == null || networkQos == null) { diff --git a/backend/manager/modules/utils/src/test/java/org/ovirt/engine/core/utils/NetworkUtilsTest.java b/backend/manager/modules/utils/src/test/java/org/ovirt/engine/core/utils/NetworkUtilsTest.java index 180144a..ab01660 100644 --- a/backend/manager/modules/utils/src/test/java/org/ovirt/engine/core/utils/NetworkUtilsTest.java +++ b/backend/manager/modules/utils/src/test/java/org/ovirt/engine/core/utils/NetworkUtilsTest.java @@ -8,8 +8,8 @@ import org.junit.Rule; import org.junit.Test; +import org.ovirt.engine.core.common.businessentities.network.HostNetworkQos; import org.ovirt.engine.core.common.businessentities.network.Network; -import org.ovirt.engine.core.common.businessentities.network.NetworkQoS; import org.ovirt.engine.core.common.businessentities.network.Nic; import org.ovirt.engine.core.common.businessentities.network.VdsNetworkInterface; import org.ovirt.engine.core.common.businessentities.network.VdsNetworkInterface.NetworkImplementationDetails; @@ -180,10 +180,10 @@ @Test public void calculateNetworkImplementationDetailsNetworkQosOutOfSync() throws Exception { VdsNetworkInterface iface = createNetworkDevice(); - NetworkQoS qos = createQos(); - qos.setOutboundAverage(30); - qos.setOutboundPeak(30); - qos.setOutboundBurst(30); + HostNetworkQos qos = new HostNetworkQos(); + qos.setOutAverageLinkshare(60); + qos.setOutAverageUpperlimit(60); + qos.setOutAverageRealtime(60); calculateNetworkImplementationDetailsAndAssertSync(iface, false, iface.getNetworkName(), @@ -203,7 +203,7 @@ iface.isBridged(), iface.getMtu(), iface.getVlanId(), - new NetworkQoS()); + new HostNetworkQos()); } @Test @@ -296,7 +296,7 @@ boolean vmNet, int mtu, int vlanId, - NetworkQoS qos) { + HostNetworkQos qos) { Network network = createNetwork(networkName, vmNet, mtu, vlanId); NetworkImplementationDetails networkImplementationDetails = @@ -330,11 +330,11 @@ return iface; } - private NetworkQoS createQos() { - NetworkQoS qos = new NetworkQoS(); - qos.setInboundAverage(30); - qos.setInboundPeak(30); - qos.setInboundBurst(30); + private HostNetworkQos createQos() { + HostNetworkQos qos = new HostNetworkQos(); + qos.setOutAverageLinkshare(30); + qos.setOutAverageUpperlimit(30); + qos.setOutAverageRealtime(30); return qos; } } diff --git a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/HostNetworkTopologyPersisterImpl.java b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/HostNetworkTopologyPersisterImpl.java index cb7676f..064780a 100644 --- a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/HostNetworkTopologyPersisterImpl.java +++ b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/HostNetworkTopologyPersisterImpl.java @@ -22,8 +22,8 @@ import org.ovirt.engine.core.dal.dbbroker.DbFacade; import org.ovirt.engine.core.dal.dbbroker.auditloghandling.AuditLogDirector; import org.ovirt.engine.core.dal.dbbroker.auditloghandling.AuditLogableBase; +import org.ovirt.engine.core.dao.network.HostNetworkQosDao; import org.ovirt.engine.core.dao.network.InterfaceDao; -import org.ovirt.engine.core.dao.network.NetworkQoSDao; import org.ovirt.engine.core.utils.NetworkUtils; import org.ovirt.engine.core.utils.linq.LinqUtils; import org.ovirt.engine.core.vdsbroker.ResourceManager; @@ -180,7 +180,7 @@ private void logUnsynchronizedNetworks(VDS host, Map<String, Network> networks) { List<String> networkNames = new ArrayList<>(); - NetworkQoSDao qosDao = DbFacade.getInstance().getNetworkQosDao(); + HostNetworkQosDao qosDao = DbFacade.getInstance().getHostNetworkQosDao(); for (VdsNetworkInterface iface : host.getInterfaces()) { Network network = networks.get(iface.getNetworkName()); diff --git a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/SetupNetworksVDSCommand.java b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/SetupNetworksVDSCommand.java index df14d2f..2625fe0 100644 --- a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/SetupNetworksVDSCommand.java +++ b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/SetupNetworksVDSCommand.java @@ -15,7 +15,7 @@ import org.ovirt.engine.core.common.businessentities.network.VdsNetworkInterface; import org.ovirt.engine.core.common.vdscommands.SetupNetworksVdsCommandParameters; import org.ovirt.engine.core.compat.Version; -import org.ovirt.engine.core.dao.network.NetworkQoSDao; +import org.ovirt.engine.core.dao.network.HostNetworkQosDao; import org.ovirt.engine.core.utils.NetworkUtils; import org.ovirt.engine.core.utils.log.Log; import org.ovirt.engine.core.utils.log.LogFactory; @@ -41,7 +41,7 @@ private Map<String, Object> generateNetworks() { Map<String, Object> networks = new HashMap<String, Object>(); - NetworkQoSDao qosDao = getDbFacade().getNetworkQosDao(); + HostNetworkQosDao qosDao = getDbFacade().getHostNetworkQosDao(); VDS host = getDbFacade().getVdsDao().get(getParameters().getVdsId()); boolean hostNetworkQosSupported = FeatureSupported.hostNetworkQos(host.getVdsGroupCompatibilityVersion()); @@ -85,8 +85,7 @@ } if (hostNetworkQosSupported && qosConfiguredOnInterface(iface, network)) { - NetworkQosMapper qosMapper = - new NetworkQosMapper(opts, VdsProperties.HOST_QOS_INBOUND, VdsProperties.HOST_QOS_OUTBOUND); + HostNetworkQosMapper qosMapper = new HostNetworkQosMapper(opts); qosMapper.serialize(iface.isQosOverridden() ? iface.getQos() : qosDao.get(network.getQosId())); } diff --git a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VdsBrokerObjectsBuilder.java b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VdsBrokerObjectsBuilder.java index 862f765..89d7748 100644 --- a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VdsBrokerObjectsBuilder.java +++ b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VdsBrokerObjectsBuilder.java @@ -1500,8 +1500,7 @@ } if (FeatureSupported.hostNetworkQos(Collections.max(host.getSupportedClusterVersionsSet()))) { - NetworkQosMapper qosMapper = - new NetworkQosMapper(network, VdsProperties.HOST_QOS_INBOUND, VdsProperties.HOST_QOS_OUTBOUND); + HostNetworkQosMapper qosMapper = new HostNetworkQosMapper(network); iface.setQos(qosMapper.deserialize()); } } diff --git a/backend/manager/modules/vdsbroker/src/test/java/org/ovirt/engine/core/vdsbroker/vdsbroker/SetupNetworksVDSCommandTest.java b/backend/manager/modules/vdsbroker/src/test/java/org/ovirt/engine/core/vdsbroker/vdsbroker/SetupNetworksVDSCommandTest.java index 2e51f8a..3895f2f 100644 --- a/backend/manager/modules/vdsbroker/src/test/java/org/ovirt/engine/core/vdsbroker/vdsbroker/SetupNetworksVDSCommandTest.java +++ b/backend/manager/modules/vdsbroker/src/test/java/org/ovirt/engine/core/vdsbroker/vdsbroker/SetupNetworksVDSCommandTest.java @@ -15,6 +15,7 @@ import java.util.HashSet; import java.util.List; import java.util.Map; +import java.util.Objects; import org.junit.Before; import org.junit.Rule; @@ -25,9 +26,9 @@ import org.mockito.Mock; import org.mockito.runners.MockitoJUnitRunner; import org.ovirt.engine.core.common.businessentities.VDS; +import org.ovirt.engine.core.common.businessentities.network.HostNetworkQos; import org.ovirt.engine.core.common.businessentities.network.Network; import org.ovirt.engine.core.common.businessentities.network.NetworkBootProtocol; -import org.ovirt.engine.core.common.businessentities.network.NetworkQoS; import org.ovirt.engine.core.common.businessentities.network.VdsNetworkInterface; import org.ovirt.engine.core.common.config.ConfigValues; import org.ovirt.engine.core.common.vdscommands.SetupNetworksVdsCommandParameters; @@ -36,7 +37,7 @@ import org.ovirt.engine.core.dal.dbbroker.DbFacade; import org.ovirt.engine.core.dao.VdsDAO; import org.ovirt.engine.core.dao.VdsStaticDAO; -import org.ovirt.engine.core.dao.network.NetworkQoSDao; +import org.ovirt.engine.core.dao.network.HostNetworkQosDao; import org.ovirt.engine.core.utils.MockConfigRule; import org.ovirt.engine.core.utils.RandomUtils; @@ -48,7 +49,7 @@ private IVdsServer server; @Mock - private NetworkQoSDao qosDao; + private HostNetworkQosDao qosDao; @Mock private VDS host; @@ -169,7 +170,7 @@ private void qos(Network network, VdsNetworkInterface iface, - NetworkQoS expectedQos, + HostNetworkQos expectedQos, boolean hostNetworkQosSupported) { configRule.mockConfigValue(ConfigValues.HostNetworkQosSupported, version, hostNetworkQosSupported); @@ -185,11 +186,8 @@ verifyMethodPassedToHost(); Map<String, Object> networkStruct = assertNeworkWasSent(network); - NetworkQosMapper qosMapper = - new NetworkQosMapper(networkStruct, VdsProperties.HOST_QOS_INBOUND, VdsProperties.HOST_QOS_OUTBOUND); - NetworkQoS deserialize = qosMapper.deserialize(); - assertTrue((expectedQos == null && deserialize == null) - || (expectedQos != null && expectedQos.equalValues(deserialize))); + HostNetworkQosMapper qosMapper = new HostNetworkQosMapper(networkStruct); + assertTrue((Objects.equals(expectedQos, qosMapper.deserialize()))); } @Test @@ -209,7 +207,7 @@ Guid qosId = Guid.newGuid(); network.setQosId(qosId); - NetworkQoS qos = createQos(); + HostNetworkQos qos = createQos(); qos.setId(qosId); when(qosDao.get(qosId)).thenReturn(qos); @@ -221,7 +219,7 @@ Network network = createNetwork(null); VdsNetworkInterface iface = createNic("eth0", null, null, network.getName()); - NetworkQoS qos = createQos(); + HostNetworkQos qos = createQos(); iface.setQos(qos); iface.setQosOverridden(true); when(qosDao.get(any(Guid.class))).thenReturn(createQos()); @@ -291,7 +289,7 @@ when(dbFacade.getVdsStaticDao()).thenReturn(vdsStaticDao); when(dbFacade.getVdsDao()).thenReturn(vdsDao); - when(dbFacade.getNetworkQosDao()).thenReturn(qosDao); + when(dbFacade.getHostNetworkQosDao()).thenReturn(qosDao); when(vdsDao.get(any(Guid.class))).thenReturn(host); @@ -367,14 +365,11 @@ true); } - private NetworkQoS createQos() { - NetworkQoS qos = new NetworkQoS(); - qos.setInboundAverage(RandomUtils.instance().nextInt(0, 1000000)); - qos.setInboundPeak(RandomUtils.instance().nextInt(0, 1000000)); - qos.setInboundBurst(RandomUtils.instance().nextInt(0, 1000000)); - qos.setOutboundAverage(RandomUtils.instance().nextInt(0, 1000000)); - qos.setOutboundPeak(RandomUtils.instance().nextInt(0, 1000000)); - qos.setOutboundBurst(RandomUtils.instance().nextInt(0, 1000000)); + private HostNetworkQos createQos() { + HostNetworkQos qos = new HostNetworkQos(); + qos.setOutAverageLinkshare(RandomUtils.instance().nextInt(0, 1000000)); + qos.setOutAverageUpperlimit(RandomUtils.instance().nextInt(0, 1000000)); + qos.setOutAverageRealtime(RandomUtils.instance().nextInt(0, 1000000)); return qos; } } diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/Linq.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/Linq.java index a4549dc..550b1be 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/Linq.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/Linq.java @@ -39,6 +39,7 @@ import org.ovirt.engine.core.common.businessentities.comparators.LexoNumericComparator; import org.ovirt.engine.core.common.businessentities.comparators.NameableComparator; import org.ovirt.engine.core.common.businessentities.gluster.GlusterBrickEntity; +import org.ovirt.engine.core.common.businessentities.network.HostNetworkQos; import org.ovirt.engine.core.common.businessentities.network.Network; import org.ovirt.engine.core.common.businessentities.network.NetworkInterface; import org.ovirt.engine.core.common.businessentities.network.NetworkQoS; @@ -56,6 +57,7 @@ import org.ovirt.engine.ui.uicommonweb.models.EntityModel; import org.ovirt.engine.ui.uicommonweb.models.ListModel; import org.ovirt.engine.ui.uicommonweb.models.clusters.ClusterNetworkModel; +import org.ovirt.engine.ui.uicommonweb.models.datacenters.NetworkModel; import org.ovirt.engine.ui.uicommonweb.models.datacenters.NetworkQoSModel; import org.ovirt.engine.ui.uicommonweb.models.hosts.HostInterfaceListModel; import org.ovirt.engine.ui.uicommonweb.models.providers.ExternalNetwork; @@ -503,6 +505,15 @@ return NetworkQoSModel.EMPTY_QOS; } + public static HostNetworkQos findHostNetworkQosById(Iterable<HostNetworkQos> items, Guid qosId) { + for (HostNetworkQos qos : items) { + if (qos.getId().equals(qosId)) { + return qos; + } + } + return NetworkModel.EMPTY_HOST_NETWORK_QOS; + } + public static ArrayList<VDS> findAllVDSByPmEnabled(ArrayList<VDS> items) { ArrayList<VDS> ret = new ArrayList<VDS>(); diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/dataprovider/AsyncDataProvider.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/dataprovider/AsyncDataProvider.java index ecceab7..7778a61 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/dataprovider/AsyncDataProvider.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/dataprovider/AsyncDataProvider.java @@ -75,12 +75,14 @@ import org.ovirt.engine.core.common.businessentities.gluster.GlusterServerService; import org.ovirt.engine.core.common.businessentities.gluster.GlusterVolumeEntity; import org.ovirt.engine.core.common.businessentities.gluster.ServiceType; +import org.ovirt.engine.core.common.businessentities.network.HostNetworkQos; import org.ovirt.engine.core.common.businessentities.network.Network; import org.ovirt.engine.core.common.businessentities.network.NetworkQoS; import org.ovirt.engine.core.common.businessentities.network.VdsNetworkInterface; import org.ovirt.engine.core.common.businessentities.network.VmInterfaceType; import org.ovirt.engine.core.common.businessentities.network.VmNetworkInterface; import org.ovirt.engine.core.common.businessentities.network.VnicProfileView; +import org.ovirt.engine.core.common.businessentities.qos.QosType; import org.ovirt.engine.core.common.interfaces.SearchType; import org.ovirt.engine.core.common.mode.ApplicationMode; import org.ovirt.engine.core.common.queries.ArchCapabilitiesParameters; @@ -117,6 +119,7 @@ import org.ovirt.engine.core.common.queries.OsQueryParameters; import org.ovirt.engine.core.common.queries.OsQueryParameters.OsRepositoryVerb; import org.ovirt.engine.core.common.queries.ProviderQueryParameters; +import org.ovirt.engine.core.common.queries.QosQueryParameterBase; import org.ovirt.engine.core.common.queries.SearchParameters; import org.ovirt.engine.core.common.queries.ServerParameters; import org.ovirt.engine.core.common.queries.StorageServerConnectionQueryParametersBase; @@ -152,6 +155,7 @@ import org.ovirt.engine.ui.uicommonweb.models.ApplicationModeHelper; import org.ovirt.engine.ui.uicommonweb.models.EntityModel; import org.ovirt.engine.ui.uicommonweb.models.LoginModel; +import org.ovirt.engine.ui.uicommonweb.models.datacenters.NetworkModel; import org.ovirt.engine.ui.uicommonweb.models.datacenters.NetworkQoSModel; import org.ovirt.engine.ui.uicommonweb.models.storage.FcpStorageModel; import org.ovirt.engine.ui.uicommonweb.models.storage.GlusterStorageModel; @@ -1320,6 +1324,22 @@ Frontend.getInstance().runQuery(VdcQueryType.GetAllNetworkQosByStoragePoolId, new IdQueryParameters(dcId), query); } + public void getAllHostNetworkQos(Guid dcId, AsyncQuery query) { + query.converterCallback = new IAsyncConverter<List<HostNetworkQos>>() { + + @Override + public List<HostNetworkQos> Convert(Object returnValue, AsyncQuery asyncQuery) { + List<HostNetworkQos> qosList = + (returnValue == null) ? new ArrayList<HostNetworkQos>() : (List<HostNetworkQos>) returnValue; + qosList.add(0, NetworkModel.EMPTY_HOST_NETWORK_QOS); + return qosList; + } + }; + Frontend.getInstance().runQuery(VdcQueryType.GetAllQosByStoragePoolIdAndType, + new QosQueryParameterBase(dcId, QosType.HOSTNETWORK), + query); + } + public void getDataCenterById(AsyncQuery aQuery, Guid dataCenterId) { aQuery.converterCallback = new IAsyncConverter() { @Override diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/NetworkModel.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/NetworkModel.java index a5d226d..2f5ebbe 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/NetworkModel.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/NetworkModel.java @@ -11,8 +11,8 @@ import org.ovirt.engine.core.common.action.VnicProfileParameters; import org.ovirt.engine.core.common.businessentities.Provider; import org.ovirt.engine.core.common.businessentities.StoragePool; +import org.ovirt.engine.core.common.businessentities.network.HostNetworkQos; import org.ovirt.engine.core.common.businessentities.network.Network; -import org.ovirt.engine.core.common.businessentities.network.NetworkQoS; import org.ovirt.engine.core.common.businessentities.network.VnicProfile; import org.ovirt.engine.core.common.queries.ConfigurationValues; import org.ovirt.engine.core.compat.Guid; @@ -30,6 +30,7 @@ import org.ovirt.engine.ui.uicommonweb.models.Model; import org.ovirt.engine.ui.uicommonweb.models.TabName; import org.ovirt.engine.ui.uicommonweb.models.ValidationCompleteEvent; +import org.ovirt.engine.ui.uicommonweb.models.datacenters.qos.NewHostNetworkQosModel; import org.ovirt.engine.ui.uicommonweb.models.profiles.NetworkProfilesModel; import org.ovirt.engine.ui.uicommonweb.models.profiles.NewVnicProfileModel; import org.ovirt.engine.ui.uicommonweb.models.profiles.VnicProfileModel; @@ -54,6 +55,13 @@ private static final String CMD_ABORT = "OnAbort"; //$NON-NLS-1$ protected static final String ENGINE_NETWORK = (String) AsyncDataProvider.getInstance().getConfigValuePreConverted(ConfigurationValues.ManagementNetwork); + public static final HostNetworkQos EMPTY_HOST_NETWORK_QOS; + + static { + EMPTY_HOST_NETWORK_QOS = new HostNetworkQos(); + EMPTY_HOST_NETWORK_QOS.setName(ConstantsManager.getInstance().getConstants().unlimitedQoSTitle()); + EMPTY_HOST_NETWORK_QOS.setId(Guid.Empty); + } private EntityModel<String> privateName; private EntityModel<String> privateDescription; @@ -68,7 +76,7 @@ private ListModel<MtuSelector> mtuSelector; private EntityModel<Integer> mtu; private EntityModel<Boolean> privateIsVmNetwork; - private ListModel<NetworkQoS> qos; + private ListModel<HostNetworkQos> qos; private boolean isSupportBridgesReportByVDSM = false; private boolean mtuOverrideSupported = false; private ListModel<StoragePool> privateDataCenters; @@ -163,7 +171,7 @@ profiles.add(createDefaultProfile()); getProfiles().setItems(profiles); - setQos(new ListModel<NetworkQoS>()); + setQos(new ListModel<HostNetworkQos>()); EntityModel<Boolean> createSubnet = new EntityModel<Boolean>(false); setCreateSubnet(createSubnet); @@ -349,11 +357,11 @@ privateIsVmNetwork = value; } - public ListModel<NetworkQoS> getQos() { + public ListModel<HostNetworkQos> getQos() { return qos; } - private void setQos(ListModel<NetworkQoS> qos) { + private void setQos(ListModel<HostNetworkQos> qos) { this.qos = qos; } @@ -551,12 +559,12 @@ @Override public void onSuccess(Object model, Object returnValue) { - Collection<NetworkQoS> qos = (Collection<NetworkQoS>) returnValue; + Collection<HostNetworkQos> qos = (Collection<HostNetworkQos>) returnValue; getQos().setItems(qos); - getQos().setSelectedItem(Linq.findNetworkQosById(qos, getNetwork().getQosId())); + getQos().setSelectedItem(Linq.findHostNetworkQosById(qos, getNetwork().getQosId())); } }; - AsyncDataProvider.getInstance().getAllNetworkQos(dc.getId(), query); + AsyncDataProvider.getInstance().getAllHostNetworkQos(dc.getId(), query); updateDcLabels(); @@ -610,8 +618,8 @@ } if (getQos().getIsChangable()) { - NetworkQoS qos = getQos().getSelectedItem(); - network.setQosId(qos == NetworkQoSModel.EMPTY_QOS ? null : qos.getId()); + HostNetworkQos qos = getQos().getSelectedItem(); + network.setQosId(qos == EMPTY_HOST_NETWORK_QOS ? null : qos.getId()); } } @@ -658,15 +666,16 @@ } private void addQos() { - NewNetworkQoSModel qosModel = new NewNetworkQoSModel(this, getSelectedDc()) { + NewHostNetworkQosModel qosModel = new NewHostNetworkQosModel(this, getSelectedDc()) { @Override protected void postSaveAction(boolean succeeded) { if (succeeded) { - List<NetworkQoS> qosItems = new ArrayList<NetworkQoS>(getQos().getItems()); - qosItems.add(1, networkQoS); - getQos().setItems(qosItems); - getQos().setSelectedItem(networkQoS); + List<HostNetworkQos> qosItems = + new ArrayList<HostNetworkQos>(NetworkModel.this.getQos().getItems()); + qosItems.add(1, getQos()); + NetworkModel.this.getQos().setItems(qosItems); + NetworkModel.this.getQos().setSelectedItem(getQos()); } super.postSaveAction(succeeded); } diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/HostInterfaceModel.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/HostInterfaceModel.java index c3e60c3..7e2bada 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/HostInterfaceModel.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/HostInterfaceModel.java @@ -10,7 +10,7 @@ import org.ovirt.engine.core.compat.StringHelper; import org.ovirt.engine.ui.uicommonweb.models.EntityModel; import org.ovirt.engine.ui.uicommonweb.models.ListModel; -import org.ovirt.engine.ui.uicommonweb.models.datacenters.BaseNetworkQosModel; +import org.ovirt.engine.ui.uicommonweb.models.datacenters.qos.HostNetworkQosParametersModel; import org.ovirt.engine.ui.uicommonweb.models.vms.key_value.KeyValueModel; import org.ovirt.engine.ui.uicommonweb.validation.IValidation; import org.ovirt.engine.ui.uicommonweb.validation.IpAddressValidation; @@ -257,13 +257,13 @@ this.qosOverridden = qosOverridden; } - private BaseNetworkQosModel qosModel; + private HostNetworkQosParametersModel qosModel; - public BaseNetworkQosModel getQosModel() { + public HostNetworkQosParametersModel getQosModel() { return qosModel; } - private void setQosModel(BaseNetworkQosModel qosModel) { + private void setQosModel(HostNetworkQosParametersModel qosModel) { this.qosModel = qosModel; } @@ -294,7 +294,7 @@ setBondingOptions(new ListModel<Map.Entry<String, EntityModel<String>>>()); setCommitChanges(new EntityModel<Boolean>()); setQosOverridden(new EntityModel<Boolean>()); - setQosModel(new BaseNetworkQosModel()); + setQosModel(new HostNetworkQosParametersModel()); setCustomPropertiesModel(new KeyValueModel()); setIsToSync(new EntityModel<Boolean>(){ diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/HostSetupNetworksModel.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/HostSetupNetworksModel.java index 5dcbd67..8513793 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/HostSetupNetworksModel.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/HostSetupNetworksModel.java @@ -20,6 +20,7 @@ import org.ovirt.engine.core.common.businessentities.VDS; import org.ovirt.engine.core.common.businessentities.comparators.LexoNumericComparator; import org.ovirt.engine.core.common.businessentities.network.Bond; +import org.ovirt.engine.core.common.businessentities.network.HostNetworkQos; import org.ovirt.engine.core.common.businessentities.network.Network; import org.ovirt.engine.core.common.businessentities.network.VdsNetworkInterface; import org.ovirt.engine.core.common.queries.ConfigurationValues; @@ -434,8 +435,14 @@ } if (networkDialogModel.getQosModel().getIsAvailable()) { - entity.setQosOverridden(networkDialogModel.getQosOverridden().getEntity()); - entity.setQos(networkDialogModel.getQosModel().flush()); + boolean qosOverridden = networkDialogModel.getQosOverridden().getEntity(); + HostNetworkQos qos = null; + entity.setQosOverridden(qosOverridden); + if (qosOverridden) { + qos = new HostNetworkQos(); + networkDialogModel.getQosModel().flush(qos); + } + entity.setQos(qos); } if (networkDialogModel.getCustomPropertiesModel().getIsAvailable()) { diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/NetworkParameters.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/NetworkParameters.java index 4cd89a5..b87fd0d 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/NetworkParameters.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/NetworkParameters.java @@ -2,8 +2,8 @@ import java.util.Map; +import org.ovirt.engine.core.common.businessentities.network.HostNetworkQos; import org.ovirt.engine.core.common.businessentities.network.NetworkBootProtocol; -import org.ovirt.engine.core.common.businessentities.network.NetworkQoS; import org.ovirt.engine.core.common.businessentities.network.VdsNetworkInterface; public class NetworkParameters { @@ -13,7 +13,7 @@ private String subnet; private String gateway; private boolean qosOverridden; - private NetworkQoS qos; + private HostNetworkQos qos; private Map<String, String> customProperties; @@ -63,11 +63,11 @@ this.qosOverridden = qosOverridden; } - public NetworkQoS getQos() { + public HostNetworkQos getQos() { return qos; } - public void setQos(NetworkQoS qos) { + public void setQos(HostNetworkQos qos) { this.qos = qos; } diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/uicommon/NetworkModule.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/uicommon/NetworkModule.java index 389acdb..f7e0a7a 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/uicommon/NetworkModule.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/uicommon/NetworkModule.java @@ -1,10 +1,10 @@ package org.ovirt.engine.ui.webadmin.gin.uicommon; +import org.ovirt.engine.core.common.businessentities.Permissions; import org.ovirt.engine.core.common.businessentities.VDS; import org.ovirt.engine.core.common.businessentities.VDSGroup; import org.ovirt.engine.core.common.businessentities.VM; import org.ovirt.engine.core.common.businessentities.VmTemplate; -import org.ovirt.engine.core.common.businessentities.Permissions; import org.ovirt.engine.core.common.businessentities.network.ExternalSubnet; import org.ovirt.engine.core.common.businessentities.network.NetworkCluster; import org.ovirt.engine.core.common.businessentities.network.NetworkView; @@ -26,7 +26,7 @@ import org.ovirt.engine.ui.uicommonweb.models.ConfirmationModel; import org.ovirt.engine.ui.uicommonweb.models.Model; import org.ovirt.engine.ui.uicommonweb.models.configure.PermissionListModel; -import org.ovirt.engine.ui.uicommonweb.models.datacenters.NetworkQoSModel; +import org.ovirt.engine.ui.uicommonweb.models.datacenters.qos.NewHostNetworkQosModel; import org.ovirt.engine.ui.uicommonweb.models.hosts.HostBondInterfaceModel; import org.ovirt.engine.ui.uicommonweb.models.hosts.HostInterfaceModel; import org.ovirt.engine.ui.uicommonweb.models.hosts.HostManagementNetworkModel; @@ -39,7 +39,7 @@ import org.ovirt.engine.ui.uicommonweb.models.networks.NetworkProfileListModel; import org.ovirt.engine.ui.uicommonweb.models.networks.NetworkTemplateListModel; import org.ovirt.engine.ui.uicommonweb.models.networks.NetworkVmListModel; -import org.ovirt.engine.ui.webadmin.section.main.presenter.popup.NetworkQoSPopupPresenterWidget; +import org.ovirt.engine.ui.webadmin.section.main.presenter.popup.HostNetworkQosPopupPresenterWidget; import org.ovirt.engine.ui.webadmin.section.main.presenter.popup.PermissionsPopupPresenterWidget; import org.ovirt.engine.ui.webadmin.section.main.presenter.popup.cluster.ClusterManageNetworkPopupPresenterWidget; import org.ovirt.engine.ui.webadmin.section.main.presenter.popup.datacenter.EditNetworkPopupPresenterWidget; @@ -71,13 +71,13 @@ final Provider<ImportNetworksPopupPresenterWidget> importNetworkPopupProvider, final Provider<EditNetworkPopupPresenterWidget> editNetworkPopupProvider, final Provider<RemoveConfirmationPopupPresenterWidget> removeConfirmPopupProvider, - final Provider<NetworkQoSPopupPresenterWidget> addQosPopupProvider) { + final Provider<HostNetworkQosPopupPresenterWidget> addQosPopupProvider) { return new MainTabModelProvider<NetworkView, NetworkListModel>(eventBus, defaultConfirmPopupProvider, NetworkListModel.class) { @Override public AbstractModelBoundPopupPresenterWidget<? extends Model, ?> getModelPopup(NetworkListModel source, UICommand lastExecutedCommand, Model windowModel) { - if (windowModel instanceof NetworkQoSModel) { + if (windowModel instanceof NewHostNetworkQosModel) { return addQosPopupProvider.get(); } diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/AbstractNetworkPopupView.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/AbstractNetworkPopupView.java index 78f9aae..f757d7c 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/AbstractNetworkPopupView.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/AbstractNetworkPopupView.java @@ -4,7 +4,7 @@ import org.ovirt.engine.core.common.businessentities.Provider; import org.ovirt.engine.core.common.businessentities.StoragePool; -import org.ovirt.engine.core.common.businessentities.network.NetworkQoS; +import org.ovirt.engine.core.common.businessentities.network.HostNetworkQos; import org.ovirt.engine.ui.common.idhandler.WithElementId; import org.ovirt.engine.ui.common.view.popup.AbstractTabbedModelBoundPopupView; import org.ovirt.engine.ui.common.widget.Align; @@ -132,7 +132,7 @@ @UiField(provided = true) @Path(value = "qos.selectedItem") - public ListModelListBoxEditor<NetworkQoS> qosEditor; + public ListModelListBoxEditor<HostNetworkQos> qosEditor; @UiField UiCommandButton addQosButton; @@ -204,9 +204,9 @@ return provider.getName(); } }); - qosEditor = new ListModelListBoxEditor<NetworkQoS>(new NullSafeRenderer<NetworkQoS>() { + qosEditor = new ListModelListBoxEditor<HostNetworkQos>(new NullSafeRenderer<HostNetworkQos>() { @Override - protected String renderNullSafe(NetworkQoS qos) { + protected String renderNullSafe(HostNetworkQos qos) { return qos.getName(); } }); diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/AbstractNetworkPopupView.ui.xml b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/AbstractNetworkPopupView.ui.xml index 3ecb02a..f544413 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/AbstractNetworkPopupView.ui.xml +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/AbstractNetworkPopupView.ui.xml @@ -135,7 +135,7 @@ <g:Image resource="{resources.networkVm}" addStyleNames="{style.vmNetworkImage}" /> </g:HorizontalPanel> <e:ListModelRadioGroupEditor ui:field="mtuSelectorEditor" addStyleNames="{style.dependentField} {style.mtuWrapper} {style.propertyWidth}" /> - <g:HorizontalPanel verticalAlignment="ALIGN_MIDDLE" visible="false"> + <g:HorizontalPanel verticalAlignment="ALIGN_MIDDLE"> <e:ListModelListBoxEditor ui:field="qosEditor" addStyleNames="{style.dependentField} {style.propertyWidth}" /> <w:UiCommandButton ui:field="addQosButton" addStyleNames="{style.qosStyle}" /> </g:HorizontalPanel> diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/HostInterfacePopupView.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/HostInterfacePopupView.java index b1be4cd..5735cf0 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/HostInterfacePopupView.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/HostInterfacePopupView.java @@ -28,7 +28,7 @@ import org.ovirt.engine.ui.webadmin.ApplicationResources; import org.ovirt.engine.ui.webadmin.ApplicationTemplates; import org.ovirt.engine.ui.webadmin.section.main.presenter.popup.host.HostInterfacePopupPresenterWidget; -import org.ovirt.engine.ui.webadmin.section.main.view.popup.networkQoS.NetworkQosWidget; +import org.ovirt.engine.ui.webadmin.section.main.view.popup.qos.HostNetworkQosWidget; import com.google.gwt.core.client.GWT; import com.google.gwt.editor.client.SimpleBeanEditorDriver; @@ -100,7 +100,7 @@ @UiField(provided = true) @Ignore - NetworkQosWidget qosWidget; + HostNetworkQosWidget qosWidget; @UiField Panel customPropertiesPanel; @@ -191,7 +191,7 @@ } }); bootProtocol = new EnumRadioEditor<NetworkBootProtocol>(NetworkBootProtocol.class); - qosWidget = new NetworkQosWidget(constants); + qosWidget = new HostNetworkQosWidget(constants); customPropertiesWidget = new KeyValueWidget<KeyValueModel>("320px", "160px"); //$NON-NLS-1$ $NON-NLS-2$ qosOverridden = new org.ovirt.engine.ui.common.widget.editor.generic.EntityModelCheckBoxEditor(Align.RIGHT); diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/HostInterfacePopupView.ui.xml b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/HostInterfacePopupView.ui.xml index 19cd07b..2c0b446 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/HostInterfacePopupView.ui.xml +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/HostInterfacePopupView.ui.xml @@ -5,8 +5,8 @@ xmlns:t="urn:import:org.ovirt.engine.ui.common.widget.dialog.tab" xmlns:e="urn:import:org.ovirt.engine.ui.common.widget.editor" xmlns:we="urn:import:org.ovirt.engine.ui.webadmin.widget.editor" xmlns:w="urn:import:org.ovirt.engine.ui.webadmin.widget" xmlns:ge="urn:import:org.ovirt.engine.ui.common.widget.editor.generic" - xmlns:n="urn:import:org.ovirt.engine.ui.webadmin.section.main.view.popup.networkQoS" - xmlns:k="urn:import:org.ovirt.engine.ui.common.widget.form.key_value"> + xmlns:k="urn:import:org.ovirt.engine.ui.common.widget.form.key_value" + xmlns:q="urn:import:org.ovirt.engine.ui.webadmin.section.main.view.popup.qos"> <ui:style type="org.ovirt.engine.ui.webadmin.section.main.view.popup.host.HostInterfacePopupView.Style"> .checkCon{ @@ -50,11 +50,11 @@ <ge:StringEntityModelTextBoxEditor ui:field="address" /> <ge:StringEntityModelTextBoxEditor ui:field="subnet" /> <ge:StringEntityModelTextBoxEditor ui:field="gateway" /> - <g:FlowPanel addStyleNames="{style.sectionStyle}" visible="false" > + <g:FlowPanel addStyleNames="{style.sectionStyle}" > <ge:EntityModelCheckBoxEditor ui:field="qosOverridden" /> - <n:NetworkQosWidget ui:field="qosWidget" /> + <q:HostNetworkQosWidget ui:field="qosWidget" /> </g:FlowPanel> - <g:FlowPanel ui:field="customPropertiesPanel" addStyleNames="{style.sectionStyle}" visible="false" > + <g:FlowPanel ui:field="customPropertiesPanel" addStyleNames="{style.sectionStyle}" > <ge:StringEntityModelLabelEditor ui:field="customPropertiesLabel" /> <k:KeyValueWidget ui:field="customPropertiesWidget" addStyleNames="{style.customPropertiesStyle}" /> </g:FlowPanel> -- To view, visit http://gerrit.ovirt.org/34131 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Ia6a625d8c5b554cb525efc41d31013df0de2a146 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Lior Vernia <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
