This is an automated email from the ASF dual-hosted git repository.
tingchen pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/pinot.git
The following commit(s) were added to refs/heads/master by this push:
new 5290b80c9b Add Server API to get tenant pools (#11273)
5290b80c9b is described below
commit 5290b80c9b7a5bea97759f05853edff4a47fa846
Author: MeihanLi <[email protected]>
AuthorDate: Fri Aug 11 16:27:14 2023 -0700
Add Server API to get tenant pools (#11273)
* Add a Server API to get pool number
* add java docs
* fix linter issue
---
.../server/api/resources/InstanceResource.java | 23 ++++++++++++++++++++++
1 file changed, 23 insertions(+)
diff --git
a/pinot-server/src/main/java/org/apache/pinot/server/api/resources/InstanceResource.java
b/pinot-server/src/main/java/org/apache/pinot/server/api/resources/InstanceResource.java
index 5b90d5935c..4392346a14 100644
---
a/pinot-server/src/main/java/org/apache/pinot/server/api/resources/InstanceResource.java
+++
b/pinot-server/src/main/java/org/apache/pinot/server/api/resources/InstanceResource.java
@@ -29,6 +29,7 @@ import io.swagger.annotations.SecurityDefinition;
import io.swagger.annotations.SwaggerDefinition;
import java.util.Collections;
import java.util.List;
+import java.util.Map;
import javax.inject.Inject;
import javax.inject.Named;
import javax.ws.rs.GET;
@@ -38,6 +39,7 @@ import javax.ws.rs.core.HttpHeaders;
import javax.ws.rs.core.MediaType;
import org.apache.helix.HelixManager;
import org.apache.helix.model.InstanceConfig;
+import org.apache.pinot.common.utils.config.InstanceUtils;
import org.apache.pinot.common.utils.helix.HelixHelper;
import org.apache.pinot.server.api.AdminApiApplication;
@@ -73,4 +75,25 @@ public class InstanceResource {
}
return Collections.emptyList();
}
+
+ /**
+ * Retrieve instance pools in the Helix InstanceConfig:
+ *
https://docs.pinot.apache.org/operators/operating-pinot/instance-assignment#pool-based-instance-assignment.
+ * Returns an empty Map if poolBased config is not enabled or the instance
is not assigned to any pool.
+ */
+ @GET
+ @Path("pools")
+ @ApiOperation(value = "Tenant pools for current instance")
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "Success"), @ApiResponse(code = 500,
message = "Internal server error")
+ })
+ @Produces(MediaType.APPLICATION_JSON)
+ public Map<String, String> getInstancePools() {
+ InstanceConfig instanceConfig =
HelixHelper.getInstanceConfig(_helixManager, _instanceId);
+ if (instanceConfig == null || instanceConfig.getRecord() == null) {
+ return Collections.emptyMap();
+ }
+ Map<String, String> pools =
instanceConfig.getRecord().getMapField(InstanceUtils.POOL_KEY);
+ return pools == null ? Collections.emptyMap() : pools;
+ }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]