Revert "HLRC: Add ILM Status to HLRC"
This reverts commit 5a705e9664
.
(accidental push to wrong branch)
This commit is contained in:
parent
5a705e9664
commit
4257d05869
|
@ -22,7 +22,6 @@ package org.elasticsearch.client;
|
||||||
import org.elasticsearch.action.ActionListener;
|
import org.elasticsearch.action.ActionListener;
|
||||||
import org.elasticsearch.action.support.master.AcknowledgedResponse;
|
import org.elasticsearch.action.support.master.AcknowledgedResponse;
|
||||||
import org.elasticsearch.client.indexlifecycle.DeleteLifecyclePolicyRequest;
|
import org.elasticsearch.client.indexlifecycle.DeleteLifecyclePolicyRequest;
|
||||||
import org.elasticsearch.client.indexlifecycle.StatusILMResponse;
|
|
||||||
import org.elasticsearch.protocol.xpack.indexlifecycle.ExplainLifecycleRequest;
|
import org.elasticsearch.protocol.xpack.indexlifecycle.ExplainLifecycleRequest;
|
||||||
import org.elasticsearch.protocol.xpack.indexlifecycle.ExplainLifecycleResponse;
|
import org.elasticsearch.protocol.xpack.indexlifecycle.ExplainLifecycleResponse;
|
||||||
import org.elasticsearch.protocol.xpack.indexlifecycle.SetIndexLifecyclePolicyRequest;
|
import org.elasticsearch.protocol.xpack.indexlifecycle.SetIndexLifecyclePolicyRequest;
|
||||||
|
@ -140,34 +139,6 @@ public class IndexLifecycleClient {
|
||||||
AcknowledgedResponse::fromXContent, emptySet());
|
AcknowledgedResponse::fromXContent, emptySet());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the status of index lifecycle management
|
|
||||||
* See <a href="https://fix-me-when-we-have-docs.com">
|
|
||||||
* the docs</a> for more.
|
|
||||||
*
|
|
||||||
* @param request the request with user defined timeouts.
|
|
||||||
* @param options the request options (e.g. headers), use {@link RequestOptions#DEFAULT} if nothing needs to be customized
|
|
||||||
*/
|
|
||||||
public StatusILMResponse StatusILM(TimedRequest request, RequestOptions options) throws IOException {
|
|
||||||
return restHighLevelClient.performRequestAndParseEntity(request, RequestConverters::statusILM, options,
|
|
||||||
StatusILMResponse::fromXContent, emptySet());
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Asynchronously get the status of index lifecycle management
|
|
||||||
* See <a href="https://fix-me-when-we-have-docs.com">
|
|
||||||
* the docs</a> for more.
|
|
||||||
*
|
|
||||||
* @param request the request with user defined timeouts.
|
|
||||||
* @param options the request options (e.g. headers), use {@link RequestOptions#DEFAULT} if nothing needs to be customized
|
|
||||||
* @param listener the listener to be notified upon request completion
|
|
||||||
*/
|
|
||||||
public void StatusILMAsync(TimedRequest request, RequestOptions options,
|
|
||||||
ActionListener<StatusILMResponse> listener) {
|
|
||||||
restHighLevelClient.performRequestAsyncAndParseEntity(request, RequestConverters::statusILM, options,
|
|
||||||
StatusILMResponse::fromXContent, listener, emptySet());
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Asynchronously stop the Index Lifecycle Management feature.
|
* Asynchronously stop the Index Lifecycle Management feature.
|
||||||
* See <a href="https://fix-me-when-we-have-docs.com">
|
* See <a href="https://fix-me-when-we-have-docs.com">
|
||||||
|
|
|
@ -1241,18 +1241,6 @@ final class RequestConverters {
|
||||||
return request;
|
return request;
|
||||||
}
|
}
|
||||||
|
|
||||||
static Request statusILM(TimedRequest ilmStatusRequest){
|
|
||||||
Request request = new Request(HttpGet.METHOD_NAME,
|
|
||||||
new EndpointBuilder()
|
|
||||||
.addPathPartAsIs("_ilm")
|
|
||||||
.addPathPartAsIs("status")
|
|
||||||
.build());
|
|
||||||
Params params = new Params(request);
|
|
||||||
params.withMasterTimeout(ilmStatusRequest.masterNodeTimeout());
|
|
||||||
params.withTimeout(ilmStatusRequest.timeout());
|
|
||||||
return request;
|
|
||||||
}
|
|
||||||
|
|
||||||
static Request explainLifecycle(ExplainLifecycleRequest explainLifecycleRequest) {
|
static Request explainLifecycle(ExplainLifecycleRequest explainLifecycleRequest) {
|
||||||
String[] indices = explainLifecycleRequest.indices() == null ? Strings.EMPTY_ARRAY : explainLifecycleRequest.indices();
|
String[] indices = explainLifecycleRequest.indices() == null ? Strings.EMPTY_ARRAY : explainLifecycleRequest.indices();
|
||||||
Request request = new Request(HttpGet.METHOD_NAME,
|
Request request = new Request(HttpGet.METHOD_NAME,
|
||||||
|
|
|
@ -36,6 +36,7 @@ public class TimedRequest implements Validatable {
|
||||||
|
|
||||||
public void setTimeout(TimeValue timeout) {
|
public void setTimeout(TimeValue timeout) {
|
||||||
this.timeout = timeout;
|
this.timeout = timeout;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setMasterTimeout(TimeValue masterTimeout) {
|
public void setMasterTimeout(TimeValue masterTimeout) {
|
||||||
|
|
|
@ -1,99 +0,0 @@
|
||||||
/*
|
|
||||||
* Licensed to Elasticsearch under one or more contributor
|
|
||||||
* license agreements. See the NOTICE file distributed with
|
|
||||||
* this work for additional information regarding copyright
|
|
||||||
* ownership. Elasticsearch licenses this file to you under
|
|
||||||
* the Apache License, Version 2.0 (the "License"); you may
|
|
||||||
* not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing,
|
|
||||||
* software distributed under the License is distributed on an
|
|
||||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
||||||
* KIND, either express or implied. See the License for the
|
|
||||||
* specific language governing permissions and limitations
|
|
||||||
* under the License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package org.elasticsearch.client.indexlifecycle;
|
|
||||||
|
|
||||||
import org.elasticsearch.action.admin.indices.shrink.ShrinkAction;
|
|
||||||
import org.elasticsearch.common.ParseField;
|
|
||||||
import org.elasticsearch.common.xcontent.ConstructingObjectParser;
|
|
||||||
import org.elasticsearch.common.xcontent.XContentParser;
|
|
||||||
|
|
||||||
import java.util.EnumSet;
|
|
||||||
import java.util.Locale;
|
|
||||||
import java.util.Objects;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The current status of index lifecycle management. See {@link OperationMode} for available statuses.
|
|
||||||
*/
|
|
||||||
public class StatusILMResponse {
|
|
||||||
|
|
||||||
private final OperationMode operationMode;
|
|
||||||
@SuppressWarnings("unchecked")
|
|
||||||
private static final ConstructingObjectParser<StatusILMResponse, Void> PARSER = new ConstructingObjectParser<>(
|
|
||||||
"operation_mode", a -> new StatusILMResponse((String) a[0]));
|
|
||||||
|
|
||||||
static {
|
|
||||||
PARSER.declareString(ConstructingObjectParser.constructorArg(), new ParseField("operation_mode"));
|
|
||||||
}
|
|
||||||
|
|
||||||
//package private for testing
|
|
||||||
StatusILMResponse(String operationMode) {
|
|
||||||
this.operationMode = OperationMode.fromString(operationMode);
|
|
||||||
}
|
|
||||||
|
|
||||||
public OperationMode getOperationMode() {
|
|
||||||
return operationMode;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static StatusILMResponse fromXContent(XContentParser parser) {
|
|
||||||
return PARSER.apply(parser, null);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Enum representing the different modes that Index Lifecycle Service can operate in.
|
|
||||||
*/
|
|
||||||
public enum OperationMode {
|
|
||||||
/**
|
|
||||||
* This represents a state where no policies are executed
|
|
||||||
*/
|
|
||||||
STOPPED,
|
|
||||||
|
|
||||||
/**
|
|
||||||
* this represents a state where only sensitive actions (like {@link ShrinkAction}) will be executed
|
|
||||||
* until they finish, at which point the operation mode will move to <code>STOPPED</code>.
|
|
||||||
*/
|
|
||||||
STOPPING,
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Normal operation where all policies are executed as normal.
|
|
||||||
*/
|
|
||||||
RUNNING;
|
|
||||||
|
|
||||||
static OperationMode fromString(String string) {
|
|
||||||
return EnumSet.allOf(OperationMode.class).stream()
|
|
||||||
.filter(e -> string.equalsIgnoreCase(e.name())).findFirst()
|
|
||||||
.orElseThrow(() -> new IllegalArgumentException(String.format(Locale.ENGLISH, "%s is not a valid operation_mode", string)));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// generated
|
|
||||||
@Override
|
|
||||||
public boolean equals(Object o) {
|
|
||||||
if (this == o) return true;
|
|
||||||
if (o == null || getClass() != o.getClass()) return false;
|
|
||||||
StatusILMResponse that = (StatusILMResponse) o;
|
|
||||||
return operationMode == that.operationMode;
|
|
||||||
}
|
|
||||||
|
|
||||||
// generated
|
|
||||||
@Override
|
|
||||||
public int hashCode() {
|
|
||||||
return Objects.hash(operationMode);
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -22,11 +22,11 @@ package org.elasticsearch.client;
|
||||||
import org.apache.http.HttpEntity;
|
import org.apache.http.HttpEntity;
|
||||||
import org.apache.http.entity.ContentType;
|
import org.apache.http.entity.ContentType;
|
||||||
import org.apache.http.nio.entity.NStringEntity;
|
import org.apache.http.nio.entity.NStringEntity;
|
||||||
|
import org.apache.http.util.EntityUtils;
|
||||||
import org.elasticsearch.action.admin.indices.settings.get.GetSettingsRequest;
|
import org.elasticsearch.action.admin.indices.settings.get.GetSettingsRequest;
|
||||||
import org.elasticsearch.action.admin.indices.settings.get.GetSettingsResponse;
|
import org.elasticsearch.action.admin.indices.settings.get.GetSettingsResponse;
|
||||||
import org.elasticsearch.action.support.master.AcknowledgedResponse;
|
import org.elasticsearch.action.support.master.AcknowledgedResponse;
|
||||||
import org.elasticsearch.client.indexlifecycle.DeleteLifecyclePolicyRequest;
|
import org.elasticsearch.client.indexlifecycle.DeleteLifecyclePolicyRequest;
|
||||||
import org.elasticsearch.client.indexlifecycle.StatusILMResponse;
|
|
||||||
import org.elasticsearch.common.settings.Settings;
|
import org.elasticsearch.common.settings.Settings;
|
||||||
import org.elasticsearch.protocol.xpack.indexlifecycle.ExplainLifecycleRequest;
|
import org.elasticsearch.protocol.xpack.indexlifecycle.ExplainLifecycleRequest;
|
||||||
import org.elasticsearch.protocol.xpack.indexlifecycle.ExplainLifecycleResponse;
|
import org.elasticsearch.protocol.xpack.indexlifecycle.ExplainLifecycleResponse;
|
||||||
|
@ -169,30 +169,35 @@ public class IndexLifecycleIT extends ESRestHighLevelClientTestCase {
|
||||||
createIndex("baz", Settings.builder().put("index.lifecycle.name", "eggplant").build());
|
createIndex("baz", Settings.builder().put("index.lifecycle.name", "eggplant").build());
|
||||||
createIndex("squash", Settings.EMPTY);
|
createIndex("squash", Settings.EMPTY);
|
||||||
|
|
||||||
TimedRequest statusRequest = new TimedRequest();
|
// TODO: NORELEASE convert this to using the high level client once
|
||||||
StatusILMResponse statusResponse = execute(statusRequest, highLevelClient().indexLifecycle()::StatusILM,
|
// there are APIs for it
|
||||||
highLevelClient().indexLifecycle()::StatusILMAsync);
|
Request statusReq = new Request("GET", "/_ilm/status");
|
||||||
assertEquals(statusResponse.getOperationMode(), StatusILMResponse.OperationMode.RUNNING);
|
Response statusResponse = client().performRequest(statusReq);
|
||||||
|
String statusResponseString = EntityUtils.toString(statusResponse.getEntity());
|
||||||
|
assertEquals("{\"operation_mode\":\"RUNNING\"}", statusResponseString);
|
||||||
|
|
||||||
StopILMRequest stopReq = new StopILMRequest();
|
StopILMRequest stopReq = new StopILMRequest();
|
||||||
AcknowledgedResponse stopResponse = execute(stopReq, highLevelClient().indexLifecycle()::stopILM,
|
AcknowledgedResponse stopResponse = execute(stopReq, highLevelClient().indexLifecycle()::stopILM,
|
||||||
highLevelClient().indexLifecycle()::stopILMAsync);
|
highLevelClient().indexLifecycle()::stopILMAsync);
|
||||||
assertTrue(stopResponse.isAcknowledged());
|
assertTrue(stopResponse.isAcknowledged());
|
||||||
|
|
||||||
|
// TODO: NORELEASE convert this to using the high level client once there are APIs for it
|
||||||
statusResponse = execute(statusRequest, highLevelClient().indexLifecycle()::StatusILM,
|
statusReq = new Request("GET", "/_ilm/status");
|
||||||
highLevelClient().indexLifecycle()::StatusILMAsync);
|
statusResponse = client().performRequest(statusReq);
|
||||||
assertThat(statusResponse.getOperationMode(),
|
statusResponseString = EntityUtils.toString(statusResponse.getEntity());
|
||||||
Matchers.anyOf(equalTo(StatusILMResponse.OperationMode.STOPPING), equalTo(StatusILMResponse.OperationMode.STOPPED)));
|
assertThat(statusResponseString,
|
||||||
|
Matchers.anyOf(equalTo("{\"operation_mode\":\"STOPPING\"}"), equalTo("{\"operation_mode\":\"STOPPED\"}")));
|
||||||
|
|
||||||
StartILMRequest startReq = new StartILMRequest();
|
StartILMRequest startReq = new StartILMRequest();
|
||||||
AcknowledgedResponse startResponse = execute(startReq, highLevelClient().indexLifecycle()::startILM,
|
AcknowledgedResponse startResponse = execute(startReq, highLevelClient().indexLifecycle()::startILM,
|
||||||
highLevelClient().indexLifecycle()::startILMAsync);
|
highLevelClient().indexLifecycle()::startILMAsync);
|
||||||
assertTrue(startResponse.isAcknowledged());
|
assertTrue(startResponse.isAcknowledged());
|
||||||
|
|
||||||
statusResponse = execute(statusRequest, highLevelClient().indexLifecycle()::StatusILM,
|
// TODO: NORELEASE convert this to using the high level client once there are APIs for it
|
||||||
highLevelClient().indexLifecycle()::StatusILMAsync);
|
statusReq = new Request("GET", "/_ilm/status");
|
||||||
assertEquals(statusResponse.getOperationMode(), StatusILMResponse.OperationMode.RUNNING);
|
statusResponse = client().performRequest(statusReq);
|
||||||
|
statusResponseString = EntityUtils.toString(statusResponse.getEntity());
|
||||||
|
assertEquals("{\"operation_mode\":\"RUNNING\"}", statusResponseString);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testExplainLifecycle() throws Exception {
|
public void testExplainLifecycle() throws Exception {
|
||||||
|
|
|
@ -2755,18 +2755,6 @@ public class RequestConvertersTests extends ESTestCase {
|
||||||
assertThat(request.getParameters(), equalTo(expectedParams));
|
assertThat(request.getParameters(), equalTo(expectedParams));
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testStatusILM() throws Exception {
|
|
||||||
TimedRequest req = new TimedRequest();
|
|
||||||
Map<String, String> expectedParams = new HashMap<>();
|
|
||||||
setRandomMasterTimeout(req::setMasterTimeout, TimedRequest.DEFAULT_TIMEOUT, expectedParams);
|
|
||||||
setRandomTimeoutTimeValue(req::setTimeout, TimedRequest.DEFAULT_MASTER_TIMEOUT, expectedParams);
|
|
||||||
|
|
||||||
Request request = RequestConverters.statusILM(req);
|
|
||||||
assertThat(request.getMethod(), equalTo(HttpGet.METHOD_NAME));
|
|
||||||
assertThat(request.getEndpoint(), equalTo("/_ilm/status"));
|
|
||||||
assertThat(request.getParameters(), equalTo(expectedParams));
|
|
||||||
}
|
|
||||||
|
|
||||||
public void testExplainLifecycle() throws Exception {
|
public void testExplainLifecycle() throws Exception {
|
||||||
ExplainLifecycleRequest req = new ExplainLifecycleRequest();
|
ExplainLifecycleRequest req = new ExplainLifecycleRequest();
|
||||||
String[] indices = rarely() ? null : randomIndicesNames(0, 10);
|
String[] indices = rarely() ? null : randomIndicesNames(0, 10);
|
||||||
|
|
|
@ -1,42 +0,0 @@
|
||||||
/*
|
|
||||||
* Licensed to Elasticsearch under one or more contributor
|
|
||||||
* license agreements. See the NOTICE file distributed with
|
|
||||||
* this work for additional information regarding copyright
|
|
||||||
* ownership. Elasticsearch licenses this file to you under
|
|
||||||
* the Apache License, Version 2.0 (the "License"); you may
|
|
||||||
* not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing,
|
|
||||||
* software distributed under the License is distributed on an
|
|
||||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
||||||
* KIND, either express or implied. See the License for the
|
|
||||||
* specific language governing permissions and limitations
|
|
||||||
* under the License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package org.elasticsearch.client;
|
|
||||||
|
|
||||||
import org.elasticsearch.common.unit.TimeValue;
|
|
||||||
import org.elasticsearch.test.ESTestCase;
|
|
||||||
|
|
||||||
public class TimedRequestTests extends ESTestCase {
|
|
||||||
|
|
||||||
public void testDefaults() {
|
|
||||||
TimedRequest timedRequest = new TimedRequest();
|
|
||||||
assertEquals(timedRequest.timeout(), TimedRequest.DEFAULT_TIMEOUT);
|
|
||||||
assertEquals(timedRequest.masterNodeTimeout(), TimedRequest.DEFAULT_MASTER_TIMEOUT);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void testNonDefaults() {
|
|
||||||
TimedRequest timedRequest = new TimedRequest();
|
|
||||||
TimeValue timeout = TimeValue.timeValueSeconds(randomIntBetween(0, 1000));
|
|
||||||
TimeValue masterTimeout = TimeValue.timeValueSeconds(randomIntBetween(0,1000));
|
|
||||||
timedRequest.setTimeout(timeout);
|
|
||||||
timedRequest.setMasterTimeout(masterTimeout);
|
|
||||||
assertEquals(timedRequest.timeout(), timeout);
|
|
||||||
assertEquals(timedRequest.masterNodeTimeout(), masterTimeout);
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,66 +0,0 @@
|
||||||
/*
|
|
||||||
* Licensed to Elasticsearch under one or more contributor
|
|
||||||
* license agreements. See the NOTICE file distributed with
|
|
||||||
* this work for additional information regarding copyright
|
|
||||||
* ownership. Elasticsearch licenses this file to you under
|
|
||||||
* the Apache License, Version 2.0 (the "License"); you may
|
|
||||||
* not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing,
|
|
||||||
* software distributed under the License is distributed on an
|
|
||||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
||||||
* KIND, either express or implied. See the License for the
|
|
||||||
* specific language governing permissions and limitations
|
|
||||||
* under the License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package org.elasticsearch.client.indexlifecycle;
|
|
||||||
|
|
||||||
import org.elasticsearch.common.xcontent.DeprecationHandler;
|
|
||||||
import org.elasticsearch.common.xcontent.NamedXContentRegistry;
|
|
||||||
import org.elasticsearch.common.xcontent.XContentParser;
|
|
||||||
import org.elasticsearch.common.xcontent.XContentType;
|
|
||||||
import org.elasticsearch.protocol.xpack.indexlifecycle.OperationMode;
|
|
||||||
import org.elasticsearch.test.ESTestCase;
|
|
||||||
import org.hamcrest.CoreMatchers;
|
|
||||||
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.util.EnumSet;
|
|
||||||
import java.util.stream.Collectors;
|
|
||||||
|
|
||||||
public class StatusILMResponseTests extends ESTestCase {
|
|
||||||
|
|
||||||
public void testClientServerStatuses() {
|
|
||||||
assertEquals(
|
|
||||||
EnumSet.allOf(StatusILMResponse.OperationMode.class).stream().map(Enum::name).collect(Collectors.toSet()),
|
|
||||||
EnumSet.allOf(OperationMode.class).stream().map(Enum::name).collect(Collectors.toSet()));
|
|
||||||
}
|
|
||||||
|
|
||||||
public void testFromName() {
|
|
||||||
EnumSet.allOf(StatusILMResponse.OperationMode.class)
|
|
||||||
.forEach(e -> assertEquals(StatusILMResponse.OperationMode.fromString(e.name()), e));
|
|
||||||
}
|
|
||||||
|
|
||||||
public void testInvalidStatus() {
|
|
||||||
String invalidName = randomAlphaOfLength(10);
|
|
||||||
Exception e = expectThrows(IllegalArgumentException.class, () -> StatusILMResponse.OperationMode.fromString(invalidName));
|
|
||||||
assertThat(e.getMessage(), CoreMatchers.containsString(invalidName + " is not a valid operation_mode"));
|
|
||||||
}
|
|
||||||
|
|
||||||
public void testValidStatuses() {
|
|
||||||
EnumSet.allOf(StatusILMResponse.OperationMode.class)
|
|
||||||
.forEach(e -> assertEquals(new StatusILMResponse(e.name()).getOperationMode(), e));
|
|
||||||
}
|
|
||||||
|
|
||||||
public void testXContent() throws IOException {
|
|
||||||
XContentType xContentType = XContentType.JSON;
|
|
||||||
String mode = randomFrom(EnumSet.allOf(StatusILMResponse.OperationMode.class)
|
|
||||||
.stream().map(Enum::name).collect(Collectors.toList()));
|
|
||||||
XContentParser parser = xContentType.xContent().createParser(NamedXContentRegistry.EMPTY,
|
|
||||||
DeprecationHandler.THROW_UNSUPPORTED_OPERATION, "{\"operation_mode\" : \"" + mode + "\"}");
|
|
||||||
assertEquals(StatusILMResponse.fromXContent(parser).getOperationMode(), StatusILMResponse.OperationMode.fromString(mode));
|
|
||||||
}
|
|
||||||
}
|
|
Loading…
Reference in New Issue