Ramesh N has uploaded a new change for review.

Change subject: gluster: update volume capacity info in sync job
......................................................................

gluster: update volume capacity info in sync job

Update the volume capacity information as part of
GlusterSyncJob.

Change-Id: Ifd187eb59ab83c426db7e9ba48a04ae7e0bef0b9
Signed-off-by: Ramesh Nachimuthu <[email protected]>
---
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/gluster/GlusterSyncJob.java
M 
backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/gluster/GlusterSyncJobTest.java
2 files changed, 47 insertions(+), 0 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/11/23011/1

diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/gluster/GlusterSyncJob.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/gluster/GlusterSyncJob.java
index fc14cc5..d2bac5d 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/gluster/GlusterSyncJob.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/gluster/GlusterSyncJob.java
@@ -27,16 +27,19 @@
 import 
org.ovirt.engine.core.common.businessentities.gluster.GlusterVolumeAdvancedDetails;
 import 
org.ovirt.engine.core.common.businessentities.gluster.GlusterVolumeEntity;
 import 
org.ovirt.engine.core.common.businessentities.gluster.GlusterVolumeOptionEntity;
+import 
org.ovirt.engine.core.common.businessentities.gluster.GlusterVolumeSizeInfo;
 import org.ovirt.engine.core.common.businessentities.gluster.TransportType;
 import 
org.ovirt.engine.core.common.businessentities.network.VdsNetworkInterface;
 import org.ovirt.engine.core.common.constants.gluster.GlusterConstants;
 import org.ovirt.engine.core.common.gluster.GlusterFeatureSupported;
 import org.ovirt.engine.core.common.utils.ListUtils;
+import org.ovirt.engine.core.common.utils.ObjectUtils;
 import org.ovirt.engine.core.common.utils.gluster.GlusterCoreUtil;
 import org.ovirt.engine.core.common.vdscommands.RemoveVdsVDSCommandParameters;
 import org.ovirt.engine.core.common.vdscommands.VDSCommandType;
 import org.ovirt.engine.core.common.vdscommands.VDSReturnValue;
 import 
org.ovirt.engine.core.common.vdscommands.gluster.GlusterVolumeAdvancedDetailsVDSParameters;
+import 
org.ovirt.engine.core.common.vdscommands.gluster.GlusterVolumeVDSParameters;
 import 
org.ovirt.engine.core.common.vdscommands.gluster.GlusterVolumesListVDSParameters;
 import org.ovirt.engine.core.compat.Guid;
 import org.ovirt.engine.core.compat.TransactionScopeOption;
@@ -384,7 +387,20 @@
                 upServer = getNewUpServer(existingServers, upServer);
             }
         }
+        fetchVolumeCapacityInfo(fetchedVolumes, upServer);
         return fetchedVolumes;
+    }
+
+    private void fetchVolumeCapacityInfo(Map<Guid, GlusterVolumeEntity> 
fetchedVolumes, VDS upServer) {
+        for (GlusterVolumeEntity volume : fetchedVolumes.values()) {
+            VDSReturnValue returnValue =
+                    runVdsCommand(VDSCommandType.GetGlusterVolumeSizeInfo,
+                            new GlusterVolumeVDSParameters(upServer.getId(), 
volume.getName()));
+            GlusterVolumeSizeInfo capacityInfo = (GlusterVolumeSizeInfo) 
returnValue.getReturnValue();
+            capacityInfo.setVolumeId(volume.getId());
+            capacityInfo.setVolumeName(volume.getName());
+            volume.setCapacityDetails(capacityInfo);
+        }
     }
 
     @SuppressWarnings("unchecked")
@@ -474,11 +490,20 @@
 
     private void updateVolume(GlusterVolumeEntity existingVolume, 
GlusterVolumeEntity fetchedVolume) {
         updateVolumeProperties(existingVolume, fetchedVolume);
+        updateVolumeCapacityInfo(existingVolume, fetchedVolume);
         updateBricks(existingVolume, fetchedVolume);
         updateOptions(existingVolume, fetchedVolume);
         updateTransportTypes(existingVolume, fetchedVolume);
     }
 
+    private void updateVolumeCapacityInfo(GlusterVolumeEntity existingVolume, 
GlusterVolumeEntity fetchedVolume) {
+
+        if (!ObjectUtils.objectsEqual(existingVolume.getCapacityDetails(), 
fetchedVolume.getCapacityDetails())) {
+            log.infoFormat("Updating capacity info for volume {0} with fetched 
properties.", existingVolume.getName());
+            
getVolumeDao().updateVolumeCapacityInfo(fetchedVolume.getCapacityDetails());
+        }
+    }
+
     private void updateTransportTypes(GlusterVolumeEntity existingVolume, 
GlusterVolumeEntity fetchedVolume) {
         Set<TransportType> existingTransportTypes = 
existingVolume.getTransportTypes();
         Set<TransportType> fetchedTransportTypes = 
fetchedVolume.getTransportTypes();
diff --git 
a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/gluster/GlusterSyncJobTest.java
 
b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/gluster/GlusterSyncJobTest.java
index 4baad45..e35e27e 100644
--- 
a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/gluster/GlusterSyncJobTest.java
+++ 
b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/gluster/GlusterSyncJobTest.java
@@ -42,6 +42,7 @@
 import 
org.ovirt.engine.core.common.businessentities.gluster.GlusterVolumeAdvancedDetails;
 import 
org.ovirt.engine.core.common.businessentities.gluster.GlusterVolumeEntity;
 import 
org.ovirt.engine.core.common.businessentities.gluster.GlusterVolumeOptionEntity;
+import 
org.ovirt.engine.core.common.businessentities.gluster.GlusterVolumeSizeInfo;
 import org.ovirt.engine.core.common.businessentities.gluster.GlusterVolumeType;
 import org.ovirt.engine.core.common.businessentities.gluster.PeerStatus;
 import org.ovirt.engine.core.common.businessentities.gluster.TransportType;
@@ -51,6 +52,7 @@
 import org.ovirt.engine.core.common.vdscommands.VDSCommandType;
 import org.ovirt.engine.core.common.vdscommands.VDSParametersBase;
 import org.ovirt.engine.core.common.vdscommands.VDSReturnValue;
+import 
org.ovirt.engine.core.common.vdscommands.gluster.GlusterVolumeVDSParameters;
 import org.ovirt.engine.core.compat.Guid;
 import org.ovirt.engine.core.compat.Version;
 import 
org.ovirt.engine.core.dal.dbbroker.auditloghandling.gluster.GlusterAuditLogUtil;
@@ -256,9 +258,23 @@
                 .getVolumeAdvancedDetails(existingServer1, CLUSTER_ID, 
existingReplVol.getName());
         doReturn(new 
VDSReturnValue()).when(glusterManager).runVdsCommand(eq(VDSCommandType.RemoveVds),
                 argThat(isRemovedServer()));
+        doReturn(getVolumeCapacityInfo()).when(glusterManager)
+                .runVdsCommand(eq(VDSCommandType.GetGlusterVolumeSizeInfo),
+                any(GlusterVolumeVDSParameters.class));
         doNothing().when(glusterManager).acquireLock(CLUSTER_ID);
         doNothing().when(glusterManager).releaseLock(CLUSTER_ID);
         doReturn(glusterUtil).when(glusterManager).getGlusterUtil();
+    }
+
+    private VDSReturnValue getVolumeCapacityInfo() {
+        VDSReturnValue vdsReturnValune = new VDSReturnValue();
+        GlusterVolumeSizeInfo capacityInfo = new GlusterVolumeSizeInfo();
+        capacityInfo.setTotalSize((long) 100000);
+        capacityInfo.setUsedSize((long) 50000);
+        capacityInfo.setFreeSize((long) 50000);
+        vdsReturnValune.setReturnValue(capacityInfo);
+        vdsReturnValune.setSucceeded(true);
+        return vdsReturnValune;
     }
 
     private ArgumentMatcher<VDSParametersBase> isRemovedServer() {
@@ -329,6 +345,10 @@
         // create new volume
         inOrder.verify(volumeDao, times(1)).save(newVolume);
 
+        // // update volume capacity info
+        // inOrder.verify(volumeDao, times(1))
+        // .updateVolumeCapacityInfo((GlusterVolumeSizeInfo) 
getVolumeCapacityInfo().getReturnValue());
+
         // remove detached bricks
         inOrder.verify(brickDao, 
times(1)).removeAll(argThat(containsRemovedBricks()));
         // add new bricks
@@ -374,6 +394,8 @@
         
doReturn(existingReplVol).when(volumeDao).getById(EXISTING_VOL_REPL_ID);
         doReturn(null).when(volumeDao).getById(NEW_VOL_ID);
         doNothing().when(volumeDao).save(newVolume);
+        doNothing().when(volumeDao)
+                .updateVolumeCapacityInfo((GlusterVolumeSizeInfo) 
getVolumeCapacityInfo().getReturnValue());
         doNothing().when(brickDao).removeAll(argThat(containsRemovedBricks()));
         doNothing().when(brickDao).save(argThat(isAddedBrick()));
         
doNothing().when(optionDao).updateVolumeOption(argThat(isUpdatedOptionId()), 
eq(OPTION_VALUE_ON));


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

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ifd187eb59ab83c426db7e9ba48a04ae7e0bef0b9
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Ramesh N <[email protected]>
_______________________________________________
Engine-patches mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to