Muli Salem has uploaded a new change for review. Change subject: core: Query GetVdsGroupsByNetworkId (WIP) ......................................................................
core: Query GetVdsGroupsByNetworkId (WIP) This patch adds the query above as part of the Network Main Tab feature. Change-Id: I5602c19e731cf0c3fe1377a574eac9ac42d351b6 Signed-off-by: Muli Salem <[email protected]> --- M backend/manager/dbscripts/vds_groups_sp.sql A backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetVdsGroupsByNetworkIdQuery.java A backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/GetVdsGroupsByNetworkIdQueryTest.java A backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/GetVdsGroupsByNetworkIdParameters.java M backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/VdcQueryType.java M backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VdsGroupDAO.java M backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VdsGroupDAODbFacadeImpl.java M backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VdsGroupDAOHibernateImpl.java 8 files changed, 123 insertions(+), 0 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/26/8426/1 diff --git a/backend/manager/dbscripts/vds_groups_sp.sql b/backend/manager/dbscripts/vds_groups_sp.sql index f3b1073..0d71014 100644 --- a/backend/manager/dbscripts/vds_groups_sp.sql +++ b/backend/manager/dbscripts/vds_groups_sp.sql @@ -178,3 +178,18 @@ LANGUAGE plpgsql; + +--This SP returns all clusters that the given network is assigned to +Create or replace FUNCTION GetVdsGroupsByNetworkId(v_network_id UUID) RETURNS SETOF vds_groups + AS $procedure$ +BEGIN + RETURN QUERY SELECT * + FROM vds_groups + INNER JOIN network_cluster + ON vds_groups.vds_group_id = network_cluster.cluster_id + WHERE (network_id = v_network_id); +END; $procedure$ +LANGUAGE plpgsql; + + + diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetVdsGroupsByNetworkIdQuery.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetVdsGroupsByNetworkIdQuery.java new file mode 100644 index 0000000..f7243bb --- /dev/null +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetVdsGroupsByNetworkIdQuery.java @@ -0,0 +1,18 @@ +package org.ovirt.engine.core.bll; + +import org.ovirt.engine.core.common.queries.GetVdsGroupsByNetworkIdParameters; + +/** + * A query to retrieve all Clusters that the given Network is assigned to. + */ +public class GetVdsGroupsByNetworkIdQuery<P extends GetVdsGroupsByNetworkIdParameters> extends QueriesCommandBase<P> { + public GetVdsGroupsByNetworkIdQuery(P parameters) { + super(parameters); + } + + @Override + protected void executeQueryCommand() { + getQueryReturnValue().setReturnValue(getDbFacade().getVdsGroupDao() + .getAllForNetwork(getParameters().getNetworkId())); + } +} diff --git a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/GetVdsGroupsByNetworkIdQueryTest.java b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/GetVdsGroupsByNetworkIdQueryTest.java new file mode 100644 index 0000000..bc2f583 --- /dev/null +++ b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/GetVdsGroupsByNetworkIdQueryTest.java @@ -0,0 +1,45 @@ +package org.ovirt.engine.core.bll; + +import static org.junit.Assert.assertEquals; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; + +import java.util.Collections; +import java.util.List; + +import org.junit.Test; +import org.ovirt.engine.core.common.businessentities.VDSGroup; +import org.ovirt.engine.core.common.queries.GetVdsGroupsByNetworkIdParameters; +import org.ovirt.engine.core.compat.Guid; +import org.ovirt.engine.core.dao.VdsGroupDAO; + +/** + * A test for the {@link GetVdsGroupsByNetworkIdQuery} class. + * It tests that flow (i.e., that the query delegates properly to the DAO}). + * The internal workings of the DAO are not tested. + */ +public class GetVdsGroupsByNetworkIdQueryTest + extends AbstractQueryTest<GetVdsGroupsByNetworkIdParameters, + GetVdsGroupsByNetworkIdQuery<GetVdsGroupsByNetworkIdParameters>> { + + @Test + public void testExecuteQueryCommand() { + // Set up the query parameters + Guid networkId = Guid.NewGuid(); + when(params.getNetworkId()).thenReturn(networkId); + + // Set up the DAOs + VDSGroup cluster = new VDSGroup(); + List<VDSGroup> expected = Collections.singletonList(cluster); + VdsGroupDAO VdsGroupDAOMock = mock(VdsGroupDAO.class); + when(VdsGroupDAOMock.getAllForNetwork(networkId)).thenReturn(expected); + when(getDbFacadeMockInstance().getVdsGroupDao()).thenReturn(VdsGroupDAOMock); + + // Run the query + GetVdsGroupsByNetworkIdQuery<GetVdsGroupsByNetworkIdParameters> query = getQuery(); + query.executeQueryCommand(); + + // Assert the result + assertEquals("Wrong result returned", expected, getQuery().getQueryReturnValue().getReturnValue()); + } +} diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/GetVdsGroupsByNetworkIdParameters.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/GetVdsGroupsByNetworkIdParameters.java new file mode 100644 index 0000000..a3be7cf --- /dev/null +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/GetVdsGroupsByNetworkIdParameters.java @@ -0,0 +1,19 @@ +package org.ovirt.engine.core.common.queries; + +import org.ovirt.engine.core.compat.Guid; + +public class GetVdsGroupsByNetworkIdParameters extends VdcQueryParametersBase { + private static final long serialVersionUID = -4477480709664828979L; + private Guid networkId; + + public GetVdsGroupsByNetworkIdParameters(Guid networkId) { + this.networkId = networkId; + } + + public Guid getNetworkId() { + return networkId; + } + + public GetVdsGroupsByNetworkIdParameters() { + } +} diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/VdcQueryType.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/VdcQueryType.java index a1c5bee..6969382 100644 --- a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/VdcQueryType.java +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/VdcQueryType.java @@ -52,6 +52,9 @@ // Template Network GetTemplateInterfacesByTemplateId(VdcQueryAuthType.User), + // Networks + GetVdsGroupsByNetworkId, + // VdsGroups GetVdsCertificateSubjectByVdsId(VdcQueryAuthType.User), GetVdsCertificateSubjectByVmId(VdcQueryAuthType.User), diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VdsGroupDAO.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VdsGroupDAO.java index 3dc2f73..df23115 100644 --- a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VdsGroupDAO.java +++ b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VdsGroupDAO.java @@ -123,4 +123,13 @@ * @return list of clusters */ List<VDSGroup> getClustersWithPermittedAction(Guid userId, ActionGroup actionGroup); + + /** + * Retrieves all clusters that the given network is assigned to. + * + * @param id + * the cluster + * @return the list of networks + */ + List<VDSGroup> getAllForNetwork(Guid networkId); } diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VdsGroupDAODbFacadeImpl.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VdsGroupDAODbFacadeImpl.java index 16bfa64..267e146 100644 --- a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VdsGroupDAODbFacadeImpl.java +++ b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VdsGroupDAODbFacadeImpl.java @@ -118,6 +118,15 @@ parameterSource); } + public List<VDSGroup> getAllForNetwork(Guid networkId) { + MapSqlParameterSource parameterSource = getCustomMapSqlParameterSource() + .addValue("vds_group_id", networkId); + + return getCallsHandler().executeReadList("GetVdsGroupsByNetworkId", + VdsGroupRowMapper.instance, + parameterSource); + } + private MapSqlParameterSource getVdsGroupParamSource(VDSGroup group) { MapSqlParameterSource parameterSource = getCustomMapSqlParameterSource() .addValue("description", group.getdescription()) diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VdsGroupDAOHibernateImpl.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VdsGroupDAOHibernateImpl.java index bd28798..c037b76 100644 --- a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VdsGroupDAOHibernateImpl.java +++ b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VdsGroupDAOHibernateImpl.java @@ -61,4 +61,9 @@ return (List<VDSGroup>) query.uniqueResult(); } + + @Override + public List<VDSGroup> getAllForNetwork(Guid networkId) { + throw new NotImplementedException(); + } } -- To view, visit http://gerrit.ovirt.org/8426 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I5602c19e731cf0c3fe1377a574eac9ac42d351b6 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Muli Salem <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
