[PURIFY] remove all trace of x-pack migration (#19)
This commit removes all trace of Elastic licensed Migration Signed-off-by: Peter Nied <petern@amazon.com>
This commit is contained in:
parent
f15b830261
commit
46f37bfa81
|
@ -31,12 +31,8 @@
|
|||
<suppress files="client[/\\]rest-high-level[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]client[/\\]documentation[/\\]CRUDDocumentationIT.java" id="SnippetLength" />
|
||||
<suppress files="client[/\\]rest-high-level[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]client[/\\]documentation[/\\]IndicesClientDocumentationIT.java" id="SnippetLength" />
|
||||
<suppress files="client[/\\]rest-high-level[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]client[/\\]documentation[/\\]IngestClientDocumentationIT.java" id="SnippetLength" />
|
||||
<suppress files="client[/\\]rest-high-level[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]client[/\\]documentation[/\\]LicensingDocumentationIT.java" id="SnippetLength" />
|
||||
<suppress files="client[/\\]rest-high-level[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]client[/\\]documentation[/\\]MigrationDocumentationIT.java" id="SnippetLength" />
|
||||
<suppress files="client[/\\]rest-high-level[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]client[/\\]documentation[/\\]MigrationClientDocumentationIT.java" id="SnippetLength" />
|
||||
<suppress files="client[/\\]rest-high-level[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]client[/\\]documentation[/\\]MiscellaneousDocumentationIT.java" id="SnippetLength" />
|
||||
<suppress files="client[/\\]rest-high-level[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]client[/\\]documentation[/\\]SearchDocumentationIT.java" id="SnippetLength" />
|
||||
<suppress files="client[/\\]rest-high-level[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]client[/\\]documentation[/\\]SecurityDocumentationIT.java" id="SnippetLength" />
|
||||
<suppress files="client[/\\]rest-high-level[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]client[/\\]documentation[/\\]SnapshotClientDocumentationIT.java" id="SnippetLength" />
|
||||
<suppress files="client[/\\]rest-high-level[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]client[/\\]documentation[/\\]StoredScriptsDocumentationIT.java" id="SnippetLength" />
|
||||
<suppress files="client[/\\]rest-high-level[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]client[/\\]documentation[/\\]TasksClientDocumentationIT.java" id="SnippetLength" />
|
||||
|
|
|
@ -1,68 +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.action.ActionListener;
|
||||
import org.elasticsearch.client.migration.DeprecationInfoRequest;
|
||||
import org.elasticsearch.client.migration.DeprecationInfoResponse;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.Collections;
|
||||
|
||||
/**
|
||||
* A wrapper for the {@link RestHighLevelClient} that provides methods for
|
||||
* accessing the Elastic License-related methods
|
||||
* <p>
|
||||
* See the <a href="https://www.elastic.co/guide/en/elasticsearch/reference/current/migration-api.html">
|
||||
* X-Pack Migration APIs on elastic.co</a> for more information.
|
||||
*/
|
||||
public final class MigrationClient {
|
||||
|
||||
private final RestHighLevelClient restHighLevelClient;
|
||||
|
||||
MigrationClient(RestHighLevelClient restHighLevelClient) {
|
||||
this.restHighLevelClient = restHighLevelClient;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get deprecation info for one or more indices
|
||||
* @param request the request
|
||||
* @param options the request options (e.g. headers), use {@link RequestOptions#DEFAULT} if nothing needs to be customized
|
||||
* @return the response
|
||||
* @throws IOException in case there is a problem sending the request or parsing back the response
|
||||
*/
|
||||
public DeprecationInfoResponse getDeprecationInfo(DeprecationInfoRequest request, RequestOptions options) throws IOException {
|
||||
return restHighLevelClient.performRequestAndParseEntity(request, MigrationRequestConverters::getDeprecationInfo, options,
|
||||
DeprecationInfoResponse::fromXContent, Collections.emptySet());
|
||||
}
|
||||
|
||||
/**
|
||||
* Asynchronously get deprecation info for one or more indices
|
||||
* @param request the request
|
||||
* @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
|
||||
* @return cancellable that may be used to cancel the request
|
||||
*/
|
||||
public Cancellable getDeprecationInfoAsync(DeprecationInfoRequest request, RequestOptions options,
|
||||
ActionListener<DeprecationInfoResponse> listener) {
|
||||
return restHighLevelClient.performRequestAsyncAndParseEntity(request, MigrationRequestConverters::getDeprecationInfo, options,
|
||||
DeprecationInfoResponse::fromXContent, listener, Collections.emptySet());
|
||||
}
|
||||
}
|
|
@ -1,38 +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.apache.http.client.methods.HttpGet;
|
||||
import org.elasticsearch.client.migration.DeprecationInfoRequest;
|
||||
|
||||
final class MigrationRequestConverters {
|
||||
|
||||
private MigrationRequestConverters() {
|
||||
}
|
||||
|
||||
static Request getDeprecationInfo(DeprecationInfoRequest deprecationInfoRequest) {
|
||||
String endpoint = new RequestConverters.EndpointBuilder()
|
||||
.addCommaSeparatedPathParts(deprecationInfoRequest.getIndices())
|
||||
.addPathPartAsIs("_migration", "deprecations")
|
||||
.build();
|
||||
|
||||
return new Request(HttpGet.METHOD_NAME, endpoint);
|
||||
}
|
||||
}
|
|
@ -261,7 +261,6 @@ public class RestHighLevelClient implements Closeable {
|
|||
private final SnapshotClient snapshotClient = new SnapshotClient(this);
|
||||
private final TasksClient tasksClient = new TasksClient(this);
|
||||
private final WatcherClient watcherClient = new WatcherClient(this);
|
||||
private final MigrationClient migrationClient = new MigrationClient(this);
|
||||
private final IndexLifecycleClient ilmClient = new IndexLifecycleClient(this);
|
||||
private final TransformClient transformClient = new TransformClient(this);
|
||||
|
||||
|
@ -375,18 +374,6 @@ public class RestHighLevelClient implements Closeable {
|
|||
return ilmClient;
|
||||
}
|
||||
|
||||
/**
|
||||
* Provides methods for accessing the Elastic Licensed Migration APIs that
|
||||
* are shipped with the default distribution of Elasticsearch. All of
|
||||
* these APIs will 404 if run against the OSS distribution of Elasticsearch.
|
||||
* <p>
|
||||
* See the <a href="https://www.elastic.co/guide/en/elasticsearch/reference/current/migration-api.html">
|
||||
* Migration APIs on elastic.co</a> for more information.
|
||||
*/
|
||||
public MigrationClient migration() {
|
||||
return migrationClient;
|
||||
}
|
||||
|
||||
/**
|
||||
* Provides methods for accessing the Elastic Licensed Data Frame APIs that
|
||||
* are shipped with the Elastic Stack distribution of Elasticsearch. All of
|
||||
|
|
|
@ -1,43 +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.migration;
|
||||
|
||||
import org.elasticsearch.client.Validatable;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
|
||||
public class DeprecationInfoRequest implements Validatable {
|
||||
|
||||
private final List<String> indices;
|
||||
|
||||
public DeprecationInfoRequest(List<String> indices) {
|
||||
this.indices = Collections.unmodifiableList(Objects.requireNonNull(indices, "indices cannot be null"));
|
||||
}
|
||||
|
||||
public DeprecationInfoRequest() {
|
||||
this.indices = Collections.unmodifiableList(Collections.emptyList());
|
||||
}
|
||||
|
||||
public List<String> getIndices() {
|
||||
return indices;
|
||||
}
|
||||
}
|
|
@ -1,218 +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.migration;
|
||||
|
||||
import org.elasticsearch.common.Nullable;
|
||||
import org.elasticsearch.common.ParseField;
|
||||
import org.elasticsearch.common.xcontent.ConstructingObjectParser;
|
||||
import org.elasticsearch.common.xcontent.XContentParser;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
|
||||
public class DeprecationInfoResponse {
|
||||
|
||||
private static final ParseField CLUSTER_SETTINGS = new ParseField("cluster_settings");
|
||||
private static final ParseField NODE_SETTINGS = new ParseField("node_settings");
|
||||
private static final ParseField INDEX_SETTINGS = new ParseField("index_settings");
|
||||
private static final ParseField ML_SETTINGS = new ParseField("ml_settings");
|
||||
|
||||
private final List<DeprecationIssue> clusterSettingsIssues;
|
||||
private final List<DeprecationIssue> nodeSettingsIssues;
|
||||
private final Map<String, List<DeprecationIssue>> indexSettingsIssues;
|
||||
private final List<DeprecationIssue> mlSettingsIssues;
|
||||
|
||||
public DeprecationInfoResponse(List<DeprecationIssue> clusterSettingsIssues, List<DeprecationIssue> nodeSettingsIssues,
|
||||
Map<String, List<DeprecationIssue>> indexSettingsIssues, List<DeprecationIssue> mlSettingsIssues) {
|
||||
this.clusterSettingsIssues = Objects.requireNonNull(clusterSettingsIssues, "cluster settings issues cannot be null");
|
||||
this.nodeSettingsIssues = Objects.requireNonNull(nodeSettingsIssues, "node settings issues cannot be null");
|
||||
this.indexSettingsIssues = Objects.requireNonNull(indexSettingsIssues, "index settings issues cannot be null");
|
||||
this.mlSettingsIssues = Objects.requireNonNull(mlSettingsIssues, "ml settings issues cannot be null");
|
||||
}
|
||||
|
||||
public List<DeprecationIssue> getClusterSettingsIssues() {
|
||||
return clusterSettingsIssues;
|
||||
}
|
||||
|
||||
public List<DeprecationIssue> getNodeSettingsIssues() {
|
||||
return nodeSettingsIssues;
|
||||
}
|
||||
|
||||
public Map<String, List<DeprecationIssue>> getIndexSettingsIssues() {
|
||||
return indexSettingsIssues;
|
||||
}
|
||||
|
||||
public List<DeprecationIssue> getMlSettingsIssues() {
|
||||
return mlSettingsIssues;
|
||||
}
|
||||
|
||||
private static List<DeprecationIssue> parseDeprecationIssues(XContentParser parser) throws IOException {
|
||||
List<DeprecationIssue> issues = new ArrayList<>();
|
||||
XContentParser.Token token = null;
|
||||
while ((token = parser.nextToken()) != XContentParser.Token.END_ARRAY) {
|
||||
if (token == XContentParser.Token.START_OBJECT) {
|
||||
issues.add(DeprecationIssue.PARSER.parse(parser, null));
|
||||
}
|
||||
}
|
||||
return issues;
|
||||
}
|
||||
|
||||
public static DeprecationInfoResponse fromXContent(XContentParser parser) throws IOException {
|
||||
Map<String, List<DeprecationIssue>> indexSettings = new HashMap<>();
|
||||
List<DeprecationIssue> clusterSettings = new ArrayList<>();
|
||||
List<DeprecationIssue> nodeSettings = new ArrayList<>();
|
||||
List<DeprecationIssue> mlSettings = new ArrayList<>();
|
||||
String fieldName = null;
|
||||
XContentParser.Token token;
|
||||
while ((token = parser.nextToken()) != XContentParser.Token.END_OBJECT) {
|
||||
if (token == XContentParser.Token.FIELD_NAME) {
|
||||
fieldName = parser.currentName();
|
||||
} else if (CLUSTER_SETTINGS.getPreferredName().equals(fieldName)) {
|
||||
clusterSettings.addAll(parseDeprecationIssues(parser));
|
||||
} else if (NODE_SETTINGS.getPreferredName().equals(fieldName)) {
|
||||
nodeSettings.addAll(parseDeprecationIssues(parser));
|
||||
} else if (ML_SETTINGS.getPreferredName().equals(fieldName)) {
|
||||
mlSettings.addAll(parseDeprecationIssues(parser));
|
||||
} else if (INDEX_SETTINGS.getPreferredName().equals(fieldName)) {
|
||||
// parse out the key/value pairs
|
||||
while ((token = parser.nextToken()) != XContentParser.Token.END_OBJECT) {
|
||||
String key = parser.currentName();
|
||||
List<DeprecationIssue> value = parseDeprecationIssues(parser);
|
||||
if (value.size() > 0) { // only add indices that contain deprecation issues
|
||||
indexSettings.put(key, value);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return new DeprecationInfoResponse(clusterSettings, nodeSettings, indexSettings, mlSettings);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object o) {
|
||||
if (this == o) return true;
|
||||
if (o == null || getClass() != o.getClass()) return false;
|
||||
DeprecationInfoResponse that = (DeprecationInfoResponse) o;
|
||||
return Objects.equals(clusterSettingsIssues, that.clusterSettingsIssues) &&
|
||||
Objects.equals(nodeSettingsIssues, that.nodeSettingsIssues) &&
|
||||
Objects.equals(mlSettingsIssues, that.mlSettingsIssues) &&
|
||||
Objects.equals(indexSettingsIssues, that.indexSettingsIssues);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return Objects.hash(clusterSettingsIssues, nodeSettingsIssues, indexSettingsIssues, mlSettingsIssues);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return clusterSettingsIssues.toString() + ":" + nodeSettingsIssues.toString() + ":" + indexSettingsIssues.toString() +
|
||||
":" + mlSettingsIssues.toString();
|
||||
}
|
||||
|
||||
/**
|
||||
* Information about deprecated items
|
||||
*/
|
||||
public static class DeprecationIssue {
|
||||
|
||||
private static final ParseField LEVEL = new ParseField("level");
|
||||
private static final ParseField MESSAGE = new ParseField("message");
|
||||
private static final ParseField URL = new ParseField("url");
|
||||
private static final ParseField DETAILS = new ParseField("details");
|
||||
|
||||
static final ConstructingObjectParser<DeprecationIssue, Void> PARSER =
|
||||
new ConstructingObjectParser<>("deprecation_issue", true,
|
||||
a -> new DeprecationIssue(Level.fromString((String) a[0]), (String) a[1], (String) a[2], (String) a[3]));
|
||||
|
||||
static {
|
||||
PARSER.declareString(ConstructingObjectParser.constructorArg(), LEVEL);
|
||||
PARSER.declareString(ConstructingObjectParser.constructorArg(), MESSAGE);
|
||||
PARSER.declareString(ConstructingObjectParser.constructorArg(), URL);
|
||||
PARSER.declareString(ConstructingObjectParser.optionalConstructorArg(), DETAILS);
|
||||
}
|
||||
|
||||
public enum Level {
|
||||
WARNING,
|
||||
CRITICAL
|
||||
;
|
||||
|
||||
public static Level fromString(String value) {
|
||||
return Level.valueOf(value.toUpperCase(Locale.ROOT));
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return name().toLowerCase(Locale.ROOT);
|
||||
}
|
||||
}
|
||||
|
||||
private Level level;
|
||||
private String message;
|
||||
private String url;
|
||||
private String details;
|
||||
|
||||
public DeprecationIssue(Level level, String message, String url, @Nullable String details) {
|
||||
this.level = level;
|
||||
this.message = message;
|
||||
this.url = url;
|
||||
this.details = details;
|
||||
}
|
||||
|
||||
public Level getLevel() {
|
||||
return level;
|
||||
}
|
||||
|
||||
public String getMessage() {
|
||||
return message;
|
||||
}
|
||||
|
||||
public String getUrl() {
|
||||
return url;
|
||||
}
|
||||
|
||||
public String getDetails() {
|
||||
return details;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object o) {
|
||||
if (this == o) {
|
||||
return true;
|
||||
}
|
||||
if (o == null || getClass() != o.getClass()) {
|
||||
return false;
|
||||
}
|
||||
DeprecationIssue that = (DeprecationIssue) o;
|
||||
return Objects.equals(level, that.level) &&
|
||||
Objects.equals(message, that.message) &&
|
||||
Objects.equals(url, that.url) &&
|
||||
Objects.equals(details, that.details);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return Objects.hash(level, message, url, details);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,24 +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.
|
||||
*/
|
||||
|
||||
/**
|
||||
* Request and Response objects for the default distribution's Migration
|
||||
* APIs.
|
||||
*/
|
||||
package org.elasticsearch.client.migration;
|
|
@ -1,43 +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.client.migration.DeprecationInfoRequest;
|
||||
import org.elasticsearch.client.migration.DeprecationInfoResponse;
|
||||
import org.elasticsearch.common.settings.Settings;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.Collections;
|
||||
|
||||
import static org.hamcrest.Matchers.equalTo;
|
||||
|
||||
public class MigrationIT extends ESRestHighLevelClientTestCase {
|
||||
|
||||
public void testGetDeprecationInfo() throws IOException {
|
||||
createIndex("test", Settings.EMPTY);
|
||||
DeprecationInfoRequest request = new DeprecationInfoRequest(Collections.singletonList("test"));
|
||||
DeprecationInfoResponse response = highLevelClient().migration().getDeprecationInfo(request, RequestOptions.DEFAULT);
|
||||
// a test like this cannot test actual deprecations
|
||||
assertThat(response.getClusterSettingsIssues().size(), equalTo(0));
|
||||
assertThat(response.getIndexSettingsIssues().size(), equalTo(0));
|
||||
assertThat(response.getNodeSettingsIssues().size(), equalTo(0));
|
||||
assertThat(response.getMlSettingsIssues().size(), equalTo(0));
|
||||
}
|
||||
}
|
|
@ -1,43 +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.apache.http.client.methods.HttpGet;
|
||||
import org.elasticsearch.client.migration.DeprecationInfoRequest;
|
||||
import org.elasticsearch.test.ESTestCase;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
public class MigrationRequestConvertersTests extends ESTestCase {
|
||||
|
||||
public void testGetDeprecationInfo() {
|
||||
DeprecationInfoRequest deprecationInfoRequest = new DeprecationInfoRequest();
|
||||
String expectedEndpoint = "/_migration/deprecations";
|
||||
|
||||
Map<String, String> expectedParams = new HashMap<>();
|
||||
Request request = MigrationRequestConverters.getDeprecationInfo(deprecationInfoRequest);
|
||||
assertEquals(HttpGet.METHOD_NAME, request.getMethod());
|
||||
assertEquals(expectedEndpoint, request.getEndpoint());
|
||||
assertNull(request.getEntity());
|
||||
assertEquals(expectedParams, request.getParameters());
|
||||
}
|
||||
|
||||
}
|
|
@ -1,116 +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.documentation;
|
||||
|
||||
import org.elasticsearch.action.ActionListener;
|
||||
import org.elasticsearch.action.LatchedActionListener;
|
||||
import org.elasticsearch.client.ESRestHighLevelClientTestCase;
|
||||
import org.elasticsearch.client.RequestOptions;
|
||||
import org.elasticsearch.client.RestHighLevelClient;
|
||||
import org.elasticsearch.client.migration.DeprecationInfoRequest;
|
||||
import org.elasticsearch.client.migration.DeprecationInfoResponse;
|
||||
import org.elasticsearch.common.settings.Settings;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.CountDownLatch;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
/**
|
||||
* This class is used to generate the Java Migration API documentation.
|
||||
* You need to wrap your code between two tags like:
|
||||
* // tag::example
|
||||
* // end::example
|
||||
*
|
||||
* Where example is your tag name.
|
||||
*
|
||||
* Then in the documentation, you can extract what is between tag and end tags with
|
||||
* ["source","java",subs="attributes,callouts,macros"]
|
||||
* --------------------------------------------------
|
||||
* include-tagged::{doc-tests}/MigrationClientDocumentationIT.java[example]
|
||||
* --------------------------------------------------
|
||||
*
|
||||
* The column width of the code block is 84. If the code contains a line longer
|
||||
* than 84, the line will be cut and a horizontal scroll bar will be displayed.
|
||||
* (the code indentation of the tag is not included in the width)
|
||||
*/
|
||||
public class MigrationClientDocumentationIT extends ESRestHighLevelClientTestCase {
|
||||
|
||||
public void testGetDeprecationInfo() throws IOException, InterruptedException {
|
||||
RestHighLevelClient client = highLevelClient();
|
||||
createIndex("test", Settings.EMPTY);
|
||||
|
||||
//tag::get-deprecation-info-request
|
||||
List<String> indices = new ArrayList<>();
|
||||
indices.add("test");
|
||||
DeprecationInfoRequest deprecationInfoRequest = new DeprecationInfoRequest(indices); // <1>
|
||||
//end::get-deprecation-info-request
|
||||
|
||||
// tag::get-deprecation-info-execute
|
||||
DeprecationInfoResponse deprecationInfoResponse =
|
||||
client.migration().getDeprecationInfo(deprecationInfoRequest, RequestOptions.DEFAULT);
|
||||
// end::get-deprecation-info-execute
|
||||
|
||||
// tag::get-deprecation-info-response
|
||||
List<DeprecationInfoResponse.DeprecationIssue> clusterIssues =
|
||||
deprecationInfoResponse.getClusterSettingsIssues(); // <1>
|
||||
List<DeprecationInfoResponse.DeprecationIssue> nodeIssues =
|
||||
deprecationInfoResponse.getNodeSettingsIssues(); // <2>
|
||||
Map<String, List<DeprecationInfoResponse.DeprecationIssue>> indexIssues =
|
||||
deprecationInfoResponse.getIndexSettingsIssues(); // <3>
|
||||
List<DeprecationInfoResponse.DeprecationIssue> mlIssues =
|
||||
deprecationInfoResponse.getMlSettingsIssues(); // <4>
|
||||
// end::get-deprecation-info-response
|
||||
|
||||
// tag::get-deprecation-info-execute-listener
|
||||
ActionListener<DeprecationInfoResponse> listener =
|
||||
new ActionListener<DeprecationInfoResponse>() {
|
||||
@Override
|
||||
public void onResponse(DeprecationInfoResponse deprecationInfoResponse1) { // <1>
|
||||
List<DeprecationInfoResponse.DeprecationIssue> clusterIssues =
|
||||
deprecationInfoResponse.getClusterSettingsIssues();
|
||||
List<DeprecationInfoResponse.DeprecationIssue> nodeIssues =
|
||||
deprecationInfoResponse.getNodeSettingsIssues();
|
||||
Map<String, List<DeprecationInfoResponse.DeprecationIssue>> indexIssues =
|
||||
deprecationInfoResponse.getIndexSettingsIssues();
|
||||
List<DeprecationInfoResponse.DeprecationIssue> mlIssues =
|
||||
deprecationInfoResponse.getMlSettingsIssues();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFailure(Exception e) {
|
||||
// <2>
|
||||
}
|
||||
};
|
||||
// end::get-deprecation-info-execute-listener
|
||||
|
||||
final CountDownLatch latch = new CountDownLatch(1);
|
||||
listener = new LatchedActionListener<>(listener, latch);
|
||||
|
||||
// tag::get-deprecation-info-execute-async
|
||||
client.migration().getDeprecationInfoAsync(deprecationInfoRequest,
|
||||
RequestOptions.DEFAULT, listener); // <1>
|
||||
// end::get-deprecation-info-execute-async
|
||||
|
||||
assertTrue(latch.await(30L, TimeUnit.SECONDS));
|
||||
}
|
||||
}
|
|
@ -1,119 +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.documentation;
|
||||
|
||||
import org.elasticsearch.action.ActionListener;
|
||||
import org.elasticsearch.action.delete.DeleteRequest;
|
||||
import org.elasticsearch.action.delete.DeleteResponse;
|
||||
import org.elasticsearch.action.get.GetRequest;
|
||||
import org.elasticsearch.action.index.IndexRequest;
|
||||
import org.elasticsearch.action.index.IndexResponse;
|
||||
import org.elasticsearch.client.ESRestHighLevelClientTestCase;
|
||||
import org.elasticsearch.client.Request;
|
||||
import org.elasticsearch.client.RequestOptions;
|
||||
import org.elasticsearch.client.Response;
|
||||
import org.elasticsearch.client.RestHighLevelClient;
|
||||
import org.elasticsearch.cluster.health.ClusterHealthStatus;
|
||||
import org.elasticsearch.common.xcontent.XContentHelper;
|
||||
import org.elasticsearch.common.xcontent.XContentType;
|
||||
import org.elasticsearch.rest.RestStatus;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* This class is used to generate the documentation for the
|
||||
* docs/java-rest/high-level/migration.asciidoc page.
|
||||
*
|
||||
* You need to wrap your code between two tags like:
|
||||
* // tag::example[]
|
||||
* // end::example[]
|
||||
*
|
||||
* Where example is your tag name.
|
||||
*
|
||||
* Then in the documentation, you can extract what is between tag and end tags with
|
||||
* ["source","java",subs="attributes,callouts,macros"]
|
||||
* --------------------------------------------------
|
||||
* include-tagged::{doc-tests}/MigrationDocumentationIT.java[example]
|
||||
* --------------------------------------------------
|
||||
*/
|
||||
public class MigrationDocumentationIT extends ESRestHighLevelClientTestCase {
|
||||
public void testClusterHealth() throws IOException {
|
||||
RestHighLevelClient client = highLevelClient();
|
||||
{
|
||||
//tag::migration-cluster-health
|
||||
Request request = new Request("GET", "/_cluster/health");
|
||||
request.addParameter("wait_for_status", "green"); // <1>
|
||||
Response response = client.getLowLevelClient().performRequest(request); // <2>
|
||||
|
||||
ClusterHealthStatus healthStatus;
|
||||
try (InputStream is = response.getEntity().getContent()) { // <3>
|
||||
Map<String, Object> map = XContentHelper.convertToMap(XContentType.JSON.xContent(), is, true); // <4>
|
||||
healthStatus = ClusterHealthStatus.fromString((String) map.get("status")); // <5>
|
||||
}
|
||||
|
||||
if (healthStatus != ClusterHealthStatus.GREEN) {
|
||||
// <6>
|
||||
}
|
||||
//end::migration-cluster-health
|
||||
assertSame(ClusterHealthStatus.GREEN, healthStatus);
|
||||
}
|
||||
}
|
||||
|
||||
public void testRequests() throws Exception {
|
||||
RestHighLevelClient client = highLevelClient();
|
||||
{
|
||||
//tag::migration-request-ctor
|
||||
IndexRequest request = new IndexRequest("index").id("id"); // <1>
|
||||
request.source("{\"field\":\"value\"}", XContentType.JSON);
|
||||
//end::migration-request-ctor
|
||||
|
||||
//tag::migration-request-ctor-execution
|
||||
IndexResponse response = client.index(request, RequestOptions.DEFAULT);
|
||||
//end::migration-request-ctor-execution
|
||||
assertEquals(RestStatus.CREATED, response.status());
|
||||
}
|
||||
{
|
||||
//tag::migration-request-async-execution
|
||||
DeleteRequest request = new DeleteRequest("index", "id"); // <1>
|
||||
client.deleteAsync(request, RequestOptions.DEFAULT, new ActionListener<DeleteResponse>() { // <2>
|
||||
@Override
|
||||
public void onResponse(DeleteResponse deleteResponse) {
|
||||
// <3>
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFailure(Exception e) {
|
||||
// <4>
|
||||
}
|
||||
});
|
||||
//end::migration-request-async-execution
|
||||
assertBusy(() -> assertFalse(client.exists(new GetRequest("index", "id"), RequestOptions.DEFAULT)));
|
||||
}
|
||||
{
|
||||
//tag::migration-request-sync-execution
|
||||
DeleteRequest request = new DeleteRequest("index", "id");
|
||||
DeleteResponse response = client.delete(request, RequestOptions.DEFAULT); // <1>
|
||||
//end::migration-request-sync-execution
|
||||
assertEquals(RestStatus.NOT_FOUND, response.status());
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,161 +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.migration;
|
||||
|
||||
import org.elasticsearch.common.xcontent.XContentBuilder;
|
||||
import org.elasticsearch.test.ESTestCase;
|
||||
import org.elasticsearch.test.EqualsHashCodeTestUtils;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import static org.elasticsearch.client.migration.DeprecationInfoResponse.DeprecationIssue.Level.CRITICAL;
|
||||
import static org.elasticsearch.client.migration.DeprecationInfoResponse.DeprecationIssue.Level.WARNING;
|
||||
import static org.elasticsearch.test.AbstractXContentTestCase.xContentTester;
|
||||
|
||||
public class DeprecationInfoResponseTests extends ESTestCase {
|
||||
|
||||
private void toXContent(DeprecationInfoResponse response, XContentBuilder builder) throws IOException {
|
||||
builder.startObject();
|
||||
{
|
||||
builder.startArray("cluster_settings");
|
||||
for (DeprecationInfoResponse.DeprecationIssue issue : response.getClusterSettingsIssues()) {
|
||||
toXContent(issue, builder);
|
||||
}
|
||||
builder.endArray();
|
||||
|
||||
builder.startArray("node_settings");
|
||||
for (DeprecationInfoResponse.DeprecationIssue issue : response.getNodeSettingsIssues()) {
|
||||
toXContent(issue, builder);
|
||||
}
|
||||
builder.endArray();
|
||||
|
||||
builder.field("index_settings");
|
||||
builder.startObject();
|
||||
{
|
||||
for (Map.Entry<String, List<DeprecationInfoResponse.DeprecationIssue>> entry :
|
||||
response.getIndexSettingsIssues().entrySet()) {
|
||||
builder.field(entry.getKey());
|
||||
builder.startArray();
|
||||
for (DeprecationInfoResponse.DeprecationIssue issue : entry.getValue()) {
|
||||
toXContent(issue, builder);
|
||||
}
|
||||
builder.endArray();
|
||||
}
|
||||
}
|
||||
builder.endObject();
|
||||
|
||||
builder.startArray("ml_settings");
|
||||
for (DeprecationInfoResponse.DeprecationIssue issue : response.getMlSettingsIssues()) {
|
||||
toXContent(issue, builder);
|
||||
}
|
||||
builder.endArray();
|
||||
}
|
||||
builder.endObject();
|
||||
}
|
||||
|
||||
private void toXContent(DeprecationInfoResponse.DeprecationIssue issue, XContentBuilder builder) throws IOException {
|
||||
builder.startObject()
|
||||
.field("level", issue.getLevel())
|
||||
.field("message", issue.getMessage())
|
||||
.field("url", issue.getUrl());
|
||||
if (issue.getDetails()!= null) {
|
||||
builder.field("details", issue.getDetails());
|
||||
}
|
||||
builder.endObject();
|
||||
}
|
||||
|
||||
|
||||
private Map<String, List<DeprecationInfoResponse.DeprecationIssue>> createIndexSettingsIssues() {
|
||||
Map<String, List<DeprecationInfoResponse.DeprecationIssue>> indexSettingsIssues =
|
||||
new HashMap<>();
|
||||
for (int i = 0; i < randomIntBetween(1, 3); i++) {
|
||||
indexSettingsIssues.put(randomAlphaOfLengthBetween(1, 5), createRandomIssues(false));
|
||||
}
|
||||
return indexSettingsIssues;
|
||||
}
|
||||
|
||||
private List<DeprecationInfoResponse.DeprecationIssue> createRandomIssues(boolean canBeEmpty) {
|
||||
List<DeprecationInfoResponse.DeprecationIssue> list = new ArrayList<>();
|
||||
// the list of index settings cannot be zero, but the other lists can be, so this boolean is used to make the min number
|
||||
// of elements for this list.
|
||||
int startingRandomNumber = canBeEmpty ? 0: 1;
|
||||
for (int i =0; i < randomIntBetween(startingRandomNumber, 2); i++) {
|
||||
list.add(new DeprecationInfoResponse.DeprecationIssue(randomFrom(WARNING, CRITICAL),
|
||||
randomAlphaOfLength(5),
|
||||
randomAlphaOfLength(5),
|
||||
randomBoolean() ? randomAlphaOfLength(5) : null));
|
||||
}
|
||||
return list;
|
||||
}
|
||||
|
||||
private DeprecationInfoResponse createInstance() {
|
||||
return new DeprecationInfoResponse(createRandomIssues(true), createRandomIssues(true), createIndexSettingsIssues(),
|
||||
createRandomIssues(true));
|
||||
}
|
||||
|
||||
private DeprecationInfoResponse copyInstance(DeprecationInfoResponse req) {
|
||||
return new DeprecationInfoResponse(new ArrayList<>(req.getClusterSettingsIssues()),
|
||||
new ArrayList<>(req.getNodeSettingsIssues()), new HashMap<>(req.getIndexSettingsIssues()),
|
||||
new ArrayList<>(req.getMlSettingsIssues()));
|
||||
}
|
||||
|
||||
private DeprecationInfoResponse mutateInstance(DeprecationInfoResponse req) {
|
||||
return createInstance();
|
||||
}
|
||||
|
||||
public void testFromXContent() throws IOException {
|
||||
xContentTester(
|
||||
this::createParser,
|
||||
this::createInstance,
|
||||
this::toXContent,
|
||||
DeprecationInfoResponse::fromXContent)
|
||||
.supportsUnknownFields(false) // old school parsing
|
||||
.test();
|
||||
}
|
||||
|
||||
public void testNullFailedIndices() {
|
||||
NullPointerException exception = expectThrows(NullPointerException.class,
|
||||
() -> new DeprecationInfoResponse(null, null, null, null));
|
||||
assertEquals("cluster settings issues cannot be null", exception.getMessage());
|
||||
|
||||
exception = expectThrows(NullPointerException.class,
|
||||
() -> new DeprecationInfoResponse(Collections.emptyList(), null, null, null));
|
||||
assertEquals("node settings issues cannot be null", exception.getMessage());
|
||||
|
||||
exception = expectThrows(NullPointerException.class,
|
||||
() -> new DeprecationInfoResponse(Collections.emptyList(), Collections.emptyList(), null, null));
|
||||
assertEquals("index settings issues cannot be null", exception.getMessage());
|
||||
|
||||
exception = expectThrows(NullPointerException.class,
|
||||
() -> new DeprecationInfoResponse(Collections.emptyList(), Collections.emptyList(), Collections.emptyMap(), null));
|
||||
assertEquals("ml settings issues cannot be null", exception.getMessage());
|
||||
}
|
||||
|
||||
public void testEqualsAndHashCode() {
|
||||
for (int count = 0; count < 100; ++count) {
|
||||
EqualsHashCodeTestUtils.checkEqualsAndHashCode(createInstance(), this::copyInstance, this::mutateInstance);
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue