Mike Kolesnik has uploaded a new change for review. Change subject: engine: Added network provider table & DAO ......................................................................
engine: Added network provider table & DAO Added table to hold network providers and also DAO that will allow to manipulate them. Change-Id: Iaa461cb6721b866c0a6f6531365c8af4d46eb1bb Signed-off-by: Mike Kolesnik <[email protected]> --- A backend/manager/dbscripts/network_providers_sp.sql A backend/manager/dbscripts/upgrade/03_03_0010_add_network_provider.sql M backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/dbbroker/DbFacade.java A backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/network/NetworkProviderDao.java A backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/network/NetworkProviderDaoDbFacadeImpl.java M backend/manager/modules/dal/src/main/jdbc-resources/engine-daos.properties A backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/network/NetworkProviderDaoTest.java M backend/manager/modules/dal/src/test/resources/fixtures.xml 8 files changed, 233 insertions(+), 3 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/85/10785/1 diff --git a/backend/manager/dbscripts/network_providers_sp.sql b/backend/manager/dbscripts/network_providers_sp.sql new file mode 100644 index 0000000..4b41b73 --- /dev/null +++ b/backend/manager/dbscripts/network_providers_sp.sql @@ -0,0 +1,92 @@ + + +---------------------------------------------------------------- +-- [network_providers] Table +-- + + + + +Create or replace FUNCTION InsertNetworkProvider( + v_id UUID, + v_name VARCHAR(128), + v_description VARCHAR(4000), + v_api_address VARCHAR(512)) +RETURNS VOID +AS $procedure$ +BEGIN + INSERT INTO network_providers( + id, + name, + description, + api_address) + VALUES( + v_id, + v_name, + v_description, + v_api_address); +END; $procedure$ +LANGUAGE plpgsql; + + + + + +Create or replace FUNCTION UpdateNetworkProvider( + v_id UUID, + v_name VARCHAR(128), + v_description VARCHAR(4000), + v_api_address VARCHAR(512)) +RETURNS VOID +AS $procedure$ +BEGIN + UPDATE network_providers + SET name = v_name, + description = v_description, + api_address = v_api_address, + _update_date = NOW() + WHERE id = v_id; +END; $procedure$ +LANGUAGE plpgsql; + + + + + + +Create or replace FUNCTION DeleteNetworkProvider(v_id UUID) +RETURNS VOID +AS $procedure$ +BEGIN + DELETE + FROM network_providers + WHERE id = v_id; +END; $procedure$ +LANGUAGE plpgsql; + + + + + +Create or replace FUNCTION GetAllFromNetworkProviders() RETURNS SETOF network_providers +AS $procedure$ +BEGIN + RETURN QUERY + SELECT * + FROM network_providers; +END; $procedure$ +LANGUAGE plpgsql; + + + +Create or replace FUNCTION GetNetworkProviderByNetworkProviderId(v_id UUID) +RETURNS SETOF network_providers +AS $procedure$ +BEGIN + RETURN QUERY + SELECT * + FROM network_providers + WHERE id = v_id; +END; $procedure$ +LANGUAGE plpgsql; + diff --git a/backend/manager/dbscripts/upgrade/03_03_0010_add_network_provider.sql b/backend/manager/dbscripts/upgrade/03_03_0010_add_network_provider.sql new file mode 100644 index 0000000..56031cc --- /dev/null +++ b/backend/manager/dbscripts/upgrade/03_03_0010_add_network_provider.sql @@ -0,0 +1,11 @@ + +CREATE TABLE network_providers +( + id UUID CONSTRAINT network_providers_pk PRIMARY KEY, + name VARCHAR(128) NOT NULL, + description VARCHAR(4000), + api_address VARCHAR(512) NOT NULL, + _create_date TIMESTAMP WITH TIME ZONE DEFAULT NOW(), + _update_date TIMESTAMP WITH TIME ZONE +); + 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 83b915f..d1e0834 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 @@ -18,8 +18,11 @@ import org.ovirt.engine.core.common.businessentities.Image; import org.ovirt.engine.core.common.businessentities.Role; import org.ovirt.engine.core.common.businessentities.Snapshot; +import org.ovirt.engine.core.common.businessentities.StorageDomainDynamic; +import org.ovirt.engine.core.common.businessentities.StorageDomainStatic; import org.ovirt.engine.core.common.businessentities.StorageDomainStatus; import org.ovirt.engine.core.common.businessentities.StorageDomainType; +import org.ovirt.engine.core.common.businessentities.StoragePoolIsoMap; import org.ovirt.engine.core.common.businessentities.VdsDynamic; import org.ovirt.engine.core.common.businessentities.VdsStatic; import org.ovirt.engine.core.common.businessentities.VdsStatistics; @@ -30,13 +33,11 @@ import org.ovirt.engine.core.common.businessentities.VmTemplate; import org.ovirt.engine.core.common.businessentities.image_storage_domain_map; import org.ovirt.engine.core.common.businessentities.permissions; -import org.ovirt.engine.core.common.businessentities.StorageDomainDynamic; -import org.ovirt.engine.core.common.businessentities.StorageDomainStatic; import org.ovirt.engine.core.common.businessentities.storage_domains; import org.ovirt.engine.core.common.businessentities.storage_pool; -import org.ovirt.engine.core.common.businessentities.StoragePoolIsoMap; import org.ovirt.engine.core.common.businessentities.vds_spm_id_map; import org.ovirt.engine.core.common.businessentities.network.Network; +import org.ovirt.engine.core.common.businessentities.network.NetworkProvider; import org.ovirt.engine.core.common.businessentities.network.VmNetworkInterface; import org.ovirt.engine.core.common.businessentities.network.VmNetworkStatistics; import org.ovirt.engine.core.compat.Guid; @@ -100,6 +101,7 @@ 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.NetworkProviderDao; import org.ovirt.engine.core.dao.network.NetworkViewDao; import org.ovirt.engine.core.dao.network.VmNetworkInterfaceDao; import org.ovirt.engine.core.dao.network.VmNetworkStatisticsDao; @@ -141,6 +143,7 @@ put(VmNetworkInterface.class, VmNetworkInterfaceDao.class); put(VmNetworkStatistics.class, VmNetworkStatisticsDao.class); put(Network.class, NetworkDao.class); + put(NetworkProvider.class, NetworkProviderDao.class); put(Snapshot.class, SnapshotDao.class); put(VmDevice.class, VmDeviceDAO.class); put(image_storage_domain_map.class, ImageStorageDomainMapDao.class); @@ -646,6 +649,15 @@ } /** + * Returns the singleton instance of {@link NetworkProviderDao}. + * + * @return the dao + */ + public NetworkProviderDao getNetworkProviderDao() { + return getDao(NetworkProviderDao.class); + } + + /** * Returns the singleton instance of {@link NetworkViewDao}. * * @return the dao diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/network/NetworkProviderDao.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/network/NetworkProviderDao.java new file mode 100644 index 0000000..88757f3 --- /dev/null +++ b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/network/NetworkProviderDao.java @@ -0,0 +1,9 @@ +package org.ovirt.engine.core.dao.network; + +import org.ovirt.engine.core.common.businessentities.network.NetworkProvider; +import org.ovirt.engine.core.compat.Guid; +import org.ovirt.engine.core.dao.GenericDao; + +public interface NetworkProviderDao extends GenericDao<NetworkProvider, Guid> { + +} diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/network/NetworkProviderDaoDbFacadeImpl.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/network/NetworkProviderDaoDbFacadeImpl.java new file mode 100644 index 0000000..d88e2f0 --- /dev/null +++ b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/network/NetworkProviderDaoDbFacadeImpl.java @@ -0,0 +1,54 @@ +package org.ovirt.engine.core.dao.network; + +import java.sql.ResultSet; +import java.sql.SQLException; + +import org.ovirt.engine.core.common.businessentities.network.NetworkProvider; +import org.ovirt.engine.core.compat.Guid; +import org.ovirt.engine.core.dao.DefaultGenericDaoDbFacade; +import org.springframework.jdbc.core.namedparam.MapSqlParameterSource; +import org.springframework.jdbc.core.simple.ParameterizedRowMapper; + +public class NetworkProviderDaoDbFacadeImpl extends DefaultGenericDaoDbFacade<NetworkProvider, Guid> + implements NetworkProviderDao { + + public NetworkProviderDaoDbFacadeImpl() { + super("NetworkProvider"); + } + + @Override + protected MapSqlParameterSource createFullParametersMapper(NetworkProvider entity) { + return createIdParameterMapper(entity.getId()) + .addValue("name", entity.getName()) + .addValue("description", entity.getDescription()) + .addValue("api_address", entity.getApiAddress()); + } + + @Override + protected MapSqlParameterSource createIdParameterMapper(Guid id) { + return getCustomMapSqlParameterSource().addValue("id", id); + } + + @Override + protected ParameterizedRowMapper<NetworkProvider> createEntityRowMapper() { + return NetworkProviderRowMapper.INSTANCE; + } + + private static class NetworkProviderRowMapper implements ParameterizedRowMapper<NetworkProvider> { + + public final static NetworkProviderRowMapper INSTANCE = new NetworkProviderRowMapper(); + + private NetworkProviderRowMapper() { + } + + @Override + public NetworkProvider mapRow(ResultSet rs, int index) throws SQLException { + NetworkProvider entity = new NetworkProvider(); + entity.setId(Guid.createGuidFromString(rs.getString("id"))); + entity.setName(rs.getString("name")); + entity.setDescription(rs.getString("description")); + entity.setApiAddress(rs.getString("api_address")); + return entity; + } + } +} 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 d39f7d4..6b96743 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 @@ -57,3 +57,4 @@ VmAndTemplatesGenerationsDAO=org.ovirt.engine.core.dao.VmAndTemplatesGenerationsDbFacadeImpl NetworkViewDao=org.ovirt.engine.core.dao.network.NetworkViewDaoDbFacadeImpl VmGuestAgentInterfaceDao=org.ovirt.engine.core.dao.VmGuestAgentInterfaceDaoDbFacadeImpl +NetworkProviderDao=org.ovirt.engine.core.dao.network.NetworkProviderDaoDbFacadeImpl diff --git a/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/network/NetworkProviderDaoTest.java b/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/network/NetworkProviderDaoTest.java new file mode 100644 index 0000000..2787087 --- /dev/null +++ b/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/network/NetworkProviderDaoTest.java @@ -0,0 +1,38 @@ +package org.ovirt.engine.core.dao.network; + +import org.ovirt.engine.core.common.businessentities.network.NetworkProvider; +import org.ovirt.engine.core.compat.Guid; +import org.ovirt.engine.core.dao.BaseGenericDaoTestCase; + +public class NetworkProviderDaoTest extends BaseGenericDaoTestCase<Guid, NetworkProvider, NetworkProviderDao> { + + @Override + protected NetworkProvider generateNewEntity() { + return new NetworkProvider(); + } + + @Override + protected void updateExistingEntity() { + existingEntity.setApiAddress("abc"); + } + + @Override + protected Guid getExistingEntityId() { + return Guid.createGuidFromString("1115c1c6-cb15-4832-b2a4-023770607111"); + } + + @Override + protected NetworkProviderDao prepareDao() { + return prepareDAO(dbFacade.getNetworkProviderDao()); + } + + @Override + protected Guid generateNonExistingId() { + return Guid.NewGuid(); + } + + @Override + protected int getEneitiesTotalCount() { + return 1; + } +} diff --git a/backend/manager/modules/dal/src/test/resources/fixtures.xml b/backend/manager/modules/dal/src/test/resources/fixtures.xml index 33fa02e..d5e6b22 100644 --- a/backend/manager/modules/dal/src/test/resources/fixtures.xml +++ b/backend/manager/modules/dal/src/test/resources/fixtures.xml @@ -635,6 +635,19 @@ </row> </table> + <table name="network_providers"> + <column>id</column> + <column>name</column> + <column>description</column> + <column>api_address</column> + <row> + <value>1115c1c6-cb15-4832-b2a4-023770607111</value> + <value>provider</value> + <value>External provider</value> + <value>http://provider.com</value> + </row> + </table> + <table name="network"> <column>id</column> <column>name</column> -- To view, visit http://gerrit.ovirt.org/10785 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Iaa461cb6721b866c0a6f6531365c8af4d46eb1bb Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Mike Kolesnik <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
