X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=E2Manager%2Fcontrollers%2Fnodeb_controller.go;h=c0f8541812fed2c6195f945a3e20ec19cb38337f;hb=79fa3a3a2b555c8b43792f9a3ae6128ddedd75a2;hp=a3286f8eb5478a49d924cc58c26cde58b5c7e1ec;hpb=db6e3782b706e0f94f71f324623649e36aee8059;p=ric-plt%2Fe2mgr.git diff --git a/E2Manager/controllers/nodeb_controller.go b/E2Manager/controllers/nodeb_controller.go index a3286f8..c0f8541 100644 --- a/E2Manager/controllers/nodeb_controller.go +++ b/E2Manager/controllers/nodeb_controller.go @@ -20,7 +20,7 @@ package controllers import ( "e2mgr/logger" "e2mgr/models" - "e2mgr/providers" + "e2mgr/providers/httpmsghandlerprovider" "e2mgr/rNibWriter" "e2mgr/services" "e2mgr/sessions" @@ -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 @@ -77,19 +84,19 @@ func NewNodebController(logger *logger.Logger, rmrService *services.RmrService, } } - func prettifyRequest(request *http.Request) string { dump, _ := httputil.DumpRequest(request, true) requestPrettyPrint := strings.Replace(string(dump), "\r\n", " ", -1) 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") - requestHandlerProvider := providers.NewRequestHandlerProvider(rc.rnibWriterProvider) + vars := mux.Vars(request) + messageTypeParam := vars["messageType"] + requestHandlerProvider := httpmsghandlerprovider.NewRequestHandlerProvider(rc.rnibWriterProvider) handler, err := requestHandlerProvider.GetHandler(rc.Logger, messageTypeParam) if err != nil { @@ -139,7 +146,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() @@ -147,16 +154,16 @@ func (rc NodebController) GetNodebIdList (writer http.ResponseWriter, request *h if rnibError != nil { rc.Logger.Errorf("%v", rnibError); httpStatusCode, errorCode, errorMessage := rnibErrorToHttpError(rnibError) - handleErrorResponse(rc.Logger,httpStatusCode,errorCode,errorMessage,writer,startTime ) + handleErrorResponse(rc.Logger, httpStatusCode, errorCode, errorMessage, writer, startTime) return; } - pmList:= utils.ConvertNodebIdListToProtoMessageList(*nodebIdList) + pmList := utils.ConvertNodebIdListToProtoMessageList(nodebIdList) result, err := utils.MarshalProtoMessageListToJsonArray(pmList) if err != nil { rc.Logger.Errorf("%v", err); - handleErrorResponse(rc.Logger,http.StatusInternalServerError,internalErrorCode,internalErrorMessage,writer,startTime ) + handleErrorResponse(rc.Logger, http.StatusInternalServerError, internalErrorCode, internalErrorMessage, writer, startTime) return; } @@ -165,9 +172,10 @@ func (rc NodebController) GetNodebIdList (writer http.ResponseWriter, request *h 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) @@ -192,7 +200,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) }