X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=test%2Fusecases%2Foruclosedlooprecovery%2Fgoversion%2Fstub%2Fproducer%2Fproducerstub.go;h=e219e19d926834bdd1e0290486165003ea9298d3;hb=5b26de71a0aae08360a38477150551651a7ef734;hp=78462ba2aef4935c3a34057567a95d3c5208f6a4;hpb=afe34e22e0be919b8e054826c23c551b4e493f79;p=nonrtric.git diff --git a/test/usecases/oruclosedlooprecovery/goversion/stub/producer/producerstub.go b/test/usecases/oruclosedlooprecovery/goversion/stub/producer/producerstub.go index 78462ba2..e219e19d 100644 --- a/test/usecases/oruclosedlooprecovery/goversion/stub/producer/producerstub.go +++ b/test/usecases/oruclosedlooprecovery/goversion/stub/producer/producerstub.go @@ -23,13 +23,51 @@ package main import ( "bytes" "encoding/json" + "fmt" "net/http" "time" + "github.com/gorilla/mux" "oransc.org/usecase/oruclosedloop/internal/ves" ) +var started bool + func main() { + r := mux.NewRouter() + r.HandleFunc("/create/{jobId}", createJobHandler).Methods(http.MethodPut) + r.HandleFunc("/delete/{jobId}", deleteJobHandler).Methods(http.MethodDelete) + + fmt.Println("Listening on port 8085") + fmt.Println(http.ListenAndServe(":8085", r)) +} + +func createJobHandler(w http.ResponseWriter, r *http.Request) { + vars := mux.Vars(r) + id, ok := vars["jobId"] + if !ok { + http.Error(w, "No job ID provided", http.StatusBadRequest) + return + } + + started = true + fmt.Println("Start pushing messages for job: ", id) + go startPushingMessages() +} + +func deleteJobHandler(w http.ResponseWriter, r *http.Request) { + vars := mux.Vars(r) + id, ok := vars["jobId"] + if !ok { + http.Error(w, "No job ID provided", http.StatusBadRequest) + return + } + + fmt.Println("Stop pushing messages for job: ", id) + started = false +} + +func startPushingMessages() { message := ves.FaultMessage{ Event: ves.Event{ CommonEventHeader: ves.CommonEventHeader{ @@ -41,12 +79,16 @@ func main() { }, }, } + client := &http.Client{ Timeout: 5 * time.Second, } critical := true for range time.Tick(2 * time.Second) { + if !started { + break + } if critical { message.Event.FaultFields.EventSeverity = "CRITICAL" critical = false @@ -60,7 +102,10 @@ func main() { req, _ := http.NewRequest(http.MethodPost, "http://localhost:40935", bytes.NewBuffer(msgToSend)) req.Header.Set("Content-Type", "application/json; charset=utf-8") - client.Do(req) + r, err := client.Do(req) + if err != nil { + fmt.Println("Error sending to consumer: ", err) + } + fmt.Printf("Sent %v message to consumer. Got response %v\n", message.Event.FaultFields.EventSeverity, r.Status) } - }