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))
+ }
}