From b807a7ef30c75e597932f17833a6690cd4b26de8 Mon Sep 17 00:00:00 2001 From: Tanguy Leroux Date: Mon, 14 Sep 2020 12:16:22 +0200 Subject: [PATCH] Deprecate Repository Stats API --- .../migration/migrate_8_0/snapshots.asciidoc | 13 ++++++++++++ .../rest-api-spec/test/repository_stats.yml | 7 +++++-- .../action/RepositoryStatsAction.java | 4 ++++ .../action/RepositoryStatsNodeRequest.java | 1 + .../action/RepositoryStatsNodeResponse.java | 1 + .../action/RepositoryStatsRequest.java | 1 + .../action/RepositoryStatsResponse.java | 1 + .../TransportRepositoryStatsAction.java | 4 ++++ .../rest/RestRepositoryStatsAction.java | 21 ++++++++++++++++++- ...searchable_snapshots.repository_stats.json | 2 +- 10 files changed, 51 insertions(+), 4 deletions(-) diff --git a/docs/reference/migration/migrate_8_0/snapshots.asciidoc b/docs/reference/migration/migrate_8_0/snapshots.asciidoc index 13563be91ef21..88627fdc68e6b 100644 --- a/docs/reference/migration/migrate_8_0/snapshots.asciidoc +++ b/docs/reference/migration/migrate_8_0/snapshots.asciidoc @@ -130,3 +130,16 @@ restore snapshot API now rejects requests that include a `settings` value. Discontinue use of the `settings` parameter in restore snapshot request. Requests that include these parameters will return an error. ==== + +.Repository Stats API is deprecated +[%collapsible] +==== +*Details* + +The Repository Stats API has been introduced in 7.8.0 as an experimental API +and was never released. This API is superseded by the <> +added in 7.10.0 which should be used instead. The Repository Stats API is +deprecated starting 7.10.0 and will be removed in 8.0.0. + +*Impact* + +Use the <>. +==== diff --git a/x-pack/plugin/searchable-snapshots/qa/rest/src/test/resources/rest-api-spec/test/repository_stats.yml b/x-pack/plugin/searchable-snapshots/qa/rest/src/test/resources/rest-api-spec/test/repository_stats.yml index d408b38564306..559bcc601690e 100644 --- a/x-pack/plugin/searchable-snapshots/qa/rest/src/test/resources/rest-api-spec/test/repository_stats.yml +++ b/x-pack/plugin/searchable-snapshots/qa/rest/src/test/resources/rest-api-spec/test/repository_stats.yml @@ -66,8 +66,9 @@ teardown: --- "Tests repository stats": - skip: - version: " - 7.99.99" - reason: searchable snapshots introduced in 7.8.0 (8.0.0 currently, but adapt after backport to 7.x) + version: " - 7.9.99" + reason: Deprecated in 7.10.0 and removed in 8.0.0, will not issue warnings before 7.10.0 + features: "warnings" - do: snapshot.restore: @@ -76,6 +77,8 @@ teardown: wait_for_completion: true - do: + warnings: + - "[/_snapshot/{repository}/_stats] is deprecated, use the Repositories Metering API [/_nodes/{nodeId}/_repositories_metering] in the future." searchable_snapshots.repository_stats: repository: repository-fs diff --git a/x-pack/plugin/searchable-snapshots/src/main/java/org/elasticsearch/xpack/searchablesnapshots/action/RepositoryStatsAction.java b/x-pack/plugin/searchable-snapshots/src/main/java/org/elasticsearch/xpack/searchablesnapshots/action/RepositoryStatsAction.java index 0636f9704224c..d885cdf31d059 100644 --- a/x-pack/plugin/searchable-snapshots/src/main/java/org/elasticsearch/xpack/searchablesnapshots/action/RepositoryStatsAction.java +++ b/x-pack/plugin/searchable-snapshots/src/main/java/org/elasticsearch/xpack/searchablesnapshots/action/RepositoryStatsAction.java @@ -8,6 +8,10 @@ import org.elasticsearch.action.ActionType; +/** + * @deprecated This action is superseded by the Repositories Metering action + */ +@Deprecated public class RepositoryStatsAction extends ActionType { public static final RepositoryStatsAction INSTANCE = new RepositoryStatsAction(); diff --git a/x-pack/plugin/searchable-snapshots/src/main/java/org/elasticsearch/xpack/searchablesnapshots/action/RepositoryStatsNodeRequest.java b/x-pack/plugin/searchable-snapshots/src/main/java/org/elasticsearch/xpack/searchablesnapshots/action/RepositoryStatsNodeRequest.java index 2dfadf4101d30..6e2742e18e056 100644 --- a/x-pack/plugin/searchable-snapshots/src/main/java/org/elasticsearch/xpack/searchablesnapshots/action/RepositoryStatsNodeRequest.java +++ b/x-pack/plugin/searchable-snapshots/src/main/java/org/elasticsearch/xpack/searchablesnapshots/action/RepositoryStatsNodeRequest.java @@ -12,6 +12,7 @@ import java.io.IOException; +@Deprecated public class RepositoryStatsNodeRequest extends TransportRequest { private final String repository; diff --git a/x-pack/plugin/searchable-snapshots/src/main/java/org/elasticsearch/xpack/searchablesnapshots/action/RepositoryStatsNodeResponse.java b/x-pack/plugin/searchable-snapshots/src/main/java/org/elasticsearch/xpack/searchablesnapshots/action/RepositoryStatsNodeResponse.java index ddf3023ceae7a..e417bf3310761 100644 --- a/x-pack/plugin/searchable-snapshots/src/main/java/org/elasticsearch/xpack/searchablesnapshots/action/RepositoryStatsNodeResponse.java +++ b/x-pack/plugin/searchable-snapshots/src/main/java/org/elasticsearch/xpack/searchablesnapshots/action/RepositoryStatsNodeResponse.java @@ -16,6 +16,7 @@ import java.io.IOException; +@Deprecated public class RepositoryStatsNodeResponse extends BaseNodeResponse implements ToXContentObject { private final RepositoryStats repositoryStats; diff --git a/x-pack/plugin/searchable-snapshots/src/main/java/org/elasticsearch/xpack/searchablesnapshots/action/RepositoryStatsRequest.java b/x-pack/plugin/searchable-snapshots/src/main/java/org/elasticsearch/xpack/searchablesnapshots/action/RepositoryStatsRequest.java index a75ba492fb45e..2df466b50a55d 100644 --- a/x-pack/plugin/searchable-snapshots/src/main/java/org/elasticsearch/xpack/searchablesnapshots/action/RepositoryStatsRequest.java +++ b/x-pack/plugin/searchable-snapshots/src/main/java/org/elasticsearch/xpack/searchablesnapshots/action/RepositoryStatsRequest.java @@ -12,6 +12,7 @@ import java.io.IOException; +@Deprecated public class RepositoryStatsRequest extends BaseNodesRequest { private final String repository; diff --git a/x-pack/plugin/searchable-snapshots/src/main/java/org/elasticsearch/xpack/searchablesnapshots/action/RepositoryStatsResponse.java b/x-pack/plugin/searchable-snapshots/src/main/java/org/elasticsearch/xpack/searchablesnapshots/action/RepositoryStatsResponse.java index 97a6887fbbba2..750d5b87f726d 100644 --- a/x-pack/plugin/searchable-snapshots/src/main/java/org/elasticsearch/xpack/searchablesnapshots/action/RepositoryStatsResponse.java +++ b/x-pack/plugin/searchable-snapshots/src/main/java/org/elasticsearch/xpack/searchablesnapshots/action/RepositoryStatsResponse.java @@ -18,6 +18,7 @@ import java.io.IOException; import java.util.List; +@Deprecated public class RepositoryStatsResponse extends BaseNodesResponse implements ToXContentObject { private final RepositoryStats globalStats; diff --git a/x-pack/plugin/searchable-snapshots/src/main/java/org/elasticsearch/xpack/searchablesnapshots/action/TransportRepositoryStatsAction.java b/x-pack/plugin/searchable-snapshots/src/main/java/org/elasticsearch/xpack/searchablesnapshots/action/TransportRepositoryStatsAction.java index 2c1300820a4a2..c0b63c4b49d49 100644 --- a/x-pack/plugin/searchable-snapshots/src/main/java/org/elasticsearch/xpack/searchablesnapshots/action/TransportRepositoryStatsAction.java +++ b/x-pack/plugin/searchable-snapshots/src/main/java/org/elasticsearch/xpack/searchablesnapshots/action/TransportRepositoryStatsAction.java @@ -25,6 +25,10 @@ import java.util.List; import java.util.Objects; +/** + * @deprecated This API is superseded by the Repositories Metering API + */ +@Deprecated public class TransportRepositoryStatsAction extends TransportNodesAction< RepositoryStatsRequest, RepositoryStatsResponse, diff --git a/x-pack/plugin/searchable-snapshots/src/main/java/org/elasticsearch/xpack/searchablesnapshots/rest/RestRepositoryStatsAction.java b/x-pack/plugin/searchable-snapshots/src/main/java/org/elasticsearch/xpack/searchablesnapshots/rest/RestRepositoryStatsAction.java index e11eb65485723..6c934e68cb3d7 100644 --- a/x-pack/plugin/searchable-snapshots/src/main/java/org/elasticsearch/xpack/searchablesnapshots/rest/RestRepositoryStatsAction.java +++ b/x-pack/plugin/searchable-snapshots/src/main/java/org/elasticsearch/xpack/searchablesnapshots/rest/RestRepositoryStatsAction.java @@ -19,8 +19,14 @@ import static org.elasticsearch.rest.RestRequest.Method.GET; +/** + * @deprecated This API is superseded by the Repositories Metering API + */ +@Deprecated public class RestRepositoryStatsAction extends BaseRestHandler { + private static final String ENDPOINT = "/_snapshot/{repository}/_stats"; + @Override public String getName() { return "repository_stats_action"; @@ -28,7 +34,20 @@ public String getName() { @Override public List routes() { - return Collections.singletonList(new RestHandler.Route(GET, "/_snapshot/{repository}/_stats")); + return Collections.emptyList(); + } + + @Override + public List deprecatedRoutes() { + return List.of( + new DeprecatedRoute( + GET, + ENDPOINT, + '[' + + ENDPOINT + + "] is deprecated, use the Repositories Metering API [/_nodes/{nodeId}/_repositories_metering] in the future." + ) + ); } @Override diff --git a/x-pack/plugin/src/test/resources/rest-api-spec/api/searchable_snapshots.repository_stats.json b/x-pack/plugin/src/test/resources/rest-api-spec/api/searchable_snapshots.repository_stats.json index 195c796d1681d..8d4ddfce8013b 100644 --- a/x-pack/plugin/src/test/resources/rest-api-spec/api/searchable_snapshots.repository_stats.json +++ b/x-pack/plugin/src/test/resources/rest-api-spec/api/searchable_snapshots.repository_stats.json @@ -2,7 +2,7 @@ "searchable_snapshots.repository_stats": { "documentation": { "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/searchable-snapshots-apis.html", - "description": "Retrieve usage statistics about a snapshot repository." + "description": "DEPRECATED: This API is replaced by the Repositories Metering API." }, "stability": "experimental", "url": {