package org.ovirt.engine.core.common.businessentities; import org.ovirt.engine.core.compat.Guid; public class QuotaUsagePerUser implements IVdcQueryable { private static final long serialVersionUID = -5354235333482503580L; private Guid quotaId; private String quotaName; private double storageLimit; private double storageTotalUsage; private double storageUsageForUserGB; private int vcpuLimit; private int vcpuTotalUsage; private int vcpuUsageForUser; private long memoryLimit; private long memoryTotalUsage; private long memoryUsageForUser; public QuotaUsagePerUser(){ } public QuotaUsagePerUser(Guid quotaId, String quotaName, double storageLimit, double storageTotalUsage, int vcpuLimit, int vcpuTotalUsage, long memoryLimit, long memoryTotalUsage) { this.quotaId = quotaId; this.quotaName = quotaName; this.storageLimit = storageLimit; this.storageTotalUsage = storageTotalUsage; this.vcpuLimit = vcpuLimit; this.vcpuTotalUsage = vcpuTotalUsage; this.memoryLimit = memoryLimit; this.memoryTotalUsage = memoryTotalUsage; } public double getStorageUsageForUser() { return storageUsageForUserGB; } public void setStorageUsageForUser(double storageUsageForUserGB) { this.storageUsageForUserGB = storageUsageForUserGB; } public int getVcpuUsageForUser() { return vcpuUsageForUser; } public void setVcpuUsageForUser(int vcpuUsageForUser) { this.vcpuUsageForUser = vcpuUsageForUser; } public long getMemoryUsageForUser() { return memoryUsageForUser; } public void setMemoryUsageForUser(long memoryUsageForUser) { this.memoryUsageForUser = memoryUsageForUser; } public Guid getQuotaId() { return quotaId; } public double getStorageLimit() { return storageLimit; } public double getStorageTotalUsage() { return storageTotalUsage; } public int getVcpuLimit() { return vcpuLimit; } public int getVcpuTotalUsage() { return vcpuTotalUsage; } public long getMemoryLimit() { return memoryLimit; } public long getMemoryTotalUsage() { return memoryTotalUsage; } public double getUserStorageUsagePercentage() { return storageUsageForUserGB*100/storageLimit; } public double getUserVcpuUsagePercentage() { return (double)vcpuUsageForUser*100/vcpuLimit; } public double getUserMemoryUsagePercentage() { return (double)memoryUsageForUser*100/memoryLimit; } public double getOthersStorageUsagePercentage() { return (storageTotalUsage-storageUsageForUserGB)*100/storageLimit; } public double getOthersVcpuUsagePercentage() { return (double)(vcpuTotalUsage-vcpuUsageForUser)*100/vcpuLimit; } public double getOthersMemoryUsagePercentage() { return (double)(memoryTotalUsage-memoryUsageForUser)*100/memoryLimit; } public int getFreeVcpu() { return vcpuLimit-vcpuTotalUsage; } public long getFreeMemory() { return memoryLimit-memoryTotalUsage; } public double getFreeStorage() { return storageLimit-storageTotalUsage; } @Override public Object getQueryableId() { return getQuotaId(); } public String getQuotaName() { return quotaName; } public void setStorageLimit(double storageLimit) { this.storageLimit = storageLimit; } public void setStorageTotalUsage(double storageTotalUsage) { this.storageTotalUsage = storageTotalUsage; } public void setVcpuLimit(int vcpuLimit) { this.vcpuLimit = vcpuLimit; } public void setVcpuTotalUsage(int vcpuTotalUsage) { this.vcpuTotalUsage = vcpuTotalUsage; } public void setMemoryLimit(long memoryLimit) { this.memoryLimit = memoryLimit; } public void setMemoryTotalUsage(long memoryTotalUsage) { this.memoryTotalUsage = memoryTotalUsage; } public boolean isUnlimitedVcpu() { return vcpuLimit == QuotaCluster.UNLIMITED_VCPU; } public boolean isUnlimitedMemory() { return memoryLimit == QuotaCluster.UNLIMITED_MEM; } public boolean isUnlimitedStorage() { return storageLimit == QuotaStorage.UNLIMITED; } }