MCPcopy Index your code
hub / github.com/wavetermdev/waveterm / onConnectionUp

Function onConnectionUp

pkg/jobcontroller/jobcontroller.go:484–515  ·  view source on GitHub ↗
(connName string)

Source from the content-addressed store, hash-verified

482}
483
484func onConnectionUp(connName string) {
485 log.Printf("[conn:%s] connection became connected, reconnecting jobs", connName)
486 ctx, cancelFn := context.WithTimeout(context.Background(), 5*time.Second)
487 defer cancelFn()
488
489 allJobs, err := wstore.DBGetAllObjsByType[*waveobj.Job](ctx, waveobj.OType_Job)
490 if err != nil {
491 log.Printf("[conn:%s] failed to get jobs for reconnection: %v", connName, err)
492 return
493 }
494
495 var jobsToReconnect []*waveobj.Job
496 for _, job := range allJobs {
497 if job.Connection == connName && isJobManagerRunning(job) {
498 jobsToReconnect = append(jobsToReconnect, job)
499 }
500 }
501
502 log.Printf("[conn:%s] found %d jobs to reconnect", connName, len(jobsToReconnect))
503
504 successCount := 0
505 for _, job := range jobsToReconnect {
506 err = ReconnectJob(ctx, job.OID, nil)
507 if err != nil {
508 log.Printf("[job:%s] error reconnecting: %v", job.OID, err)
509 } else {
510 successCount++
511 }
512 }
513
514 log.Printf("[conn:%s] finished reconnecting jobs: %d/%d successful", connName, successCount, len(jobsToReconnect))
515}
516
517func onConnectionDown(connName string) {
518 log.Printf("[conn:%s] connection became disconnected", connName)

Callers 1

reconcileConnFunction · 0.85

Calls 3

DBGetAllObjsByTypeFunction · 0.92
isJobManagerRunningFunction · 0.85
ReconnectJobFunction · 0.85

Tested by

no test coverage detected