From 601e350967197f70a24a27a1a1883dadecfb3c8a Mon Sep 17 00:00:00 2001 From: Ankit Jain Date: Wed, 28 Aug 2024 17:02:33 -0700 Subject: [PATCH 1/3] Fixing backward incompatibility check Signed-off-by: Ankit Jain --- .../org/opensearch/search/ResourceType.java | 55 +++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 server/src/main/java/org/opensearch/search/ResourceType.java diff --git a/server/src/main/java/org/opensearch/search/ResourceType.java b/server/src/main/java/org/opensearch/search/ResourceType.java new file mode 100644 index 0000000000000..957b5d014bbbb --- /dev/null +++ b/server/src/main/java/org/opensearch/search/ResourceType.java @@ -0,0 +1,55 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.search; + +import org.opensearch.common.annotation.PublicApi; +import org.opensearch.core.common.io.stream.StreamOutput; +import org.opensearch.core.tasks.resourcetracker.ResourceStats; +import org.opensearch.tasks.Task; + +import java.io.IOException; +import java.util.function.Function; + +@PublicApi(since = "2.x") +public enum ResourceType { + CPU("cpu", task -> task.getTotalResourceUtilization(ResourceStats.CPU)), + MEMORY("memory", task -> task.getTotalResourceUtilization(ResourceStats.MEMORY)); + + private final String name; + private final Function getResourceUsage; + + ResourceType(String name, Function getResourceUsage) { + this.name = name; + this.getResourceUsage = getResourceUsage; + } + + /** + * The string match here is case-sensitive + * @param s name matching the resource type name + * @return a {@link ResourceType} + */ + public static ResourceType fromName(String s) { + for (ResourceType resourceType : values()) { + if (resourceType.getName().equals(s)) { + return resourceType; + } + } + throw new IllegalArgumentException("Unknown resource type: [" + s + "]"); + } + public static void writeTo(StreamOutput out, ResourceType resourceType) throws IOException { + out.writeString(resourceType.getName()); + } + public String getName() { + return name; + } + + public long getResourceUsage(Task task) { + return getResourceUsage.apply(task); + } +} From b22e94bfd2b357d84b0c3e3a86cfe05fde0bbe1b Mon Sep 17 00:00:00 2001 From: Ankit Jain Date: Wed, 28 Aug 2024 17:06:55 -0700 Subject: [PATCH 2/3] Fixing spotless violations Signed-off-by: Ankit Jain --- server/src/main/java/org/opensearch/search/ResourceType.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/server/src/main/java/org/opensearch/search/ResourceType.java b/server/src/main/java/org/opensearch/search/ResourceType.java index 957b5d014bbbb..e1e0d91223573 100644 --- a/server/src/main/java/org/opensearch/search/ResourceType.java +++ b/server/src/main/java/org/opensearch/search/ResourceType.java @@ -42,9 +42,11 @@ public static ResourceType fromName(String s) { } throw new IllegalArgumentException("Unknown resource type: [" + s + "]"); } + public static void writeTo(StreamOutput out, ResourceType resourceType) throws IOException { out.writeString(resourceType.getName()); } + public String getName() { return name; } From eff0f25ad19b7ca0f25b3e40f90ad93bb0edd75d Mon Sep 17 00:00:00 2001 From: Ankit Jain Date: Wed, 28 Aug 2024 17:13:43 -0700 Subject: [PATCH 3/3] Adding missing javadocs Signed-off-by: Ankit Jain --- .../main/java/org/opensearch/search/ResourceType.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/server/src/main/java/org/opensearch/search/ResourceType.java b/server/src/main/java/org/opensearch/search/ResourceType.java index e1e0d91223573..0cba2222a6e20 100644 --- a/server/src/main/java/org/opensearch/search/ResourceType.java +++ b/server/src/main/java/org/opensearch/search/ResourceType.java @@ -16,6 +16,9 @@ import java.io.IOException; import java.util.function.Function; +/** + * Enum to hold the resource type + */ @PublicApi(since = "2.x") public enum ResourceType { CPU("cpu", task -> task.getTotalResourceUtilization(ResourceStats.CPU)), @@ -51,6 +54,12 @@ public String getName() { return name; } + /** + * Gets the resource usage for a given resource type and task. + * + * @param task the task for which to calculate resource usage + * @return the resource usage + */ public long getResourceUsage(Task task) { return getResourceUsage.apply(task); }