MCPcopy
hub / github.com/koderover/zadig / Serve

Function Serve

pkg/microservice/hubagent/server/server.go:47–96  ·  view source on GitHub ↗
(ctx context.Context)

Source from the content-addressed store, hash-verified

45}
46
47func Serve(ctx context.Context) error {
48 log.Info("Start Hub-Agent service.")
49
50 engine := rest.NewEngine()
51 server := &http.Server{Addr: ":80", Handler: engine}
52
53 // need to get cluster config to init k8s resource
54 initResource()
55
56 var wg sync.WaitGroup
57
58 wg.Add(1)
59 go func() {
60 defer wg.Done()
61
62 <-ctx.Done()
63
64 ctx, cancel := context.WithTimeout(context.TODO(), 5*time.Second)
65 defer cancel()
66
67 if err := server.Shutdown(ctx); err != nil {
68 log.Errorf("Failed to stop server, error: %s", err)
69 }
70 }()
71
72 wg.Add(1)
73 go func() {
74 defer wg.Done()
75
76 err := server.ListenAndServe()
77 if err != nil && err != http.ErrServerClosed {
78 log.Errorf("Failed to start http server, error: %s", err)
79 return
80 }
81 }()
82
83 wg.Add(1)
84 go func() {
85 defer wg.Done()
86
87 if err := service.Init(ctx); err != nil {
88 log.Errorf("Failed to init service, error: %s", err)
89 return
90 }
91 }()
92
93 wg.Wait()
94
95 return nil
96}
97
98func initResource() {
99 token, err := login.GetInternalToken("hub-agent")

Callers 1

mainFunction · 0.92

Calls 7

InfoFunction · 0.92
NewEngineFunction · 0.92
ErrorfFunction · 0.92
InitFunction · 0.92
initResourceFunction · 0.85
AddMethod · 0.80
DoneMethod · 0.65

Tested by

no test coverage detected