@@ -41,7 +41,6 @@ import (
41
41
42
42
"github.com/aws/aws-sdk-go/aws/credentials"
43
43
"github.com/aws/aws-sdk-go/private/protocol/json/jsonutil"
44
- "github.com/cihub/seelog"
45
44
"github.com/gorilla/websocket"
46
45
"github.com/pkg/errors"
47
46
)
@@ -68,7 +67,7 @@ const (
68
67
69
68
errClosed = "use of closed network connection"
70
69
71
- // ExitTerminal indicates the containerd agent run into error that's not recoverable
70
+ // ExitTerminal indicates the agent run into error that's not recoverable
72
71
// no need to restart
73
72
ExitTerminal = 5
74
73
)
@@ -154,7 +153,7 @@ type ClientServer interface {
154
153
// AgentConfig is a subset of agent's config. Since this requires agent specific information,
155
154
// making this as a struct to be passed from the individual agents while using the wsclient shared lib.
156
155
// The agent where the field is not applicable can be left empty
157
- type AgentConfig struct {
156
+ type WSClientMinAgentConfig struct {
158
157
AWSRegion string
159
158
AcceptInsecureCert bool
160
159
DockerEndpoint string
@@ -163,8 +162,8 @@ type AgentConfig struct {
163
162
164
163
// ClientServerImpl wraps commonly used methods defined in ClientServer interface.
165
164
type ClientServerImpl struct {
166
- // cfg is the subset of user-specified runtime configuration
167
- cfg * AgentConfig
165
+ // Cfg is the subset of user-specified runtime configuration
166
+ Cfg * WSClientMinAgentConfig
168
167
// conn holds the underlying low-level websocket connection
169
168
conn wsconn.WebsocketConn
170
169
// CredentialProvider is used to retrieve AWS credentials
@@ -220,31 +219,31 @@ func (cs *ClientServerImpl) Connect() error {
220
219
request , _ := http .NewRequest ("GET" , parsedURL .String (), nil )
221
220
222
221
// Sign the request; we'll send its headers via the websocket client which includes the signature
223
- err = utils .SignHTTPRequest (request , cs .cfg .AWSRegion , ServiceName , cs .CredentialProvider , nil )
222
+ err = utils .SignHTTPRequest (request , cs .Cfg .AWSRegion , ServiceName , cs .CredentialProvider , nil )
224
223
if err != nil {
225
224
return err
226
225
}
227
226
228
227
timeoutDialer := & net.Dialer {Timeout : wsConnectTimeout }
229
- tlsConfig := & tls.Config {ServerName : parsedURL .Host , InsecureSkipVerify : cs .cfg .AcceptInsecureCert , MinVersion : tls .VersionTLS12 }
228
+ tlsConfig := & tls.Config {ServerName : parsedURL .Host , InsecureSkipVerify : cs .Cfg .AcceptInsecureCert , MinVersion : tls .VersionTLS12 }
230
229
231
230
//TODO: In order to get rid of the check -
232
231
// 1. Remove the hardcoded cipher suites, and rely on default by tls package
233
232
// 2. NO_PROXY should be set as part of config check or in init somewhere. Wsclient is not the right place.
234
- if cs .cfg .IsDocker {
233
+ if cs .Cfg .IsDocker {
235
234
236
235
cipher .WithSupportedCipherSuites (tlsConfig )
237
236
238
237
// Ensure that NO_PROXY gets set
239
238
noProxy := os .Getenv ("NO_PROXY" )
240
239
if noProxy == "" {
241
- dockerHost , err := url .Parse (cs .cfg .DockerEndpoint )
240
+ dockerHost , err := url .Parse (cs .Cfg .DockerEndpoint )
242
241
if err == nil {
243
242
dockerHost .Scheme = ""
244
243
os .Setenv ("NO_PROXY" , fmt .Sprintf ("%s,%s" , defaultNoProxyIP , dockerHost .String ()))
245
- seelog .Info ("NO_PROXY set:" , os .Getenv ("NO_PROXY" ))
244
+ logger .Info (fmt . Sprintf ( "NO_PROXY is set: %s " , os .Getenv ("NO_PROXY" ) ))
246
245
} else {
247
- seelog . Errorf ("NO_PROXY unable to be set: the configured Docker endpoint is invalid." )
246
+ logger . Error ("NO_PROXY unable to be set: the configured Docker endpoint is invalid." )
248
247
}
249
248
}
250
249
}
@@ -278,7 +277,7 @@ func (cs *ClientServerImpl) Connect() error {
278
277
return cs .NewError (possibleError )
279
278
}
280
279
}
281
- seelog . Warnf ( "Error creating a websocket client: %v" , err )
280
+ logger . Warn ( fmt . Sprintf ( "Error creating a websocket client: %v" , err ) )
282
281
return errors .Wrapf (err , "websocket client: unable to dial %s response: %s" ,
283
282
parsedURL .Host , string (resp ))
284
283
}
@@ -287,7 +286,7 @@ func (cs *ClientServerImpl) Connect() error {
287
286
defer cs .writeLock .Unlock ()
288
287
289
288
cs .conn = websocketConn
290
- seelog . Debugf ( "Established a Websocket connection to %s" , cs .URL )
289
+ logger . Debug ( fmt . Sprintf ( "Established a Websocket connection to %s" , cs .URL ) )
291
290
return nil
292
291
}
293
292
@@ -314,11 +313,11 @@ func (cs *ClientServerImpl) SetReadDeadline(t time.Time) error {
314
313
if err == nil {
315
314
return nil
316
315
}
317
- seelog . Warnf ( "Unable to set read deadline for websocket connection: %v for %s" , err , cs .URL )
316
+ logger . Warn ( fmt . Sprintf ( "Unable to set read deadline for websocket connection: %v for %s" , err , cs .URL ) )
318
317
// If we get connection closed error from SetReadDeadline, break out of the for loop and
319
318
// return an error
320
319
if opErr , ok := err .(* net.OpError ); ok && strings .Contains (opErr .Err .Error (), errClosed ) {
321
- seelog . Errorf ( "Stopping redundant reads on closed network connection: %s" , cs .URL )
320
+ logger . Error ( fmt . Sprintf ( "Stopping redundant reads on closed network connection: %s" , cs .URL ) )
322
321
return opErr
323
322
}
324
323
// An unhandled error has occurred while trying to extend read deadline.
@@ -339,13 +338,13 @@ func (cs *ClientServerImpl) forceCloseConnection() {
339
338
select {
340
339
case closeErr := <- closeChan :
341
340
if closeErr != nil {
342
- seelog . Warnf ("Unable to close websocket connection: %v for %s" ,
343
- closeErr , cs .URL )
341
+ logger . Warn ( fmt . Sprintf ("Unable to close websocket connection: %v for %s" ,
342
+ closeErr , cs .URL ))
344
343
}
345
344
case <- ctx .Done ():
346
345
if ctx .Err () != nil {
347
- seelog . Warnf ("Context canceled waiting for termination of websocket connection: %v for %s" ,
348
- ctx .Err (), cs .URL )
346
+ logger . Warn ( fmt . Sprintf ("Context canceled waiting for termination of websocket connection: %v for %s" ,
347
+ ctx .Err (), cs .URL ))
349
348
}
350
349
}
351
350
}
@@ -363,7 +362,7 @@ func (cs *ClientServerImpl) Disconnect(...interface{}) error {
363
362
// as the close frame needs to be sent to the server. Set the deadline
364
363
// for that as well.
365
364
if err := cs .conn .SetWriteDeadline (time .Now ().Add (cs .RWTimeout )); err != nil {
366
- seelog . Warnf ( "Unable to set write deadline for websocket connection: %v for %s" , err , cs .URL )
365
+ logger . Warn ( fmt . Sprintf ( "Unable to set write deadline for websocket connection: %v for %s" , err , cs .URL ) )
367
366
}
368
367
return cs .conn .Close ()
369
368
}
@@ -386,7 +385,8 @@ func (cs *ClientServerImpl) AddRequestHandler(f RequestHandler) {
386
385
recognizedTypes := cs .GetRecognizedTypes ()
387
386
_ , ok := recognizedTypes [firstArgTypeStr ]
388
387
if ! ok {
389
- seelog .Errorf ("Invalid Handler. AddRequestHandler called with invalid function; argument type not recognized: %v" , firstArgTypeStr )
388
+ logger .Error (fmt .Sprintf ("Invalid Handler. AddRequestHandler called with invalid function; " +
389
+ "argument type not recognized: %v" , firstArgTypeStr ))
390
390
os .Exit (ExitTerminal )
391
391
}
392
392
cs .RequestHandlers [firstArgTypeStr ] = f
@@ -432,7 +432,8 @@ func (cs *ClientServerImpl) WriteMessage(send []byte) error {
432
432
// library returns 'nil' anyway for SetWriteDeadline
433
433
// https://github.com/gorilla/websocket/blob/4201258b820c74ac8e6922fc9e6b52f71fe46f8d/conn.go#L761
434
434
if err := cs .conn .SetWriteDeadline (time .Now ().Add (cs .RWTimeout )); err != nil {
435
- seelog .Warnf ("Unable to set write deadline for websocket connection: %v for %s" , err , cs .URL )
435
+ logger .Warn (fmt .Sprintf ("Unable to set write deadline for websocket connection: %v for %s" ,
436
+ err , cs .URL ))
436
437
}
437
438
438
439
return cs .conn .WriteMessage (websocket .TextMessage , send )
@@ -469,20 +470,20 @@ func (cs *ClientServerImpl) ConsumeMessages(ctx context.Context) error {
469
470
case err == nil :
470
471
if messageType != websocket .TextMessage {
471
472
// maybe not fatal though, we'll try to process it anyways
472
- seelog . Errorf ( "Unexpected messageType: %v" , messageType )
473
+ logger . Error ( fmt . Sprintf ( "Unexpected messageType: %v" , messageType ) )
473
474
}
474
475
475
476
cs .handleMessage (message )
476
477
477
478
case permissibleCloseCode (err ):
478
- seelog . Debugf ( "Connection closed for a valid reason: %s" , err )
479
+ logger . Debug ( fmt . Sprintf ( "Connection closed for a valid reason: %s" , err ) )
479
480
errChan <- io .EOF
480
481
return
481
482
482
483
default :
483
484
// Unexpected error occurred
484
- seelog . Debugf ("Error getting message from ws backend: error: [%v], messageType: [%v] " ,
485
- err , messageType )
485
+ logger . Debug ( fmt . Sprintf ("Error getting message from ws backend: error: [%v], messageType: [%v] " ,
486
+ err , messageType ))
486
487
errChan <- err
487
488
return
488
489
}
@@ -536,11 +537,11 @@ func (cs *ClientServerImpl) CreateRequestMessage(input interface{}) ([]byte, err
536
537
func (cs * ClientServerImpl ) handleMessage (data []byte ) {
537
538
typedMessage , typeStr , err := DecodeData (data , cs .TypeDecoder )
538
539
if err != nil {
539
- seelog . Warnf ( "Unable to handle message from backend: %v" , err )
540
+ logger . Warn ( fmt . Sprintf ( "Unable to handle message from backend: %v" , err ) )
540
541
return
541
542
}
542
543
543
- seelog . Debugf ( "Received message of type: %s" , typeStr )
544
+ logger . Debug ( fmt . Sprintf ( "Received message of type: %s" , typeStr ) )
544
545
545
546
if cs .AnyRequestHandler != nil {
546
547
reflect .ValueOf (cs .AnyRequestHandler ).Call ([]reflect.Value {reflect .ValueOf (typedMessage )})
@@ -549,7 +550,7 @@ func (cs *ClientServerImpl) handleMessage(data []byte) {
549
550
if handler , ok := cs .RequestHandlers [typeStr ]; ok {
550
551
reflect .ValueOf (handler ).Call ([]reflect.Value {reflect .ValueOf (typedMessage )})
551
552
} else {
552
- seelog . Infof ( "No handler for message type: %s %s" , typeStr , typedMessage )
553
+ logger . Info ( fmt . Sprintf ( "No handler for message type: %s %s" , typeStr , typedMessage ) )
553
554
}
554
555
}
555
556
0 commit comments