X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=E2Manager%2Fmain%2Fhttp_server.go;h=d64459850cb41b4ab20344214f187d4650b2f231;hb=33f84e1a0998af025880be3e8eb087fac34af731;hp=f9b27e1af81ac942a2fba586859ec73584c5ace6;hpb=19e72a51b5edbf108d230093fdf85b42fe5ab470;p=ric-plt%2Fe2mgr.git diff --git a/E2Manager/main/http_server.go b/E2Manager/main/http_server.go index f9b27e1..d644598 100644 --- a/E2Manager/main/http_server.go +++ b/E2Manager/main/http_server.go @@ -30,7 +30,7 @@ import ( "e2mgr/services/receivers" "fmt" "gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/reader" - "github.com/julienschmidt/httprouter" + "github.com/gorilla/mux" "log" "net/http" "os" @@ -55,8 +55,7 @@ func main() { rmrResponseChannel := make(chan *models.NotificationResponse, config.NotificationResponseBuffer) rmrService := services.NewRmrService(rmrConfig, msgImpl, controllers.E2Sessions, rmrResponseChannel) - - var ranSetupManager = managers.NewRanSetupManager(logger, rmrService, reader.GetRNibReader, rNibWriter.GetRNibWriter) + var ranSetupManager = managers.NewRanSetupManager(logger, rmrService, rNibWriter.GetRNibWriter) var ranReconnectionManager = managers.NewRanReconnectionManager(logger, config, reader.GetRNibReader, rNibWriter.GetRNibWriter, ranSetupManager) var nManager = notificationmanager.NewNotificationManager(reader.GetRNibReader, rNibWriter.GetRNibWriter, ranReconnectionManager) @@ -64,24 +63,32 @@ func main() { defer rmrService.CloseContext() go rmrServiceReceiver.ListenAndHandle() go rmrService.SendResponse() - runServer(rmrService, logger, config) -} -func runServer(rmrService *services.RmrService, logger *logger.Logger, config *configuration.Configuration) { - - router := httprouter.New() controller := controllers.NewNodebController(logger, rmrService, reader.GetRNibReader, rNibWriter.GetRNibWriter) - newController := controllers.NewController(logger, rmrService, reader.GetRNibReader, rNibWriter.GetRNibWriter, config) + newController := controllers.NewController(logger, rmrService, reader.GetRNibReader, rNibWriter.GetRNibWriter, config, ranSetupManager) + runServer(config.Http.Port, controller, newController) +} - router.POST("/v1/nodeb/:messageType", controller.HandleRequest) - router.GET("/v1/nodeb-ids", controller.GetNodebIdList) - router.GET("/v1/nodeb/:ranName", controller.GetNodeb) - router.GET("/v1/health", controller.HandleHealthCheckRequest) - router.PUT("/v1/nodeb/shutdown", newController.ShutdownHandler) - router.PUT("/v1/nodeb-reset/:ranName", newController.X2ResetHandler) +func runServer(port int, controller controllers.INodebController, newController controllers.IController) { - port := fmt.Sprintf(":%d", config.Http.Port) - if err := http.ListenAndServe(port, router); err != nil { + router := mux.NewRouter(); + initializeRoutes(router, controller, newController) + + addr := fmt.Sprintf(":%d", port) + if err := http.ListenAndServe(addr, router); err != nil { log.Fatalf("#runNodebServer - fail to start http server. Error: %v", err) } } + +func initializeRoutes(router *mux.Router, controller controllers.INodebController, newController controllers.IController) { + r := router.PathPrefix("/v1").Subrouter() + r.HandleFunc("/health", controller.HandleHealthCheckRequest).Methods("GET") + + rr := r.PathPrefix("/nodeb").Subrouter() + rr.HandleFunc("/ids", controller.GetNodebIdList).Methods("GET") // nodeb/ids + rr.HandleFunc("/{ranName}", controller.GetNodeb).Methods("GET") + rr.HandleFunc("/shutdown", newController.ShutdownHandler).Methods("PUT") + rr.HandleFunc("/{ranName}/reset", newController.X2ResetHandler).Methods("PUT") // nodeb/{ranName}/reset + rr.HandleFunc("/x2-setup", newController.X2SetupHandler).Methods("POST") + rr.HandleFunc("/endc-setup", newController.EndcSetupHandler).Methods("POST") +}