X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=dmaap-mediator-producer%2Finternal%2Fserver%2Fserver.go;h=8c5577d7fe0df3b3a8354bf9e5f6f9839ea08e82;hb=abb00c806fb82a861cd1edebe0914fdfcf24e0a7;hp=79646c29a30de120bda47d265b6f076365dde6e2;hpb=0f6367023720ecc7d7b4b38cbbc4282792172a89;p=nonrtric.git diff --git a/dmaap-mediator-producer/internal/server/server.go b/dmaap-mediator-producer/internal/server/server.go index 79646c29..8c5577d7 100644 --- a/dmaap-mediator-producer/internal/server/server.go +++ b/dmaap-mediator-producer/internal/server/server.go @@ -27,6 +27,7 @@ import ( "net/http" "github.com/gorilla/mux" + log "github.com/sirupsen/logrus" "oransc.org/nonrtric/dmaapmediatorproducer/internal/jobs" ) @@ -34,6 +35,8 @@ const StatusPath = "/status" const AddJobPath = "/jobs" const jobIdToken = "infoJobId" const deleteJobPath = AddJobPath + "/{" + jobIdToken + "}" +const logLevelToken = "level" +const logAdminPath = "/admin/log" type ProducerCallbackHandler struct { jobsManager jobs.JobsManager @@ -51,6 +54,7 @@ func NewRouter(jm jobs.JobsManager) *mux.Router { r.HandleFunc(StatusPath, statusHandler).Methods(http.MethodGet).Name("status") r.HandleFunc(AddJobPath, callbackHandler.addInfoJobHandler).Methods(http.MethodPost).Name("add") r.HandleFunc(deleteJobPath, callbackHandler.deleteInfoJobHandler).Methods(http.MethodDelete).Name("delete") + r.HandleFunc(logAdminPath, callbackHandler.setLogLevel).Methods(http.MethodPut).Name("setLogLevel") r.NotFoundHandler = ¬FoundHandler{} r.MethodNotAllowedHandler = &methodNotAllowedHandler{} return r @@ -87,6 +91,17 @@ func (h *ProducerCallbackHandler) deleteInfoJobHandler(w http.ResponseWriter, r h.jobsManager.DeleteJobFromRESTCall(id) } +func (h *ProducerCallbackHandler) setLogLevel(w http.ResponseWriter, r *http.Request) { + query := r.URL.Query() + logLevelStr := query.Get(logLevelToken) + if loglevel, err := log.ParseLevel(logLevelStr); err == nil { + log.SetLevel(loglevel) + } else { + http.Error(w, fmt.Sprintf("Invalid log level: %v. Log level will not be changed!", logLevelStr), http.StatusBadRequest) + return + } +} + type notFoundHandler struct{} func (h *notFoundHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {