MCPcopy
hub / github.com/wavetermdev/waveterm / CheckConnStatus

Function CheckConnStatus

pkg/blockcontroller/blockcontroller.go:426–457  ·  view source on GitHub ↗
(blockId string)

Source from the content-addressed store, hash-verified

424}
425
426func CheckConnStatus(blockId string) error {
427 bdata, err := wstore.DBMustGet[*waveobj.Block](context.Background(), blockId)
428 if err != nil {
429 return fmt.Errorf("error getting block: %w", err)
430 }
431 connName := bdata.Meta.GetString(waveobj.MetaKey_Connection, "")
432 if conncontroller.IsLocalConnName(connName) {
433 return nil
434 }
435 if strings.HasPrefix(connName, "wsl://") {
436 distroName := strings.TrimPrefix(connName, "wsl://")
437 conn := wslconn.GetWslConn(distroName)
438 connStatus := conn.DeriveConnStatus()
439 if connStatus.Status != conncontroller.Status_Connected {
440 return fmt.Errorf("not connected: %s", connStatus.Status)
441 }
442 return nil
443 }
444 opts, err := remote.ParseOpts(connName)
445 if err != nil {
446 return fmt.Errorf("error parsing connection name: %w", err)
447 }
448 conn := conncontroller.MaybeGetConn(opts)
449 if conn == nil {
450 return fmt.Errorf("no connection found")
451 }
452 connStatus := conn.DeriveConnStatus()
453 if connStatus.Status != conncontroller.Status_Connected {
454 return fmt.Errorf("not connected: %s", connStatus.Status)
455 }
456 return nil
457}
458
459func makeSwapToken(ctx context.Context, logCtx context.Context, blockId string, blockMeta waveobj.MetaMapType, remoteName string, shellType string) *shellutil.TokenSwapEntry {
460 token := &shellutil.TokenSwapEntry{

Callers 1

ResyncControllerFunction · 0.85

Calls 7

DBMustGetFunction · 0.92
IsLocalConnNameFunction · 0.92
GetWslConnFunction · 0.92
ParseOptsFunction · 0.92
MaybeGetConnFunction · 0.92
GetStringMethod · 0.80
DeriveConnStatusMethod · 0.45

Tested by

no test coverage detected