Skip to content

Commit a70f54f

Browse files
authored
Adding ml_settings entry to HLRC and Docs for deprecation_info (elastic#38118)
1 parent f64b203 commit a70f54f

File tree

6 files changed

+45
-12
lines changed

6 files changed

+45
-12
lines changed

client/rest-high-level/src/main/java/org/elasticsearch/client/migration/DeprecationInfoResponse.java

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -37,16 +37,19 @@ public class DeprecationInfoResponse {
3737
private static final ParseField CLUSTER_SETTINGS = new ParseField("cluster_settings");
3838
private static final ParseField NODE_SETTINGS = new ParseField("node_settings");
3939
private static final ParseField INDEX_SETTINGS = new ParseField("index_settings");
40+
private static final ParseField ML_SETTINGS = new ParseField("ml_settings");
4041

4142
private final List<DeprecationIssue> clusterSettingsIssues;
4243
private final List<DeprecationIssue> nodeSettingsIssues;
4344
private final Map<String, List<DeprecationIssue>> indexSettingsIssues;
45+
private final List<DeprecationIssue> mlSettingsIssues;
4446

4547
public DeprecationInfoResponse(List<DeprecationIssue> clusterSettingsIssues, List<DeprecationIssue> nodeSettingsIssues,
46-
Map<String, List<DeprecationIssue>> indexSettingsIssues) {
48+
Map<String, List<DeprecationIssue>> indexSettingsIssues, List<DeprecationIssue> mlSettingsIssues) {
4749
this.clusterSettingsIssues = Objects.requireNonNull(clusterSettingsIssues, "cluster settings issues cannot be null");
4850
this.nodeSettingsIssues = Objects.requireNonNull(nodeSettingsIssues, "node settings issues cannot be null");
4951
this.indexSettingsIssues = Objects.requireNonNull(indexSettingsIssues, "index settings issues cannot be null");
52+
this.mlSettingsIssues = Objects.requireNonNull(mlSettingsIssues, "ml settings issues cannot be null");
5053
}
5154

5255
public List<DeprecationIssue> getClusterSettingsIssues() {
@@ -61,6 +64,10 @@ public Map<String, List<DeprecationIssue>> getIndexSettingsIssues() {
6164
return indexSettingsIssues;
6265
}
6366

67+
public List<DeprecationIssue> getMlSettingsIssues() {
68+
return mlSettingsIssues;
69+
}
70+
6471
private static List<DeprecationIssue> parseDeprecationIssues(XContentParser parser) throws IOException {
6572
List<DeprecationIssue> issues = new ArrayList<>();
6673
XContentParser.Token token = null;
@@ -76,6 +83,7 @@ public static DeprecationInfoResponse fromXContent(XContentParser parser) throws
7683
Map<String, List<DeprecationIssue>> indexSettings = new HashMap<>();
7784
List<DeprecationIssue> clusterSettings = new ArrayList<>();
7885
List<DeprecationIssue> nodeSettings = new ArrayList<>();
86+
List<DeprecationIssue> mlSettings = new ArrayList<>();
7987
String fieldName = null;
8088
XContentParser.Token token;
8189
while ((token = parser.nextToken()) != XContentParser.Token.END_OBJECT) {
@@ -85,6 +93,8 @@ public static DeprecationInfoResponse fromXContent(XContentParser parser) throws
8593
clusterSettings.addAll(parseDeprecationIssues(parser));
8694
} else if (NODE_SETTINGS.getPreferredName().equals(fieldName)) {
8795
nodeSettings.addAll(parseDeprecationIssues(parser));
96+
} else if (ML_SETTINGS.getPreferredName().equals(fieldName)) {
97+
mlSettings.addAll(parseDeprecationIssues(parser));
8898
} else if (INDEX_SETTINGS.getPreferredName().equals(fieldName)) {
8999
// parse out the key/value pairs
90100
while ((token = parser.nextToken()) != XContentParser.Token.END_OBJECT) {
@@ -96,7 +106,7 @@ public static DeprecationInfoResponse fromXContent(XContentParser parser) throws
96106
}
97107
}
98108
}
99-
return new DeprecationInfoResponse(clusterSettings, nodeSettings, indexSettings);
109+
return new DeprecationInfoResponse(clusterSettings, nodeSettings, indexSettings, mlSettings);
100110
}
101111

102112
@Override
@@ -106,17 +116,19 @@ public boolean equals(Object o) {
106116
DeprecationInfoResponse that = (DeprecationInfoResponse) o;
107117
return Objects.equals(clusterSettingsIssues, that.clusterSettingsIssues) &&
108118
Objects.equals(nodeSettingsIssues, that.nodeSettingsIssues) &&
119+
Objects.equals(mlSettingsIssues, that.mlSettingsIssues) &&
109120
Objects.equals(indexSettingsIssues, that.indexSettingsIssues);
110121
}
111122

112123
@Override
113124
public int hashCode() {
114-
return Objects.hash(clusterSettingsIssues, nodeSettingsIssues, indexSettingsIssues);
125+
return Objects.hash(clusterSettingsIssues, nodeSettingsIssues, indexSettingsIssues, mlSettingsIssues);
115126
}
116127

117128
@Override
118129
public String toString() {
119-
return clusterSettingsIssues.toString() + ":" + nodeSettingsIssues.toString() + ":" + indexSettingsIssues.toString();
130+
return clusterSettingsIssues.toString() + ":" + nodeSettingsIssues.toString() + ":" + indexSettingsIssues.toString() +
131+
":" + mlSettingsIssues.toString();
120132
}
121133

122134
/**

client/rest-high-level/src/test/java/org/elasticsearch/client/MigrationIT.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,7 @@ public void testGetDeprecationInfo() throws IOException {
8585
assertThat(response.getClusterSettingsIssues().size(), equalTo(0));
8686
assertThat(response.getIndexSettingsIssues().size(), equalTo(0));
8787
assertThat(response.getNodeSettingsIssues().size(), equalTo(0));
88+
assertThat(response.getMlSettingsIssues().size(), equalTo(0));
8889
}
8990

9091
/**

client/rest-high-level/src/test/java/org/elasticsearch/client/documentation/MigrationClientDocumentationIT.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -182,6 +182,8 @@ public void testGetDeprecationInfo() throws IOException, InterruptedException {
182182
deprecationInfoResponse.getNodeSettingsIssues(); // <2>
183183
Map<String, List<DeprecationInfoResponse.DeprecationIssue>> indexIssues =
184184
deprecationInfoResponse.getIndexSettingsIssues(); // <3>
185+
List<DeprecationInfoResponse.DeprecationIssue> mlIssues =
186+
deprecationInfoResponse.getMlSettingsIssues(); // <4>
185187
// end::get-deprecation-info-response
186188

187189
// tag::get-deprecation-info-execute-listener
@@ -195,6 +197,8 @@ public void onResponse(DeprecationInfoResponse deprecationInfoResponse1) { // <1
195197
deprecationInfoResponse.getNodeSettingsIssues();
196198
Map<String, List<DeprecationInfoResponse.DeprecationIssue>> indexIssues =
197199
deprecationInfoResponse.getIndexSettingsIssues();
200+
List<DeprecationInfoResponse.DeprecationIssue> mlIssues =
201+
deprecationInfoResponse.getMlSettingsIssues();
198202
}
199203

200204
@Override

client/rest-high-level/src/test/java/org/elasticsearch/client/migration/DeprecationInfoResponseTests.java

Lines changed: 19 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,12 @@ private void toXContent(DeprecationInfoResponse response, XContentBuilder builde
6565
}
6666
}
6767
builder.endObject();
68+
69+
builder.startArray("ml_settings");
70+
for (DeprecationInfoResponse.DeprecationIssue issue : response.getMlSettingsIssues()) {
71+
toXContent(issue, builder);
72+
}
73+
builder.endArray();
6874
}
6975
builder.endObject();
7076
}
@@ -105,12 +111,14 @@ private List<DeprecationInfoResponse.DeprecationIssue> createRandomIssues(boolea
105111
}
106112

107113
private DeprecationInfoResponse createInstance() {
108-
return new DeprecationInfoResponse(createRandomIssues(true), createRandomIssues(true), createIndexSettingsIssues());
114+
return new DeprecationInfoResponse(createRandomIssues(true), createRandomIssues(true), createIndexSettingsIssues(),
115+
createRandomIssues(true));
109116
}
110117

111118
private DeprecationInfoResponse copyInstance(DeprecationInfoResponse req) {
112119
return new DeprecationInfoResponse(new ArrayList<>(req.getClusterSettingsIssues()),
113-
new ArrayList<>(req.getNodeSettingsIssues()), new HashMap<>(req.getIndexSettingsIssues()));
120+
new ArrayList<>(req.getNodeSettingsIssues()), new HashMap<>(req.getIndexSettingsIssues()),
121+
new ArrayList<>(req.getMlSettingsIssues()));
114122
}
115123

116124
private DeprecationInfoResponse mutateInstance(DeprecationInfoResponse req) {
@@ -128,16 +136,21 @@ public void testFromXContent() throws IOException {
128136
}
129137

130138
public void testNullFailedIndices() {
131-
NullPointerException exception =
132-
expectThrows(NullPointerException.class, () -> new DeprecationInfoResponse(null, null, null));
139+
NullPointerException exception = expectThrows(NullPointerException.class,
140+
() -> new DeprecationInfoResponse(null, null, null, null));
133141
assertEquals("cluster settings issues cannot be null", exception.getMessage());
134142

135-
exception = expectThrows(NullPointerException.class, () -> new DeprecationInfoResponse(Collections.emptyList(), null, null));
143+
exception = expectThrows(NullPointerException.class,
144+
() -> new DeprecationInfoResponse(Collections.emptyList(), null, null, null));
136145
assertEquals("node settings issues cannot be null", exception.getMessage());
137146

138147
exception = expectThrows(NullPointerException.class,
139-
() -> new DeprecationInfoResponse(Collections.emptyList(), Collections.emptyList(), null));
148+
() -> new DeprecationInfoResponse(Collections.emptyList(), Collections.emptyList(), null, null));
140149
assertEquals("index settings issues cannot be null", exception.getMessage());
150+
151+
exception = expectThrows(NullPointerException.class,
152+
() -> new DeprecationInfoResponse(Collections.emptyList(), Collections.emptyList(), Collections.emptyMap(), null));
153+
assertEquals("ml settings issues cannot be null", exception.getMessage());
141154
}
142155

143156
public void testEqualsAndHashCode() {

docs/java-rest/high-level/migration/get-deprecation-info.asciidoc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,3 +33,4 @@ include-tagged::{doc-tests-file}[{api}-response]
3333
<1> a List of Cluster deprecations
3434
<2> a List of Node deprecations
3535
<3> a Map of key IndexName, value List of deprecations for the index
36+
<4> a list of Machine Learning related deprecations

docs/reference/migration/apis/deprecation.asciidoc

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,8 @@ Example response:
6868
"details" : "This index is named [logs:apache], which contains the illegal character ':'."
6969
}
7070
]
71-
}
71+
},
72+
"ml_settings" : [ ]
7273
}
7374
--------------------------------------------------
7475
// NOTCONSOLE
@@ -109,7 +110,8 @@ key. Similarly, any node-level warnings are found under `node_settings`. Since
109110
only a select subset of your nodes might incorporate these settings, it is
110111
important to read the `details` section for more information about which nodes
111112
are affected. Index warnings are sectioned off per index and can be filtered
112-
using an index-pattern in the query.
113+
using an index-pattern in the query. Machine Learning related deprecation
114+
warnings can be found under the `ml_settings` key.
113115

114116
The following example request shows only index-level deprecations of all
115117
`logstash-*` indices:

0 commit comments

Comments
 (0)