11package org .phoebus .applications .alarm .logging .ui ;
22
3- import co .elastic .clients .elasticsearch .ElasticsearchClient ;
4- import co .elastic .clients .elasticsearch ._types .FieldSort ;
5- import co .elastic .clients .elasticsearch ._types .SortOptions ;
6- import co .elastic .clients .elasticsearch ._types .SortOrder ;
7- import co .elastic .clients .elasticsearch ._types .query_dsl .Query ;
8- import co .elastic .clients .elasticsearch ._types .query_dsl .WildcardQuery ;
9- import co .elastic .clients .elasticsearch .core .SearchResponse ;
103import com .fasterxml .jackson .databind .DeserializationFeature ;
11- import com .fasterxml .jackson .databind .JsonNode ;
124import com .fasterxml .jackson .databind .ObjectMapper ;
13- import com .fasterxml .jackson .databind .node .ObjectNode ;
14- import co .elastic .clients .elasticsearch .core .SearchRequest ;
15- import co .elastic .clients .elasticsearch ._types .query_dsl .BoolQuery ;
5+ import com .sun .jersey .api .client .WebResource ;
166import org .phoebus .applications .alarm .messages .AlarmConfigMessage ;
17- import org .phoebus .applications .alarm .messages .AlarmStateMessage ;
18- import org .phoebus .framework .jobs .*;
7+ import org .phoebus .framework .jobs .Job ;
8+ import org .phoebus .framework .jobs .JobManager ;
9+ import org .phoebus .framework .jobs .JobRunnableWithCancel ;
1910
20- import java .io .IOException ;
21- import java .time .Instant ;
22- import java .time .LocalDateTime ;
2311import java .time .ZoneId ;
2412import java .time .format .DateTimeFormatter ;
25- import java .util .*;
13+ import java .util .ArrayList ;
14+ import java .util .List ;
2615import java .util .function .BiConsumer ;
2716import java .util .function .Consumer ;
28- import java .util .stream .Collectors ;
2917
3018/**
3119 * A Job to retrieve the latest alarm configuration details
3220 * @author Kunal Shroff
3321 */
3422public class AlarmLogConfigSearchJob extends JobRunnableWithCancel {
35- private final ElasticsearchClient client ;
23+ private final WebResource client ;
3624 private final String pattern ;
3725
3826 private final Consumer <List <AlarmConfigMessage >> alarmMessageHandler ;
@@ -41,15 +29,15 @@ public class AlarmLogConfigSearchJob extends JobRunnableWithCancel {
4129 private final ObjectMapper objectMapper ;
4230 private DateTimeFormatter formatter = DateTimeFormatter .ofPattern ("yyyy-MM-dd HH:mm:ss.SSS" ).withZone (ZoneId .of ("UTC" ));
4331
44- public static Job submit (ElasticsearchClient client ,
32+ public static Job submit (WebResource client ,
4533 final String pattern ,
4634 final Consumer <List <AlarmConfigMessage >> alarmMessageHandler ,
4735 final BiConsumer <String , Exception > errorHandler ) {
4836 return JobManager .schedule ("searching alarm log messages for : " + pattern ,
4937 new AlarmLogConfigSearchJob (client , pattern , alarmMessageHandler , errorHandler ));
5038 }
5139
52- private AlarmLogConfigSearchJob (ElasticsearchClient client ,
40+ private AlarmLogConfigSearchJob (WebResource client ,
5341 String pattern ,
5442 Consumer <List <AlarmConfigMessage >> alarmMessageHandler ,
5543 BiConsumer <String , Exception > errorHandler ) {
@@ -70,67 +58,9 @@ public String getName() {
7058 @ Override
7159 public Runnable getRunnable () {
7260 return () -> {
73- String searchPattern = "*" .concat (pattern ).concat ("*" );
74- int size = 1 ;
75- BoolQuery boolQuery = BoolQuery .of (bq ->bq
76- .must (Query .of (q ->q
77- .wildcard (WildcardQuery .of (w ->w
78- .field ("config" )
79- .value (searchPattern )
80- )
81- )
82- )
83- )
84- );
85-
86- SearchRequest searchRequest = SearchRequest .of (req ->req
87- .query (Query .of (q ->q
88- .bool (boolQuery )
89- )
90- )
91- .index ("*alarms_config*" )
92- .size (size )
93- .sort (
94- SortOptions .of (s ->s
95- .field (FieldSort .of (f ->f
96- .field ("message_time" )
97- .order (SortOrder .Desc )
98- )
99- )
100- )
101- )
102- );
10361 List <String > result ;
10462 List <AlarmConfigMessage > cResult = new ArrayList <>();
105- SearchResponse <AlarmConfigMessage > response ;
106- try {
107- response = client .search (searchRequest , AlarmConfigMessage .class );
108- response .hits ().hits ().forEach (hit ->cResult .add (hit .source ()));
109- /*result = Arrays.asList(client.search(searchRequest, AlarmConfigMessage.class).hits().hits()).stream()
110- .map(hit -> {
111- try {
112- String source = hit.getSourceAsString();
113- JsonNode root = objectMapper.readTree(source);
114- JsonNode time = ((ObjectNode) root).remove("time");
115- JsonNode message_time = ((ObjectNode) root).remove("message_time");
116- JsonNode message = ((ObjectNode) root).get("config_msg");
11763
118- String alarmSource = message.asText().trim();
119- // Backwards compatibility for the old invalid json representation of alarm messages
120- if (alarmSource.startsWith("AlarmConfigMessage")) {
121- return alarmSource.replace("AlarmConfigMessage","");
122- }
123- Object json = objectMapper.readValue(alarmSource, Object.class);
124- return objectMapper.writerWithDefaultPrettyPrinter().writeValueAsString(json);
125- } catch (Exception e) {
126- errorHandler.accept("Failed to search for alarm config ", e);
127- return null;
128- }
129- }).collect(Collectors.toList());*/
130- alarmMessageHandler .accept (cResult );
131- } catch (IOException e ) {
132- errorHandler .accept ("Failed to search for alarm config " , e );
133- }
13464 };
13565 }
13666}
0 commit comments