Gilad Chaplik has uploaded a new change for review. Change subject: db: aggregate qos in db and dal ......................................................................
db: aggregate qos in db and dal DB and DAL changes: extend netwok_qos, rename it to qos, have a type field (QoSType), all other limits wil be added here (sparse matrix). Current network_qos dal flows are reused to benefit all future qos types. For more information see: http://www.ovirt.org/Features/aggregate_QoS Change-Id: I1a9af59277b5055453159f002f19046c0051d63b Signed-off-by: Gilad Chaplik <[email protected]> --- M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetAllNetworkQosByStoragePoolIdQuery.java 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/qos/NetworkQoSCommandBase.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/validator/NetworkQosValidator.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/validator/NetworkValidator.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/validator/VnicProfileValidator.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/VmNicValidatorTest.java M backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/validator/VnicProfileValidatorTest.java M backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/dbbroker/DbFacade.java M backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/network/InterfaceDaoDbFacadeImpl.java D backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/network/NetworkQoSDao.java D backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/network/NetworkQoSDaoFacadeImpl.java A backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/qos/BaseQosDaoFacadeImpl.java A backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/qos/NetworkQosDao.java A backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/qos/NetworkQosDaoFacadeImpl.java A backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/qos/QosDao.java M backend/manager/modules/dal/src/main/jdbc-resources/engine-daos.properties M backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/network/InterfaceDaoTest.java R backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/qos/NetworkQosDaoTest.java M backend/manager/modules/dal/src/test/resources/fixtures.xml M backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/CollectVdsNetworkDataVDSCommand.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/VmInfoBuilder.java M backend/manager/modules/vdsbroker/src/test/java/org/ovirt/engine/core/vdsbroker/vdsbroker/SetupNetworksVDSCommandTest.java M packaging/dbscripts/create_views.sql D packaging/dbscripts/network_qos_sp.sql A packaging/dbscripts/qos_sp.sql A packaging/dbscripts/upgrade/03_05_0330_aggregate_qos.sql 31 files changed, 329 insertions(+), 238 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/94/27094/1 diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetAllNetworkQosByStoragePoolIdQuery.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetAllNetworkQosByStoragePoolIdQuery.java index 7dc10ce..383f114 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetAllNetworkQosByStoragePoolIdQuery.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetAllNetworkQosByStoragePoolIdQuery.java @@ -11,6 +11,6 @@ @Override protected void executeQueryCommand() { - getQueryReturnValue().setReturnValue(getDbFacade().getQosDao().getAllForStoragePoolId(getParameters().getId())); + getQueryReturnValue().setReturnValue(getDbFacade().getNetworkQosDao().getAllForStoragePoolId(getParameters().getId())); } } 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 13691fc..3ae4e46 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 @@ -33,6 +33,7 @@ import org.ovirt.engine.core.common.businessentities.network.NetworkCluster; import org.ovirt.engine.core.common.businessentities.network.VdsNetworkInterface; import org.ovirt.engine.core.common.businessentities.network.VmNetworkInterface; +import org.ovirt.engine.core.common.businessentities.qos.NetworkQoS; import org.ovirt.engine.core.common.errors.VdcBllMessages; import org.ovirt.engine.core.common.validation.group.UpdateEntity; import org.ovirt.engine.core.compat.Guid; @@ -415,7 +416,7 @@ for (VdsNetworkInterface nic : nics) { if (!NetworkUtils.isNetworkInSync(nic, getNetwork(), - getDbFacade().getQosDao().get(getNetwork().getQosId()))) { + (NetworkQoS)getDbFacade().getNetworkQosDao().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 287aa962..6fea2f0 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.qos.NetworkQosDao; 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().getQosDao(); + NetworkQosDao qosDao = getDbFacade().getNetworkQosDao(); 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 48f7b5e..a5ae041 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 @@ -24,33 +24,33 @@ import org.ovirt.engine.core.common.businessentities.network.VdsNetworkInterface; import org.ovirt.engine.core.common.errors.VdcBllMessages; import org.ovirt.engine.core.dal.dbbroker.DbFacade; -import org.ovirt.engine.core.dao.network.NetworkQoSDao; +import org.ovirt.engine.core.dao.qos.NetworkQosDao; import org.ovirt.engine.core.utils.NetworkUtils; public class SetupNetworksHelper { protected static final String VIOLATING_ENTITIES_LIST_FORMAT = "${0}_LIST {1}"; - private SetupNetworksParameters params; - private VDS vds; - private Map<VdcBllMessages, List<String>> violations = new HashMap<VdcBllMessages, List<String>>(); + private final SetupNetworksParameters params; + private final VDS vds; + private final Map<VdcBllMessages, List<String>> violations = new HashMap<VdcBllMessages, List<String>>(); private Map<String, VdsNetworkInterface> existingIfaces; private Map<String, Network> existingClusterNetworks; - private List<Network> modifiedNetworks = new ArrayList<Network>(); - private List<String> removedNetworks = new ArrayList<String>(); - private Map<String, VdsNetworkInterface> modifiedBonds = new HashMap<String, VdsNetworkInterface>(); - private Map<String, VdsNetworkInterface> removedBonds = new HashMap<String, VdsNetworkInterface>(); - private List<VdsNetworkInterface> modifiedInterfaces = new ArrayList<>(); + private final List<Network> modifiedNetworks = new ArrayList<Network>(); + private final List<String> removedNetworks = new ArrayList<String>(); + private final Map<String, VdsNetworkInterface> modifiedBonds = new HashMap<String, VdsNetworkInterface>(); + private final Map<String, VdsNetworkInterface> removedBonds = new HashMap<String, VdsNetworkInterface>(); + private final List<VdsNetworkInterface> modifiedInterfaces = new ArrayList<>(); /** All interface`s names that were processed by the helper. */ - private Set<String> ifaceNames = new HashSet<String>(); + private final Set<String> ifaceNames = new HashSet<String>(); /** Map of all bonds which were processed by the helper. Key = bond name, Value = list of slave NICs. */ - private Map<String, List<VdsNetworkInterface>> bonds = new HashMap<String, List<VdsNetworkInterface>>(); + private final Map<String, List<VdsNetworkInterface>> bonds = new HashMap<String, List<VdsNetworkInterface>>(); /** All network`s names that are attached to some sort of interface. */ - private Set<String> attachedNetworksNames = new HashSet<String>(); + private final Set<String> attachedNetworksNames = new HashSet<String>(); - private Map<String, List<NetworkType>> ifacesWithExclusiveNetwork = new HashMap<String, List<NetworkType>>(); + private final Map<String, List<NetworkType>> ifacesWithExclusiveNetwork = new HashMap<String, List<NetworkType>>(); private final boolean hostNetworkQosSupported; @@ -315,7 +315,7 @@ if (existingIfaces == null) { List<VdsNetworkInterface> ifaces = getDbFacade().getInterfaceDao().getAllInterfacesForVds(params.getVdsId()); - NetworkQoSDao qosDao = getDbFacade().getQosDao(); + NetworkQosDao qosDao = getDbFacade().getNetworkQosDao(); 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/qos/NetworkQoSCommandBase.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/qos/NetworkQoSCommandBase.java index 2e22ad7..6b3f3f1 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/qos/NetworkQoSCommandBase.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/qos/NetworkQoSCommandBase.java @@ -1,15 +1,15 @@ package org.ovirt.engine.core.bll.qos; +import java.util.Collections; +import java.util.List; + import org.ovirt.engine.core.bll.CommandBase; import org.ovirt.engine.core.bll.utils.PermissionSubject; import org.ovirt.engine.core.common.VdcObjectType; import org.ovirt.engine.core.common.action.NetworkQoSParametersBase; import org.ovirt.engine.core.common.businessentities.qos.NetworkQoS; import org.ovirt.engine.core.common.errors.VdcBllMessages; -import org.ovirt.engine.core.dao.network.NetworkQoSDao; - -import java.util.Collections; -import java.util.List; +import org.ovirt.engine.core.dao.qos.NetworkQosDao; public abstract class NetworkQoSCommandBase extends CommandBase<NetworkQoSParametersBase> { @@ -51,8 +51,8 @@ VdcObjectType.StoragePool, getActionType().getActionGroup())); } - protected NetworkQoSDao getNetworkQoSDao() { - return getDbFacade().getQosDao(); + protected NetworkQosDao getNetworkQoSDao() { + return getDbFacade().getNetworkQosDao(); } @Override diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/validator/NetworkQosValidator.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/validator/NetworkQosValidator.java index a479d9a..96944b9 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/validator/NetworkQosValidator.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/validator/NetworkQosValidator.java @@ -19,14 +19,14 @@ protected NetworkQoS getOldQos() { if (oldQos == null) { - oldQos = DbFacade.getInstance().getQosDao().get(qos.getId()); + oldQos = DbFacade.getInstance().getNetworkQosDao().get(qos.getId()); } return oldQos; } protected List<NetworkQoS> getAllQosInDc() { if (allQos == null) { - allQos = DbFacade.getInstance().getQosDao().getAllForStoragePoolId(qos.getStoragePoolId()); + allQos = DbFacade.getInstance().getNetworkQosDao().getAllForStoragePoolId(qos.getStoragePoolId()); } return allQos; } 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 9eac8a1..fec90c9 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 @@ -183,7 +183,7 @@ * belongs to the wrong DC. */ public ValidationResult qosExistsInDc() { - NetworkQosValidator qosValidator = new NetworkQosValidator(getDbFacade().getQosDao().get(network.getQosId())); + NetworkQosValidator qosValidator = new NetworkQosValidator(getDbFacade().getNetworkQosDao().get(network.getQosId())); ValidationResult res = qosValidator.qosExists(); return (res == ValidationResult.VALID) ? qosValidator.consistentDataCenter() : res; } diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/validator/VnicProfileValidator.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/validator/VnicProfileValidator.java index 005b23c..a8c077f 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/validator/VnicProfileValidator.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/validator/VnicProfileValidator.java @@ -51,7 +51,7 @@ public ValidationResult networkQosExistsOrNull() { return vnicProfile.getNetworkQosId() == null - || getDbFacade().getQosDao().get(vnicProfile.getNetworkQosId()) != null + || getDbFacade().getNetworkQosDao().get(vnicProfile.getNetworkQosId()) != null ? ValidationResult.VALID : new ValidationResult(VdcBllMessages.ACTION_TYPE_FAILED_NETWORK_QOS_NOT_EXISTS); } 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 1d42676..2cd1948 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 @@ -39,7 +39,7 @@ import org.ovirt.engine.core.dao.VdsDAO; 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.dao.qos.NetworkQosDao; import org.ovirt.engine.core.utils.MockConfigRule; import org.ovirt.engine.core.utils.RandomUtils; @@ -68,7 +68,7 @@ private InterfaceDao interfaceDAO; @Mock - private NetworkQoSDao qosDao; + private NetworkQosDao qosDao; /* --- Tests for networks functionality --- */ @@ -1827,7 +1827,7 @@ doReturn(interfaceDAO).when(dbFacade).getInterfaceDao(); doReturn(mock(VdsDAO.class)).when(dbFacade).getVdsDao(); doReturn(networkDAO).when(dbFacade).getNetworkDao(); - doReturn(qosDao).when(dbFacade).getQosDao(); + doReturn(qosDao).when(dbFacade).getNetworkQosDao(); return helper; } diff --git a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/validator/VmNicValidatorTest.java b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/validator/VmNicValidatorTest.java index 3b863db..4ab0020 100644 --- a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/validator/VmNicValidatorTest.java +++ b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/validator/VmNicValidatorTest.java @@ -34,8 +34,8 @@ import org.ovirt.engine.core.compat.Guid; import org.ovirt.engine.core.compat.Version; import org.ovirt.engine.core.dal.dbbroker.DbFacade; -import org.ovirt.engine.core.dao.network.NetworkQoSDao; import org.ovirt.engine.core.dao.network.VnicProfileDao; +import org.ovirt.engine.core.dao.qos.NetworkQosDao; import org.ovirt.engine.core.utils.MockConfigRule; @RunWith(MockitoJUnitRunner.class) @@ -70,7 +70,7 @@ private VnicProfileDao vnicProfileDao; @Mock - private NetworkQoSDao networkQosDao; + private NetworkQosDao networkQosDao; @Mock private VnicProfile vnicProfile; diff --git a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/validator/VnicProfileValidatorTest.java b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/validator/VnicProfileValidatorTest.java index 45b35de..b8f2d25 100644 --- a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/validator/VnicProfileValidatorTest.java +++ b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/validator/VnicProfileValidatorTest.java @@ -31,8 +31,8 @@ import org.ovirt.engine.core.dao.VmDAO; import org.ovirt.engine.core.dao.VmTemplateDAO; import org.ovirt.engine.core.dao.network.NetworkDao; -import org.ovirt.engine.core.dao.network.NetworkQoSDao; import org.ovirt.engine.core.dao.network.VnicProfileDao; +import org.ovirt.engine.core.dao.qos.NetworkQosDao; @RunWith(MockitoJUnitRunner.class) public class VnicProfileValidatorTest { @@ -53,7 +53,7 @@ private NetworkDao networkDao; @Mock - private NetworkQoSDao networkQosDao; + private NetworkQosDao networkQosDao; @Mock private VmDAO vmDao; @@ -67,7 +67,7 @@ @Mock private NetworkQoS networkQos; - private List<VnicProfile> vnicProfiles = new ArrayList<>(); + private final List<VnicProfile> vnicProfiles = new ArrayList<>(); private VnicProfileValidator validator; @@ -81,7 +81,7 @@ // mock some commonly used DAOs when(dbFacade.getVnicProfileDao()).thenReturn(vnicProfileDao); when(dbFacade.getNetworkDao()).thenReturn(networkDao); - when(dbFacade.getQosDao()).thenReturn(networkQosDao); + when(dbFacade.getNetworkQosDao()).thenReturn(networkQosDao); when(dbFacade.getVmDao()).thenReturn(vmDao); // mock their getters diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/dbbroker/DbFacade.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/dbbroker/DbFacade.java index b8d519e..0d7e7a5 100644 --- a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/dbbroker/DbFacade.java +++ b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/dbbroker/DbFacade.java @@ -115,7 +115,6 @@ import org.ovirt.engine.core.dao.network.InterfaceDao; import org.ovirt.engine.core.dao.network.NetworkClusterDao; import org.ovirt.engine.core.dao.network.NetworkDao; -import org.ovirt.engine.core.dao.network.NetworkQoSDao; import org.ovirt.engine.core.dao.network.NetworkViewDao; import org.ovirt.engine.core.dao.network.VmNetworkInterfaceDao; import org.ovirt.engine.core.dao.network.VmNetworkStatisticsDao; @@ -123,6 +122,7 @@ import org.ovirt.engine.core.dao.network.VnicProfileDao; import org.ovirt.engine.core.dao.network.VnicProfileViewDao; import org.ovirt.engine.core.dao.provider.ProviderDao; +import org.ovirt.engine.core.dao.qos.NetworkQosDao; import org.ovirt.engine.core.dao.scheduling.AffinityGroupDao; import org.ovirt.engine.core.dao.scheduling.ClusterPolicyDao; import org.ovirt.engine.core.dao.scheduling.PolicyUnitDao; @@ -911,8 +911,8 @@ return getDao(VmGuestAgentInterfaceDao.class); } - public NetworkQoSDao getQosDao() { - return getDao(NetworkQoSDao.class); + public NetworkQosDao getNetworkQosDao() { + return getDao(NetworkQosDao.class); } /** 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 93073a5..4f05c32 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 @@ -24,6 +24,7 @@ import org.ovirt.engine.core.dal.dbbroker.DbFacade; import org.ovirt.engine.core.dal.dbbroker.MapSqlParameterMapper; import org.ovirt.engine.core.dao.BaseDAODbFacade; +import org.ovirt.engine.core.dao.qos.NetworkQosDao; import org.ovirt.engine.core.utils.SerializationFactory; import org.springframework.jdbc.core.RowMapper; import org.springframework.jdbc.core.namedparam.MapSqlParameterSource; @@ -133,7 +134,7 @@ } private void persistQosChanges(VdsNetworkInterface entity) { - NetworkQoSDao qosDao = DbFacade.getInstance().getQosDao(); + NetworkQosDao qosDao = DbFacade.getInstance().getNetworkQosDao(); Guid id = entity.getId(); NetworkQoS oldQos = qosDao.get(id); NetworkQoS qos = entity.getQos(); @@ -218,7 +219,7 @@ MapSqlParameterSource parameterSource = getCustomMapSqlParameterSource() .addValue("id", id); - DbFacade.getInstance().getQosDao().remove(id); + DbFacade.getInstance().getNetworkQosDao().remove(id); getCallsHandler().executeModification("Deletevds_interface", parameterSource); } @@ -307,7 +308,7 @@ entity.setBootProtocol(NetworkBootProtocol.forValue(rs.getInt("boot_protocol"))); entity.setMtu(rs.getInt("mtu")); entity.setBridged(rs.getBoolean("bridged")); - entity.setQos(DbFacade.getInstance().getQosDao().get(entity.getId())); + entity.setQos(DbFacade.getInstance().getNetworkQosDao().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/main/java/org/ovirt/engine/core/dao/network/NetworkQoSDao.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/network/NetworkQoSDao.java deleted file mode 100644 index b321498..0000000 --- a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/network/NetworkQoSDao.java +++ /dev/null @@ -1,12 +0,0 @@ -package org.ovirt.engine.core.dao.network; - -import org.ovirt.engine.core.common.businessentities.qos.NetworkQoS; -import org.ovirt.engine.core.compat.Guid; -import org.ovirt.engine.core.dao.GenericDao; - -import java.util.List; - -public interface NetworkQoSDao extends GenericDao<NetworkQoS, Guid> { - - public List<NetworkQoS> getAllForStoragePoolId(Guid storagePoolId); -} diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/network/NetworkQoSDaoFacadeImpl.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/network/NetworkQoSDaoFacadeImpl.java deleted file mode 100644 index e17556d..0000000 --- a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/network/NetworkQoSDaoFacadeImpl.java +++ /dev/null @@ -1,74 +0,0 @@ -package org.ovirt.engine.core.dao.network; - -import org.ovirt.engine.core.common.businessentities.qos.NetworkQoS; -import org.ovirt.engine.core.compat.Guid; -import org.ovirt.engine.core.dao.DefaultGenericDaoDbFacade; -import org.springframework.jdbc.core.RowMapper; -import org.springframework.jdbc.core.namedparam.MapSqlParameterSource; - -import java.sql.ResultSet; -import java.sql.SQLException; -import java.util.List; - -public class NetworkQoSDaoFacadeImpl extends DefaultGenericDaoDbFacade<NetworkQoS, Guid> implements NetworkQoSDao { - - protected final RowMapper<NetworkQoS> mapper = createEntityRowMapper(); - - public NetworkQoSDaoFacadeImpl(){ - super("NetworkQos"); - } - - private static Integer getIntegerOrNull(ResultSet rs, String columnName) throws SQLException { - int i = rs.getInt(columnName); - return rs.wasNull() ? null : i; - } - - @Override - protected MapSqlParameterSource createIdParameterMapper(Guid guid) { - return getCustomMapSqlParameterSource() - .addValue("id", guid); - } - - @Override - protected RowMapper<NetworkQoS> createEntityRowMapper() { - return new RowMapper<NetworkQoS>() { - @Override - public NetworkQoS mapRow(ResultSet rs, int rowNum) - throws SQLException { - NetworkQoS entity = new NetworkQoS(); - entity.setId(getGuid(rs, "id")); - entity.setName(rs.getString("name")); - entity.setStoragePoolId(getGuid(rs, "storage_pool_id")); - entity.setInboundAverage(getIntegerOrNull(rs, "inbound_average")); - entity.setInboundPeak(getIntegerOrNull(rs, "inbound_peak")); - entity.setInboundBurst(getIntegerOrNull(rs, "inbound_burst")); - entity.setOutboundAverage(getIntegerOrNull(rs, "outbound_average")); - entity.setOutboundPeak(getIntegerOrNull(rs, "outbound_peak")); - entity.setOutboundBurst(getIntegerOrNull(rs, "outbound_burst")); - return entity; - } - }; - } - - @Override - public List<NetworkQoS> getAllForStoragePoolId(Guid storagePoolId) { - MapSqlParameterSource parameterSource = getCustomMapSqlParameterSource() - .addValue("storage_pool_id", storagePoolId.getUuid()); - return getCallsHandler().executeReadList("GetAllNetworkQosForStoragePool", mapper, parameterSource); - } - - @Override - protected MapSqlParameterSource createFullParametersMapper(NetworkQoS networkQoS) { - return getCustomMapSqlParameterSource() - .addValue("id", networkQoS.getId()) - .addValue("name", networkQoS.getName()) - .addValue("storage_pool_id", networkQoS.getStoragePoolId()) - .addValue("inbound_average", networkQoS.getInboundAverage()) - .addValue("inbound_peak", networkQoS.getInboundPeak()) - .addValue("inbound_burst", networkQoS.getInboundBurst()) - .addValue("outbound_average", networkQoS.getOutboundAverage()) - .addValue("outbound_peak", networkQoS.getOutboundPeak()) - .addValue("outbound_burst", networkQoS.getOutboundBurst()); - - } -} diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/qos/BaseQosDaoFacadeImpl.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/qos/BaseQosDaoFacadeImpl.java new file mode 100644 index 0000000..8673943 --- /dev/null +++ b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/qos/BaseQosDaoFacadeImpl.java @@ -0,0 +1,87 @@ +package org.ovirt.engine.core.dao.qos; + +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.List; + +import org.ovirt.engine.core.common.businessentities.qos.BaseQos; +import org.ovirt.engine.core.common.businessentities.qos.QosType; +import org.ovirt.engine.core.compat.Guid; +import org.ovirt.engine.core.dao.DefaultGenericDaoDbFacade; +import org.springframework.jdbc.core.RowMapper; +import org.springframework.jdbc.core.namedparam.MapSqlParameterSource; + +public abstract class BaseQosDaoFacadeImpl<T extends BaseQos> extends DefaultGenericDaoDbFacade<T, Guid> implements QosDao<T> { + RowMapper<T> mapper = createEntityRowMapper(); + + public BaseQosDaoFacadeImpl(String entityStoredProcedureName) { + super("qos"); + } + + /** + * @param rs + * @return specific mapper for derived QoS dao + * @throws SQLException + */ + protected abstract T createPartialQosEntity(ResultSet rs) throws SQLException; + + /** + * @param map + * @param obj + * @return parameters mapper for derived QoS dao + */ + protected abstract void updatePartialParametersMapper(MapSqlParameterSource map, T obj); + + /** + * @return qos type for derived qos dao + */ + protected abstract QosType getQosType(); + + @Override + public List<T> getAllForStoragePoolId(Guid storagePoolId) { + MapSqlParameterSource parameterSource = getCustomMapSqlParameterSource() + .addValue("storage_pool_id", storagePoolId.getUuid()) + .addValue("qos_type", getQosType()); + return getCallsHandler().executeReadList("GetAllQosForStoragePoolByQosType", + mapper, + parameterSource); + } + + @Override + protected RowMapper<T> createEntityRowMapper() { + return new RowMapper<T>() { + @Override + public T mapRow(ResultSet rs, int rowNum) + throws SQLException { + T entity = createPartialQosEntity(rs); + entity.setId(getGuid(rs, "id")); + entity.setName(rs.getString("name")); + entity.setStoragePoolId(getGuid(rs, "storage_pool_id")); + return entity; + } + }; + } + + @Override + protected MapSqlParameterSource createFullParametersMapper(T obj) { + MapSqlParameterSource map = getCustomMapSqlParameterSource() + .addValue("id", obj.getId()) + .addValue("qos_type", getQosType()) + .addValue("name", obj.getName()) + .addValue("storage_pool_id", obj.getStoragePoolId()); + // add other values. + updatePartialParametersMapper(map, obj); + return map; + } + + @Override + protected MapSqlParameterSource createIdParameterMapper(Guid guid) { + return getCustomMapSqlParameterSource() + .addValue("id", guid); + } + + protected Integer getIntegerOrNull(ResultSet rs, String columnName) throws SQLException { + int i = rs.getInt(columnName); + return rs.wasNull() ? null : i; + } +} diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/qos/NetworkQosDao.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/qos/NetworkQosDao.java new file mode 100644 index 0000000..38bfc8d --- /dev/null +++ b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/qos/NetworkQosDao.java @@ -0,0 +1,7 @@ +package org.ovirt.engine.core.dao.qos; + +import org.ovirt.engine.core.common.businessentities.qos.NetworkQoS; + +public interface NetworkQosDao extends QosDao<NetworkQoS> { + +} diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/qos/NetworkQosDaoFacadeImpl.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/qos/NetworkQosDaoFacadeImpl.java new file mode 100644 index 0000000..5c5f6c9 --- /dev/null +++ b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/qos/NetworkQosDaoFacadeImpl.java @@ -0,0 +1,46 @@ +package org.ovirt.engine.core.dao.qos; + +import java.sql.ResultSet; +import java.sql.SQLException; + +import org.ovirt.engine.core.common.businessentities.qos.NetworkQoS; +import org.ovirt.engine.core.common.businessentities.qos.QosType; +import org.springframework.jdbc.core.namedparam.MapSqlParameterSource; + +public class NetworkQosDaoFacadeImpl extends BaseQosDaoFacadeImpl<NetworkQoS> implements NetworkQosDao { + + public NetworkQosDaoFacadeImpl() { + // trivial (a single table for all QoS objects) + super(""); + } + + @Override + protected NetworkQoS createPartialQosEntity(ResultSet rs) throws SQLException { + NetworkQoS entity = new NetworkQoS(); + + entity.setInboundAverage(getIntegerOrNull(rs, "inbound_average")); + entity.setInboundPeak(getIntegerOrNull(rs, "inbound_peak")); + entity.setInboundBurst(getIntegerOrNull(rs, "inbound_burst")); + entity.setOutboundAverage(getIntegerOrNull(rs, "outbound_average")); + entity.setOutboundPeak(getIntegerOrNull(rs, "outbound_peak")); + entity.setOutboundBurst(getIntegerOrNull(rs, "outbound_burst")); + + return entity; + } + + @Override + protected void updatePartialParametersMapper(MapSqlParameterSource map, NetworkQoS networkQoS) { + map.addValue("inbound_average", networkQoS.getInboundAverage()) + .addValue("inbound_peak", networkQoS.getInboundPeak()) + .addValue("inbound_burst", networkQoS.getInboundBurst()) + .addValue("outbound_average", networkQoS.getOutboundAverage()) + .addValue("outbound_peak", networkQoS.getOutboundPeak()) + .addValue("outbound_burst", networkQoS.getOutboundBurst()); + } + + @Override + protected QosType getQosType() { + return QosType.NETWORK; + } + +} diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/qos/QosDao.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/qos/QosDao.java new file mode 100644 index 0000000..d511a18 --- /dev/null +++ b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/qos/QosDao.java @@ -0,0 +1,12 @@ +package org.ovirt.engine.core.dao.qos; + +import java.util.List; + +import org.ovirt.engine.core.common.businessentities.qos.BaseQos; +import org.ovirt.engine.core.compat.Guid; +import org.ovirt.engine.core.dao.GenericDao; + +public interface QosDao<T extends BaseQos> extends GenericDao<T, Guid> { + + public List<T> getAllForStoragePoolId(Guid storagePoolId); +} diff --git a/backend/manager/modules/dal/src/main/jdbc-resources/engine-daos.properties b/backend/manager/modules/dal/src/main/jdbc-resources/engine-daos.properties index 19273d7..e8ee8f6 100644 --- a/backend/manager/modules/dal/src/main/jdbc-resources/engine-daos.properties +++ b/backend/manager/modules/dal/src/main/jdbc-resources/engine-daos.properties @@ -66,7 +66,7 @@ GlusterServerServiceDao=org.ovirt.engine.core.dao.gluster.GlusterServerServiceDaoDbFacadeImpl GlusterClusterServiceDao=org.ovirt.engine.core.dao.gluster.GlusterClusterServiceDaoDbFacadeImpl GlusterServerDao=org.ovirt.engine.core.dao.gluster.GlusterServerDaoDbFacadeImpl -NetworkQoSDao=org.ovirt.engine.core.dao.network.NetworkQoSDaoFacadeImpl +NetworkQosDao=org.ovirt.engine.core.dao.qos.NetworkQosDaoFacadeImpl PolicyUnitDao=org.ovirt.engine.core.dao.scheduling.PolicyUnitDaoImpl ClusterPolicyDao=org.ovirt.engine.core.dao.scheduling.ClusterPolicyDaoImpl DwhHistoryTimekeepingDao=org.ovirt.engine.core.dao.dwh.DwhHistoryTimekeepingDaoDbFacadeImpl 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 e0e9b16..f417df2 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 @@ -123,7 +123,7 @@ found |= (FixturesTool.VDS_NETWORK_INTERFACE.equals(iface.getId())); } assertTrue(found); - assertNotNull(dbFacade.getQosDao().get(FixturesTool.VDS_NETWORK_INTERFACE)); + assertNotNull(dbFacade.getNetworkQosDao().get(FixturesTool.VDS_NETWORK_INTERFACE)); dao.removeInterfaceFromVds(FixturesTool.VDS_NETWORK_INTERFACE); @@ -132,7 +132,7 @@ for (VdsNetworkInterface iface : after) { assertNotSame(FixturesTool.VDS_NETWORK_INTERFACE, iface.getId()); } - assertNull(dbFacade.getQosDao().get(FixturesTool.VDS_NETWORK_INTERFACE)); + assertNull(dbFacade.getNetworkQosDao().get(FixturesTool.VDS_NETWORK_INTERFACE)); } /** diff --git a/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/network/NetworkQosDaoTest.java b/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/qos/NetworkQosDaoTest.java similarity index 82% rename from backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/network/NetworkQosDaoTest.java rename to backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/qos/NetworkQosDaoTest.java index 308cfac..3b2a961 100644 --- a/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/network/NetworkQosDaoTest.java +++ b/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/qos/NetworkQosDaoTest.java @@ -1,4 +1,8 @@ -package org.ovirt.engine.core.dao.network; +package org.ovirt.engine.core.dao.qos; + +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertTrue; import org.junit.Test; import org.ovirt.engine.core.common.businessentities.qos.NetworkQoS; @@ -6,13 +10,9 @@ import org.ovirt.engine.core.dao.BaseDAOTestCase; import org.ovirt.engine.core.dao.FixturesTool; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertTrue; - public class NetworkQosDaoTest extends BaseDAOTestCase { - private NetworkQoSDao dao = getDbFacade().getQosDao(); + private final NetworkQosDao networkDao = getDbFacade().getNetworkQosDao(); private static final Guid qosAId = Guid.createGuidFromString("ae956031-6be2-43d6-bb90-5191c9253314"); private static final Guid qosBId = Guid.createGuidFromString("ae956031-6be2-43d6-bb90-5191c9253315"); @@ -25,7 +25,7 @@ */ @Test public void testGetWithInvalidId() { - NetworkQoS result = dao.get(Guid.newGuid()); + NetworkQoS result = networkDao.get(Guid.newGuid()); assertNull(result); } @@ -35,7 +35,7 @@ */ @Test public void testGetNetworkQos() { - NetworkQoS result = dao.get(qosAId); + NetworkQoS result = networkDao.get(qosAId); NetworkQoS trueA = new NetworkQoS(); trueA.setId(qosAId); trueA.setName("qos_a"); @@ -56,7 +56,7 @@ */ @Test public void testGetAllNetworkQos() { - assertTrue(dao.getAll().size() == 4); + assertTrue(networkDao.getAll().size() == 4); } /** @@ -75,9 +75,9 @@ newB.setOutboundPeak(30); newB.setOutboundBurst(30); - dao.update(newB); + networkDao.update(newB); - NetworkQoS afterUpdate = dao.get(qosBId); + NetworkQoS afterUpdate = networkDao.get(qosBId); assertTrue(newB.equals(afterUpdate)); } @@ -86,8 +86,8 @@ */ @Test public void testRemoveNetworkQos() { - dao.remove(qosCId); - NetworkQoS afterRemove = dao.get(qosCId); + networkDao.remove(qosCId); + NetworkQoS afterRemove = networkDao.get(qosCId); assertNull(afterRemove); } @@ -107,8 +107,8 @@ qosD.setOutboundPeak(200); qosD.setOutboundBurst(200); - dao.save(qosD); - NetworkQoS returnedD = dao.get(qosDId); + networkDao.save(qosD); + NetworkQoS returnedD = networkDao.get(qosDId); assertTrue(qosD.equals(returnedD)); } @@ -117,7 +117,7 @@ */ @Test public void testGetAllNetworkQosForStoragePool() { - assertTrue(dao.getAllForStoragePoolId(FixturesTool.STORAGE_POOL_NFS_2).size() == 2); + assertTrue(networkDao.getAllForStoragePoolId(FixturesTool.STORAGE_POOL_NFS_2).size() == 2); } } diff --git a/backend/manager/modules/dal/src/test/resources/fixtures.xml b/backend/manager/modules/dal/src/test/resources/fixtures.xml index 26f53e8..27106df 100644 --- a/backend/manager/modules/dal/src/test/resources/fixtures.xml +++ b/backend/manager/modules/dal/src/test/resources/fixtures.xml @@ -987,8 +987,9 @@ </row> </table> - <table name="network_qos"> + <table name="qos"> <column>id</column> + <column>qos_type</column> <column>name</column> <column>storage_pool_id</column> <column>inbound_average</column> @@ -999,6 +1000,7 @@ <column>outbound_burst</column> <row> <value>ae956031-6be2-43d6-bb90-5191c9253314</value> + <value>0</value> <value>qos_a</value> <value>386bffd1-e7ed-4b08-bce9-d7df10f8c9a0</value> <value>1000</value> @@ -1010,6 +1012,7 @@ </row> <row> <value>ae956031-6be2-43d6-bb90-5191c9253315</value> + <value>0</value> <value>qos_b</value> <value>386bffd1-e7ed-4b08-bce9-d7df10f8c9a0</value> <value>1200</value> @@ -1021,6 +1024,7 @@ </row> <row> <value>ae956031-6be2-43d6-bb90-5191c9253316</value> + <value>0</value> <value>qos_c</value> <value>72b9e200-f48b-4687-83f2-62828f249a47</value> <value>700</value> @@ -1032,6 +1036,7 @@ </row> <row> <value>ba31682e-6ae7-4f9d-8c6f-04c93acca9db</value> + <value>0</value> <null /> <null /> <value>700</value> diff --git a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/CollectVdsNetworkDataVDSCommand.java b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/CollectVdsNetworkDataVDSCommand.java index 6209427..1a7872f 100644 --- a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/CollectVdsNetworkDataVDSCommand.java +++ b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/CollectVdsNetworkDataVDSCommand.java @@ -23,7 +23,7 @@ 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.InterfaceDao; -import org.ovirt.engine.core.dao.network.NetworkQoSDao; +import org.ovirt.engine.core.dao.qos.NetworkQosDao; import org.ovirt.engine.core.utils.NetworkUtils; import org.ovirt.engine.core.utils.transaction.TransactionMethod; import org.ovirt.engine.core.utils.transaction.TransactionSupport; @@ -151,7 +151,7 @@ private static void logUnsynchronizedNetworks(VDS vds, Map<String, Network> networks) { List<String> networkNames = new ArrayList<String>(); - NetworkQoSDao qosDao = DbFacade.getInstance().getQosDao(); + NetworkQosDao qosDao = DbFacade.getInstance().getNetworkQosDao(); for (VdsNetworkInterface iface : vds.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 7b3fbdb..7ada7f4 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 @@ -13,7 +13,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.qos.NetworkQosDao; import org.ovirt.engine.core.utils.NetworkUtils; public class SetupNetworksVDSCommand<T extends SetupNetworksVdsCommandParameters> extends FutureVDSCommand<T> { @@ -36,7 +36,7 @@ private Map<String, Object> generateNetworks() { Map<String, Object> networks = new HashMap<String, Object>(); - NetworkQoSDao qosDao = getDbFacade().getQosDao(); + NetworkQosDao qosDao = getDbFacade().getNetworkQosDao(); for (Network network : getParameters().getNetworks()) { Map<String, Object> opts = new HashMap<String, Object>(); VdsNetworkInterface iface = diff --git a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VmInfoBuilder.java b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VmInfoBuilder.java index 6b7f794..09007c4 100644 --- a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VmInfoBuilder.java +++ b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VmInfoBuilder.java @@ -632,7 +632,7 @@ specParams = new HashMap<>(); struct.put(VdsProperties.SpecParams, specParams); } - NetworkQoS networkQoS = DbFacade.getInstance().getQosDao().get(qosId); + NetworkQoS networkQoS = DbFacade.getInstance().getNetworkQosDao().get(qosId); NetworkQosMapper qosMapper = new NetworkQosMapper(specParams, VdsProperties.QOS_INBOUND, VdsProperties.QOS_OUTBOUND); qosMapper.serialize(networkQoS); 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 a4ae523..95de147 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 @@ -35,7 +35,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.qos.NetworkQosDao; import org.ovirt.engine.core.utils.MockConfigRule; import org.ovirt.engine.core.utils.RandomUtils; @@ -47,7 +47,7 @@ private IVdsServer server; @Mock - private NetworkQoSDao qosDao; + private NetworkQosDao qosDao; @Mock private VDS host; @@ -288,7 +288,7 @@ when(dbFacade.getVdsStaticDao()).thenReturn(vdsStaticDao); when(dbFacade.getVdsDao()).thenReturn(vdsDao); - when(dbFacade.getQosDao()).thenReturn(qosDao); + when(dbFacade.getNetworkQosDao()).thenReturn(qosDao); when(vdsDao.get(any(Guid.class))).thenReturn(host); diff --git a/packaging/dbscripts/create_views.sql b/packaging/dbscripts/create_views.sql index 4f071f0..cb6cd13 100644 --- a/packaging/dbscripts/create_views.sql +++ b/packaging/dbscripts/create_views.sql @@ -1196,14 +1196,15 @@ vnic_profiles.custom_properties as custom_properties, vnic_profiles.description as description, network.name as network_name, - network_qos.name as network_qos_name, + qos.name as network_qos_name, storage_pool.name as data_center_name, storage_pool.compatibility_version as compatibility_version, storage_pool.id as data_center_id FROM vnic_profiles INNER JOIN network ON vnic_profiles.network_id = network.id -LEFT JOIN network_qos ON vnic_profiles.network_qos_id = network_qos.id +-- 0 = network QoS type +LEFT JOIN qos ON (vnic_profiles.network_qos_id = qos.id AND qos.qos_type = 0) INNER JOIN storage_pool ON network.storage_pool_id = storage_pool.id; diff --git a/packaging/dbscripts/network_qos_sp.sql b/packaging/dbscripts/network_qos_sp.sql deleted file mode 100644 index 3c1fa91..0000000 --- a/packaging/dbscripts/network_qos_sp.sql +++ /dev/null @@ -1,79 +0,0 @@ ----------------------------------------------------------------- --- [network_qos] Table ----------------------------------------------------------------- - -Create or replace FUNCTION InsertNetworkQos(v_id uuid, - v_name VARCHAR(50), - v_storage_pool_id uuid, - v_inbound_average INTEGER, - v_inbound_peak INTEGER, - v_inbound_burst INTEGER, - v_outbound_average INTEGER, - v_outbound_peak INTEGER, - v_outbound_burst INTEGER) -RETURNS VOID - AS $procedure$ -BEGIN -INSERT INTO network_qos(id, name, storage_pool_id, inbound_average, inbound_peak, inbound_burst, outbound_average, outbound_peak, outbound_burst) - VALUES(v_id, v_name, v_storage_pool_id, v_inbound_average, v_inbound_peak, v_inbound_burst, v_outbound_average, v_outbound_peak, v_outbound_burst); -END; $procedure$ -LANGUAGE plpgsql; - - -Create or replace FUNCTION UpdateNetworkQos(v_id uuid, - v_name VARCHAR(50), - v_storage_pool_id uuid, - v_inbound_average INTEGER, - v_inbound_peak INTEGER, - v_inbound_burst INTEGER, - v_outbound_average INTEGER, - v_outbound_peak INTEGER, - v_outbound_burst INTEGER) -RETURNS VOID - AS $procedure$ -BEGIN - UPDATE network_qos - SET name = v_name, storage_pool_id = v_storage_pool_id, inbound_average = v_inbound_average, inbound_peak = v_inbound_peak, inbound_burst = v_inbound_burst, - outbound_average = v_outbound_average, outbound_peak = v_outbound_peak, outbound_burst = v_outbound_burst, _update_date = LOCALTIMESTAMP - WHERE id = v_id; -END; $procedure$ -LANGUAGE plpgsql; - - -Create or replace FUNCTION DeleteNetworkQos(v_id UUID) RETURNS VOID - AS $procedure$ -BEGIN - DELETE FROM network_qos - WHERE id = v_id; -END; $procedure$ -LANGUAGE plpgsql; - - - -Create or replace FUNCTION GetAllFromNetworkQoss() RETURNS SETOF network_qos STABLE - AS $procedure$ -BEGIN - RETURN QUERY SELECT * - FROM network_qos; -END; $procedure$ -LANGUAGE plpgsql; - - -Create or replace FUNCTION GetNetworkQosByNetworkQosId(v_id UUID) RETURNS SETOF network_qos STABLE - AS $procedure$ -BEGIN -RETURN QUERY SELECT * - FROM network_qos - WHERE id = v_id; -END; $procedure$ -LANGUAGE plpgsql; - - -Create or replace FUNCTION GetAllNetworkQosForStoragePool(v_storage_pool_id UUID) RETURNS SETOF network_qos STABLE - AS $procedure$ -BEGIN -RETURN QUERY SELECT * - FROM network_qos - WHERE storage_pool_id = v_storage_pool_id; -END; $procedure$ -LANGUAGE plpgsql; diff --git a/packaging/dbscripts/qos_sp.sql b/packaging/dbscripts/qos_sp.sql new file mode 100644 index 0000000..8a65c39 --- /dev/null +++ b/packaging/dbscripts/qos_sp.sql @@ -0,0 +1,83 @@ +---------------------------------------------------------------- +-- [qos] Table +---------------------------------------------------------------- + +Create or replace FUNCTION InsertQos(v_id uuid, + v_qos_type SMALLINT, + v_name VARCHAR(50), + v_storage_pool_id uuid, + v_inbound_average INTEGER, + v_inbound_peak INTEGER, + v_inbound_burst INTEGER, + v_outbound_average INTEGER, + v_outbound_peak INTEGER, + v_outbound_burst INTEGER) +RETURNS VOID + AS $procedure$ +BEGIN +INSERT INTO qos(id, qos_type, name, storage_pool_id, inbound_average, inbound_peak, inbound_burst, outbound_average, outbound_peak, outbound_burst) + VALUES(v_id, v_qos_type, v_name, v_storage_pool_id, v_inbound_average, v_inbound_peak, v_inbound_burst, v_outbound_average, v_outbound_peak, v_outbound_burst); +END; $procedure$ +LANGUAGE plpgsql; + + +Create or replace FUNCTION UpdateQos(v_id uuid, + v_qos_type SMALLINT, + v_name VARCHAR(50), + v_storage_pool_id uuid, + v_inbound_average INTEGER, + v_inbound_peak INTEGER, + v_inbound_burst INTEGER, + v_outbound_average INTEGER, + v_outbound_peak INTEGER, + v_outbound_burst INTEGER) +RETURNS VOID + AS $procedure$ +BEGIN + UPDATE qos + SET qos_type = v_qos_type, name = v_name, storage_pool_id = v_storage_pool_id, inbound_average = v_inbound_average, inbound_peak = v_inbound_peak, + inbound_burst = v_inbound_burst, outbound_average = v_outbound_average, outbound_peak = v_outbound_peak, outbound_burst = v_outbound_burst, + _update_date = LOCALTIMESTAMP + WHERE id = v_id; +END; $procedure$ +LANGUAGE plpgsql; + + +Create or replace FUNCTION DeleteQos(v_id UUID) RETURNS VOID + AS $procedure$ +BEGIN + DELETE FROM qos + WHERE id = v_id; +END; $procedure$ +LANGUAGE plpgsql; + + + +Create or replace FUNCTION GetAllFromQoss() RETURNS SETOF qos STABLE + AS $procedure$ +BEGIN + RETURN QUERY SELECT * + FROM qos; +END; $procedure$ +LANGUAGE plpgsql; + + +Create or replace FUNCTION GetQosByQosId(v_id UUID) RETURNS SETOF qos STABLE + AS $procedure$ +BEGIN +RETURN QUERY SELECT * + FROM qos + WHERE id = v_id; +END; $procedure$ +LANGUAGE plpgsql; + + +Create or replace FUNCTION GetAllQosForStoragePoolByQosType(v_storage_pool_id UUID, v_qos_type SMALLINT) RETURNS SETOF qos STABLE + AS $procedure$ +BEGIN +RETURN QUERY SELECT * + FROM qos + WHERE storage_pool_id = v_storage_pool_id + AND qos_type = v_qos_type; +END; $procedure$ +LANGUAGE plpgsql; diff --git a/packaging/dbscripts/upgrade/03_05_0330_aggregate_qos.sql b/packaging/dbscripts/upgrade/03_05_0330_aggregate_qos.sql new file mode 100644 index 0000000..c4db99e --- /dev/null +++ b/packaging/dbscripts/upgrade/03_05_0330_aggregate_qos.sql @@ -0,0 +1,13 @@ +-- for more details see http://www.ovirt.org/Features/aggregate_QoS + +-- add type column (default is network (0)) +ALTER TABLE network_qos ADD qos_type SMALLINT NOT NULL DEFAULT 0; +-- rename table +ALTER TABLE network_qos RENAME TO qos; +-- rename table index +ALTER INDEX idx_network_qos_storage_pool_id RENAME TO idx_qos_storage_pool_id; +-- rename table constraints (drop + add) +ALTER TABLE qos DROP CONSTRAINT network_qos_storage_pool_fk; +ALTER TABLE qos ADD CONSTRAINT fk_qos_storage_pool FOREIGN KEY (storage_pool_id) + REFERENCES storage_pool (id) MATCH SIMPLE + ON UPDATE NO ACTION ON DELETE CASCADE; -- To view, visit http://gerrit.ovirt.org/27094 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I1a9af59277b5055453159f002f19046c0051d63b Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Gilad Chaplik <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
