X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;ds=sidebyside;f=dmaap-mediator-producer%2Fmain.go;h=3fe92dca211514d2d15b4ff268d7fcffcb06f5c3;hb=e702c19d34c342e75993e169c261f9087cc0643f;hp=b357f6962418fc3cce537489122fe6946a7d3cd5;hpb=64654a9b0e63b7e36249bef4f542cdf7fac56020;p=nonrtric.git diff --git a/dmaap-mediator-producer/main.go b/dmaap-mediator-producer/main.go index b357f696..3fe92dca 100644 --- a/dmaap-mediator-producer/main.go +++ b/dmaap-mediator-producer/main.go @@ -22,11 +22,11 @@ package main import ( "fmt" - "net/http" + "sync" log "github.com/sirupsen/logrus" "oransc.org/nonrtric/dmaapmediatorproducer/internal/config" - "oransc.org/nonrtric/dmaapmediatorproducer/internal/jobtypes" + "oransc.org/nonrtric/dmaapmediatorproducer/internal/jobs" "oransc.org/nonrtric/dmaapmediatorproducer/internal/server" ) @@ -54,7 +54,7 @@ func init() { jobInfoCallbackAddress = fmt.Sprintf("%v:%v", configuration.InfoJobCallbackHost, configuration.InfoJobCallbackPort) registrator := config.NewRegistratorImpl(configuration.InfoCoordinatorAddress) - if types, err := jobtypes.GetTypes(); err == nil { + if types, err := jobs.GetTypes(); err == nil { if regErr := registrator.RegisterTypes(types); regErr != nil { log.Fatalf("Unable to register all types due to: %v", regErr) } @@ -63,7 +63,7 @@ func init() { } producer := config.ProducerRegistrationInfo{ InfoProducerSupervisionCallbackUrl: supervisionCallbackAddress, - SupportedInfoTypes: jobtypes.GetSupportedTypes(), + SupportedInfoTypes: jobs.GetSupportedTypes(), InfoJobCallbackUrl: jobInfoCallbackAddress, } if err := registrator.RegisterProducer("DMaaP_Mediator_Producer", &producer); err != nil { @@ -73,11 +73,25 @@ func init() { func main() { log.Debug("Starting DMaaP Mediator Producer") + wg := new(sync.WaitGroup) + + // add two goroutines to `wg` WaitGroup, one for each avilable server + wg.Add(2) + log.Debugf("Starting status callback server at port %v", configuration.InfoProducerSupervisionCallbackPort) - http.HandleFunc("/", server.StatusHandler) + go func() { + server := server.CreateServer(configuration.InfoProducerSupervisionCallbackPort, server.StatusHandler) + log.Warn(server.ListenAndServe()) + wg.Done() + }() - if err := http.ListenAndServe(":"+configuration.InfoProducerSupervisionCallbackPort, nil); err != nil { - log.Fatal(err) - } + go func() { + server := server.CreateServer(configuration.InfoJobCallbackPort, server.CreateInfoJobHandler) + log.Warn(server.ListenAndServe()) + wg.Done() + }() + + // wait until WaitGroup is done + wg.Wait() log.Debug("Stopping DMaaP Mediator Producer") }