in src/main/java/org/opensearch/performanceanalyzer/http_action/config/PerformanceAnalyzerClusterConfigAction.java [172:222]
protected RestChannelConsumer prepareRequest(final RestRequest request, final NodeClient client)
throws IOException {
if (request.method() == RestRequest.Method.POST && request.content().length() > 0) {
Map<String, Object> map =
XContentHelper.convertToMap(request.content(), false, XContentType.JSON).v2();
Object value = map.get(ENABLED);
LOG.debug(
"PerformanceAnalyzer:Value (Object) Received as Part of Request: {} current value: {}",
value,
clusterSettingHandler.getCurrentClusterSettingValue());
if (value instanceof Boolean) {
if (request.path().contains(RCA_CLUSTER_CONFIG_PATH)
|| request.path().contains(LEGACY_RCA_CLUSTER_CONFIG_PATH)) {
clusterSettingHandler.updateRcaSetting((Boolean) value);
} else if (request.path().contains(LOGGING_CLUSTER_CONFIG_PATH)
|| request.path().contains(LEGACY_LOGGING_CLUSTER_CONFIG_PATH)) {
clusterSettingHandler.updateLoggingSetting((Boolean) value);
} else if (request.path().contains(BATCH_METRICS_CLUSTER_CONFIG_PATH)
|| request.path().contains(LEGACY_BATCH_METRICS_CLUSTER_CONFIG_PATH)) {
clusterSettingHandler.updateBatchMetricsSetting((Boolean) value);
} else {
clusterSettingHandler.updatePerformanceAnalyzerSetting((Boolean) value);
}
}
// update node stats setting if exists
if (map.containsKey(SHARDS_PER_COLLECTION)) {
Object shardPerCollectionValue = map.get(SHARDS_PER_COLLECTION);
if (shardPerCollectionValue instanceof Integer) {
nodeStatsSettingHandler.updateNodeStatsSetting(
(Integer) shardPerCollectionValue);
}
}
}
return channel -> {
try {
XContentBuilder builder = channel.newBuilder();
builder.startObject();
builder.field(CURRENT, clusterSettingHandler.getCurrentClusterSettingValue());
builder.field(SHARDS_PER_COLLECTION, nodeStatsSettingHandler.getNodeStatsSetting());
builder.field(
BATCH_METRICS_RETENTION_PERIOD_MINUTES,
PluginSettings.instance().getBatchMetricsRetentionPeriodMinutes());
builder.endObject();
channel.sendResponse(new BytesRestResponse(RestStatus.OK, builder));
} catch (IOException ioe) {
LOG.error("Error sending response", ioe);
}
};
}