Skip to content

Commit 09ebc11

Browse files
timoninmaximdakrone
authored andcommitted
Deprecates _upgrade API (#47678) (#50484)
* Deprecates _upgrade API Ref #47678 * Move deprecation flags to path section. Add deprecation warning tests for _upgrade API. Ref #47678
1 parent 27a2e43 commit 09ebc11

File tree

7 files changed

+193
-17
lines changed

7 files changed

+193
-17
lines changed

rest-api-spec/src/main/resources/rest-api-spec/api/indices.get_upgrade.json

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"indices.get_upgrade":{
33
"documentation":{
44
"url":"https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-upgrade.html",
5-
"description":"The _upgrade API is no longer useful and will be removed."
5+
"description":"DEPRECATED Returns a progress status of current upgrade."
66
},
77
"stability":"stable",
88
"url":{
@@ -11,7 +11,11 @@
1111
"path":"/_upgrade",
1212
"methods":[
1313
"GET"
14-
]
14+
],
15+
"deprecated":{
16+
"version":"8.0.0",
17+
"description":"The _upgrade API is no longer useful and will be removed. Instead, see _reindex API."
18+
}
1519
},
1620
{
1721
"path":"/{index}/_upgrade",
@@ -23,6 +27,10 @@
2327
"type":"list",
2428
"description":"A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices"
2529
}
30+
},
31+
"deprecated":{
32+
"version":"8.0.0",
33+
"description":"The _upgrade API is no longer useful and will be removed. Instead, see _reindex API."
2634
}
2735
}
2836
]

rest-api-spec/src/main/resources/rest-api-spec/api/indices.upgrade.json

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"indices.upgrade":{
33
"documentation":{
44
"url":"https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-upgrade.html",
5-
"description":"The _upgrade API is no longer useful and will be removed."
5+
"description":"DEPRECATED Upgrades to the current version of Lucene."
66
},
77
"stability":"stable",
88
"url":{
@@ -11,7 +11,11 @@
1111
"path":"/_upgrade",
1212
"methods":[
1313
"POST"
14-
]
14+
],
15+
"deprecated":{
16+
"version":"8.0.0",
17+
"description":"The _upgrade API is no longer useful and will be removed. Instead, see _reindex API."
18+
}
1519
},
1620
{
1721
"path":"/{index}/_upgrade",
@@ -23,6 +27,10 @@
2327
"type":"list",
2428
"description":"A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices"
2529
}
30+
},
31+
"deprecated":{
32+
"version":"8.0.0",
33+
"description":"The _upgrade API is no longer useful and will be removed. Instead, see _reindex API."
2634
}
2735
}
2836
]

rest-api-spec/src/main/resources/rest-api-spec/test/indices.upgrade/10_basic.yml

Lines changed: 41 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
---
22
"Basic test for upgrade indices":
3+
- skip:
4+
version: " - 7.99.99"
5+
reason: "_upgrade api is deprecated since 8.0.0"
6+
features: ["warnings", "node_selector"]
37

48
- do:
59
indices.create:
@@ -12,12 +16,21 @@
1216
- do:
1317
indices.upgrade:
1418
index: test_index
19+
warnings:
20+
- "The _upgrade API is no longer useful and will be removed. Instead, see _reindex API."
21+
node_selector:
22+
version: "8.0.0 - "
1523

1624
- match: {upgraded_indices.test_index.oldest_lucene_segment_version: '/(\d\.)+\d/'}
1725
- is_true: upgraded_indices.test_index.upgrade_version
1826

1927
---
2028
"Upgrade indices ignore unavailable":
29+
- skip:
30+
version: " - 7.99.99"
31+
reason: "_upgrade api is deprecated since 8.0.0"
32+
features: ["warnings", "node_selector"]
33+
2134
- do:
2235
indices.create:
2336
index: test_index
@@ -31,34 +44,58 @@
3144
indices.upgrade:
3245
index: ["does_not_exist", "test_index"]
3346
ignore_unavailable: true
47+
warnings:
48+
- "The _upgrade API is no longer useful and will be removed. Instead, see _reindex API."
49+
node_selector:
50+
version: "8.0.0 - "
3451

3552
- match: {_shards.total: 1}
3653
- is_true: upgraded_indices.test_index.upgrade_version
3754
- is_false: upgraded_indices.does_not_exist
3855

3956
---
4057
"Upgrade indices allow no indices":
58+
- skip:
59+
version: " - 7.99.99"
60+
reason: "_upgrade api is deprecated since 8.0.0"
61+
features: ["warnings", "node_selector"]
4162

4263
- do:
4364
indices.upgrade:
4465
index: test_index
4566
ignore_unavailable: true
4667
allow_no_indices: true
68+
warnings:
69+
- "The _upgrade API is no longer useful and will be removed. Instead, see _reindex API."
70+
node_selector:
71+
version: "8.0.0 - "
4772

4873
- match: {_shards.total: 0}
4974

5075
---
5176
"Upgrade indices disallow no indices":
77+
- skip:
78+
version: " - 7.99.99"
79+
reason: "_upgrade api is deprecated since 8.0.0"
80+
features: ["warnings", "node_selector"]
5281

5382
- do:
5483
catch: missing
5584
indices.upgrade:
5685
index: test_index
5786
ignore_unavailable: true
5887
allow_no_indices: false
88+
warnings:
89+
- "The _upgrade API is no longer useful and will be removed. Instead, see _reindex API."
90+
node_selector:
91+
version: "8.0.0 - "
5992

6093
---
6194
"Upgrade indices disallow unavailable":
95+
- skip:
96+
version: " - 7.99.99"
97+
reason: "_upgrade api is deprecated since 8.0.0"
98+
features: ["warnings", "node_selector"]
6299

63100
- do:
64101
indices.create:
@@ -69,4 +106,7 @@
69106
indices.upgrade:
70107
index: ["test_index", "does_not_exist"]
71108
ignore_unavailable: false
72-
109+
warnings:
110+
- "The _upgrade API is no longer useful and will be removed. Instead, see _reindex API."
111+
node_selector:
112+
version: "8.0.0 - "
Lines changed: 102 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,102 @@
1+
---
2+
"Basic test for upgrade indices < 8.0.0":
3+
- skip:
4+
version: "8.0.0 - "
5+
reason: "_upgrade api has deprecation header since 8.0.0"
6+
features: "node_selector"
7+
8+
- do:
9+
indices.create:
10+
index: test_index
11+
body:
12+
settings:
13+
index:
14+
number_of_replicas: 0
15+
16+
- do:
17+
indices.upgrade:
18+
index: test_index
19+
node_selector:
20+
version: " - 7.99.99"
21+
22+
- match: {upgraded_indices.test_index.oldest_lucene_segment_version: '/(\d\.)+\d/'}
23+
- is_true: upgraded_indices.test_index.upgrade_version
24+
25+
---
26+
"Upgrade indices ignore unavailable < 8.0.0":
27+
- skip:
28+
version: "8.0.0 - "
29+
reason: "_upgrade api has deprecation header since 8.0.0"
30+
features: "node_selector"
31+
32+
- do:
33+
indices.create:
34+
index: test_index
35+
body:
36+
settings:
37+
index:
38+
number_of_shards: 1
39+
number_of_replicas: 0
40+
41+
- do:
42+
indices.upgrade:
43+
index: ["does_not_exist", "test_index"]
44+
ignore_unavailable: true
45+
node_selector:
46+
version: " - 7.99.99"
47+
48+
- match: {_shards.total: 1}
49+
- is_true: upgraded_indices.test_index.upgrade_version
50+
- is_false: upgraded_indices.does_not_exist
51+
52+
---
53+
"Upgrade indices allow no indices < 8.0.0":
54+
- skip:
55+
version: "8.0.0 - "
56+
reason: "_upgrade api has deprecation header since 8.0.0"
57+
features: "node_selector"
58+
59+
- do:
60+
indices.upgrade:
61+
index: test_index
62+
ignore_unavailable: true
63+
allow_no_indices: true
64+
node_selector:
65+
version: " - 7.99.99"
66+
67+
- match: {_shards.total: 0}
68+
69+
---
70+
"Upgrade indices disallow no indices < 8.0.0":
71+
- skip:
72+
version: "8.0.0 - "
73+
reason: "_upgrade api has deprecation header since 8.0.0"
74+
features: "node_selector"
75+
76+
- do:
77+
catch: missing
78+
indices.upgrade:
79+
index: test_index
80+
ignore_unavailable: true
81+
allow_no_indices: false
82+
node_selector:
83+
version: " - 7.99.99"
84+
85+
---
86+
"Upgrade indices disallow unavailable < 8.0.0":
87+
- skip:
88+
version: "8.0.0 - "
89+
reason: "_upgrade api has deprecation header since 8.0.0"
90+
features: "node_selector"
91+
92+
- do:
93+
indices.create:
94+
index: test_index
95+
96+
- do:
97+
catch: missing
98+
indices.upgrade:
99+
index: ["test_index", "does_not_exist"]
100+
ignore_unavailable: false
101+
node_selector:
102+
version: " - 7.99.99"

server/src/main/java/org/elasticsearch/action/ActionModule.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -295,8 +295,8 @@
295295
import org.elasticsearch.rest.action.admin.indices.RestRolloverIndexAction;
296296
import org.elasticsearch.rest.action.admin.indices.RestSyncedFlushAction;
297297
import org.elasticsearch.rest.action.admin.indices.RestUpdateSettingsAction;
298-
import org.elasticsearch.rest.action.admin.indices.RestUpgradeAction;
299-
import org.elasticsearch.rest.action.admin.indices.RestUpgradeStatusAction;
298+
import org.elasticsearch.rest.action.admin.indices.RestUpgradeActionDeprecated;
299+
import org.elasticsearch.rest.action.admin.indices.RestUpgradeStatusActionDeprecated;
300300
import org.elasticsearch.rest.action.admin.indices.RestValidateQueryAction;
301301
import org.elasticsearch.rest.action.cat.AbstractCatAction;
302302
import org.elasticsearch.rest.action.cat.RestAliasAction;
@@ -630,8 +630,8 @@ public void initRestHandlers(Supplier<DiscoveryNodes> nodesInCluster) {
630630
registerHandler.accept(new RestFlushAction(restController));
631631
registerHandler.accept(new RestSyncedFlushAction(restController));
632632
registerHandler.accept(new RestForceMergeAction(restController));
633-
registerHandler.accept(new RestUpgradeAction(restController));
634-
registerHandler.accept(new RestUpgradeStatusAction(restController));
633+
registerHandler.accept(new RestUpgradeActionDeprecated(restController));
634+
registerHandler.accept(new RestUpgradeStatusActionDeprecated(restController));
635635
registerHandler.accept(new RestClearIndicesCacheAction(restController));
636636

637637
registerHandler.accept(new RestIndexAction(restController, clusterService));

server/src/main/java/org/elasticsearch/rest/action/admin/indices/RestUpgradeAction.java renamed to server/src/main/java/org/elasticsearch/rest/action/admin/indices/RestUpgradeActionDeprecated.java

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,12 @@
1919

2020
package org.elasticsearch.rest.action.admin.indices;
2121

22+
import org.apache.logging.log4j.LogManager;
2223
import org.elasticsearch.action.admin.indices.upgrade.post.UpgradeRequest;
2324
import org.elasticsearch.action.support.IndicesOptions;
2425
import org.elasticsearch.client.node.NodeClient;
2526
import org.elasticsearch.common.Strings;
27+
import org.elasticsearch.common.logging.DeprecationLogger;
2628
import org.elasticsearch.rest.BaseRestHandler;
2729
import org.elasticsearch.rest.RestController;
2830
import org.elasticsearch.rest.RestRequest;
@@ -32,11 +34,19 @@
3234

3335
import static org.elasticsearch.rest.RestRequest.Method.POST;
3436

35-
public class RestUpgradeAction extends BaseRestHandler {
37+
public class RestUpgradeActionDeprecated extends BaseRestHandler {
3638

37-
public RestUpgradeAction(RestController controller) {
38-
controller.registerHandler(POST, "/_upgrade", this);
39-
controller.registerHandler(POST, "/{index}/_upgrade", this);
39+
private static final DeprecationLogger deprecationLogger = new DeprecationLogger(
40+
LogManager.getLogger(RestUpgradeActionDeprecated.class));
41+
42+
public static final String UPGRADE_API_DEPRECATION_MESSAGE =
43+
"The _upgrade API is no longer useful and will be removed. Instead, see _reindex API.";
44+
45+
public RestUpgradeActionDeprecated(RestController controller) {
46+
controller.registerAsDeprecatedHandler(POST, "/_upgrade", this,
47+
UPGRADE_API_DEPRECATION_MESSAGE, deprecationLogger);
48+
controller.registerAsDeprecatedHandler(POST, "/{index}/_upgrade", this,
49+
UPGRADE_API_DEPRECATION_MESSAGE, deprecationLogger);
4050
}
4151

4252
@Override

server/src/main/java/org/elasticsearch/rest/action/admin/indices/RestUpgradeStatusAction.java renamed to server/src/main/java/org/elasticsearch/rest/action/admin/indices/RestUpgradeStatusActionDeprecated.java

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,12 @@
1919

2020
package org.elasticsearch.rest.action.admin.indices;
2121

22+
import org.apache.logging.log4j.LogManager;
2223
import org.elasticsearch.action.admin.indices.upgrade.get.UpgradeStatusRequest;
2324
import org.elasticsearch.action.support.IndicesOptions;
2425
import org.elasticsearch.client.node.NodeClient;
2526
import org.elasticsearch.common.Strings;
27+
import org.elasticsearch.common.logging.DeprecationLogger;
2628
import org.elasticsearch.rest.BaseRestHandler;
2729
import org.elasticsearch.rest.RestController;
2830
import org.elasticsearch.rest.RestRequest;
@@ -31,12 +33,18 @@
3133
import java.io.IOException;
3234

3335
import static org.elasticsearch.rest.RestRequest.Method.GET;
36+
import static org.elasticsearch.rest.action.admin.indices.RestUpgradeActionDeprecated.UPGRADE_API_DEPRECATION_MESSAGE;
3437

35-
public class RestUpgradeStatusAction extends BaseRestHandler {
38+
public class RestUpgradeStatusActionDeprecated extends BaseRestHandler {
3639

37-
public RestUpgradeStatusAction(RestController controller) {
38-
controller.registerHandler(GET, "/_upgrade", this);
39-
controller.registerHandler(GET, "/{index}/_upgrade", this);
40+
private static final DeprecationLogger deprecationLogger = new DeprecationLogger(
41+
LogManager.getLogger(RestUpgradeStatusActionDeprecated.class));
42+
43+
public RestUpgradeStatusActionDeprecated(RestController controller) {
44+
controller.registerAsDeprecatedHandler(GET, "/_upgrade", this,
45+
UPGRADE_API_DEPRECATION_MESSAGE, deprecationLogger);
46+
controller.registerAsDeprecatedHandler(GET, "/{index}/_upgrade", this,
47+
UPGRADE_API_DEPRECATION_MESSAGE, deprecationLogger);
4048
}
4149

4250
@Override

0 commit comments

Comments
 (0)