@@ -6,9 +6,11 @@ const { initManagement } = require('./lib/management');
6
6
const _config = require ( './lib/Config' ) . config ;
7
7
const { managementAgentMessageType } = require ( './lib/management/agentClient' ) ;
8
8
const { addOverlayMessageListener } = require ( './lib/management/push' ) ;
9
+ const { saveConfigurationVersion } = require ( './lib/management/configuration' ) ;
9
10
10
11
11
12
// TODO: auth?
13
+ // TODO: werelogs with a specific name.
12
14
13
15
const CHECK_BROKEN_CONNECTIONS_FREQUENCY_MS = 15000 ;
14
16
@@ -120,30 +122,42 @@ class ManagementAgentServer {
120
122
logger . error ( 'websocket server error' , { error } ) ;
121
123
}
122
124
123
- onNewOverlay ( remoteOverlay ) {
124
- this . loadedOverlay = JSON . parse ( remoteOverlay ) ;
125
- this . wss . clients . forEach ( client => {
126
- if ( client . readyState !== client . OPEN ) {
127
- logger . error ( 'client socket not in ready state' , {
128
- state : client . readyState ,
129
- client : client . _socket . _peername ,
130
- } ) ;
131
- return ;
125
+ _sendNewOverlayToClient ( client ) {
126
+ if ( client . readyState !== client . OPEN ) {
127
+ logger . error ( 'client socket not in ready state' , {
128
+ state : client . readyState ,
129
+ client : client . _socket . _peername ,
130
+ } ) ;
131
+ return ;
132
+ }
133
+
134
+ const msg = {
135
+ messageType : managementAgentMessageType . NEW_OVERLAY ,
136
+ payload : this . loadedOverlay ,
137
+ } ;
138
+ client . send ( JSON . stringify ( msg ) , error => {
139
+ if ( error ) {
140
+ logger . error (
141
+ 'failed to send remoteOverlay to management agent client' , {
142
+ error, client : client . _socket . _peername ,
143
+ } ) ;
132
144
}
133
- const msg = {
134
- messageType : managementAgentMessageType . NEW_OVERLAY ,
135
- payload : this . loadedOverlay ,
136
- } ;
137
- client . send ( JSON . stringify ( msg ) , error => {
138
- if ( error ) {
139
- logger . error ( 'failed to send remoteOverlay to management' +
140
- ' agent client' , {
141
- error,
142
- client : client . _socket . _peername ,
143
- } ) ;
145
+ } ) ;
146
+ }
147
+
148
+ onNewOverlay ( remoteOverlay ) {
149
+ const remoteOverlayObj = JSON . parse ( remoteOverlay ) ;
150
+ saveConfigurationVersion (
151
+ this . loadedOverlay , remoteOverlayObj , logger , err => {
152
+ if ( err ) {
153
+ logger . error ( 'failed to save remote overlay' , { err } ) ;
154
+ return ;
144
155
}
156
+ this . loadedOverlay = remoteOverlayObj ;
157
+ this . wss . clients . forEach (
158
+ this . _sendNewOverlayToClient . bind ( this )
159
+ ) ;
145
160
} ) ;
146
- } ) ;
147
161
}
148
162
149
163
checkBrokenConnections ( ) {
0 commit comments