5
5
*/
6
6
package org .elasticsearch .xpack .core .deprecation ;
7
7
8
+ import org .elasticsearch .Version ;
8
9
import org .elasticsearch .action .Action ;
9
10
import org .elasticsearch .action .ActionRequestValidationException ;
10
11
import org .elasticsearch .action .ActionResponse ;
23
24
import org .elasticsearch .common .io .stream .StreamOutput ;
24
25
import org .elasticsearch .common .xcontent .ToXContentObject ;
25
26
import org .elasticsearch .common .xcontent .XContentBuilder ;
27
+ import org .elasticsearch .xpack .core .ml .datafeed .DatafeedConfig ;
26
28
27
29
import java .io .IOException ;
30
+ import java .util .ArrayList ;
28
31
import java .util .Arrays ;
32
+ import java .util .Collections ;
29
33
import java .util .HashMap ;
30
34
import java .util .List ;
31
35
import java .util .Map ;
@@ -67,16 +71,19 @@ public static class Response extends ActionResponse implements ToXContentObject
67
71
private List <DeprecationIssue > clusterSettingsIssues ;
68
72
private List <DeprecationIssue > nodeSettingsIssues ;
69
73
private Map <String , List <DeprecationIssue >> indexSettingsIssues ;
74
+ private List <DeprecationIssue > mlSettingsIssues ;
70
75
71
76
public Response () {
72
77
}
73
78
74
79
public Response (List <DeprecationIssue > clusterSettingsIssues ,
75
80
List <DeprecationIssue > nodeSettingsIssues ,
76
- Map <String , List <DeprecationIssue >> indexSettingsIssues ) {
81
+ Map <String , List <DeprecationIssue >> indexSettingsIssues ,
82
+ List <DeprecationIssue > mlSettingsIssues ) {
77
83
this .clusterSettingsIssues = clusterSettingsIssues ;
78
84
this .nodeSettingsIssues = nodeSettingsIssues ;
79
85
this .indexSettingsIssues = indexSettingsIssues ;
86
+ this .mlSettingsIssues = mlSettingsIssues ;
80
87
}
81
88
82
89
public List <DeprecationIssue > getClusterSettingsIssues () {
@@ -91,12 +98,21 @@ public Map<String, List<DeprecationIssue>> getIndexSettingsIssues() {
91
98
return indexSettingsIssues ;
92
99
}
93
100
101
+ public List <DeprecationIssue > getMlSettingsIssues () {
102
+ return mlSettingsIssues ;
103
+ }
104
+
94
105
@ Override
95
106
public void readFrom (StreamInput in ) throws IOException {
96
107
super .readFrom (in );
97
108
clusterSettingsIssues = in .readList (DeprecationIssue ::new );
98
109
nodeSettingsIssues = in .readList (DeprecationIssue ::new );
99
110
indexSettingsIssues = in .readMapOfLists (StreamInput ::readString , DeprecationIssue ::new );
111
+ if (in .getVersion ().onOrAfter (Version .V_6_7_0 )) {
112
+ mlSettingsIssues = in .readList (DeprecationIssue ::new );
113
+ } else {
114
+ mlSettingsIssues = Collections .emptyList ();
115
+ }
100
116
}
101
117
102
118
@ Override
@@ -105,6 +121,9 @@ public void writeTo(StreamOutput out) throws IOException {
105
121
out .writeList (clusterSettingsIssues );
106
122
out .writeList (nodeSettingsIssues );
107
123
out .writeMapOfLists (indexSettingsIssues , StreamOutput ::writeString , (o , v ) -> v .writeTo (o ));
124
+ if (out .getVersion ().onOrAfter (Version .V_6_7_0 )) {
125
+ out .writeList (mlSettingsIssues );
126
+ }
108
127
}
109
128
110
129
@ Override
@@ -114,23 +133,24 @@ public XContentBuilder toXContent(XContentBuilder builder, Params params) throws
114
133
.array ("node_settings" , nodeSettingsIssues .toArray ())
115
134
.field ("index_settings" )
116
135
.map (indexSettingsIssues )
136
+ .array ("ml_settings" , mlSettingsIssues .toArray ())
117
137
.endObject ();
118
138
}
119
139
120
-
121
140
@ Override
122
141
public boolean equals (Object o ) {
123
142
if (this == o ) return true ;
124
143
if (o == null || getClass () != o .getClass ()) return false ;
125
144
Response response = (Response ) o ;
126
145
return Objects .equals (clusterSettingsIssues , response .clusterSettingsIssues ) &&
127
146
Objects .equals (nodeSettingsIssues , response .nodeSettingsIssues ) &&
128
- Objects .equals (indexSettingsIssues , response .indexSettingsIssues );
147
+ Objects .equals (indexSettingsIssues , response .indexSettingsIssues ) &&
148
+ Objects .equals (mlSettingsIssues , response .mlSettingsIssues );
129
149
}
130
150
131
151
@ Override
132
152
public int hashCode () {
133
- return Objects .hash (clusterSettingsIssues , nodeSettingsIssues , indexSettingsIssues );
153
+ return Objects .hash (clusterSettingsIssues , nodeSettingsIssues , indexSettingsIssues , mlSettingsIssues );
134
154
}
135
155
136
156
/**
@@ -145,22 +165,30 @@ public int hashCode() {
145
165
* @param indexNameExpressionResolver Used to resolve indices into their concrete names
146
166
* @param indices The list of index expressions to evaluate using `indexNameExpressionResolver`
147
167
* @param indicesOptions The options to use when resolving and filtering which indices to check
168
+ * @param datafeeds The ml datafeed configurations
148
169
* @param clusterSettingsChecks The list of cluster-level checks
149
170
* @param nodeSettingsChecks The list of node-level checks
150
171
* @param indexSettingsChecks The list of index-level checks that will be run across all specified
151
172
* concrete indices
173
+ * @param mlSettingsCheck The list of ml checks
152
174
* @return The list of deprecation issues found in the cluster
153
175
*/
154
176
public static DeprecationInfoAction .Response from (List <NodeInfo > nodesInfo , List <NodeStats > nodesStats , ClusterState state ,
155
- IndexNameExpressionResolver indexNameExpressionResolver ,
156
- String [] indices , IndicesOptions indicesOptions ,
157
- List <Function <ClusterState ,DeprecationIssue >>clusterSettingsChecks ,
158
- List <BiFunction <List <NodeInfo >, List <NodeStats >, DeprecationIssue >> nodeSettingsChecks ,
159
- List <Function <IndexMetaData , DeprecationIssue >> indexSettingsChecks ) {
177
+ IndexNameExpressionResolver indexNameExpressionResolver ,
178
+ String [] indices , IndicesOptions indicesOptions ,
179
+ List <DatafeedConfig > datafeeds ,
180
+ List <Function <ClusterState ,DeprecationIssue >>clusterSettingsChecks ,
181
+ List <BiFunction <List <NodeInfo >, List <NodeStats >, DeprecationIssue >> nodeSettingsChecks ,
182
+ List <Function <IndexMetaData , DeprecationIssue >> indexSettingsChecks ,
183
+ List <Function <DatafeedConfig , DeprecationIssue >> mlSettingsCheck ) {
160
184
List <DeprecationIssue > clusterSettingsIssues = filterChecks (clusterSettingsChecks ,
161
185
(c ) -> c .apply (state ));
162
186
List <DeprecationIssue > nodeSettingsIssues = filterChecks (nodeSettingsChecks ,
163
187
(c ) -> c .apply (nodesInfo , nodesStats ));
188
+ List <DeprecationIssue > mlSettingsIssues = new ArrayList <>();
189
+ for (DatafeedConfig config : datafeeds ) {
190
+ mlSettingsIssues .addAll (filterChecks (mlSettingsCheck , (c ) -> c .apply (config )));
191
+ }
164
192
165
193
String [] concreteIndexNames = indexNameExpressionResolver .concreteIndexNames (state , indicesOptions , indices );
166
194
@@ -174,7 +202,7 @@ public static DeprecationInfoAction.Response from(List<NodeInfo> nodesInfo, List
174
202
}
175
203
}
176
204
177
- return new DeprecationInfoAction .Response (clusterSettingsIssues , nodeSettingsIssues , indexSettingsIssues );
205
+ return new DeprecationInfoAction .Response (clusterSettingsIssues , nodeSettingsIssues , indexSettingsIssues , mlSettingsIssues );
178
206
}
179
207
}
180
208
0 commit comments