X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=E2Manager%2Fcontrollers%2Fnodeb_controller.go;h=802537d945e0b4616708f5deb13bbbc25abd135e;hb=1ec13d4076e7c7abefac6176462c1fee31229213;hp=50cb49baed0b249463c6652a74a0e07e0ffb5315;hpb=19e72a51b5edbf108d230093fdf85b42fe5ab470;p=ric-plt%2Fe2mgr.git diff --git a/E2Manager/controllers/nodeb_controller.go b/E2Manager/controllers/nodeb_controller.go index 50cb49b..802537d 100644 --- a/E2Manager/controllers/nodeb_controller.go +++ b/E2Manager/controllers/nodeb_controller.go @@ -32,7 +32,7 @@ import ( "github.com/go-ozzo/ozzo-validation" "github.com/go-ozzo/ozzo-validation/is" "github.com/golang/protobuf/jsonpb" - "github.com/julienschmidt/httprouter" + "github.com/gorilla/mux" "net/http" "net/http/httputil" "strings" @@ -58,6 +58,13 @@ var E2Sessions = make(sessions.E2Sessions) var messageChannel chan *models.E2RequestMessage var errorChannel chan error +type INodebController interface { + HandleRequest(writer http.ResponseWriter, request *http.Request) + GetNodebIdList (writer http.ResponseWriter, request *http.Request) + GetNodeb(writer http.ResponseWriter, request *http.Request) + HandleHealthCheckRequest(writer http.ResponseWriter, request *http.Request) +} + type NodebController struct { rmrService *services.RmrService Logger *logger.Logger @@ -65,8 +72,7 @@ type NodebController struct { rnibWriterProvider func() rNibWriter.RNibWriter } -func NewNodebController(logger *logger.Logger, rmrService *services.RmrService, rnibReaderProvider func() reader.RNibReader, - rnibWriterProvider func() rNibWriter.RNibWriter) *NodebController { +func NewNodebController(logger *logger.Logger, rmrService *services.RmrService, rnibReaderProvider func() reader.RNibReader, rnibWriterProvider func() rNibWriter.RNibWriter) *NodebController { messageChannel = make(chan *models.E2RequestMessage) errorChannel = make(chan error) return &NodebController{ @@ -83,11 +89,12 @@ func prettifyRequest(request *http.Request) string { return strings.Replace(requestPrettyPrint, "\n", "", -1) } -func (rc NodebController) HandleRequest(writer http.ResponseWriter, request *http.Request, params httprouter.Params) { +func (rc NodebController) HandleRequest(writer http.ResponseWriter, request *http.Request) { startTime := time.Now() rc.Logger.Infof("[Client -> E2 Manager] #nodeb_controller.HandleRequest - request: %v", prettifyRequest(request)) - messageTypeParam := params.ByName("messageType") + vars := mux.Vars(request) + messageTypeParam := vars["messageType"] requestHandlerProvider := httpmsghandlerprovider.NewRequestHandlerProvider(rc.rnibWriterProvider) handler, err := requestHandlerProvider.GetHandler(rc.Logger, messageTypeParam) @@ -138,7 +145,7 @@ func (rc NodebController) HandleRequest(writer http.ResponseWriter, request *htt printHandlingRequestElapsedTimeInMs(rc.Logger, startTime) } -func (rc NodebController) GetNodebIdList(writer http.ResponseWriter, request *http.Request, params httprouter.Params) { +func (rc NodebController) GetNodebIdList (writer http.ResponseWriter, request *http.Request) { startTime := time.Now() rnibReaderService := services.NewRnibReaderService(rc.rnibReaderProvider) nodebIdList, rnibError := rnibReaderService.GetNodebIdList() @@ -150,7 +157,7 @@ func (rc NodebController) GetNodebIdList(writer http.ResponseWriter, request *ht return; } - pmList := utils.ConvertNodebIdListToProtoMessageList(*nodebIdList) + pmList := utils.ConvertNodebIdListToProtoMessageList(nodebIdList) result, err := utils.MarshalProtoMessageListToJsonArray(pmList) if err != nil { @@ -164,9 +171,10 @@ func (rc NodebController) GetNodebIdList(writer http.ResponseWriter, request *ht writer.Write([]byte(result)) } -func (rc NodebController) GetNodeb(writer http.ResponseWriter, request *http.Request, params httprouter.Params) { +func (rc NodebController) GetNodeb(writer http.ResponseWriter, request *http.Request) { startTime := time.Now() - ranName := params.ByName("ranName") + vars := mux.Vars(request) + ranName := vars["ranName"] // WAS: respondingNode, rnibError := reader.GetRNibReader().GetNodeb(ranName) rnibReaderService := services.NewRnibReaderService(rc.rnibReaderProvider); respondingNode, rnibError := rnibReaderService.GetNodeb(ranName) @@ -191,7 +199,7 @@ func (rc NodebController) GetNodeb(writer http.ResponseWriter, request *http.Req writer.Write([]byte(result)) } -func (rc NodebController) HandleHealthCheckRequest(writer http.ResponseWriter, request *http.Request, params httprouter.Params) { +func (rc NodebController) HandleHealthCheckRequest(writer http.ResponseWriter, request *http.Request) { //fmt.Println("[X-APP -> Client] #HandleHealthCheckRequest - http status: 200") writer.WriteHeader(http.StatusOK) } @@ -241,13 +249,13 @@ func printHandlingRequestElapsedTimeInMs(logger *logger.Logger, startTime time.T float64(time.Since(startTime))/float64(time.Millisecond)) } -func rnibErrorToHttpError(rnibError common.IRNibError) (int, int, string) { - switch rnibError.GetCode() { - case common.RESOURCE_NOT_FOUND: +func rnibErrorToHttpError(rnibError error) (int, int, string) { + switch rnibError.(type) { + case *common.ResourceNotFoundError: return http.StatusNotFound, notFoundErrorCode, notFoundErrorMessage - case common.INTERNAL_ERROR: + case *common.InternalError: return http.StatusInternalServerError, internalErrorCode, internalErrorMessage - case common.VALIDATION_ERROR: + case *common.ValidationError: return http.StatusBadRequest, validationErrorCode, validationFailedMessage default: return http.StatusInternalServerError, internalErrorCode, internalErrorMessage