66import com .fasterxml .jackson .databind .ObjectMapper ;
77import com .sun .jersey .api .client .WebResource ;
88import javafx .collections .ObservableMap ;
9- import org .phoebus .applications .alarm .logging .ui .AlarmLogTableQueryUtil .Keys ;
109import org .phoebus .framework .jobs .Job ;
1110import org .phoebus .framework .jobs .JobManager ;
1211import org .phoebus .framework .jobs .JobMonitor ;
1312import org .phoebus .framework .jobs .JobRunnable ;
1413import org .phoebus .framework .preferences .PreferencesReader ;
15- import org .phoebus .util . time . TimeParser ;
14+ import org .phoebus .applications . alarm . logging . ui . AlarmLogTableQueryUtil . Keys ;
1615
1716import javax .ws .rs .core .MediaType ;
1817import javax .ws .rs .core .MultivaluedHashMap ;
1918import javax .ws .rs .core .MultivaluedMap ;
20- import java .io .IOException ;
21- import java .time .Instant ;
2219import java .time .ZoneId ;
2320import java .time .format .DateTimeFormatter ;
24- import java .time .temporal .TemporalAmount ;
25- import java .util .ArrayList ;
26- import java .util .HashMap ;
21+ import java .util .Arrays ;
2722import java .util .List ;
28- import java .util .Map ;
2923import java .util .function .BiConsumer ;
3024import java .util .function .Consumer ;
25+ import java .util .stream .Collectors ;
3126
3227/**
3328 * A Job to search for alarm messages logged by the alarm logging service
3429 * @author Kunal Shroff
3530 */
3631public class AlarmLogSearchJob implements JobRunnable {
37- private final String pattern ;
3832 private final Boolean isNodeTable ;
3933 private final ObservableMap <Keys , String > searchParameters ;
4034 private final Consumer <List <AlarmLogTableType >> alarmMessageHandler ;
@@ -55,14 +49,13 @@ public static Job submit(WebResource client,
5549 final Consumer <List <AlarmLogTableType >> alarmMessageHandler ,
5650 final BiConsumer <String , Exception > errorHandler ) {
5751 return JobManager .schedule ("searching alarm log messages for : " + pattern ,
58- new AlarmLogSearchJob (client , pattern , isNodeTable , searchParameters , alarmMessageHandler , errorHandler ));
52+ new AlarmLogSearchJob (client , isNodeTable , searchParameters , alarmMessageHandler , errorHandler ));
5953 }
6054
61- private AlarmLogSearchJob (WebResource client , String pattern , Boolean isNodeTable , ObservableMap <Keys , String > searchParameters ,
62- Consumer <List <AlarmLogTableType >> alarmMessageHandler , BiConsumer <String , Exception > errorHandler ) {
55+ private AlarmLogSearchJob (WebResource client , Boolean isNodeTable , ObservableMap <Keys , String > searchParameters ,
56+ Consumer <List <AlarmLogTableType >> alarmMessageHandler , BiConsumer <String , Exception > errorHandler ) {
6357 super ();
6458 this .client = client ;
65- this .pattern = pattern ;
6659 this .isNodeTable = isNodeTable ;
6760 this .searchParameters = searchParameters ;
6861 this .alarmMessageHandler = alarmMessageHandler ;
@@ -73,29 +66,25 @@ private AlarmLogSearchJob(WebResource client, String pattern, Boolean isNodeTabl
7366
7467 @ Override
7568 public void run (JobMonitor monitor ) {
76- monitor .beginTask ("searching for alarm log entires : " + pattern );
77- String searchPattern = "*" .concat (pattern ).concat ("*" );
78- int size = prefs .getInt ("es_max_size" );
79- Boolean configSet = false ;
69+ monitor .beginTask ("searching for alarm log entires : " +
70+ searchParameters .entrySet ().stream ().map (e -> e .getKey () + ":" + e .getValue ()).collect (Collectors .joining ()));
71+ int size = prefs .getInt ("results_max_size" );
8072
8173 MultivaluedMap <String , String > map = new MultivaluedHashMap <>();
82- map .addFirst ("pv" , "*" );
83- //final List<AlarmLogTableType> result = new ArrayList<>();
74+ searchParameters .entrySet ().forEach (e -> {
75+ map .add (e .getKey ().getName (), e .getValue ());
76+ }
77+ );
78+ map .putIfAbsent ("size" , Arrays .asList (String .valueOf (size )));
79+
8480 try {
8581 List <AlarmLogTableType > result = objectMapper .readValue (client .path ("/search/alarm" )
8682 .queryParams (map )
8783 .accept (MediaType .APPLICATION_JSON ).get (String .class ), new TypeReference <List <AlarmLogTableType >>() {
8884 });
85+ alarmMessageHandler .accept (result );
8986 } catch (JsonProcessingException e ) {
9087 e .printStackTrace ();
9188 }
92-
93- // try {
94- // SearchResponse<AlarmLogTableType> response = client.search(searchRequest, AlarmLogTableType.class);
95- // response.hits().hits().forEach(hit->result.add(hit.source()));
96- // alarmMessageHandler.accept(result);
97- // } catch (IOException e) {
98- // errorHandler.accept("Failed to search for alarm logs ", e);
99- // }
10089 }
10190}
0 commit comments