X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=dmaap-mediator-producer%2Fstub%2Fconsumer%2Fconsumerstub.go;fp=dmaap-mediator-producer%2Fstub%2Fconsumer%2Fconsumerstub.go;h=03e67c02591fb373204b73c6cce8795c2deabe50;hb=6e0d5846a1f6d938605a4afa7f392d97ac2ba8bc;hp=0000000000000000000000000000000000000000;hpb=11b500e83e30dbd4bd39be88db4291d643607592;p=nonrtric.git diff --git a/dmaap-mediator-producer/stub/consumer/consumerstub.go b/dmaap-mediator-producer/stub/consumer/consumerstub.go new file mode 100644 index 00000000..03e67c02 --- /dev/null +++ b/dmaap-mediator-producer/stub/consumer/consumerstub.go @@ -0,0 +1,75 @@ +// - +// ========================LICENSE_START================================= +// O-RAN-SC +// %% +// Copyright (C) 2021: Nordix Foundation +// %% +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ========================LICENSE_END=================================== +// + +package main + +import ( + "encoding/json" + "flag" + "fmt" + "io" + http "net/http" + "time" + + "oransc.org/nonrtric/dmaapmediatorproducer/internal/restclient" +) + +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) + + 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"` + }{ + JobOwner: fmt.Sprintf("test%v", port), + JobResultUri: fmt.Sprintf("http://localhost:%v/jobs", port), + InfoTypeId: "STD_Fault_Messages", + JobDefinition: "{}", + } + 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.Println("Consumer received body: ", string(reqData)) + } +}