package org.ovirt.engine.api.restapi.resource; import java.util.List; import org.ovirt.engine.api.model.Disk; import org.ovirt.engine.api.model.Statistic; import org.ovirt.engine.api.model.VM; import org.ovirt.engine.core.common.businessentities.DiskImage; public class DiskStatisticalQuery extends AbstractStatisticalQuery<Disk, DiskImage> { private static final Statistic DATA_READ = create("data.current.read", "Read data rate", GAUGE, BYTES_PER_SECOND, DECIMAL); private static final Statistic DATA_WRITE = create("data.current.write", "Write data rate", GAUGE, BYTES_PER_SECOND, DECIMAL); protected DiskStatisticalQuery(Disk parent) { this(null, parent); } protected DiskStatisticalQuery(AbstractBackendResource<Disk, DiskImage>.EntityIdResolver resolver, Disk parent) { super(Disk.class, parent, resolver); } public List<Statistic> getStatistics(DiskImage i) { return asList(setDatum(clone(DATA_READ), i.getread_rate()), setDatum(clone(DATA_WRITE), i.getwrite_rate())); } public Statistic adopt(Statistic statistic) { // clone required because LinkHelper unsets the grandparent statistic.setDisk(clone(parent)); return statistic; } private Disk clone(Disk parent) { Disk disk = new Disk(); disk.setId(parent.getId()); disk.setVm(new VM()); disk.getVm().setId(parent.getVm().getId()); return disk; } }