8
8
9
9
package org .opensearch .tasks ;
10
10
11
+ import org .opensearch .Version ;
11
12
import org .opensearch .core .common .io .stream .StreamInput ;
12
13
import org .opensearch .core .common .io .stream .StreamOutput ;
13
14
import org .opensearch .core .common .io .stream .Writeable ;
22
23
*/
23
24
public class TaskCancellationStats implements ToXContentFragment , Writeable {
24
25
26
+ private final SearchTaskCancellationStats searchTaskCancellationStats ;
25
27
private final SearchShardTaskCancellationStats searchShardTaskCancellationStats ;
26
28
27
- public TaskCancellationStats (SearchShardTaskCancellationStats searchShardTaskCancellationStats ) {
29
+ public TaskCancellationStats (
30
+ SearchTaskCancellationStats searchTaskCancellationStats ,
31
+ SearchShardTaskCancellationStats searchShardTaskCancellationStats
32
+ ) {
33
+ this .searchTaskCancellationStats = searchTaskCancellationStats ;
28
34
this .searchShardTaskCancellationStats = searchShardTaskCancellationStats ;
29
35
}
30
36
31
37
public TaskCancellationStats (StreamInput in ) throws IOException {
38
+ if (in .getVersion ().onOrAfter (Version .V_3_0_0 )) {
39
+ searchTaskCancellationStats = new SearchTaskCancellationStats (in );
40
+ } else {
41
+ searchTaskCancellationStats = new SearchTaskCancellationStats (0 , 0 );
42
+ }
32
43
searchShardTaskCancellationStats = new SearchShardTaskCancellationStats (in );
33
44
}
34
45
@@ -37,15 +48,24 @@ protected SearchShardTaskCancellationStats getSearchShardTaskCancellationStats()
37
48
return this .searchShardTaskCancellationStats ;
38
49
}
39
50
51
+ // package private for testing
52
+ protected SearchTaskCancellationStats getSearchTaskCancellationStats () {
53
+ return this .searchTaskCancellationStats ;
54
+ }
55
+
40
56
@ Override
41
57
public XContentBuilder toXContent (XContentBuilder builder , Params params ) throws IOException {
42
58
builder .startObject ("task_cancellation" );
59
+ builder .field ("search_task" , searchTaskCancellationStats );
43
60
builder .field ("search_shard_task" , searchShardTaskCancellationStats );
44
61
return builder .endObject ();
45
62
}
46
63
47
64
@ Override
48
65
public void writeTo (StreamOutput out ) throws IOException {
66
+ if (out .getVersion ().onOrAfter (Version .V_3_0_0 )) {
67
+ searchTaskCancellationStats .writeTo (out );
68
+ }
49
69
searchShardTaskCancellationStats .writeTo (out );
50
70
}
51
71
@@ -54,11 +74,12 @@ public boolean equals(Object o) {
54
74
if (this == o ) return true ;
55
75
if (o == null || getClass () != o .getClass ()) return false ;
56
76
TaskCancellationStats that = (TaskCancellationStats ) o ;
57
- return Objects .equals (searchShardTaskCancellationStats , that .searchShardTaskCancellationStats );
77
+ return Objects .equals (searchTaskCancellationStats , that .searchTaskCancellationStats )
78
+ && Objects .equals (searchShardTaskCancellationStats , that .searchShardTaskCancellationStats );
58
79
}
59
80
60
81
@ Override
61
82
public int hashCode () {
62
- return Objects .hash (searchShardTaskCancellationStats );
83
+ return Objects .hash (searchTaskCancellationStats , searchShardTaskCancellationStats );
63
84
}
64
85
}
0 commit comments