X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=tools%2Fxappmock%2Fmain%2Fxappmock.go;h=8ae62f7485a0231974c6694c1fb87c37e5a21aaa;hb=78d25790b63bd8de394108e6d0211a671ea960c8;hp=196d1e24c94c39334b606786243043a1516a970c;hpb=bcb124908ffd1de0c00868838bbac733b881fcb2;p=ric-plt%2Fe2mgr.git diff --git a/tools/xappmock/main/xappmock.go b/tools/xappmock/main/xappmock.go index 196d1e2..8ae62f7 100644 --- a/tools/xappmock/main/xappmock.go +++ b/tools/xappmock/main/xappmock.go @@ -19,14 +19,16 @@ package main import ( "context" "flag" - "log" + "fmt" "os" "os/signal" "strconv" "time" "xappmock/dispatcher" "xappmock/frontend" + "xappmock/logger" "xappmock/rmr" + "xappmock/sender" ) const ( @@ -37,29 +39,39 @@ const ( var rmrService *rmr.Service func main() { + + logLevel, _ := logger.LogLevelTokenToLevel("info") + logger, err := logger.InitLogger(logLevel) + if err != nil { + fmt.Printf("#app.main - failed to initialize logger, error: %s", err) + os.Exit(1) + } + var rmrContext *rmr.Context var rmrConfig = rmr.Config{Port: RMR_PORT_DEFAULT, MaxMsgSize: rmr.RMR_MAX_MSG_SIZE, MaxRetries: 10, Flags: 0} if port, err := strconv.ParseUint(os.Getenv(ENV_RMR_PORT), 10, 16); err == nil { rmrConfig.Port = int(port) } else { - log.Printf("#main - %s: %s, using default (%d).", ENV_RMR_PORT, err, RMR_PORT_DEFAULT) + logger.Infof("#main - %s: %s, using default (%d).", ENV_RMR_PORT, err, RMR_PORT_DEFAULT) } rmrService = rmr.NewService(rmrConfig, rmrContext) - dispatcherDesc := dispatcher.New(rmrService) + jsonSender := sender.NewJsonSender(logger) + dispatcherDesc := dispatcher.New(logger, rmrService, jsonSender) /* Load configuration file*/ - err := frontend.ProcessConfigurationFile("resources", "conf", ".json", + err = frontend.ProcessConfigurationFile("resources", "conf", ".json", func(data []byte) error { return frontend.JsonCommandsDecoder(data, dispatcherDesc.JsonCommandsDecoderCB) }) if err != nil { - log.Fatalf("#main - processing error: %s", err) + logger.Errorf("#main - processing error: %s", err) + os.Exit(1) } - log.Print("#main - xApp Mock is up and running...") + logger.Infof("#main - xApp Mock is up and running...") flag.Parse() cmd := flag.Arg(0) /*first remaining argument after flags have been processed*/ @@ -67,9 +79,9 @@ func main() { command, err := frontend.DecodeJsonCommand([]byte(cmd)) if err != nil { - log.Printf("#main - command decoding error: %s", err) + logger.Errorf("#main - command decoding error: %s", err) rmrService.CloseContext() - log.Print("#main - xApp Mock is down") + logger.Infof("#main - xApp Mock is down") return } @@ -79,24 +91,25 @@ func main() { go func() { oscall := <-c - log.Printf("system call:%+v", oscall) + logger.Infof("system call:%+v", oscall) cancel() rmrService.CloseContext() }() - processStartTime := time.Now() dispatcherDesc.ProcessJsonCommand(ctx, command) pr := dispatcherDesc.GetProcessResult() if pr.Err != nil { - log.Printf("#main - command processing Error: %s", err) + logger.Errorf("#main - command processing Error: %s", pr.Err) } - processElapsedTimeInMs := float64(time.Since(processStartTime)) / float64(time.Millisecond) + if pr.StartTime != nil { + processElapsedTimeInMs := float64(time.Since(*pr.StartTime)) / float64(time.Millisecond) + logger.Infof("#main - processing (sending/receiving) messages took %.2f ms", processElapsedTimeInMs) - log.Printf("#main - processing (sending/receiving) messages took %.2f ms", processElapsedTimeInMs) - log.Printf("#main - process result: %s", pr) + } + logger.Infof("#main - process stats: %s", pr.Stats) rmrService.CloseContext() // TODO: called twice - log.Print("#main - xApp Mock is down") + logger.Infof("#main - xApp Mock is down") }