package org.ovirt.engine.api.restapi.resource;
import java.util.ArrayList;
import java.util.List;
import org.ovirt.engine.api.model.GlusterVolume;
import org.ovirt.engine.api.model.Statistic;
import org.ovirt.engine.api.model.ValueType;
import org.ovirt.engine.core.common.businessentities.gluster.GlusterVolumeEntity;
import org.ovirt.engine.core.common.businessentities.gluster.GlusterVolumeSizeInfo;
import org.ovirt.engine.core.compat.Guid;
public class VolumeStatisticalQuery extends AbstractStatisticalQuery<GlusterVolume, GlusterVolumeEntity> {
private static final Statistic MEM_TOTAL_SIZE = create("memory.total.size", "Total size", GAUGE, BYTES, ValueType.INTEGER);
private static final Statistic MEM_FREE_SIZE = create("memory.free.size", "Free size", GAUGE, BYTES, ValueType.INTEGER);
private static final Statistic MEM_USED_SIZE = create("memory.used.size", "Used size", GAUGE, BYTES, ValueType.INTEGER);
public VolumeStatisticalQuery(GlusterVolume parent ) {
this(null, parent);
}
public VolumeStatisticalQuery(AbstractBackendResource<GlusterVolume, GlusterVolumeEntity>.EntityIdResolver<Guid> entityResolver, GlusterVolume parent) {
super(GlusterVolume.class, parent, entityResolver);
}
@Override
public List<Statistic> getStatistics(GlusterVolumeEntity entity) {
GlusterVolumeSizeInfo sizeInfo = entity.getAdvancedDetails().getCapacityInfo();
if (sizeInfo == null) {
return new ArrayList<>();
}
return asList(setDatum(clone(MEM_TOTAL_SIZE), sizeInfo.getTotalSize()),
setDatum(clone(MEM_FREE_SIZE), sizeInfo.getFreeSize()),
setDatum(clone(MEM_USED_SIZE), sizeInfo.getUsedSize()));
}
@Override
public Statistic adopt(Statistic statistic) {
statistic.setGlusterVolume(parent);
return statistic;
}
}