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

Reply via email to