Merge "NONRTRIC - Enrichment Coordinator Service, Changed error codes"
[nonrtric.git] / dmaap-mediator-producer / simulator / consumersimulator.go
index 25421ae..03da6f4 100644 (file)
 package main
 
 import (
+       "encoding/json"
+       "flag"
        "fmt"
        "io"
        http "net/http"
+       "time"
+
+       "oransc.org/nonrtric/dmaapmediatorproducer/internal/restclient"
 )
 
-func handleData(w http.ResponseWriter, req *http.Request) {
-       defer req.Body.Close()
-       if reqData, err := io.ReadAll(req.Body); err == nil {
-               fmt.Printf("Consumer received body: %v\n", string(reqData))
-       }
-}
+var httpClient http.Client
 
 func main() {
+       httpClient = http.Client{
+               Timeout: time.Second * 5,
+       }
+       port := flag.Int("port", 40935, "The port this consumer will listen on")
+       flag.Parse()
        http.HandleFunc("/jobs", handleData)
 
-       http.ListenAndServe(":40935", nil)
+       registerJob(*port)
+
+       fmt.Print("Starting consumer on port: ", *port)
+       http.ListenAndServe(fmt.Sprintf(":%v", *port), nil)
+}
+
+func registerJob(port int) {
+       jobInfo := struct {
+               JobOwner      string `json:"job_owner"`
+               JobResultUri  string `json:"job_result_uri"`
+               InfoTypeId    string `json:"info_type_id"`
+               JobDefinition string `json:"job_definition"`
+       }{fmt.Sprintf("test%v", port), fmt.Sprintf("http://localhost:%v/jobs", port), "STD_Fault_Messages", "{}"}
+       fmt.Print("Registering consumer: ", jobInfo)
+       body, _ := json.Marshal(jobInfo)
+       putErr := restclient.Put(fmt.Sprintf("http://localhost:8083/data-consumer/v1/info-jobs/job%v", port), body, &httpClient)
+       if putErr != nil {
+               fmt.Printf("Unable to register consumer: %v", putErr)
+       }
+}
+
+func handleData(w http.ResponseWriter, req *http.Request) {
+       defer req.Body.Close()
+       if reqData, err := io.ReadAll(req.Body); err == nil {
+               fmt.Print("Consumer received body: ", string(reqData))
+       }
 }