49
49
import eu .cloudnetservice .node .command .source .DriverCommandSource ;
50
50
import eu .cloudnetservice .node .config .Configuration ;
51
51
import eu .cloudnetservice .node .config .JsonConfiguration ;
52
+ import eu .cloudnetservice .node .log .QueuedConsoleLogAppender ;
52
53
import eu .cloudnetservice .node .service .CloudServiceManager ;
53
54
import jakarta .inject .Inject ;
54
55
import jakarta .inject .Named ;
@@ -74,6 +75,7 @@ public final class V3HttpHandlerNode {
74
75
private final NodeServerProvider nodeServerProvider ;
75
76
private final CloudServiceManager cloudServiceManager ;
76
77
private final ServiceTaskProvider serviceTaskProvider ;
78
+ private final QueuedConsoleLogAppender consoleLogAppender ;
77
79
private final GroupConfigurationProvider groupConfigurationProvider ;
78
80
79
81
@ Inject
@@ -87,6 +89,7 @@ public V3HttpHandlerNode(
87
89
@ NonNull NodeServerProvider nodeServerProvider ,
88
90
@ NonNull CloudServiceManager cloudServiceManager ,
89
91
@ NonNull ServiceTaskProvider serviceTaskProvider ,
92
+ @ NonNull QueuedConsoleLogAppender consoleLogAppender ,
90
93
@ NonNull GroupConfigurationProvider groupConfigurationProvider
91
94
) {
92
95
this .logger = logger ;
@@ -98,6 +101,7 @@ public V3HttpHandlerNode(
98
101
this .nodeServerProvider = nodeServerProvider ;
99
102
this .cloudServiceManager = cloudServiceManager ;
100
103
this .serviceTaskProvider = serviceTaskProvider ;
104
+ this .consoleLogAppender = consoleLogAppender ;
101
105
this .groupConfigurationProvider = groupConfigurationProvider ;
102
106
}
103
107
@@ -201,6 +205,12 @@ public V3HttpHandlerNode(
201
205
return HttpResponseCode .SWITCHING_PROTOCOLS ;
202
206
}
203
207
208
+ @ RequestHandler (path = "/api/v3/node/logLines" )
209
+ @ Authentication (providers = "jwt" , scopes = {"cloudnet_rest:node_read" , "cloudnet_rest:node_log_lines" })
210
+ public @ NonNull IntoResponse <?> handleLogLinesRequest () {
211
+ return JsonResponse .builder ().body (Map .of ("lines" , this .consoleLogAppender .formattedCachedLogLines ()));
212
+ }
213
+
204
214
private void reloadConfig () {
205
215
this .configuration .reloadFrom (JsonConfiguration .loadFromFile ());
206
216
this .serviceTaskProvider .reload ();
0 commit comments