+
+ // Define servers API processed locally
+ s.apiRouter.GET("/servers", s.getServersList) // API /servers
+ svr.apiRouter.GET("", s.getServer) // API /servers/:id
+ svr.apiRouter.POST("/reconnect", s.reconnectServer) // API /servers/:id/reconnect
+
+ // Declare passthrough API/routes
+ s.sdksPassthroughInit(svr)
+ s.targetsPassthroughInit(svr)
+
+ // Register callback on Connection
+ svr.ConnectOn(func(server *XdsServer) error {
+
+ // Add server to list
+ s.xdsServers[server.ID] = svr
+
+ // Register events forwarder
+ if err := s.sdksEventsForwardInit(server); err != nil {
+ s.Log.Errorf("XDS Server %v - sdk events forwarding error: %v", server.ID, err)
+ }
+ if err := s.targetsEventsForwardInit(server); err != nil {
+ s.Log.Errorf("XDS Server %v - target events forwarding error: %v", server.ID, err)
+ }
+ if err := s.terminalsEventsForwardInit(server); err != nil {
+ s.Log.Errorf("XDS Server %v - terminal events forwarding error: %v", server.ID, err)
+ }
+
+ // Load projects
+ if err := s.projects.Init(server); err != nil {
+ s.Log.Errorf("XDS Server %v - project init error: %v", server.ID, err)
+ }
+
+ // Registered to all events
+ if err := server.EventRegister(xsapiv1.EVTAll, ""); err != nil {
+ s.Log.Errorf("XDS Server %v - register all events error: %v", server.ID, err)
+ }
+
+ return nil
+ })