diff --git a/src/main/java/org/opensearch/sdk/ExtensionSettings.java b/src/main/java/org/opensearch/sdk/ExtensionSettings.java index 6618975c..8b1aaa85 100644 --- a/src/main/java/org/opensearch/sdk/ExtensionSettings.java +++ b/src/main/java/org/opensearch/sdk/ExtensionSettings.java @@ -7,6 +7,8 @@ */ package org.opensearch.sdk; +import java.util.List; + /** * This class encapsulates the settings for an Extension. */ @@ -15,6 +17,7 @@ public class ExtensionSettings { private String extensionName; private String hostAddress; private String hostPort; + private List api; /** * Placeholder field. Change the location to extension.yml file of the extension. @@ -40,9 +43,20 @@ public String getHostPort() { return hostPort; } + public List getApi() { + return api; + } + @Override public String toString() { - return "\nnodename: " + extensionName + "\nhostaddress: " + hostAddress + "\nhostPort: " + hostPort + "\n"; + return "ExtensionSettings {extensionName=" + + extensionName + + ", hostAddress=" + + hostAddress + + ", hostPort=" + + hostPort + + ", api=" + + api + + "}"; } - } diff --git a/src/main/java/org/opensearch/sdk/ExtensionsRunner.java b/src/main/java/org/opensearch/sdk/ExtensionsRunner.java index 756cee4a..e15860cc 100644 --- a/src/main/java/org/opensearch/sdk/ExtensionsRunner.java +++ b/src/main/java/org/opensearch/sdk/ExtensionsRunner.java @@ -95,11 +95,11 @@ public DiscoveryNode getOpensearchNode() { * Handles a plugin request from OpenSearch. This is the first request for the transport communication and will initialize the extension and will be a part of OpenSearch bootstrap. * * @param pluginRequest The request to handle. - * @return A response to OpenSearch validating that this is an extension. + * @return A response to OpenSearch with the extension name and API. */ PluginResponse handlePluginsRequest(PluginRequest pluginRequest) { logger.info("Registering Plugin Request received from OpenSearch"); - PluginResponse pluginResponse = new PluginResponse(extensionSettings.getExtensionName()); + PluginResponse pluginResponse = new PluginResponse(extensionSettings.getExtensionName(), extensionSettings.getApi()); opensearchNode = pluginRequest.getSourceNode(); setOpensearchNode(opensearchNode); return pluginResponse; diff --git a/src/test/resources/extension.yml b/src/test/resources/extension.yml index 5a8c1d78..0a65b631 100644 --- a/src/test/resources/extension.yml +++ b/src/test/resources/extension.yml @@ -1,3 +1,7 @@ extensionName: extension hostAddress: 127.0.0.1 hostPort: 4532 +api: + - API1 + - API2 + - API3