Skip to content

Commit

Permalink
Rework EnvironmentSettings API
Browse files Browse the repository at this point in the history
Signed-off-by: Ryan Bogan <rbogan@amazon.com>
  • Loading branch information
ryanbogan committed Dec 20, 2022
1 parent 1a75ced commit aab1306
Show file tree
Hide file tree
Showing 6 changed files with 65 additions and 234 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -10,16 +10,10 @@

import org.opensearch.common.io.stream.StreamInput;
import org.opensearch.common.io.stream.StreamOutput;
import org.opensearch.common.settings.Setting;
import org.opensearch.common.settings.Settings;
import org.opensearch.transport.TransportResponse;
import org.opensearch.common.settings.WriteableSetting;

import java.io.IOException;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;

/**
Expand All @@ -28,59 +22,40 @@
* @opensearch.internal
*/
public class EnvironmentSettingsResponse extends TransportResponse {
private Map<Setting<?>, Object> componentSettingValues;
private final Settings environmentSettings;

public EnvironmentSettingsResponse(Settings environmentSettings, List<Setting<?>> componentSettings) {
Map<Setting<?>, Object> componentSettingValues = new HashMap<>();
for (Setting<?> componentSetting : componentSettings) {

// Retrieve component setting value from enviornment settings, or default value if it does not exist
Object componentSettingValue = componentSetting.get(environmentSettings);
componentSettingValues.put(componentSetting, componentSettingValue);
}
this.componentSettingValues = componentSettingValues;
public EnvironmentSettingsResponse(Settings environmentSettings) {
this.environmentSettings = environmentSettings;
}

public EnvironmentSettingsResponse(StreamInput in) throws IOException {
super(in);
Map<Setting<?>, Object> componentSettingValues = new HashMap<>();
int componentSettingValuesCount = in.readVInt();
for (int i = 0; i < componentSettingValuesCount; i++) {
Setting<?> componentSetting = new WriteableSetting(in).getSetting();
Object componentSettingValue = in.readGenericValue();
componentSettingValues.put(componentSetting, componentSettingValue);
}
this.componentSettingValues = componentSettingValues;
this.environmentSettings = Settings.readSettingsFromStream(in);
}

@Override
public void writeTo(StreamOutput out) throws IOException {
out.writeVInt(componentSettingValues.size());
for (Map.Entry<Setting<?>, Object> entry : componentSettingValues.entrySet()) {
new WriteableSetting(entry.getKey()).writeTo(out);
out.writeGenericValue(entry.getValue());
}
Settings.writeSettingsToStream(this.environmentSettings, out);
}

public Map<Setting<?>, Object> getComponentSettingValues() {
return Collections.unmodifiableMap(this.componentSettingValues);
public Settings getEnvironmentSettings() {
return environmentSettings;
}

@Override
public String toString() {
return "EnvironmentSettingsResponse{componentSettingValues=" + componentSettingValues.toString() + '}';
return "EnvironmentSettingsResponse{environmentSettings=" + environmentSettings.toString() + '}';
}

@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
EnvironmentSettingsResponse that = (EnvironmentSettingsResponse) o;
return Objects.equals(componentSettingValues, that.componentSettingValues);
return Objects.equals(environmentSettings, that.environmentSettings);
}

@Override
public int hashCode() {
return Objects.hash(componentSettingValues);
return Objects.hash(environmentSettings);
}
}

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@
import org.opensearch.transport.TransportResponse;
import org.opensearch.transport.TransportResponseHandler;
import org.opensearch.transport.TransportService;
import org.opensearch.env.EnvironmentSettingsResponse;

import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.dataformat.yaml.YAMLFactory;
Expand Down Expand Up @@ -96,6 +97,7 @@ public static enum RequestType {
REQUEST_EXTENSION_ACTION_LISTENER_ON_FAILURE,
REQUEST_EXTENSION_REGISTER_REST_ACTIONS,
REQUEST_EXTENSION_REGISTER_SETTINGS,
REQUEST_EXTENSION_ENVIRONMENT_SETTINGS,
CREATE_COMPONENT,
ON_INDEX_MODULE,
GET_SETTINGS
Expand All @@ -120,7 +122,7 @@ public static enum OpenSearchRequestType {
private ClusterService clusterService;
private ExtensionActionListener listener;
private ExtensionActionListenerHandler listenerHandler;
private EnvironmentSettingsRequestHandler environmentSettingsRequestHandler;
private Settings environmentSettings;
private AddSettingsUpdateConsumerRequestHandler addSettingsUpdateConsumerRequestHandler;

public ExtensionsManager() {
Expand Down Expand Up @@ -172,7 +174,7 @@ public void initializeServicesAndRestHandler(
this.customSettingsRequestHandler = new CustomSettingsRequestHandler(settingsModule);
this.transportService = transportService;
this.clusterService = clusterService;
this.environmentSettingsRequestHandler = new EnvironmentSettingsRequestHandler(initialEnvironmentSettings);
this.environmentSettings = initialEnvironmentSettings;
this.addSettingsUpdateConsumerRequestHandler = new AddSettingsUpdateConsumerRequestHandler(
clusterService,
transportService,
Expand Down Expand Up @@ -235,8 +237,8 @@ private void registerRequestHandler() {
ThreadPool.Names.GENERIC,
false,
false,
EnvironmentSettingsRequest::new,
((request, channel, task) -> channel.sendResponse(environmentSettingsRequestHandler.handleEnvironmentSettingsRequest(request)))
ExtensionRequest::new,
((request, channel, task) -> channel.sendResponse(handleExtensionRequest(request)))
);
transportService.registerRequestHandler(
REQUEST_EXTENSION_ADD_SETTINGS_UPDATE_CONSUMER,
Expand Down Expand Up @@ -417,6 +419,8 @@ TransportResponse handleExtensionRequest(ExtensionRequest extensionRequest) thro
return new LocalNodeResponse(clusterService);
case REQUEST_EXTENSION_CLUSTER_SETTINGS:
return new ClusterSettingsResponse(clusterService);
case REQUEST_EXTENSION_ENVIRONMENT_SETTINGS:
return new EnvironmentSettingsResponse(this.environmentSettings);
default:
throw new IllegalArgumentException("Handler not present for the provided request");
}
Expand Down Expand Up @@ -661,14 +665,6 @@ public static String getRequestExtensionUpdateSettings() {
return REQUEST_EXTENSION_UPDATE_SETTINGS;
}

public EnvironmentSettingsRequestHandler getEnvironmentSettingsRequestHandler() {
return environmentSettingsRequestHandler;
}

public void setEnvironmentSettingsRequestHandler(EnvironmentSettingsRequestHandler environmentSettingsRequestHandler) {
this.environmentSettingsRequestHandler = environmentSettingsRequestHandler;
}

public AddSettingsUpdateConsumerRequestHandler getAddSettingsUpdateConsumerRequestHandler() {
return addSettingsUpdateConsumerRequestHandler;
}
Expand All @@ -691,4 +687,12 @@ public void setListenerHandler(ExtensionActionListenerHandler listenerHandler) {
this.listenerHandler = listenerHandler;
}

public Settings getEnvironmentSettings() {
return environmentSettings;
}

public void setEnvironmentSettings(Settings environmentSettings) {
this.environmentSettings = environmentSettings;
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
* @opensearch.internal
*/
public class UpdateSettingsRequest extends TransportRequest {
private static final Logger logger = LogManager.getLogger(EnvironmentSettingsRequest.class);
private static final Logger logger = LogManager.getLogger(UpdateSettingsRequest.class);

private WriteableSetting.SettingType settingType;
private Setting<?> componentSetting;
Expand Down
Loading

0 comments on commit aab1306

Please sign in to comment.