X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=E2Manager%2Fmain%2Fhttp_server.go;fp=E2Manager%2Fmain%2Fhttp_server.go;h=b2db55ba0bf2ed3038ffdf903ddf2e5e8b31a249;hb=4db397dbfa07d202f1a7134e1a7a52b8fb3b5d8a;hp=352fd56ea8af28f8288bb4d112aed5617cd7eaa7;hpb=264731981e4a52e876c5b484e35032ada6559ac6;p=ric-plt%2Fe2mgr.git diff --git a/E2Manager/main/http_server.go b/E2Manager/main/http_server.go index 352fd56..b2db55b 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" @@ -62,24 +62,31 @@ 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) + runServer(config.Http.Port, controller, newController) +} + +func runServer(port int, controller controllers.INodebController, newController controllers.IController) { - 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) + router := mux.NewRouter(); + initializeRoutes(router, controller, newController) - port := fmt.Sprintf(":%d", config.Http.Port) - if err := http.ListenAndServe(port, router); err != nil { + 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("/{messageType}", controller.HandleRequest).Methods("POST") + 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 +}