MCPcopy
hub / github.com/lima-vm/lima / processGuestAgentEvents

Method processGuestAgentEvents

pkg/hostagent/hostagent.go:888–934  ·  view source on GitHub ↗
(ctx context.Context, client *guestagentclient.GuestAgentClient)

Source from the content-addressed store, hash-verified

886}
887
888func (a *HostAgent) processGuestAgentEvents(ctx context.Context, client *guestagentclient.GuestAgentClient) error {
889 info, err := client.Info(ctx)
890 if err != nil {
891 return err
892 }
893 logrus.Info("Guest agent is running")
894 a.guestAgentAliveChOnce.Do(func() {
895 close(a.guestAgentAliveCh)
896 })
897
898 logrus.Debugf("guest agent info: %+v", info)
899
900 onEvent := func(ev *guestagentapi.Event) {
901 logrus.Debugf("guest agent event: %+v", ev)
902 for _, f := range ev.Errors {
903 logrus.Warnf("received error from the guest: %q", f)
904 }
905 // History of the default value of useSSHFwd:
906 // - v0.1.0: true (effectively)
907 // - v1.0.0: false
908 // - v1.0.1: true
909 // - v1.1.0-beta.0: false
910 useSSHFwd := false
911 if envVar := os.Getenv("LIMA_SSH_PORT_FORWARDER"); envVar != "" {
912 b, err := strconv.ParseBool(envVar)
913 if err != nil {
914 logrus.WithError(err).Warnf("invalid LIMA_SSH_PORT_FORWARDER value %q", envVar)
915 } else {
916 useSSHFwd = b
917 }
918 }
919 if useSSHFwd {
920 a.portForwarder.OnEvent(ctx, ev)
921 } else {
922 dialContext := portfwd.DialContextToGRPCTunnel(client)
923 a.grpcPortForwarder.OnEvent(ctx, dialContext, ev)
924 }
925 }
926
927 if err := client.Events(ctx, onEvent); err != nil {
928 if status.Code(err) == codes.Canceled {
929 return context.Canceled
930 }
931 return err
932 }
933 return io.EOF
934}
935
936const (
937 verbForward = "forward"

Callers 1

watchGuestAgentEventsMethod · 0.95

Calls 4

DialContextToGRPCTunnelFunction · 0.92
InfoMethod · 0.65
EventsMethod · 0.65
OnEventMethod · 0.45

Tested by

no test coverage detected