X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=dmaap-mediator-producer%2Finternal%2Fserver%2Fserver.go;h=bc4a1dabfb55975f33e0a181b9e80488b41916bf;hb=8170f78af913d337f874477ba5dd93411e9e69da;hp=8c5577d7fe0df3b3a8354bf9e5f6f9839ea08e82;hpb=5feecd881172a3b22041d35443c1f946e7d5f63e;p=nonrtric.git diff --git a/dmaap-mediator-producer/internal/server/server.go b/dmaap-mediator-producer/internal/server/server.go index 8c5577d7..bc4a1dab 100644 --- a/dmaap-mediator-producer/internal/server/server.go +++ b/dmaap-mediator-producer/internal/server/server.go @@ -31,8 +31,8 @@ import ( "oransc.org/nonrtric/dmaapmediatorproducer/internal/jobs" ) -const StatusPath = "/status" -const AddJobPath = "/jobs" +const HealthCheckPath = "/health_check" +const AddJobPath = "/info_job" const jobIdToken = "infoJobId" const deleteJobPath = AddJobPath + "/{" + jobIdToken + "}" const logLevelToken = "level" @@ -48,10 +48,10 @@ func NewProducerCallbackHandler(jm jobs.JobsManager) *ProducerCallbackHandler { } } -func NewRouter(jm jobs.JobsManager) *mux.Router { +func NewRouter(jm jobs.JobsManager, hcf func(http.ResponseWriter, *http.Request)) *mux.Router { callbackHandler := NewProducerCallbackHandler(jm) r := mux.NewRouter() - r.HandleFunc(StatusPath, statusHandler).Methods(http.MethodGet).Name("status") + r.HandleFunc(HealthCheckPath, hcf).Methods(http.MethodGet).Name("health_check") 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") @@ -60,10 +60,14 @@ func NewRouter(jm jobs.JobsManager) *mux.Router { return r } -func statusHandler(w http.ResponseWriter, r *http.Request) { - // Just respond OK to show the server is alive for now. Might be extended later. -} - +// @Summary Add info job +// @Description Callback for ICS to add an info job +// @Tags Data producer (callbacks) +// @Accept json +// @Param user body jobs.JobInfo true "Info job data" +// @Success 200 +// @Failure 400 {string} Cause of error +// @Router /info_job [post] func (h *ProducerCallbackHandler) addInfoJobHandler(w http.ResponseWriter, r *http.Request) { b, readErr := ioutil.ReadAll(r.Body) if readErr != nil { @@ -80,6 +84,12 @@ func (h *ProducerCallbackHandler) addInfoJobHandler(w http.ResponseWriter, r *ht } } +// @Summary Delete info job +// @Description Callback for ICS to delete an info job +// @Tags Data producer (callbacks) +// @Param infoJobId path string true "Info job ID" +// @Success 200 +// @Router /info_job/{infoJobId} [delete] func (h *ProducerCallbackHandler) deleteInfoJobHandler(w http.ResponseWriter, r *http.Request) { vars := mux.Vars(r) id, ok := vars[jobIdToken] @@ -91,6 +101,13 @@ func (h *ProducerCallbackHandler) deleteInfoJobHandler(w http.ResponseWriter, r h.jobsManager.DeleteJobFromRESTCall(id) } +// @Summary Set log level +// @Description Set the log level of the producer. +// @Tags Admin +// @Param level query string false "string enums" Enums(Error, Warn, Info, Debug) +// @Success 200 +// @Failure 400 {string} Cause of error +// @Router /admin/log [put] func (h *ProducerCallbackHandler) setLogLevel(w http.ResponseWriter, r *http.Request) { query := r.URL.Query() logLevelStr := query.Get(logLevelToken)