Shubhendu Tripathi has posted comments on this change.

Change subject: gluster: BLL queries for volume snapshots list and count
......................................................................


Patch Set 12:

(8 comments)

http://gerrit.ovirt.org/#/c/35674/12/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/gluster/GlusterVolumeDaoDbFacadeImpl.java
File 
backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/gluster/GlusterVolumeDaoDbFacadeImpl.java:

Line 338:             }
Line 339:             volume.setBricks(bricks);
Line 340:             int snapshotsCount =
Line 341:                     
dbFacade.getGlusterVolumeDao().getSnapshotCount(volume.getId());
Line 342:             volume.setNoOfSnapshots(snapshotsCount);
> Can this be not returned in the view - gluster_volumes_view? Is there a nee
yes. can be done as part of view itself. Will change it.
Line 343:             GlusterVolumeSnapshotConfig config =
Line 344:                     dbFacade.getGlusterVolumeSnapshotConfigDao()
Line 345:                             
.getConfigByVolumeIdAndName(volume.getClusterId(),
Line 346:                                     volume.getId(),


Line 343:             GlusterVolumeSnapshotConfig config =
Line 344:                     dbFacade.getGlusterVolumeSnapshotConfigDao()
Line 345:                             
.getConfigByVolumeIdAndName(volume.getClusterId(),
Line 346:                                     volume.getId(),
Line 347:                                     "snap-max-hard-limit");
> Consider externalising string
done
Line 348:             if (config == null || config.getParamValue() == null || 
config.getParamValue().equals("")) {
Line 349:                 config =
Line 350:                         dbFacade.getGlusterVolumeSnapshotConfigDao()
Line 351:                                 
.getConfigByClusterIdAndName(volume.getClusterId(),


http://gerrit.ovirt.org/#/c/35674/12/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/gluster/GlusterVolumeSnapshotDao.java
File 
backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/gluster/GlusterVolumeSnapshotDao.java:

Line 22:     public List<GlusterVolumeSnapshotEntity> getAllWithQuery(String 
query);
Line 23: 
Line 24:     public void remove(Guid id);
Line 25: 
Line 26:     public void removeAll(Guid volumeId, Collection<Guid> ids);
> why is volume id required? Collection of ids - is a list of snapshot ids?
We have a snapshot_count field maintained as part of gluster_volumes which 
should be reduced as part of this deletion. So need the volume_id for the same. 
Is there a way to work around this without volumeId ?
Line 27: 
Line 28:     public void removeAllByVolumeId(Guid volumeId);
Line 29: 
Line 30:     public void removeByName(Guid volumeId, String snapshotName);


http://gerrit.ovirt.org/#/c/35674/12/packaging/dbscripts/gluster_volume_snapshot_sp.sql
File packaging/dbscripts/gluster_volume_snapshot_sp.sql:

Line 64:     AS $procedure$
Line 65: DECLARE
Line 66: ref_volume_id UUID;
Line 67: BEGIN
Line 68:     ref_volume_id := volume_id FROM gluster_volume_snapshots WHERE 
snapshot_id = v_snapshot_id;
> SELECT volume_id INTO ref_volume_id syntax here?
will try that
Line 69: 
Line 70:        DELETE FROM gluster_volume_snapshots
Line 71:     WHERE snapshot_id = v_snapshot_id;
Line 72: 


Line 83: DECLARE
Line 84: del_count INTEGER;
Line 85: BEGIN
Line 86:        del_count := count(*) FROM gluster_volume_snapshots WHERE 
volume_id = v_volume_id;
Line 87: 
> same comment as before
done
Line 88:     DELETE FROM gluster_volume_snapshots
Line 89:     WHERE volume_id = v_volume_id;
Line 90:     
Line 91:     UPDATE gluster_volumes


Line 86:        del_count := count(*) FROM gluster_volume_snapshots WHERE 
volume_id = v_volume_id;
Line 87: 
Line 88:     DELETE FROM gluster_volume_snapshots
Line 89:     WHERE volume_id = v_volume_id;
Line 90:     
> TWS
done
Line 91:     UPDATE gluster_volumes
Line 92:     SET snapshot_count = snapshot_count - del_count
Line 93:     WHERE id = v_volume_id;
Line 94: END; $procedure$


Line 99:                                                     v_snapshot_name 
VARCHAR(1000))
Line 100:     RETURNS VOID
Line 101:     AS $procedure$
Line 102: DECLARE
Line 103: ref_volume_id UUID;
> Not required?
done
Line 104: BEGIN
Line 105:     DELETE FROM gluster_volume_snapshots
Line 106:     WHERE volume_id = v_volume_id
Line 107:     AND   snapshot_name = v_snapshot_name;


Line 119:     AS $procedure$
Line 120: DECLARE
Line 121: del_count INTEGER;
Line 122: BEGIN
Line 123:       del_count := count(*) FROM fnSplitterUuid(v_snapshot_ids);
> No check that the snapshot ids belong to v_volume_id. 
got it. will try this.
Line 124: 
Line 125:     DELETE FROM gluster_volume_snapshots
Line 126:     WHERE snapshot_id in (select * from 
fnSplitterUuid(v_snapshot_ids));
Line 127: 


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

Gerrit-MessageType: comment
Gerrit-Change-Id: I00cd2a52c9bd10946b8702d833d6f8f0ebb3f848
Gerrit-PatchSet: 12
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Shubhendu Tripathi <shtri...@redhat.com>
Gerrit-Reviewer: Eli Mesika <emes...@redhat.com>
Gerrit-Reviewer: Kanagaraj M <kmayi...@redhat.com>
Gerrit-Reviewer: Sahina Bose <sab...@redhat.com>
Gerrit-Reviewer: Shubhendu Tripathi <shtri...@redhat.com>
Gerrit-Reviewer: Yair Zaslavsky <yzasl...@redhat.com>
Gerrit-Reviewer: automat...@ovirt.org
Gerrit-Reviewer: oVirt Jenkins CI Server
Gerrit-HasComments: Yes
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to