Shubhendu Tripathi has uploaded a new change for review.

Change subject: gluster: DAO for volume snapshot config maintenance
......................................................................

gluster: DAO for volume snapshot config maintenance

Added DAO for gluster volume snapshot configuration maintenance

Change-Id: Ic0854984eed0f72226aa732a651be50bf8dda9fb
Signed-off-by: Shubhendu Tripathi <shtri...@redhat.com>
---
M 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/gluster/GlusterVolumeSnapshotConfigParam.java
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/gluster/GlusterVolumeSnapshotConfigDao.java
A 
backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/gluster/GlusterVolumeSnapshotConfigDaoDbFacadeImpl.java
M backend/manager/modules/dal/src/main/jdbc-resources/engine-daos.properties
M packaging/dbscripts/gluster_volume_snapshot_sp.sql
M packaging/dbscripts/upgrade/03_06_0520_add_gluster_volume_snapshot_tables.sql
7 files changed, 201 insertions(+), 10 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/03/35303/1

diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/gluster/GlusterVolumeSnapshotConfigParam.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/gluster/GlusterVolumeSnapshotConfigParam.java
index c493016..2b69cab 100644
--- 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/gluster/GlusterVolumeSnapshotConfigParam.java
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/gluster/GlusterVolumeSnapshotConfigParam.java
@@ -6,7 +6,7 @@
 public class GlusterVolumeSnapshotConfigParam extends IVdcQueryable {
     private static final long serialVersionUID = 3432543544365L;
     private Guid clusterId;
-    private Guid entityId;
+    private Guid volumeId;
     private String paramName;
     private String paramValue;
 
@@ -18,12 +18,12 @@
         this.clusterId = cid;
     }
 
-    public Guid getEntityId() {
-        return entityId;
+    public Guid getVolumeId() {
+        return volumeId;
     }
 
-    public void setEntityId(Guid entityId) {
-        this.entityId = entityId;
+    public void setVolumeId(Guid volumeId) {
+        this.volumeId = volumeId;
     }
 
     public String getParamName() {
@@ -47,7 +47,7 @@
         final int prime = 31;
         int result = 1;
         result = prime * result + (clusterId == null ? 0 : 
clusterId.hashCode());
-        result = prime * result + (entityId == null ? 0 : entityId.hashCode());
+        result = prime * result + (volumeId == null ? 0 : volumeId.hashCode());
         result = prime * result + (paramName == null ? 0 : 
paramName.hashCode());
         result = prime * result + (paramValue == null ? 0 : 
paramValue.hashCode());
         return result;
@@ -61,11 +61,11 @@
 
         GlusterVolumeSnapshotConfigParam config = 
(GlusterVolumeSnapshotConfigParam)obj;
 
-        if (!(clusterId.equals(config.getEntityId()))) {
+        if (!(clusterId.equals(config.getVolumeId()))) {
             return false;
         }
 
-        if (!(entityId.equals(config.getEntityId()))) {
+        if (!(volumeId.equals(config.getVolumeId()))) {
             return false;
         }
 
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 4603ee5..2a96e56 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
@@ -131,6 +131,7 @@
 import org.ovirt.engine.core.dao.gluster.GlusterServerServiceDao;
 import org.ovirt.engine.core.dao.gluster.GlusterServiceDao;
 import org.ovirt.engine.core.dao.gluster.GlusterVolumeDao;
+import org.ovirt.engine.core.dao.gluster.GlusterVolumeSnapshotConfigDao;
 import org.ovirt.engine.core.dao.gluster.GlusterVolumeSnapshotDao;
 import org.ovirt.engine.core.dao.network.InterfaceDao;
 import org.ovirt.engine.core.dao.network.NetworkClusterDao;
@@ -888,6 +889,15 @@
     }
 
     /**
+     * Returns the singleton instance of {@link GlusterVolumeSnapshotConfigDao}
+     *
+     * @return the dao
+     */
+    public GlusterVolumeSnapshotConfigDao getGlusterVolumeSnapshotConfigDao() {
+        return getDao(GlusterVolumeSnapshotConfigDao.class);
+    }
+
+    /**
      * Returns the singleton instance of {@link GlusterVolumeDao}.
      *
      * @return the dao
diff --git 
a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/gluster/GlusterVolumeSnapshotConfigDao.java
 
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/gluster/GlusterVolumeSnapshotConfigDao.java
new file mode 100644
index 0000000..9ae9f9f
--- /dev/null
+++ 
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/gluster/GlusterVolumeSnapshotConfigDao.java
@@ -0,0 +1,26 @@
+package org.ovirt.engine.core.dao.gluster;
+
+import java.util.List;
+
+import 
org.ovirt.engine.core.common.businessentities.gluster.GlusterVolumeSnapshotConfigParam;
+import org.ovirt.engine.core.compat.Guid;
+import org.ovirt.engine.core.dao.DAO;
+import org.ovirt.engine.core.dao.SearchDAO;
+
+public interface GlusterVolumeSnapshotConfigDao extends DAO, 
SearchDAO<GlusterVolumeSnapshotConfigParam> {
+    public void save(GlusterVolumeSnapshotConfigParam entity);
+
+    public List<GlusterVolumeSnapshotConfigParam> 
GetGlusterVolumeSnapshotConfigByClusterId(Guid clusterId);
+
+    public List<GlusterVolumeSnapshotConfigParam> 
GetGlusterVolumeSnapshotConfigByVolumeId(Guid clusterId, Guid volumeId);
+
+    public GlusterVolumeSnapshotConfigParam 
GetGlusterVolumeSnapshotConfigByClusterIdAndName(Guid clusterId,
+            String paramName);
+
+    public GlusterVolumeSnapshotConfigParam 
GetGlusterVolumeSnapshotConfigByVolumeIdAndName(Guid clusterId,
+            Guid volumeId,
+            String paramName);
+
+    @Override
+    public List<GlusterVolumeSnapshotConfigParam> getAllWithQuery(String 
query);
+}
diff --git 
a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/gluster/GlusterVolumeSnapshotConfigDaoDbFacadeImpl.java
 
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/gluster/GlusterVolumeSnapshotConfigDaoDbFacadeImpl.java
new file mode 100644
index 0000000..caccd44
--- /dev/null
+++ 
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/gluster/GlusterVolumeSnapshotConfigDaoDbFacadeImpl.java
@@ -0,0 +1,90 @@
+package org.ovirt.engine.core.dao.gluster;
+
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.util.List;
+
+import 
org.ovirt.engine.core.common.businessentities.gluster.GlusterVolumeSnapshotConfigParam;
+import org.ovirt.engine.core.compat.Guid;
+import org.ovirt.engine.core.dao.BaseDAODbFacade;
+import org.springframework.jdbc.core.RowMapper;
+import org.springframework.jdbc.core.namedparam.MapSqlParameterSource;
+
+public class GlusterVolumeSnapshotConfigDaoDbFacadeImpl extends 
BaseDAODbFacade implements GlusterVolumeSnapshotConfigDao {
+
+    private static final RowMapper<GlusterVolumeSnapshotConfigParam> 
snapshotConfigRowMapper =
+            new GlusterVolumeSnapshotConfigRowMapper();
+
+    public void save(GlusterVolumeSnapshotConfigParam config) {
+        
getCallsHandler().executeModification("InsertGlusterVolumeSnapshotConfig", 
createFullParametersMapper(config));
+    }
+
+    public List<GlusterVolumeSnapshotConfigParam> 
GetGlusterVolumeSnapshotConfigByClusterId(Guid clusterId) {
+        List<GlusterVolumeSnapshotConfigParam> configs =
+                
getCallsHandler().executeReadList("GetGlusterVolumeSnapshotConfigByClusterId", 
snapshotConfigRowMapper,
+                        getCustomMapSqlParameterSource()
+                                .addValue("cluster_id", clusterId));
+        return configs;
+    }
+
+    public List<GlusterVolumeSnapshotConfigParam> 
GetGlusterVolumeSnapshotConfigByVolumeId(Guid clusterId, Guid volumeId) {
+        List<GlusterVolumeSnapshotConfigParam> configs =
+                
getCallsHandler().executeReadList("GetGlusterVolumeSnapshotConfigByVolumeId", 
snapshotConfigRowMapper,
+                        getCustomMapSqlParameterSource()
+                                .addValue("cluster_id", clusterId)
+                                .addValue("volume_id", volumeId));
+        return configs;
+    }
+
+    public GlusterVolumeSnapshotConfigParam 
GetGlusterVolumeSnapshotConfigByClusterIdAndName(Guid clusterId,
+            String paramName) {
+        GlusterVolumeSnapshotConfigParam config =
+                
getCallsHandler().executeRead("GetGlusterVolumeSnapshotConfigByClusterIdAndName",
+                        snapshotConfigRowMapper,
+                        getCustomMapSqlParameterSource()
+                                .addValue("cluster_id", clusterId)
+                                .addValue("param_name", paramName));
+        return config;
+    }
+
+    public GlusterVolumeSnapshotConfigParam 
GetGlusterVolumeSnapshotConfigByVolumeIdAndName(Guid clusterId,
+            Guid volumeId,
+            String paramName) {
+        GlusterVolumeSnapshotConfigParam config =
+                
getCallsHandler().executeRead("GetGlusterVolumeSnapshotConfigByVolumeIdAndName",
+                        snapshotConfigRowMapper,
+                        getCustomMapSqlParameterSource()
+                                .addValue("cluster_id", clusterId)
+                                .addValue("volume_id", volumeId)
+                                .addValue("param_name", paramName));
+
+        return config;
+    }
+
+    private static final class GlusterVolumeSnapshotConfigRowMapper implements 
RowMapper<GlusterVolumeSnapshotConfigParam> {
+        @Override
+        public GlusterVolumeSnapshotConfigParam mapRow(ResultSet rs, int 
rowNum)
+                throws SQLException {
+            GlusterVolumeSnapshotConfigParam config = new 
GlusterVolumeSnapshotConfigParam();
+            config.setClusterId(getGuidDefaultEmpty(rs, "cluster_id"));
+            config.setVolumeId(getGuidDefaultEmpty(rs, "volume_id"));
+            config.setParamName(rs.getString("param_name"));
+            config.setParamValue(rs.getString("param_value"));
+            return config;
+        }
+    }
+
+    protected MapSqlParameterSource 
createFullParametersMapper(GlusterVolumeSnapshotConfigParam config) {
+        return getCustomMapSqlParameterSource()
+                .addValue("cluster_id", config.getClusterId())
+                .addValue("volume_id", config.getVolumeId())
+                .addValue("param_name", config.getParamName())
+                .addValue("param_value", config.getParamValue());
+    }
+
+    @Override
+    public List<GlusterVolumeSnapshotConfigParam> getAllWithQuery(String 
query) {
+        List<GlusterVolumeSnapshotConfigParam> configs = 
jdbcTemplate.query(query, snapshotConfigRowMapper);
+        return configs;
+    }
+}
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 aceaaa3..7920192 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
@@ -59,6 +59,7 @@
 GlusterVolumeDao=org.ovirt.engine.core.dao.gluster.GlusterVolumeDaoDbFacadeImpl
 GlusterBrickDao=org.ovirt.engine.core.dao.gluster.GlusterBrickDaoDbFacadeImpl
 
GlusterVolumeSnapshotDao=org.ovirt.engine.core.dao.gluster.GlusterVolumeSnapshotDaoDbFacadeImpl
+GlusterVolumeSnapshotConfigDao=org.ovirt.engine.core.dao.gluster.GlusterVolumeSnapshotConfigDaoDbFacadeImpl
 GlusterOptionDao=org.ovirt.engine.core.dao.gluster.GlusterOptionDaoDbFacadeImpl
 
ImageStorageDomainMapDao=org.ovirt.engine.core.dao.ImageStorageDomainMapDaoDbFacadeImpl
 
VmAndTemplatesGenerationsDAO=org.ovirt.engine.core.dao.VmAndTemplatesGenerationsDbFacadeImpl
diff --git a/packaging/dbscripts/gluster_volume_snapshot_sp.sql 
b/packaging/dbscripts/gluster_volume_snapshot_sp.sql
index eebc5b1..dea2260 100644
--- a/packaging/dbscripts/gluster_volume_snapshot_sp.sql
+++ b/packaging/dbscripts/gluster_volume_snapshot_sp.sql
@@ -144,4 +144,60 @@
 END; $procedure$
 LANGUAGE plpgsql;
 
+Create or replace FUNCTION InsertGlusterVolumeSnapshotConfig(v_cluster_id UUID,
+                                                v_volume_id UUID,
+                                                v_param_name VARCHAR(128),
+                                                v_param_value VARCHAR(128))
+    RETURNS VOID
+    AS $procedure$
+BEGIN
+    INSERT INTO gluster_volume_snapshot_config (cluster_id, volume_id, 
param_name, param_value)
+    VALUES (v_cluster_id, v_volume_id, v_param_name, v_param_value);
+END; $procedure$
+LANGUAGE plpgsql;
 
+
+Create or replace FUNCTION 
GetGlusterVolumeSnapshotConfigByClusterId(v_cluster_id UUID)
+    RETURNS SETOF gluster_volume_snapshot_config STABLE
+    AS $procedure$
+BEGIN
+    RETURN QUERY SELECT *
+    FROM  gluster_volume_snapshot_config
+    WHERE cluster_id = v_cluster_id;
+END; $procedure$
+LANGUAGE plpgsql;
+
+Create or replace FUNCTION 
GetGlusterVolumeSnapshotConfigByVolumeId(v_cluster_id UUID, v_volume_id UUID)
+RETURNS SETOF gluster_volume_snapshot_config STABLE
+AS $procedure$
+BEGIN
+    RETURN QUERY SELECT *
+    FROM  gluster_volume_snapshot_config
+    WHERE cluster_id = v_cluster_id and volume_id = v_volume_id;
+END; $procedure$
+LANGUAGE plpgsql;
+
+
+Create or replace FUNCTION 
GetGlusterVolumeSnapshotConfigByClusterIdAndName(v_cluster_id UUID,
+                                            v_param_name VARCHAR(128))
+RETURNS SETOF gluster_volume_snapshot_config STABLE
+    AS $procedure$
+BEGIN
+    RETURN QUERY SELECT *
+    FROM gluster_volume_snapshot_config
+    WHERE cluster_id = v_cluster_id and volume_id IS NULL and param_name = 
v_param_name;
+END; $procedure$
+LANGUAGE plpgsql;
+
+
+Create or replace FUNCTION 
GetGlusterVolumeSnapshotConfigByVolumeIdAndName(v_cluster_id UUID,
+                                            v_volume_id UUID,
+                                            v_param_name VARCHAR(128))
+RETURNS SETOF gluster_volume_snapshot_config STABLE
+    AS $procedure$
+BEGIN
+    RETURN QUERY SELECT *
+    FROM gluster_volume_snapshot_config
+    WHERE cluster_id = v_cluster_id and volume_id = v_volume_id and param_name 
= v_param_name;
+END; $procedure$
+LANGUAGE plpgsql;
diff --git 
a/packaging/dbscripts/upgrade/03_06_0520_add_gluster_volume_snapshot_tables.sql 
b/packaging/dbscripts/upgrade/03_06_0520_add_gluster_volume_snapshot_tables.sql
index c4506f0..6fee602 100644
--- 
a/packaging/dbscripts/upgrade/03_06_0520_add_gluster_volume_snapshot_tables.sql
+++ 
b/packaging/dbscripts/upgrade/03_06_0520_add_gluster_volume_snapshot_tables.sql
@@ -17,11 +17,11 @@
 CREATE TABLE gluster_volume_snapshot_config
 (
     cluster_id UUID NOT NULL,
-    entity_id UUID NOT NULL,
+    volume_id UUID,
     param_name VARCHAR(128) NOT NULL,
     param_value VARCHAR(128)
 ) WITH OIDS;
-CREATE UNIQUE INDEX IDX_gluster_volume_snapshot_config_unique ON 
gluster_volume_snapshot_config(cluster_id, entity_id, param_name);
+CREATE UNIQUE INDEX IDX_gluster_volume_snapshot_config_unique ON 
gluster_volume_snapshot_config(cluster_id, volume_id, param_name);
 
 ALTER TABLE ONLY gluster_volume_snapshots
     ADD CONSTRAINT fk_gluster_volume_snapshots_cluster_id FOREIGN KEY 
(cluster_id) REFERENCES
@@ -31,3 +31,11 @@
 ALTER TABLE ONLY gluster_volume_snapshots
     ADD CONSTRAINT fk_gluster_volume_snapshots_volume_id FOREIGN KEY 
(volume_id) REFERENCES
     gluster_volumes(id) ON DELETE CASCADE;
+
+ALTER TABLE ONLY gluster_volume_snapshot_config
+    ADD CONSTRAINT fk_gluster_volume_snapshot_config_cluster_id FOREIGN KEY 
(cluster_id) REFERENCES
+    vds_groups(vds_group_id) ON DELETE CASCADE;
+
+ALTER TABLE ONLY gluster_volume_snapshot_config
+    ADD CONSTRAINT fk_gluster_volume_snapshot_config_volume_id FOREIGN KEY 
(volume_id) REFERENCES
+    gluster_volumes(id) ON DELETE CASCADE;


-- 
To view, visit http://gerrit.ovirt.org/35303
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ic0854984eed0f72226aa732a651be50bf8dda9fb
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Shubhendu Tripathi <shtri...@redhat.com>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to