MCPcopy Create free account
hub / github.com/Azure/peerd / serverCommand

Function serverCommand

cmd/proxy/main.go:76–175  ·  view source on GitHub ↗
(ctx context.Context, args *ServerCmd)

Source from the content-addressed store, hash-verified

74}
75
76func serverCommand(ctx context.Context, args *ServerCmd) (err error) {
77 l := zerolog.Ctx(ctx)
78
79 store.PrefetchWorkers = args.PrefetchWorkers
80
81 _, httpsPort, err := net.SplitHostPort(args.HttpsAddr)
82 if err != nil {
83 return err
84 }
85
86 clientset, err := k8s.NewKubernetesInterface(pcontext.KubeConfigPath, pcontext.NodeName)
87 if err != nil {
88 return err
89 }
90
91 ctx, err = events.WithContext(ctx, clientset)
92 if err != nil {
93 return err
94 }
95 eventsRecorder := events.FromContext(ctx)
96 defer func() {
97 if err != nil {
98 eventsRecorder.Failed()
99 }
100 }()
101 eventsRecorder.Initializing()
102
103 r, err := routing.NewRouter(ctx, clientset, args.RouterAddr, httpsPort)
104 if err != nil {
105 return err
106 }
107
108 filesStore, err := store.NewFilesStore(ctx, r, store.DefaultFileCachePath)
109 if err != nil {
110 return err
111 }
112
113 g, ctx := errgroup.WithContext(ctx)
114
115 g.Go(func() error {
116 provider.Provide(ctx, r, filesStore.Subscribe())
117 return nil
118 })
119
120 handler, err := handlers.Handler(ctx, r, filesStore)
121 if err != nil {
122 return err
123 }
124
125 httpsSrv := &http.Server{
126 Addr: args.HttpsAddr,
127 Handler: handler,
128 TLSConfig: r.Net().DefaultTLSConfig(),
129 }
130 g.Go(func() error {
131 if err := httpsSrv.ListenAndServeTLS("", ""); err != nil && !errors.Is(err, http.ErrServerClosed) {
132 return err
133 }

Callers 2

runFunction · 0.85

Calls 13

SubscribeMethod · 0.95
NetMethod · 0.95
NewKubernetesInterfaceFunction · 0.92
WithContextFunction · 0.92
FromContextFunction · 0.92
NewRouterFunction · 0.92
NewFilesStoreFunction · 0.92
ProvideFunction · 0.92
HandlerFunction · 0.92
HandleMethod · 0.80
FailedMethod · 0.65
InitializingMethod · 0.65

Tested by 1