aboutsummaryrefslogtreecommitdiffstats
path: root/vespa-athenz/src/main/java/com/yahoo/vespa/athenz/client/zms/QuotaUsage.java
diff options
context:
space:
mode:
Diffstat (limited to 'vespa-athenz/src/main/java/com/yahoo/vespa/athenz/client/zms/QuotaUsage.java')
-rw-r--r--vespa-athenz/src/main/java/com/yahoo/vespa/athenz/client/zms/QuotaUsage.java55
1 files changed, 55 insertions, 0 deletions
diff --git a/vespa-athenz/src/main/java/com/yahoo/vespa/athenz/client/zms/QuotaUsage.java b/vespa-athenz/src/main/java/com/yahoo/vespa/athenz/client/zms/QuotaUsage.java
new file mode 100644
index 00000000000..8e9c7de9272
--- /dev/null
+++ b/vespa-athenz/src/main/java/com/yahoo/vespa/athenz/client/zms/QuotaUsage.java
@@ -0,0 +1,55 @@
+// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+package com.yahoo.vespa.athenz.client.zms;
+
+import com.yahoo.vespa.athenz.client.zms.bindings.StatisticsEntity;
+
+/**
+ * @author olaa
+ */
+public class QuotaUsage {
+
+ private double subdomainUsage;
+ private double roleUsage;
+ private double policyUsage;
+ private double serviceUsage;
+ private double groupUsage;
+
+
+ public QuotaUsage(double subdomainUsage, double roleUsage, double policyUsage, double serviceUsage, double groupUsage) {
+ this.subdomainUsage = subdomainUsage;
+ this.roleUsage = roleUsage;
+ this.policyUsage = policyUsage;
+ this.serviceUsage = serviceUsage;
+ this.groupUsage = groupUsage;
+ }
+
+ public static QuotaUsage calculateUsage(StatisticsEntity used, StatisticsEntity quota) {
+ return new QuotaUsage(
+ (double) used.getSubdomains() / quota.getSubdomains(),
+ (double) used.getRoles() / quota.getRoles(),
+ (double) used.getPolicies() / quota.getPolicies(),
+ (double) used.getServices() / quota.getServices(),
+ (double) used.getGroups() / quota.getGroups()
+ );
+ }
+
+ public double getSubdomainUsage() {
+ return subdomainUsage;
+ }
+
+ public double getRoleUsage() {
+ return roleUsage;
+ }
+
+ public double getPolicyUsage() {
+ return policyUsage;
+ }
+
+ public double getServiceUsage() {
+ return serviceUsage;
+ }
+
+ public double getGroupUsage() {
+ return groupUsage;
+ }
+} \ No newline at end of file