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

Function EnsureConnection

pkg/remote/conncontroller/conncontroller.go:1113–1138  ·  view source on GitHub ↗

Convenience function for ensuring a connection is established

(ctx context.Context, connName string)

Source from the content-addressed store, hash-verified

1111
1112// Convenience function for ensuring a connection is established
1113func EnsureConnection(ctx context.Context, connName string) error {
1114 if IsLocalConnName(connName) {
1115 return nil
1116 }
1117 connOpts, err := remote.ParseOpts(connName)
1118 if err != nil {
1119 return fmt.Errorf("error parsing connection name: %w", err)
1120 }
1121 conn := GetConn(connOpts)
1122 if conn == nil {
1123 return fmt.Errorf("connection not found: %s", connName)
1124 }
1125 connStatus := conn.DeriveConnStatus()
1126 switch connStatus.Status {
1127 case Status_Connected:
1128 return nil
1129 case Status_Connecting:
1130 return conn.WaitForConnect(ctx)
1131 case Status_Init, Status_Disconnected:
1132 return conn.Connect(ctx, &wconfig.ConnKeywords{})
1133 case Status_Error:
1134 return fmt.Errorf("connection error: %s", connStatus.Error)
1135 default:
1136 return fmt.Errorf("unknown connection status %q", connStatus.Status)
1137 }
1138}
1139
1140func DisconnectClient(opts *remote.SSHOpts) error {
1141 conn := getConnInternal(opts, false)

Callers 1

ConnEnsureCommandMethod · 0.92

Calls 6

ParseOptsFunction · 0.92
IsLocalConnNameFunction · 0.85
GetConnFunction · 0.85
DeriveConnStatusMethod · 0.45
WaitForConnectMethod · 0.45
ConnectMethod · 0.45

Tested by

no test coverage detected