X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=E2Manager%2Fcontrollers%2Fcontroller.go;h=7682721415079b07890e8e9d13b90effd54abd60;hb=574c21e37f9e740579227c81c22253b8c7aa5404;hp=0e13d0d6a2319a5ccc7d5870ba9106ef48889f87;hpb=b0f79cbf6bd94b81743e4109a4ae505b81263f48;p=ric-plt%2Fe2mgr.git diff --git a/E2Manager/controllers/controller.go b/E2Manager/controllers/controller.go index 0e13d0d..7682721 100644 --- a/E2Manager/controllers/controller.go +++ b/E2Manager/controllers/controller.go @@ -28,7 +28,6 @@ import ( "encoding/json" "gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/reader" "github.com/julienschmidt/httprouter" - "io" "net/http" "time" ) @@ -52,15 +51,17 @@ func NewController(logger *logger.Logger, rmrService *services.RmrService, rNibR } func (c *Controller)ShutdownHandler(writer http.ResponseWriter, r *http.Request, params httprouter.Params){ - + c.logger.Infof("[Client -> E2 Manager] #controller.ShutdownHandler - request: %v", prettifyRequest(r)) c.handleRequest(writer, &r.Header, providers.ShutdownRequest,nil, false, http.StatusNoContent) } func (c *Controller) X2ResetHandler(writer http.ResponseWriter, r *http.Request, params httprouter.Params){ startTime := time.Now() + c.logger.Infof("[Client -> E2 Manager] #controller.X2ResetHandler - request: %v", prettifyRequest(r)) request:= models.ResetRequest{} ranName:= params.ByName(ParamRanName) - if !c.extractJsonBody(r.Body, &request, writer){ + + if !c.extractJsonBody(r, &request, writer){ return } request.RanName = ranName @@ -68,15 +69,20 @@ func (c *Controller) X2ResetHandler(writer http.ResponseWriter, r *http.Request, c.handleRequest(writer, &r.Header, providers.ResetRequest, request, false, http.StatusNoContent) } -func (c *Controller) extractJsonBody(body io.Reader, request models.Request, writer http.ResponseWriter) bool{ - decoder := json.NewDecoder(body) - if err:= decoder.Decode(request); err != nil { +func (c *Controller) extractJsonBody(r *http.Request, request models.Request, writer http.ResponseWriter) bool{ + if r.ContentLength <= 0 { + return true + } + + decoder := json.NewDecoder(r.Body) + if err := decoder.Decode(request); err != nil { if err != nil { c.logger.Errorf("[Client -> E2 Manager] #controller.extractJsonBody - unable to extract json body - error: %s", err) c.handleErrorResponse(e2managererrors.NewRequestValidationError(), writer) return false } } + return true } @@ -158,7 +164,7 @@ func (c *Controller) handleErrorResponse(err error, writer http.ResponseWriter){ httpError = http.StatusNotFound default: - e2Error, _ := err.(*e2managererrors.InternalError) + e2Error := e2managererrors.NewInternalError() errorResponseDetails = models.ErrorResponse{Code: e2Error.Err.Code, Message: e2Error.Err.Message} httpError = http.StatusInternalServerError }