Mike Kolesnik has uploaded a new change for review. Change subject: engine: Added query for all networks from provider ......................................................................
engine: Added query for all networks from provider Added a query to retrieve all the networks that are provided by an external provider, by it's ID. Change-Id: I48ec0a3eb15fbe29a4b0ff7131ffb8b3a85bce38 Signed-off-by: Mike Kolesnik <mkole...@redhat.com> --- M backend/manager/dbscripts/network_sp.sql A backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/provider/GetAllNetworksForProviderQuery.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/NetworkDaoHibernateImpl.java M backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/network/NetworkDao.java M backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/network/NetworkDaoDbFacadeImpl.java M backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/network/NetworkDaoTest.java 7 files changed, 67 insertions(+), 0 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/09/11109/1 diff --git a/backend/manager/dbscripts/network_sp.sql b/backend/manager/dbscripts/network_sp.sql index 369a742..a7560ee 100644 --- a/backend/manager/dbscripts/network_sp.sql +++ b/backend/manager/dbscripts/network_sp.sql @@ -220,6 +220,20 @@ +Create or replace FUNCTION GetAllNetworksByNetworkProviderId(v_id UUID) +RETURNS SETOF network +AS $procedure$ +BEGIN + RETURN QUERY + SELECT * + FROM network + WHERE provided_by = v_id; +END; $procedure$ +LANGUAGE plpgsql; + + + + --The GetByFK stored procedure cannot be created because the [network] table doesn't have at least one foreign key column or the foreign keys are also primary keys. ---------------------------------------------------------------- diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/provider/GetAllNetworksForProviderQuery.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/provider/GetAllNetworksForProviderQuery.java new file mode 100644 index 0000000..0598198 --- /dev/null +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/provider/GetAllNetworksForProviderQuery.java @@ -0,0 +1,16 @@ +package org.ovirt.engine.core.bll.provider; + +import org.ovirt.engine.core.bll.QueriesCommandBase; +import org.ovirt.engine.core.common.queries.IdQueryParameters; + +public class GetAllNetworksForProviderQuery<P extends IdQueryParameters> extends QueriesCommandBase<P> { + + public GetAllNetworksForProviderQuery(P parameters) { + super(parameters); + } + + @Override + protected void executeQueryCommand() { + setReturnValue(getDbFacade().getNetworkDao().getAllForProvider(getParameters().getId())); + } +} 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 09eb39e..15b9229 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 @@ -295,6 +295,7 @@ // Providers GetAllProviders, + GetAllNetworksForProvider, // Default type instead of having to null check Unknown(VdcQueryAuthType.User); diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/NetworkDaoHibernateImpl.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/NetworkDaoHibernateImpl.java index f4a9fd3..65cd631 100644 --- a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/NetworkDaoHibernateImpl.java +++ b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/NetworkDaoHibernateImpl.java @@ -51,4 +51,9 @@ public List<Network> getAllForDataCenter(Guid id, Guid userID, boolean isFiltered) { throw new NotImplementedException(); } + + @Override + public List<Network> getAllForProvider(Guid id) { + throw new NotImplementedException(); + } } diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/network/NetworkDao.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/network/NetworkDao.java index 7760409..c78cca3 100644 --- a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/network/NetworkDao.java +++ b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/network/NetworkDao.java @@ -93,4 +93,13 @@ * @return the list of networks */ List<Network> getAllForCluster(Guid id, Guid userID, boolean isFiltered); + + /** + * Retrieves all networks for the given provider. + * + * @param id + * the provider's ID + * @return the list of networks + */ + List<Network> getAllForProvider(Guid id); } diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/network/NetworkDaoDbFacadeImpl.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/network/NetworkDaoDbFacadeImpl.java index c3d56ba..f0c26a3 100644 --- a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/network/NetworkDaoDbFacadeImpl.java +++ b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/network/NetworkDaoDbFacadeImpl.java @@ -92,6 +92,13 @@ } @Override + public List<Network> getAllForProvider(Guid id) { + return getCallsHandler().executeReadList("GetAllNetworksByNetworkProviderId", + NetworkRowMapper.instance, + createIdParameterMapper(id)); + } + + @Override protected MapSqlParameterSource createIdParameterMapper(Guid id) { return getCustomMapSqlParameterSource().addValue("id", id); } diff --git a/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/network/NetworkDaoTest.java b/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/network/NetworkDaoTest.java index e273f7b..7f08da2 100644 --- a/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/network/NetworkDaoTest.java +++ b/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/network/NetworkDaoTest.java @@ -20,6 +20,7 @@ private Guid cluster; private Guid datacenter; private Network new_net; + private Guid provider = new Guid("1115c1c6-cb15-4832-b2a4-023770607111"); final static private String EXISTING_NETWORK_NAME = "engine"; @Override @@ -261,6 +262,20 @@ } /** + * Ensures the right set of networks are returned for the given provider. + */ + @Test + public void testGetAllForProvider() { + List<Network> result = dao.getAllForProvider(provider); + + assertNotNull(result); + assertFalse(result.isEmpty()); + for (Network network : result) { + assertEquals(provider, network.getProvidedBy()); + } + } + + /** * Ensures that saving a network works as expected. */ @Test -- To view, visit http://gerrit.ovirt.org/11109 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I48ec0a3eb15fbe29a4b0ff7131ffb8b3a85bce38 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Mike Kolesnik <mkole...@redhat.com> _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches