From 165f62f4ff6e7ae731be1b4c889a5d004733b294 Mon Sep 17 00:00:00 2001 From: gab-arrobo Date: Wed, 2 Oct 2024 17:23:08 -0700 Subject: [PATCH] Replace `logrus` with `zap` logger (#148) * Replace `logrus` with `zap` logger Signed-off-by: Arrobo, Gabriel * Create release Signed-off-by: Arrobo, Gabriel --------- Signed-off-by: Arrobo, Gabriel --- VERSION | 2 +- consumer/nf_management.go | 12 +- eventexposure/routers.go | 4 +- factory/udm_config_test.go | 5 +- go.mod | 6 +- go.sum | 9 +- httpcallback/router.go | 8 +- logger/logger.go | 120 +++++++------ .../api_subscription_data_update_test.go | 12 +- parameterprovision/routers.go | 4 +- producer/callback.go | 20 +-- producer/generate_auth_data.go | 79 +++------ producer/parameter_provision.go | 9 +- producer/subscriber_data_management.go | 158 ++++-------------- producer/ue_context_management.go | 70 +------- service/init.go | 87 ++++------ subscribecallback/router.go | 2 +- subscriberdatamanagement/routers.go | 4 +- udm.go | 6 +- udmtests/udm_nf_discovery_test.go | 32 ++-- ueauthentication/routers.go | 8 +- ..._gpp_access_registration_info_retrieval.go | 1 - .../api_amf_registration_for3_gpp_access.go | 1 - ...in_the_amf_registration_for3_gpp_access.go | 1 - uecontextmanagement/routers.go | 4 +- 25 files changed, 225 insertions(+), 439 deletions(-) diff --git a/VERSION b/VERSION index 2847639..bc80560 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.4.4-dev +1.5.0 diff --git a/consumer/nf_management.go b/consumer/nf_management.go index 94d6608..229b474 100644 --- a/consumer/nf_management.go +++ b/consumer/nf_management.go @@ -48,7 +48,6 @@ func BuildNFInstance(udmContext *udmContext.UDMContext) (profile models.NfProfil return } profile.Ipv4Addresses = append(profile.Ipv4Addresses, udmContext.RegisterIPv4) - return } @@ -63,8 +62,7 @@ var SendRegisterNFInstance = func(nrfUri, nfInstanceId string, profile models.Nf for { prof, res, err = client.NFInstanceIDDocumentApi.RegisterNFInstance(context.TODO(), nfInstanceId, profile) if err != nil || res == nil { - // TODO : add log - fmt.Println(fmt.Errorf("UDM register to NRF Error[%v]", err.Error())) + logger.ConsumerLog.Errorf("UDM register to NRF Error[%v]", err.Error()) time.Sleep(2 * time.Second) continue } @@ -92,7 +90,7 @@ var SendRegisterNFInstance = func(nrfUri, nfInstanceId string, profile models.Nf } func SendDeregisterNFInstance() (problemDetails *models.ProblemDetails, err error) { - logger.ConsumerLog.Infof("Send Deregister NFInstance") + logger.ConsumerLog.Infoln("send Deregister NFInstance") udmSelf := udmContext.UDM_Self() // Set client and set url @@ -124,7 +122,7 @@ func SendDeregisterNFInstance() (problemDetails *models.ProblemDetails, err erro } var SendUpdateNFInstance = func(patchItem []models.PatchItem) (nfProfile models.NfProfile, problemDetails *models.ProblemDetails, err error) { - logger.ConsumerLog.Debugf("Send Update NFInstance") + logger.ConsumerLog.Debugln("send Update NFInstance") udmSelf := udmContext.UDM_Self() configuration := Nnrf_NFManagement.NewConfiguration() @@ -154,7 +152,7 @@ var SendUpdateNFInstance = func(patchItem []models.PatchItem) (nfProfile models. } func SendCreateSubscription(nrfUri string, nrfSubscriptionData models.NrfSubscriptionData) (nrfSubData models.NrfSubscriptionData, problemDetails *models.ProblemDetails, err error) { - logger.ConsumerLog.Debugf("Send Create Subscription") + logger.ConsumerLog.Debugln("send Create Subscription") // Set client and set url configuration := Nnrf_NFManagement.NewConfiguration() @@ -184,7 +182,7 @@ func SendCreateSubscription(nrfUri string, nrfSubscriptionData models.NrfSubscri } func SendRemoveSubscription(subscriptionId string) (problemDetails *models.ProblemDetails, err error) { - logger.ConsumerLog.Infoln("Send Remove Subscription") + logger.ConsumerLog.Infoln("send Remove Subscription") udmSelf := udmContext.UDM_Self() // Set client and set url diff --git a/eventexposure/routers.go b/eventexposure/routers.go index c4f3ed8..bf6565f 100644 --- a/eventexposure/routers.go +++ b/eventexposure/routers.go @@ -21,7 +21,7 @@ import ( "github.com/gin-gonic/gin" "github.com/omec-project/udm/logger" - logger_util "github.com/omec-project/util/logger" + utilLogger "github.com/omec-project/util/logger" ) // Route is the information for every URI. @@ -41,7 +41,7 @@ type Routes []Route // NewRouter returns a new router. func NewRouter() *gin.Engine { - router := logger_util.NewGinWithLogrus(logger.GinLog) + router := utilLogger.NewGinWithZap(logger.GinLog) AddService(router) return router } diff --git a/factory/udm_config_test.go b/factory/udm_config_test.go index 33b2312..56aaf2c 100644 --- a/factory/udm_config_test.go +++ b/factory/udm_config_test.go @@ -7,7 +7,6 @@ package factory import ( - "fmt" "testing" "github.com/stretchr/testify/assert" @@ -16,7 +15,7 @@ import ( // Webui URL is not set then default Webui URL value is returned func TestGetDefaultWebuiUrl(t *testing.T) { if err := InitConfigFactory("udmcfg.yaml"); err != nil { - fmt.Printf("Error in InitConfigFactory: %v\n", err) + t.Logf("error in InitConfigFactory: %v", err) } got := UdmConfig.Configuration.WebuiUri want := "webui:9876" @@ -26,7 +25,7 @@ func TestGetDefaultWebuiUrl(t *testing.T) { // Webui URL is set to a custom value then custom Webui URL is returned func TestGetCustomWebuiUrl(t *testing.T) { if err := InitConfigFactory("udmcfg_with_custom_webui_url.yaml"); err != nil { - fmt.Printf("Error in InitConfigFactory: %v\n", err) + t.Logf("error in InitConfigFactory: %v", err) } got := UdmConfig.Configuration.WebuiUri want := "myspecialwebui:9872" diff --git a/go.mod b/go.mod index 55361bc..31f8541 100644 --- a/go.mod +++ b/go.mod @@ -4,16 +4,15 @@ go 1.21 require ( github.com/antihax/optional v1.0.0 - github.com/antonfisher/nested-logrus-formatter v1.3.1 github.com/gin-gonic/gin v1.10.0 github.com/google/uuid v1.6.0 github.com/omec-project/config5g v1.5.0 github.com/omec-project/openapi v1.3.1 - github.com/omec-project/util v1.1.0 + github.com/omec-project/util v1.2.1 github.com/prometheus/client_golang v1.20.4 - github.com/sirupsen/logrus v1.9.3 github.com/stretchr/testify v1.9.0 github.com/urfave/cli v1.22.15 + go.uber.org/zap v1.27.0 gopkg.in/yaml.v2 v2.4.0 ) @@ -54,7 +53,6 @@ require ( github.com/twitchyliquid64/golang-asm v0.15.1 // indirect github.com/ugorji/go/codec v1.2.12 // indirect go.uber.org/multierr v1.10.0 // indirect - go.uber.org/zap v1.27.0 // indirect golang.org/x/arch v0.8.0 // indirect golang.org/x/crypto v0.27.0 // indirect golang.org/x/net v0.29.0 // indirect diff --git a/go.sum b/go.sum index 457cb5f..92170c6 100644 --- a/go.sum +++ b/go.sum @@ -1,8 +1,6 @@ github.com/BurntSushi/toml v1.3.2/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= github.com/antihax/optional v1.0.0 h1:xK2lYat7ZLaVVcIuj82J8kIro4V6kDe0AUDFboUCwcg= github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= -github.com/antonfisher/nested-logrus-formatter v1.3.1 h1:NFJIr+pzwv5QLHTPyKz9UMEoHck02Q9L0FP13b/xSbQ= -github.com/antonfisher/nested-logrus-formatter v1.3.1/go.mod h1:6WTfyWFkBc9+zyBaKIqRrg/KwMqBbodBjgbHjDz7zjA= github.com/asaskevich/govalidator v0.0.0-20210307081110-f21760c49a8d h1:Byv0BzEl3/e6D5CLfI0j/7hiIEtvGVFPCZ7Ei2oq8iQ= github.com/asaskevich/govalidator v0.0.0-20210307081110-f21760c49a8d/go.mod h1:WaHUgvxTVq04UNunO+XhnAqY/wQc+bxr74GqbsZ/Jqw= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= @@ -80,8 +78,8 @@ github.com/omec-project/config5g v1.5.0 h1:VC7uHIdg4S4F5onYvpFfaEAFBttWwWh6OSnNn github.com/omec-project/config5g v1.5.0/go.mod h1:yTjqsOjy8KQ8o4AlnPeZfP32CEvlm0kug3bMwZ3IDOQ= github.com/omec-project/openapi v1.3.1 h1:NCteMRdMtWnMhf1CXYduuLgeu8fEhc/7XO1CiE7fN3Y= github.com/omec-project/openapi v1.3.1/go.mod h1:cR6Iharp2TLOzEmskQ/EdCVFZnpKh0zTvUSSuyXAYLE= -github.com/omec-project/util v1.1.0 h1:TUuLmzqTLChIEXQlK9g5Ihgmw4FUm/UJnjfu0wT8Gz0= -github.com/omec-project/util v1.1.0/go.mod h1:BEv8nCokB4j0fgAQ6VVkKuQ2PSP3DJMEmz25pFMw5X8= +github.com/omec-project/util v1.2.1 h1:+o5kbnZzKBmbqT4oprVGPgL0jH5b8BvRMfLye5srGQ4= +github.com/omec-project/util v1.2.1/go.mod h1:kUF2LXhmtw+m7Bk5IGOMFLj7CA8VKtilLI/9QBJcfxE= github.com/pelletier/go-toml/v2 v2.2.2 h1:aYUidT7k73Pcl9nb2gScu7NSrKCSHIDE89b3+6Wq+LM= github.com/pelletier/go-toml/v2 v2.2.2/go.mod h1:1t835xjRzz80PqgE6HHgN2JOsmgYu/h4qDAS4n929Rs= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= @@ -100,8 +98,6 @@ github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjR github.com/rogpeppe/go-internal v1.10.0/go.mod h1:UQnix2H7Ngw/k4C5ijL5+65zddjncjaFoBhdsK/akog= github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= -github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= @@ -135,7 +131,6 @@ golang.org/x/net v0.29.0 h1:5ORfpBpCs4HzDYoodCDBbwHzdR5UrLBZ3sOnUJmFoHo= golang.org/x/net v0.29.0/go.mod h1:gLkgy8jTGERgjzMic6DS9+SP0ajcu6Xu3Orq/SpETg0= golang.org/x/oauth2 v0.23.0 h1:PbgcYx2W7i4LvjJWEbf0ngHV6qJYr86PkAV3bXdLEbs= golang.org/x/oauth2 v0.23.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= -golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.25.0 h1:r+8e+loiHxRqhXVl6ML1nO3l1+oFoWbnlu2Ehimmi34= diff --git a/httpcallback/router.go b/httpcallback/router.go index 03e821d..17e946b 100644 --- a/httpcallback/router.go +++ b/httpcallback/router.go @@ -10,11 +10,11 @@ import ( "github.com/gin-gonic/gin" "github.com/omec-project/udm/logger" - logger_util "github.com/omec-project/util/logger" - "github.com/sirupsen/logrus" + utilLogger "github.com/omec-project/util/logger" + "go.uber.org/zap" ) -var HttpLog *logrus.Entry +var HttpLog *zap.SugaredLogger func init() { HttpLog = logger.HttpLog @@ -37,7 +37,7 @@ type Routes []Route // NewRouter returns a new router func NewRouter() *gin.Engine { - router := logger_util.NewGinWithLogrus(logger.GinLog) + router := utilLogger.NewGinWithZap(logger.GinLog) AddService(router) return router } diff --git a/logger/logger.go b/logger/logger.go index 3a9c98b..7c7bb4f 100644 --- a/logger/logger.go +++ b/logger/logger.go @@ -1,74 +1,90 @@ // SPDX-FileCopyrightText: 2021 Open Networking Foundation // Copyright 2019 free5GC.org // SPDX-FileCopyrightText: 2024 Canonical Ltd. -// SPDX-License-Identifier: Apache-2.0 +// SPDX-FileCopyrightText: 2024 Intel Corporation // +// SPDX-License-Identifier: Apache-2.0 package logger import ( - "time" - - formatter "github.com/antonfisher/nested-logrus-formatter" - "github.com/sirupsen/logrus" + "go.uber.org/zap" + "go.uber.org/zap/zapcore" ) var ( - log *logrus.Logger - AppLog *logrus.Entry - InitLog *logrus.Entry - CfgLog *logrus.Entry - Handlelog *logrus.Entry - HttpLog *logrus.Entry - UeauLog *logrus.Entry - UecmLog *logrus.Entry - SdmLog *logrus.Entry - PpLog *logrus.Entry - EeLog *logrus.Entry - UtilLog *logrus.Entry - CallbackLog *logrus.Entry - ContextLog *logrus.Entry - ConsumerLog *logrus.Entry - GinLog *logrus.Entry - GrpcLog *logrus.Entry - ProducerLog *logrus.Entry + log *zap.Logger + AppLog *zap.SugaredLogger + InitLog *zap.SugaredLogger + CfgLog *zap.SugaredLogger + Handlelog *zap.SugaredLogger + HttpLog *zap.SugaredLogger + UeauLog *zap.SugaredLogger + UecmLog *zap.SugaredLogger + SdmLog *zap.SugaredLogger + PpLog *zap.SugaredLogger + EeLog *zap.SugaredLogger + UtilLog *zap.SugaredLogger + CallbackLog *zap.SugaredLogger + ContextLog *zap.SugaredLogger + ConsumerLog *zap.SugaredLogger + GinLog *zap.SugaredLogger + GrpcLog *zap.SugaredLogger + ProducerLog *zap.SugaredLogger + atomicLevel zap.AtomicLevel ) func init() { - log = logrus.New() - log.SetReportCaller(false) + atomicLevel = zap.NewAtomicLevelAt(zap.InfoLevel) + config := zap.Config{ + Level: atomicLevel, + Development: false, + Encoding: "console", + EncoderConfig: zap.NewProductionEncoderConfig(), + OutputPaths: []string{"stdout"}, + ErrorOutputPaths: []string{"stderr"}, + } + + config.EncoderConfig.TimeKey = "timestamp" + config.EncoderConfig.EncodeTime = zapcore.ISO8601TimeEncoder + config.EncoderConfig.LevelKey = "level" + config.EncoderConfig.EncodeLevel = zapcore.CapitalLevelEncoder + config.EncoderConfig.CallerKey = "caller" + config.EncoderConfig.EncodeCaller = zapcore.ShortCallerEncoder + config.EncoderConfig.MessageKey = "message" + config.EncoderConfig.StacktraceKey = "" - log.Formatter = &formatter.Formatter{ - TimestampFormat: time.RFC3339, - TrimMessages: true, - NoFieldsSpace: true, - HideKeys: true, - FieldsOrder: []string{"component", "category"}, + var err error + log, err = config.Build() + if err != nil { + panic(err) } - AppLog = log.WithFields(logrus.Fields{"component": "UDM", "category": "App"}) - InitLog = log.WithFields(logrus.Fields{"component": "UDM", "category": "Init"}) - CfgLog = log.WithFields(logrus.Fields{"component": "UDM", "category": "CFG"}) - Handlelog = log.WithFields(logrus.Fields{"component": "UDM", "category": "HDLR"}) - HttpLog = log.WithFields(logrus.Fields{"component": "UDM", "category": "HTTP"}) - UeauLog = log.WithFields(logrus.Fields{"component": "UDM", "category": "UEAU"}) - UecmLog = log.WithFields(logrus.Fields{"component": "UDM", "category": "UECM"}) - SdmLog = log.WithFields(logrus.Fields{"component": "UDM", "category": "SDM"}) - PpLog = log.WithFields(logrus.Fields{"component": "UDM", "category": "PP"}) - EeLog = log.WithFields(logrus.Fields{"component": "UDM", "category": "EE"}) - UtilLog = log.WithFields(logrus.Fields{"component": "UDM", "category": "Util"}) - CallbackLog = log.WithFields(logrus.Fields{"component": "UDM", "category": "CB"}) - ContextLog = log.WithFields(logrus.Fields{"component": "UDM", "category": "CTX"}) - ConsumerLog = log.WithFields(logrus.Fields{"component": "UDM", "category": "Consumer"}) - GinLog = log.WithFields(logrus.Fields{"component": "UDM", "category": "GIN"}) - GrpcLog = log.WithFields(logrus.Fields{"component": "UDM", "category": "GRPC"}) - ProducerLog = log.WithFields(logrus.Fields{"component": "UDM", "category": "Producer"}) + AppLog = log.Sugar().With("component", "UDM", "category", "App") + InitLog = log.Sugar().With("component", "UDM", "category", "Init") + CfgLog = log.Sugar().With("component", "UDM", "category", "CFG") + Handlelog = log.Sugar().With("component", "UDM", "category", "HDLR") + HttpLog = log.Sugar().With("component", "UDM", "category", "HTTP") + UeauLog = log.Sugar().With("component", "UDM", "category", "UEAU") + UecmLog = log.Sugar().With("component", "UDM", "category", "UECM") + SdmLog = log.Sugar().With("component", "UDM", "category", "SDM") + PpLog = log.Sugar().With("component", "UDM", "category", "PP") + EeLog = log.Sugar().With("component", "UDM", "category", "EE") + UtilLog = log.Sugar().With("component", "UDM", "category", "Util") + CallbackLog = log.Sugar().With("component", "UDM", "category", "CB") + ContextLog = log.Sugar().With("component", "UDM", "category", "CTX") + ConsumerLog = log.Sugar().With("component", "UDM", "category", "Consumer") + GinLog = log.Sugar().With("component", "UDM", "category", "GIN") + GrpcLog = log.Sugar().With("component", "UDM", "category", "GRPC") + ProducerLog = log.Sugar().With("component", "UDM", "category", "Producer") } -func SetLogLevel(level logrus.Level) { - log.SetLevel(level) +func GetLogger() *zap.Logger { + return log } -func SetReportCaller(set bool) { - log.SetReportCaller(set) +// SetLogLevel: set the log level (panic|fatal|error|warn|info|debug) +func SetLogLevel(level zapcore.Level) { + InitLog.Infoln("set log level:", level) + atomicLevel.SetLevel(level) } diff --git a/parameterprovision/api_subscription_data_update_test.go b/parameterprovision/api_subscription_data_update_test.go index 497e81f..d21327f 100644 --- a/parameterprovision/api_subscription_data_update_test.go +++ b/parameterprovision/api_subscription_data_update_test.go @@ -40,15 +40,15 @@ func TestUpdate(t *testing.T) { router.PATCH("/nudr-dr/v1/:gpsi/pp-data", func(c *gin.Context) { gpsi := c.Param("gpsi") - fmt.Println("==========CreateEeSubscription - Subscribe==========") - fmt.Println("ueIdentity: ", gpsi) + t.Logf("==========CreateEeSubscription - Subscribe==========") + t.Logf("ueIdentity:", gpsi) var testppData models.PpData if err := c.ShouldBindJSON(&testppData); err != nil { - fmt.Println("fake udm server error: ", err.Error()) + t.Logf("fake udm server error:", err.Error()) c.JSON(http.StatusInternalServerError, gin.H{}) return } - fmt.Println("patchItems: ", testppData) + t.Logf("patchItems:", testppData) c.JSON(http.StatusCreated, gin.H{}) }) @@ -73,9 +73,9 @@ func TestUpdate(t *testing.T) { gpsi := "SDM1234" resp, err := clientAPI.SubscriptionDataUpdateApi.Update(context.Background(), gpsi, ppData) if err != nil { - fmt.Println(err.Error()) + t.Logf(err.Error()) } else { - fmt.Println("resp: ", resp) + t.Logf("resp:", resp) } */ } diff --git a/parameterprovision/routers.go b/parameterprovision/routers.go index b23864a..a3e77e1 100644 --- a/parameterprovision/routers.go +++ b/parameterprovision/routers.go @@ -21,7 +21,7 @@ import ( "github.com/gin-gonic/gin" "github.com/omec-project/udm/logger" - logger_util "github.com/omec-project/util/logger" + utilLogger "github.com/omec-project/util/logger" ) // Route is the information for every URI. @@ -41,7 +41,7 @@ type Routes []Route // NewRouter returns a new router. func NewRouter() *gin.Engine { - router := logger_util.NewGinWithLogrus(logger.GinLog) + router := utilLogger.NewGinWithZap(logger.GinLog) AddService(router) return router } diff --git a/producer/callback.go b/producer/callback.go index 00e85d3..1bcab77 100644 --- a/producer/callback.go +++ b/producer/callback.go @@ -25,16 +25,10 @@ var ( // HandleDataChangeNotificationToNFRequest ... Send Data Change Notification func HandleDataChangeNotificationToNFRequest(request *httpwrapper.Request) *httpwrapper.Response { - // step 1: log - logger.CallbackLog.Infof("Handle DataChangeNotificationToNF") - - // step 2: retrieve request + logger.CallbackLog.Infoln("handle DataChangeNotificationToNF") dataChangeNotify := request.Body.(models.DataChangeNotify) supi := request.Params["supi"] - problemDetails := callback.DataChangeNotificationProcedure(dataChangeNotify.NotifyItems, supi) - - // step 4: process the return value from step 3 if problemDetails != nil { return httpwrapper.NewResponse(int(problemDetails.Status), nil, problemDetails) } else { @@ -45,7 +39,7 @@ func HandleDataChangeNotificationToNFRequest(request *httpwrapper.Request) *http // HandleNfSubscriptionStatusNotify gets the notification data from NRF // and perform some actions according to the notification types. func HandleNfSubscriptionStatusNotify(request *httpwrapper.Request) *httpwrapper.Response { - logger.ProducerLog.Traceln("Handle NF Status Notify") + logger.ProducerLog.Debugln("handle NF Status Notify") notificationData := request.Body.(models.NotificationData) @@ -79,17 +73,17 @@ func NfSubscriptionStatusNotifyProcedure(notificationData models.NotificationDat if notificationData.Event == models.NotificationEventType_DEREGISTERED { if udmContext.UDM_Self().EnableNrfCaching { ok := NRFCacheRemoveNfProfileFromNrfCache(nfInstanceId) - logger.ProducerLog.Tracef("nfinstance %v deleted from cache: %v", nfInstanceId, ok) + logger.ProducerLog.Debugf("nfinstance %v deleted from cache: %v", nfInstanceId, ok) } if subscriptionId, ok := udmContext.UDM_Self().NfStatusSubscriptions.Load(nfInstanceId); ok { - logger.ConsumerLog.Debugf("SubscriptionId of nfInstance %v is %v", nfInstanceId, subscriptionId.(string)) + logger.ConsumerLog.Debugf("subscriptionId of nfInstance %v is %v", nfInstanceId, subscriptionId.(string)) problemDetails, err := SendRemoveSubscription(subscriptionId.(string)) if problemDetails != nil { - logger.ConsumerLog.Errorf("Remove NF Subscription Failed Problem[%+v]", problemDetails) + logger.ConsumerLog.Errorf("remove NF Subscription Failed Problem[%+v]", problemDetails) } else if err != nil { - logger.ConsumerLog.Errorf("Remove NF Subscription Error[%+v]", err) + logger.ConsumerLog.Errorf("remove NF Subscription Error[%+v]", err) } else { - logger.ConsumerLog.Infoln("Remove NF Subscription successful") + logger.ConsumerLog.Infoln("remove NF Subscription successful") udmContext.UDM_Self().NfStatusSubscriptions.Delete(nfInstanceId) } } else { diff --git a/producer/generate_auth_data.go b/producer/generate_auth_data.go index 4f4108c..3486d11 100644 --- a/producer/generate_auth_data.go +++ b/producer/generate_auth_data.go @@ -49,7 +49,7 @@ func aucSQN(opc, k, auts, rand []byte) ([]byte, []byte) { return nil, nil } - logger.UeauLog.Traceln("ConcSQNms", ConcSQNms) + logger.UeauLog.Debugln("ConcSQNms", ConcSQNms) err = milenage.F2345(opc, k, rand, nil, nil, nil, nil, AK) if err != nil { @@ -60,19 +60,13 @@ func aucSQN(opc, k, auts, rand []byte) ([]byte, []byte) { SQNms[i] = AK[i] ^ ConcSQNms[i] } - // fmt.Printf("opc=%x\n", opc) - // fmt.Printf("k=%x\n", k) - // fmt.Printf("rand=%x\n", rand) - // fmt.Printf("AMF %x\n", AMF) - // fmt.Printf("SQNms %x\n", SQNms) err = milenage.F1(opc, k, rand, SQNms, AMF, nil, macS) if err != nil { - logger.UeauLog.Errorln("milenage F1 err ", err) + logger.UeauLog.Errorln("milenage F1 err", err) } - // fmt.Printf("macS %x\n", macS) - logger.UeauLog.Traceln("SQNms", SQNms) - logger.UeauLog.Traceln("macS", macS) + logger.UeauLog.Debugln("SQNms", SQNms) + logger.UeauLog.Debugln("macS", macS) return SQNms, macS } @@ -86,17 +80,10 @@ func strictHex(s string, n int) string { } func HandleGenerateAuthDataRequest(request *httpwrapper.Request) *httpwrapper.Response { - // step 1: log - logger.UeauLog.Infoln("Handle GenerateAuthDataRequest") - - // step 2: retrieve request + logger.UeauLog.Infoln("handle GenerateAuthDataRequest") authInfoRequest := request.Body.(models.AuthenticationInfoRequest) supiOrSuci := request.Params["supiOrSuci"] - - // step 3: handle the message response, problemDetails := GenerateAuthDataProcedure(authInfoRequest, supiOrSuci) - - // step 4: process the return value from step 3 if response != nil { // status code is based on SPEC, and option headers return httpwrapper.NewResponse(http.StatusOK, nil, response) @@ -143,7 +130,7 @@ func ConfirmAuthDataProcedure(authEvent models.AuthEvent, supi string) (problemD Detail: err.Error(), } - logger.UeauLog.Errorln("[ConfirmAuth] ", err.Error()) + logger.UeauLog.Errorln("[ConfirmAuth]", err.Error()) return problemDetails } defer func() { @@ -158,7 +145,7 @@ func ConfirmAuthDataProcedure(authEvent models.AuthEvent, supi string) (problemD func GenerateAuthDataProcedure(authInfoRequest models.AuthenticationInfoRequest, supiOrSuci string) ( response *models.AuthenticationInfoResult, problemDetails *models.ProblemDetails, ) { - logger.UeauLog.Traceln("In GenerateAuthDataProcedure") + logger.UeauLog.Debugln("in GenerateAuthDataProcedure") response = &models.AuthenticationInfoResult{} supi, err := suci.ToSupi(supiOrSuci, udm_context.UDM_Self().SuciProfiles) @@ -169,11 +156,11 @@ func GenerateAuthDataProcedure(authInfoRequest models.AuthenticationInfoRequest, Detail: err.Error(), } - logger.UeauLog.Errorln("suciToSupi error: ", err.Error()) + logger.UeauLog.Errorln("suciToSupi error:", err.Error()) return nil, problemDetails } - logger.UeauLog.Tracef("supi conversion => %s\n", supi) + logger.UeauLog.Debugf("supi conversion => %s", supi) client, err := createUDMClientToUDR(supi) if err != nil { @@ -187,7 +174,7 @@ func GenerateAuthDataProcedure(authInfoRequest models.AuthenticationInfoRequest, Detail: err.Error(), } - logger.UeauLog.Errorln("Return from UDR QueryAuthSubsData error") + logger.UeauLog.Errorln("return from UDR QueryAuthSubsData error") return nil, problemDetails } defer func() { @@ -208,7 +195,7 @@ func GenerateAuthDataProcedure(authInfoRequest models.AuthenticationInfoRequest, k, op, opc := make([]byte, 16), make([]byte, 16), make([]byte, 16) - logger.UeauLog.Traceln("K", k) + logger.UeauLog.Debugln("K", k) if authSubs.PermanentKey != nil { kStr = authSubs.PermanentKey.PermanentKeyValue @@ -225,7 +212,7 @@ func GenerateAuthDataProcedure(authInfoRequest models.AuthenticationInfoRequest, Cause: authenticationRejected, } - logger.UeauLog.Errorln("kStr length is ", len(kStr)) + logger.UeauLog.Errorln("kStr length is", len(kStr)) return nil, problemDetails } } else { @@ -249,7 +236,7 @@ func GenerateAuthDataProcedure(authInfoRequest models.AuthenticationInfoRequest, hasOP = true } } else { - logger.UeauLog.Errorln("opStr length is ", len(opStr)) + logger.UeauLog.Errorln("opStr length is", len(opStr)) } } else { logger.UeauLog.Infoln("Nil Op") @@ -274,7 +261,7 @@ func GenerateAuthDataProcedure(authInfoRequest models.AuthenticationInfoRequest, hasOPC = true } } else { - logger.UeauLog.Errorln("opcStr length is ", len(opcStr)) + logger.UeauLog.Errorln("opcStr length is", len(opcStr)) } } else { logger.UeauLog.Infoln("Nil Opc") @@ -293,7 +280,7 @@ func GenerateAuthDataProcedure(authInfoRequest models.AuthenticationInfoRequest, if hasK && hasOP { opc, err = milenage.GenerateOPC(k, op) if err != nil { - logger.UeauLog.Errorln("milenage GenerateOPC err ", err) + logger.UeauLog.Errorln("milenage GenerateOPC err", err) } } else { problemDetails = &models.ProblemDetails{ @@ -301,13 +288,13 @@ func GenerateAuthDataProcedure(authInfoRequest models.AuthenticationInfoRequest, Cause: authenticationRejected, } - logger.UeauLog.Errorln("Unable to derive OPC") + logger.UeauLog.Errorln("unable to derive OPC") return nil, problemDetails } } sqnStr := strictHex(authSubs.SequenceNumber, 12) - logger.UeauLog.Traceln("sqnStr", sqnStr) + logger.UeauLog.Debugln("sqnStr", sqnStr) sqn, err := hex.DecodeString(sqnStr) if err != nil { problemDetails = &models.ProblemDetails{ @@ -320,8 +307,7 @@ func GenerateAuthDataProcedure(authInfoRequest models.AuthenticationInfoRequest, return nil, problemDetails } - logger.UeauLog.Traceln("sqn", sqn) - // fmt.Printf("K=%x\nsqn=%x\nOP=%x\nOPC=%x\n", K, sqn, OP, OPC) + logger.UeauLog.Debugln("sqn", sqn) RAND := make([]byte, 16) _, err = rand.Read(RAND) @@ -348,13 +334,6 @@ func GenerateAuthDataProcedure(authInfoRequest models.AuthenticationInfoRequest, return nil, problemDetails } - // fmt.Printf("RAND=%x\nAMF=%x\n", RAND, AMF) - - // for test - // RAND, _ = hex.DecodeString(TestGenAuthData.MilenageTestSet19.RAND) - // AMF, _ = hex.DecodeString(TestGenAuthData.MilenageTestSet19.AMF) - // fmt.Printf("For test: RAND=%x, AMF=%x\n", RAND, AMF) - // re-synchroniztion if authInfoRequest.ResynchronizationInfo != nil { Auts, deCodeErr := hex.DecodeString(authInfoRequest.ResynchronizationInfo.Auts) @@ -398,7 +377,7 @@ func GenerateAuthDataProcedure(authInfoRequest models.AuthenticationInfoRequest, // increment sqn authSubs.SequenceNumber bigSQN := big.NewInt(0) sqnStr = hex.EncodeToString(SQNms) - fmt.Printf("SQNstr %s\n", sqnStr) + logger.UeauLog.Infof("SQNstr %s", sqnStr) bigSQN.SetString(sqnStr, 16) bigInc := big.NewInt(ind + 1) @@ -409,10 +388,10 @@ func GenerateAuthDataProcedure(authInfoRequest models.AuthenticationInfoRequest, sqnStr = fmt.Sprintf("%x", bigSQN) sqnStr = strictHex(sqnStr, 12) } else { - logger.UeauLog.Errorln("Re-Sync MAC failed ", supi) - logger.UeauLog.Errorln("MACS ", macS) - logger.UeauLog.Errorln("Auts[6:] ", Auts[6:]) - logger.UeauLog.Errorln("Sqn ", SQNms) + logger.UeauLog.Errorln("Re-Sync MAC failed", supi) + logger.UeauLog.Errorln("MACS", macS) + logger.UeauLog.Errorln("Auts[6:]", Auts[6:]) + logger.UeauLog.Errorln("Sqn", SQNms) problemDetails = &models.ProblemDetails{ Status: http.StatusForbidden, Cause: "modification is rejected", @@ -485,20 +464,16 @@ func GenerateAuthDataProcedure(authInfoRequest models.AuthenticationInfoRequest, // RES == XRES (expected RES) for server err = milenage.F2345(opc, k, RAND, RES, CK, IK, AK, AKstar) if err != nil { - logger.UeauLog.Errorln("milenage F2345 err ", err) + logger.UeauLog.Errorln("milenage F2345 err", err) } - // fmt.Printf("milenage RES = %s\n", hex.EncodeToString(RES)) // Generate AUTN - // fmt.Printf("SQN=%x\nAK =%x\n", SQN, AK) - // fmt.Printf("AMF=%x, macA=%x\n", AMF, macA) SQNxorAK := make([]byte, 6) for i := 0; i < len(sqn); i++ { SQNxorAK[i] = sqn[i] ^ AK[i] } - // fmt.Printf("SQN xor AK = %x\n", SQNxorAK) AUTN := append(append(SQNxorAK, AMF...), macA...) - fmt.Printf("AUTN = %x\n", AUTN) + logger.UeauLog.Infof("AUTN = %x", AUTN) var av models.AuthenticationVector if authSubs.AuthenticationMethod == models.AuthMethod__5_G_AKA { @@ -517,7 +492,6 @@ func GenerateAuthDataProcedure(authInfoRequest models.AuthenticationInfoRequest, logger.UeauLog.Error(err) } xresStar := kdfValForXresStar[len(kdfValForXresStar)/2:] - // fmt.Printf("xresStar = %x\n", xresStar) // derive Kausf FC = ueauth.FC_FOR_KAUSF_DERIVATION @@ -527,7 +501,6 @@ func GenerateAuthDataProcedure(authInfoRequest models.AuthenticationInfoRequest, if err != nil { logger.UeauLog.Error(err) } - // fmt.Printf("Kausf = %x\n", kdfValForKausf) // Fill in rand, xresStar, autn, kausf av.Rand = hex.EncodeToString(RAND) @@ -546,7 +519,6 @@ func GenerateAuthDataProcedure(authInfoRequest models.AuthenticationInfoRequest, if err != nil { logger.UeauLog.Error(err) } - // fmt.Printf("kdfVal = %x (len = %d)\n", kdfVal, len(kdfVal)) // For TS 35.208 test set 19 & RFC 5448 test vector 1 // CK': 0093 962d 0dd8 4aa5 684b 045c 9edf fa04 @@ -554,7 +526,6 @@ func GenerateAuthDataProcedure(authInfoRequest models.AuthenticationInfoRequest, ckPrime := kdfVal[:len(kdfVal)/2] ikPrime := kdfVal[len(kdfVal)/2:] - // fmt.Printf("ckPrime: %x\nikPrime: %x\n", ckPrime, ikPrime) // Fill in rand, xres, autn, ckPrime, ikPrime av.Rand = hex.EncodeToString(RAND) diff --git a/producer/parameter_provision.go b/producer/parameter_provision.go index 14abd6c..406ac74 100644 --- a/producer/parameter_provision.go +++ b/producer/parameter_provision.go @@ -17,17 +17,10 @@ import ( ) func HandleUpdateRequest(request *httpwrapper.Request) *httpwrapper.Response { - // step 1: log - logger.PpLog.Infoln("Handle UpdateRequest") - - // step 2: retrieve request + logger.PpLog.Infoln("handle UpdateRequest") updateRequest := request.Body.(models.PpData) gpsi := request.Params["gpsi"] - - // step 3: handle the message problemDetails := UpdateProcedure(updateRequest, gpsi) - - // step 4: process the return value from step 3 if problemDetails != nil { return httpwrapper.NewResponse(int(problemDetails.Status), nil, problemDetails) } else { diff --git a/producer/subscriber_data_management.go b/producer/subscriber_data_management.go index 7eecf1c..3e314eb 100644 --- a/producer/subscriber_data_management.go +++ b/producer/subscriber_data_management.go @@ -7,7 +7,6 @@ package producer import ( "context" - "fmt" "net/http" "strconv" @@ -23,18 +22,11 @@ import ( ) func HandleGetAmDataRequest(request *httpwrapper.Request) *httpwrapper.Response { - // step 1: log - logger.SdmLog.Infof("Handle GetAmData") - - // step 2: retrieve request + logger.SdmLog.Infoln("handle GetAmData") supi := request.Params["supi"] plmnID := request.Query.Get("plmn-id") supportedFeatures := request.Query.Get("supported-features") - - // step 3: handle the message response, problemDetails := getAmDataProcedure(supi, plmnID, supportedFeatures) - - // step 4: process the return value from step 3 if response != nil { // status code is based on SPEC, and option headers return httpwrapper.NewResponse(http.StatusOK, nil, response) @@ -64,9 +56,9 @@ func getAmDataProcedure(supi string, plmnID string, supportedFeatures string) ( QueryAmData(context.Background(), supi, plmnID, &queryAmDataParamOpts) if err != nil { if res == nil { - fmt.Println(err.Error()) + logger.SdmLog.Errorln(err.Error()) } else if err.Error() != res.Status { - fmt.Println(err.Error()) + logger.SdmLog.Errorln(err.Error()) } else { problemDetails = &models.ProblemDetails{ Status: int32(res.StatusCode), @@ -96,16 +88,9 @@ func getAmDataProcedure(supi string, plmnID string, supportedFeatures string) ( } func HandleGetIdTranslationResultRequest(request *httpwrapper.Request) *httpwrapper.Response { - // step 1: log - logger.SdmLog.Infof("Handle GetIdTranslationResultRequest") - - // step 2: retrieve request + logger.SdmLog.Infoln("handle GetIdTranslationResultRequest") gpsi := request.Params["gpsi"] - - // step 3: handle the message response, problemDetails := getIdTranslationResultProcedure(gpsi) - - // step 4: process the return value from step 3 if response != nil { // status code is based on SPEC, and option headers return httpwrapper.NewResponse(http.StatusOK, nil, response) @@ -134,9 +119,9 @@ func getIdTranslationResultProcedure(gpsi string) (response *models.IdTranslatio context.Background(), gpsi, &getIdentityDataParamOpts) if err != nil { if res == nil { - fmt.Println(err.Error()) + logger.SdmLog.Errorln(err.Error()) } else if err.Error() != res.Status { - fmt.Println(err.Error()) + logger.SdmLog.Errorln(err.Error()) } else { problemDetails = &models.ProblemDetails{ Status: int32(res.StatusCode), @@ -179,19 +164,12 @@ func getIdTranslationResultProcedure(gpsi string) (response *models.IdTranslatio } func HandleGetSupiRequest(request *httpwrapper.Request) *httpwrapper.Response { - // step 1: log - logger.SdmLog.Infof("Handle GetSupiRequest") - - // step 2: retrieve request + logger.SdmLog.Infoln("handle GetSupiRequest") supi := request.Params["supi"] plmnID := request.Query.Get("plmn-id") dataSetNames := request.Query["dataset-names"] supportedFeatures := request.Query.Get("supported-features") - - // step 3: handle the message response, problemDetails := getSupiProcedure(supi, plmnID, dataSetNames, supportedFeatures) - - // step 4: process the return value from step 3 if response != nil { // status code is based on SPEC, and option headers return httpwrapper.NewResponse(http.StatusOK, nil, response) @@ -234,9 +212,9 @@ func getSupiProcedure(supi string, plmnID string, dataSetNames []string, support context.Background(), supi, plmnID, &queryAmDataParamOpts) if err1 != nil { if res1 == nil { - fmt.Println(err1.Error()) + logger.SdmLog.Errorln(err1.Error()) } else if err1.Error() != res1.Status { - fmt.Println(err1.Error()) + logger.SdmLog.Errorln(err1.Error()) } else { problemDetails = &models.ProblemDetails{ Status: int32(res1.StatusCode), @@ -308,9 +286,9 @@ func getSupiProcedure(supi string, plmnID string, dataSetNames []string, support context.Background(), supi, plmnID, &queryTraceDataParamOpts) if err3 != nil { if res3 == nil { - fmt.Println(err3.Error()) + logger.SdmLog.Errorln(err3.Error()) } else if err3.Error() != res3.Status { - fmt.Println(err3.Error()) + logger.SdmLog.Errorln(err3.Error()) } else { problemDetails = &models.ProblemDetails{ Status: int32(res3.StatusCode), @@ -343,9 +321,9 @@ func getSupiProcedure(supi string, plmnID string, dataSetNames []string, support QuerySmData(context.Background(), supi, plmnID, &querySmDataParamOpts) if err4 != nil { if res4 == nil { - fmt.Println(err4.Error()) + logger.SdmLog.Errorln(err4.Error()) } else if err4.Error() != res4.Status { - fmt.Println(err4.Error()) + logger.SdmLog.Errorln(err4.Error()) } else { problemDetails = &models.ProblemDetails{ Status: int32(res4.StatusCode), @@ -383,9 +361,9 @@ func getSupiProcedure(supi string, plmnID string, dataSetNames []string, support context.Background(), supi, &querySmfRegListParamOpts) if err != nil { if res == nil { - fmt.Println(err.Error()) + logger.SdmLog.Errorln(err.Error()) } else if err.Error() != res.Status { - fmt.Println(err.Error()) + logger.SdmLog.Errorln(err.Error()) } else { problemDetails = &models.ProblemDetails{ Status: int32(res.StatusCode), @@ -426,7 +404,7 @@ func getSupiProcedure(supi string, plmnID string, dataSetNames []string, support } else { var problemDetails models.ProblemDetails problemDetails.Cause = "DATA_NOT_FOUND" - fmt.Println(problemDetails.Cause) + logger.SdmLog.Errorln(problemDetails.Cause) } if (res.StatusCode == http.StatusOK) && (res1.StatusCode == http.StatusOK) && @@ -445,16 +423,10 @@ func getSupiProcedure(supi string, plmnID string, dataSetNames []string, support } func HandleGetSharedDataRequest(request *httpwrapper.Request) *httpwrapper.Response { - // step 1: log - logger.SdmLog.Infof("Handle GetSharedData") - - // step 2: retrieve request + logger.SdmLog.Infoln("handle GetSharedData") sharedDataIds := request.Query["sharedDataIds"] supportedFeatures := request.Query.Get("supported-features") - // step 3: handle the message response, problemDetails := getSharedDataProcedure(sharedDataIds, supportedFeatures) - - // step 4: process the return value from step 3 if response != nil { // status code is based on SPEC, and option headers return httpwrapper.NewResponse(http.StatusOK, nil, response) @@ -517,20 +489,13 @@ func getSharedDataProcedure(sharedDataIds []string, supportedFeatures string) ( } func HandleGetSmDataRequest(request *httpwrapper.Request) *httpwrapper.Response { - // step 1: log - logger.SdmLog.Infof("Handle GetSmData") - - // step 2: retrieve request + logger.SdmLog.Infoln("handle GetSmData") supi := request.Params["supi"] plmnID := request.Query.Get("plmn-id") Dnn := request.Query.Get("dnn") Snssai := request.Query.Get("single-nssai") supportedFeatures := request.Query.Get("supported-features") - - // step 3: handle the message response, problemDetails := getSmDataProcedure(supi, plmnID, Dnn, Snssai, supportedFeatures) - - // step 4: process the return value from step 3 if response != nil { // status code is based on SPEC, and option headers return httpwrapper.NewResponse(http.StatusOK, nil, response) @@ -622,18 +587,11 @@ func getSmDataProcedure(supi string, plmnID string, Dnn string, Snssai string, s } func HandleGetNssaiRequest(request *httpwrapper.Request) *httpwrapper.Response { - // step 1: log - logger.SdmLog.Infof("Handle GetNssai") - - // step 2: retrieve request + logger.SdmLog.Infoln("handle GetNssai") supi := request.Params["supi"] plmnID := request.Query.Get("plmn-id") supportedFeatures := request.Query.Get("supported-features") - - // step 3: handle the message response, problemDetails := getNssaiProcedure(supi, plmnID, supportedFeatures) - - // step 4: process the return value from step 3 if response != nil { // status code is based on SPEC, and option headers return httpwrapper.NewResponse(http.StatusOK, nil, response) @@ -698,18 +656,11 @@ func getNssaiProcedure(supi string, plmnID string, supportedFeatures string) ( } func HandleGetSmfSelectDataRequest(request *httpwrapper.Request) *httpwrapper.Response { - // step 1: log - logger.SdmLog.Infof("Handle GetSmfSelectData") - - // step 2: retrieve request + logger.SdmLog.Infoln("handle GetSmfSelectData") supi := request.Params["supi"] plmnID := request.Query.Get("plmn-id") supportedFeatures := request.Query.Get("supported-features") - - // step 3: handle the message response, problemDetails := getSmfSelectDataProcedure(supi, plmnID, supportedFeatures) - - // step 4: process the return value from step 3 if response != nil { // status code is based on SPEC, and option headers return httpwrapper.NewResponse(http.StatusOK, nil, response) @@ -775,16 +726,9 @@ func getSmfSelectDataProcedure(supi string, plmnID string, supportedFeatures str } func HandleSubscribeToSharedDataRequest(request *httpwrapper.Request) *httpwrapper.Response { - // step 1: log - logger.SdmLog.Infof("Handle SubscribeToSharedData") - - // step 2: retrieve request + logger.SdmLog.Infoln("handle SubscribeToSharedData") sdmSubscription := request.Body.(models.SdmSubscription) - - // step 3: handle the message header, response, problemDetails := subscribeToSharedDataProcedure(&sdmSubscription) - - // step 4: process the return value from step 3 if response != nil { // status code is based on SPEC, and option headers return httpwrapper.NewResponse(http.StatusCreated, header, response) @@ -847,17 +791,10 @@ func subscribeToSharedDataProcedure(sdmSubscription *models.SdmSubscription) ( } func HandleSubscribeRequest(request *httpwrapper.Request) *httpwrapper.Response { - // step 1: log - logger.SdmLog.Infof("Handle Subscribe") - - // step 2: retrieve request + logger.SdmLog.Infoln("handle Subscribe") sdmSubscription := request.Body.(models.SdmSubscription) supi := request.Params["supi"] - - // step 3: handle the message header, response, problemDetails := subscribeProcedure(&sdmSubscription, supi) - - // step 4: process the return value from step 3 if response != nil { // status code is based on SPEC, and option headers return httpwrapper.NewResponse(http.StatusCreated, header, response) @@ -924,14 +861,9 @@ func subscribeProcedure(sdmSubscription *models.SdmSubscription, supi string) ( } func HandleUnsubscribeForSharedDataRequest(request *httpwrapper.Request) *httpwrapper.Response { - logger.SdmLog.Infof("Handle UnsubscribeForSharedData") - - // step 2: retrieve request + logger.SdmLog.Infoln("handle UnsubscribeForSharedData") subscriptionID := request.Params["subscriptionId"] - // step 3: handle the message problemDetails := unsubscribeForSharedDataProcedure(subscriptionID) - - // step 4: process the return value from step 3 if problemDetails != nil { return httpwrapper.NewResponse(int(problemDetails.Status), nil, problemDetails) } @@ -978,16 +910,10 @@ func unsubscribeForSharedDataProcedure(subscriptionID string) *models.ProblemDet } func HandleUnsubscribeRequest(request *httpwrapper.Request) *httpwrapper.Response { - logger.SdmLog.Infof("Handle Unsubscribe") - - // step 2: retrieve request + logger.SdmLog.Infoln("handle Unsubscribe") supi := request.Params["supi"] subscriptionID := request.Params["subscriptionId"] - - // step 3: handle the message problemDetails := unsubscribeProcedure(supi, subscriptionID) - - // step 4: process the return value from step 3 if problemDetails != nil { return httpwrapper.NewResponse(int(problemDetails.Status), nil, problemDetails) } @@ -1035,18 +961,11 @@ func unsubscribeProcedure(supi string, subscriptionID string) *models.ProblemDet } func HandleModifyRequest(request *httpwrapper.Request) *httpwrapper.Response { - // step 1: log - logger.SdmLog.Infof("Handle Modify") - - // step 2: retrieve request + logger.SdmLog.Infoln("handle Modify") sdmSubsModification := request.Body.(models.SdmSubsModification) supi := request.Params["supi"] subscriptionID := request.Params["subscriptionId"] - - // step 3: handle the message response, problemDetails := modifyProcedure(&sdmSubsModification, supi, subscriptionID) - - // step 4: process the return value from step 3 if response != nil { // status code is based on SPEC, and option headers return httpwrapper.NewResponse(http.StatusOK, nil, response) @@ -1107,18 +1026,11 @@ func modifyProcedure(sdmSubsModification *models.SdmSubsModification, supi strin } func HandleModifyForSharedDataRequest(request *httpwrapper.Request) *httpwrapper.Response { - // step 1: log - logger.SdmLog.Infof("Handle ModifyForSharedData") - - // step 2: retrieve request + logger.SdmLog.Infoln("handle ModifyForSharedData") sdmSubsModification := request.Body.(models.SdmSubsModification) supi := request.Params["supi"] subscriptionID := request.Params["subscriptionId"] - - // step 3: handle the message response, problemDetails := modifyForSharedDataProcedure(&sdmSubsModification, supi, subscriptionID) - - // step 4: process the return value from step 3 if response != nil { // status code is based on SPEC, and option headers return httpwrapper.NewResponse(http.StatusOK, nil, response) @@ -1181,17 +1093,10 @@ func modifyForSharedDataProcedure(sdmSubsModification *models.SdmSubsModificatio } func HandleGetTraceDataRequest(request *httpwrapper.Request) *httpwrapper.Response { - // step 1: log - logger.SdmLog.Infof("Handle GetTraceData") - - // step 2: retrieve request + logger.SdmLog.Infoln("handle GetTraceData") supi := request.Params["supi"] plmnID := request.Query.Get("plmn-id") - - // step 3: handle the message response, problemDetails := getTraceDataProcedure(supi, plmnID) - - // step 4: process the return value from step 3 if response != nil { // status code is based on SPEC, and option headers return httpwrapper.NewResponse(http.StatusOK, nil, response) @@ -1258,17 +1163,10 @@ func getTraceDataProcedure(supi string, plmnID string) ( } func HandleGetUeContextInSmfDataRequest(request *httpwrapper.Request) *httpwrapper.Response { - // step 1: log - logger.SdmLog.Infof("Handle GetUeContextInSmfData") - - // step 2: retrieve request + logger.SdmLog.Infoln("handle GetUeContextInSmfData") supi := request.Params["supi"] supportedFeatures := request.Query.Get("supported-features") - - // step 3: handle the message response, problemDetails := getUeContextInSmfDataProcedure(supi, supportedFeatures) - - // step 4: process the return value from step 3 if response != nil { // status code is based on SPEC, and option headers return httpwrapper.NewResponse(http.StatusOK, nil, response) diff --git a/producer/ue_context_management.go b/producer/ue_context_management.go index de5c4f0..9352f9f 100644 --- a/producer/ue_context_management.go +++ b/producer/ue_context_management.go @@ -74,17 +74,10 @@ func getUdrURI(id string) string { } func HandleGetAmf3gppAccessRequest(request *httpwrapper.Request) *httpwrapper.Response { - // step 1: log logger.UecmLog.Infof("Handle HandleGetAmf3gppAccessRequest") - - // step 2: retrieve request ueID := request.Params["ueId"] supportedFeatures := request.Query.Get("supported-features") - - // step 3: handle the message response, problemDetails := GetAmf3gppAccessProcedure(ueID, supportedFeatures) - - // step 4: process the return value from step 3 if response != nil { // status code is based on SPEC, and option headers return httpwrapper.NewResponse(http.StatusOK, nil, response) @@ -129,19 +122,12 @@ func GetAmf3gppAccessProcedure(ueID string, supportedFeatures string) ( } func HandleGetAmfNon3gppAccessRequest(request *httpwrapper.Request) *httpwrapper.Response { - // step 1: log - logger.UecmLog.Infoln("Handle GetAmfNon3gppAccessRequest") - - // step 2: retrieve request + logger.UecmLog.Infoln("handle GetAmfNon3gppAccessRequest") ueId := request.Params["ueId"] supportedFeatures := request.Query.Get("supported-features") - var queryAmfContextNon3gppParamOpts Nudr_DataRepository.QueryAmfContextNon3gppParamOpts queryAmfContextNon3gppParamOpts.SupportedFeatures = optional.NewString(supportedFeatures) - // step 3: handle the message response, problemDetails := GetAmfNon3gppAccessProcedure(queryAmfContextNon3gppParamOpts, ueId) - - // step 4: process the return value from step 3 if response != nil { // status code is based on SPEC, and option headers return httpwrapper.NewResponse(http.StatusOK, nil, response) @@ -184,18 +170,11 @@ func GetAmfNon3gppAccessProcedure(queryAmfContextNon3gppParamOpts Nudr_DataRepos } func HandleRegistrationAmf3gppAccessRequest(request *httpwrapper.Request) *httpwrapper.Response { - // step 1: log - logger.UecmLog.Infof("Handle RegistrationAmf3gppAccess") - - // step 2: retrieve request + logger.UecmLog.Infoln("handle RegistrationAmf3gppAccess") registerRequest := request.Body.(models.Amf3GppAccessRegistration) ueID := request.Params["ueId"] logger.UecmLog.Info("UEID: ", ueID) - - // step 3: handle the message header, response, problemDetails := RegistrationAmf3gppAccessProcedure(registerRequest, ueID) - - // step 4: process the return value from step 3 if response != nil { // status code is based on SPEC, and option headers return httpwrapper.NewResponse(http.StatusCreated, header, response) @@ -265,17 +244,10 @@ func RegistrationAmf3gppAccessProcedure(registerRequest models.Amf3GppAccessRegi // HandleRegisterAmfNon3gppAccessRequest TS 29.503 5.3.2.2.3 func HandleRegisterAmfNon3gppAccessRequest(request *httpwrapper.Request) *httpwrapper.Response { - // step 1: log - logger.UecmLog.Infof("Handle RegisterAmfNon3gppAccessRequest") - - // step 2: retrieve request + logger.UecmLog.Infoln("handle RegisterAmfNon3gppAccessRequest") registerRequest := request.Body.(models.AmfNon3GppAccessRegistration) ueID := request.Params["ueId"] - - // step 3: handle the message header, response, problemDetails := RegisterAmfNon3gppAccessProcedure(registerRequest, ueID) - - // step 4: process the return value from step 3 if response != nil { // status code is based on SPEC, and option headers return httpwrapper.NewResponse(http.StatusCreated, header, response) @@ -342,17 +314,10 @@ func RegisterAmfNon3gppAccessProcedure(registerRequest models.AmfNon3GppAccessRe // HandleUpdateAmf3gppAccessRequest TODO: ueID may be SUPI or GPSI, but this function did not handle this condition func HandleUpdateAmf3gppAccessRequest(request *httpwrapper.Request) *httpwrapper.Response { - // step 1: log - logger.UecmLog.Infof("Handle UpdateAmf3gppAccessRequest") - - // step 2: retrieve request + logger.UecmLog.Infoln("handle UpdateAmf3gppAccessRequest") amf3GppAccessRegistrationModification := request.Body.(models.Amf3GppAccessRegistrationModification) ueID := request.Params["ueId"] - - // step 3: handle the message problemDetails := UpdateAmf3gppAccessProcedure(amf3GppAccessRegistrationModification, ueID) - - // step 4: process the return value from step 3 if problemDetails != nil { return httpwrapper.NewResponse(int(problemDetails.Status), nil, problemDetails) } else { @@ -454,17 +419,10 @@ func UpdateAmf3gppAccessProcedure(request models.Amf3GppAccessRegistrationModifi // HandleUpdateAmfNon3gppAccessRequest TODO: ueID may be SUPI or GPSI, but this function did not handle this condition func HandleUpdateAmfNon3gppAccessRequest(request *httpwrapper.Request) *httpwrapper.Response { - // step 1: log - logger.UecmLog.Infof("Handle UpdateAmfNon3gppAccessRequest") - - // step 2: retrieve request + logger.UecmLog.Infoln("handle UpdateAmfNon3gppAccessRequest") requestMSG := request.Body.(models.AmfNon3GppAccessRegistrationModification) ueID := request.Params["ueId"] - - // step 3: handle the message problemDetails := UpdateAmfNon3gppAccessProcedure(requestMSG, ueID) - - // step 4: process the return value from step 3 if problemDetails != nil { return httpwrapper.NewResponse(int(problemDetails.Status), nil, problemDetails) } else { @@ -564,17 +522,10 @@ func UpdateAmfNon3gppAccessProcedure(request models.AmfNon3GppAccessRegistration } func HandleDeregistrationSmfRegistrations(request *httpwrapper.Request) *httpwrapper.Response { - // step 1: log - logger.UecmLog.Infof("Handle DeregistrationSmfRegistrations") - - // step 2: retrieve request + logger.UecmLog.Infoln("handle DeregistrationSmfRegistrations") ueID := request.Params["ueId"] pduSessionID := request.Params["pduSessionId"] - - // step 3: handle the message problemDetails := DeregistrationSmfRegistrationsProcedure(ueID, pduSessionID) - - // step 4: process the return value from step 3 if problemDetails != nil { return httpwrapper.NewResponse(int(problemDetails.Status), nil, problemDetails) } else { @@ -608,18 +559,11 @@ func DeregistrationSmfRegistrationsProcedure(ueID string, pduSessionID string) ( // HandleRegistrationSmfRegistrationsRequest SmfRegistrations func HandleRegistrationSmfRegistrationsRequest(request *httpwrapper.Request) *httpwrapper.Response { - // step 1: log - logger.UecmLog.Infof("Handle RegistrationSmfRegistrations") - - // step 2: retrieve request + logger.UecmLog.Infoln("handle RegistrationSmfRegistrations") registerRequest := request.Body.(models.SmfRegistration) ueID := request.Params["ueId"] pduSessionID := request.Params["pduSessionId"] - - // step 3: handle the message header, response, problemDetails := RegistrationSmfRegistrationsProcedure(®isterRequest, ueID, pduSessionID) - - // step 4: process the return value from step 3 if response != nil { // status code is based on SPEC, and option headers return httpwrapper.NewResponse(http.StatusCreated, header, response) diff --git a/service/init.go b/service/init.go index f950269..19e9359 100644 --- a/service/init.go +++ b/service/init.go @@ -35,11 +35,11 @@ import ( "github.com/omec-project/udm/uecontextmanagement" "github.com/omec-project/udm/util" "github.com/omec-project/util/http2_util" - loggerUtil "github.com/omec-project/util/logger" + utilLogger "github.com/omec-project/util/logger" "github.com/omec-project/util/path_util" - pathUtilLogger "github.com/omec-project/util/path_util/logger" - "github.com/sirupsen/logrus" "github.com/urfave/cli" + "go.uber.org/zap" + "go.uber.org/zap/zapcore" ) type UDM struct{} @@ -75,7 +75,7 @@ var ( KeepAliveTimerMutex sync.Mutex ) -var initLog *logrus.Entry +var initLog *zap.SugaredLogger func init() { initLog = logger.InitLog @@ -130,35 +130,18 @@ func (udm *UDM) setLogLevel() { if factory.UdmConfig.Logger.UDM != nil { if factory.UdmConfig.Logger.UDM.DebugLevel != "" { - if level, err := logrus.ParseLevel(factory.UdmConfig.Logger.UDM.DebugLevel); err != nil { + if level, err := zapcore.ParseLevel(factory.UdmConfig.Logger.UDM.DebugLevel); err != nil { initLog.Warnf("UDM Log level [%s] is invalid, set to [info] level", factory.UdmConfig.Logger.UDM.DebugLevel) - logger.SetLogLevel(logrus.InfoLevel) + logger.SetLogLevel(zap.InfoLevel) } else { initLog.Infof("UDM Log level is set to [%s] level", level) logger.SetLogLevel(level) } } else { initLog.Infoln("UDM Log level is default set to [info] level") - logger.SetLogLevel(logrus.InfoLevel) + logger.SetLogLevel(zap.InfoLevel) } - logger.SetReportCaller(factory.UdmConfig.Logger.UDM.ReportCaller) - } - - if factory.UdmConfig.Logger.PathUtil != nil { - if factory.UdmConfig.Logger.PathUtil.DebugLevel != "" { - if level, err := logrus.ParseLevel(factory.UdmConfig.Logger.PathUtil.DebugLevel); err != nil { - pathUtilLogger.PathLog.Warnf("PathUtil Log level [%s] is invalid, set to [info] level", - factory.UdmConfig.Logger.PathUtil.DebugLevel) - pathUtilLogger.SetLogLevel(logrus.InfoLevel) - } else { - pathUtilLogger.SetLogLevel(level) - } - } else { - pathUtilLogger.PathLog.Warnln("PathUtil Log level not set. Default set to [info] level") - pathUtilLogger.SetLogLevel(logrus.InfoLevel) - } - pathUtilLogger.SetReportCaller(factory.UdmConfig.Logger.PathUtil.ReportCaller) } } @@ -185,7 +168,7 @@ func (udm *UDM) Start() { initLog.Infoln("Server started") - router := loggerUtil.NewGinWithLogrus(logger.GinLog) + router := utilLogger.NewGinWithZap(logger.GinLog) eventexposure.AddService(router) httpcallback.AddService(router) @@ -250,9 +233,9 @@ func (udm *UDM) Start() { func (udm *UDM) Exec(c *cli.Context) error { // UDM.Initialize(cfgPath, c) - initLog.Traceln("args:", c.String("udmcfg")) + initLog.Debugln("args:", c.String("udmcfg")) args := udm.FilterCli(c) - initLog.Traceln("filter: ", args) + initLog.Debugln("filter:", args) command := exec.Command("./udm", args...) stdout, err := command.StdoutPipe() @@ -264,7 +247,7 @@ func (udm *UDM) Exec(c *cli.Context) error { go func() { in := bufio.NewScanner(stdout) for in.Scan() { - fmt.Println(in.Text()) + initLog.Infoln(in.Text()) } wg.Done() }() @@ -276,14 +259,14 @@ func (udm *UDM) Exec(c *cli.Context) error { go func() { in := bufio.NewScanner(stderr) for in.Scan() { - fmt.Println(in.Text()) + initLog.Infoln(in.Text()) } wg.Done() }() go func() { if err = command.Start(); err != nil { - fmt.Printf("UDM Start error: %v", err) + initLog.Errorf("UDM Start error: %v", err) } wg.Done() }() @@ -294,36 +277,36 @@ func (udm *UDM) Exec(c *cli.Context) error { } func (udm *UDM) Terminate() { - logger.InitLog.Infof("Terminating UDM...") + logger.InitLog.Infoln("terminating UDM...") // deregister with NRF problemDetails, err := consumer.SendDeregisterNFInstance() if problemDetails != nil { - logger.InitLog.Errorf("Deregister NF instance Failed Problem[%+v]", problemDetails) + logger.InitLog.Errorf("deregister NF instance Failed Problem[%+v]", problemDetails) } else if err != nil { - logger.InitLog.Errorf("Deregister NF instance Error[%+v]", err) + logger.InitLog.Errorf("deregister NF instance Error[%+v]", err) } else { - logger.InitLog.Infof("Deregister from NRF successfully") + logger.InitLog.Infoln("deregister from NRF successfully") } - logger.InitLog.Infof("UDM terminated") + logger.InitLog.Infoln("UDM terminated") } func (udm *UDM) updateConfig(commChannel chan *protos.NetworkSliceResponse) bool { var minConfig bool self := context.UDM_Self() for rsp := range commChannel { - logger.GrpcLog.Infoln("Received updateConfig in the udm app : ", rsp) + logger.GrpcLog.Infoln("received updateConfig in the udm app:", rsp) for _, ns := range rsp.NetworkSlice { - logger.GrpcLog.Infoln("Network Slice Name ", ns.Name) + logger.GrpcLog.Infoln("network Slice Name", ns.Name) if ns.Site != nil { temp := factory.PlmnSupportItem{} var found bool = false - logger.GrpcLog.Infoln("Network Slice has site name present ") + logger.GrpcLog.Infoln("network Slice has site name present ") site := ns.Site - logger.GrpcLog.Infoln("Site name ", site.SiteName) + logger.GrpcLog.Infoln("site name", site.SiteName) if site.Plmn != nil { temp.PlmnId.Mcc = site.Plmn.Mcc temp.PlmnId.Mnc = site.Plmn.Mnc - logger.GrpcLog.Infoln("Plmn mcc ", site.Plmn.Mcc) + logger.GrpcLog.Infoln("plmn mcc", site.Plmn.Mcc) for _, item := range self.PlmnList { if item.PlmnId.Mcc == temp.PlmnId.Mcc && item.PlmnId.Mnc == temp.PlmnId.Mnc { found = true @@ -332,10 +315,10 @@ func (udm *UDM) updateConfig(commChannel chan *protos.NetworkSliceResponse) bool } if !found { self.PlmnList = append(self.PlmnList, temp) - logger.GrpcLog.Infoln("Plmn added in the context", self.PlmnList) + logger.GrpcLog.Infoln("plmn added in the context", self.PlmnList) } } else { - logger.GrpcLog.Infoln("Plmn not present in the message ") + logger.GrpcLog.Infoln("plmn not present in the message") } } } @@ -344,17 +327,17 @@ func (udm *UDM) updateConfig(commChannel chan *protos.NetworkSliceResponse) bool if len(self.PlmnList) > 0 { minConfig = true ConfigPodTrigger <- true - logger.GrpcLog.Infoln("Send config trigger to main routine") + logger.GrpcLog.Infoln("send config trigger to main routine") } } else { // all slices deleted if len(self.PlmnList) == 0 { minConfig = false ConfigPodTrigger <- false - logger.GrpcLog.Infoln("Send config trigger to main routine") + logger.GrpcLog.Infoln("send config trigger to main routine") } else { ConfigPodTrigger <- true - logger.GrpcLog.Infoln("Send config trigger to main routine") + logger.GrpcLog.Infoln("send config trigger to main routine") } } } @@ -368,14 +351,14 @@ func (udm *UDM) StartKeepAliveTimer(nfProfile models.NfProfile) { if nfProfile.HeartBeatTimer == 0 { nfProfile.HeartBeatTimer = 60 } - logger.InitLog.Infof("Started KeepAlive Timer: %v sec", nfProfile.HeartBeatTimer) + logger.InitLog.Infof("started KeepAlive Timer: %v sec", nfProfile.HeartBeatTimer) // AfterFunc starts timer and waits for KeepAliveTimer to elapse and then calls udm.UpdateNF function KeepAliveTimer = time.AfterFunc(time.Duration(nfProfile.HeartBeatTimer)*time.Second, udm.UpdateNF) } func (udm *UDM) StopKeepAliveTimer() { if KeepAliveTimer != nil { - logger.InitLog.Infof("Stopped KeepAlive Timer.") + logger.InitLog.Infoln("stopped KeepAlive Timer") KeepAliveTimer.Stop() KeepAliveTimer = nil } @@ -385,7 +368,7 @@ func (udm *UDM) BuildAndSendRegisterNFInstance() (models.NfProfile, error) { self := context.UDM_Self() profile, err := consumer.BuildNFInstance(self) if err != nil { - initLog.Error("Build UDM Profile Error: ", err) + initLog.Errorf("build UDM Profile Error:", err) return profile, err } initLog.Infof("UDM Profile Registering to NRF: %v", profile) @@ -399,7 +382,7 @@ func (udm *UDM) UpdateNF() { KeepAliveTimerMutex.Lock() defer KeepAliveTimerMutex.Unlock() if KeepAliveTimer == nil { - initLog.Warnf("KeepAlive timer has been stopped.") + initLog.Warnf("keepAlive timer has been stopped") return } // setting default value 30 sec @@ -435,7 +418,7 @@ func (udm *UDM) UpdateNF() { // use hearbeattimer value with received timer value from NRF heartBeatTimer = nfProfile.HeartBeatTimer } - logger.InitLog.Debugf("Restarted KeepAlive Timer: %v sec", heartBeatTimer) + logger.InitLog.Debugf("restarted KeepAlive Timer: %v sec", heartBeatTimer) // restart timer with received HeartBeatTimer value KeepAliveTimer = time.AfterFunc(time.Duration(heartBeatTimer)*time.Second, udm.UpdateNF) } @@ -443,7 +426,7 @@ func (udm *UDM) UpdateNF() { func (udm *UDM) RegisterNF() { self := context.UDM_Self() for msg := range ConfigPodTrigger { - initLog.Infof("Minimum configuration from config pod available %v", msg) + initLog.Infof("minimum configuration from config pod available %v", msg) profile, err := consumer.BuildNFInstance(self) if err != nil { logger.InitLog.Errorln(err.Error()) @@ -454,7 +437,7 @@ func (udm *UDM) RegisterNF() { logger.InitLog.Errorln(err.Error()) } else { udm.StartKeepAliveTimer(prof) - logger.CfgLog.Infof("Sent Register NF Instance with updated profile") + logger.CfgLog.Infoln("sent Register NF Instance with updated profile") } } } diff --git a/subscribecallback/router.go b/subscribecallback/router.go index f9ff0f7..fcb8255 100644 --- a/subscribecallback/router.go +++ b/subscribecallback/router.go @@ -31,7 +31,7 @@ type Routes []Route // NewRouter returns a new router. func NewRouter() *gin.Engine { - router := loggerUtil.NewGinWithLogrus(logger.GinLog) + router := loggerUtil.NewGinWithZap(logger.GinLog) AddService(router) return router } diff --git a/subscriberdatamanagement/routers.go b/subscriberdatamanagement/routers.go index bd2d5be..e7e6a44 100644 --- a/subscriberdatamanagement/routers.go +++ b/subscriberdatamanagement/routers.go @@ -21,7 +21,7 @@ import ( "github.com/gin-gonic/gin" "github.com/omec-project/udm/logger" - logger_util "github.com/omec-project/util/logger" + utilLogger "github.com/omec-project/util/logger" ) // Route is the information for every URI. @@ -41,7 +41,7 @@ type Routes []Route // NewRouter returns a new router. func NewRouter() *gin.Engine { - router := logger_util.NewGinWithLogrus(logger.GinLog) + router := utilLogger.NewGinWithZap(logger.GinLog) AddService(router) return router } diff --git a/udm.go b/udm.go index c4a6a9b..1ecbb0e 100644 --- a/udm.go +++ b/udm.go @@ -10,13 +10,13 @@ import ( "github.com/omec-project/udm/logger" "github.com/omec-project/udm/service" - "github.com/sirupsen/logrus" "github.com/urfave/cli" + "go.uber.org/zap" ) var UDM = &service.UDM{} -var appLog *logrus.Entry +var appLog *zap.SugaredLogger func init() { appLog = logger.AppLog @@ -25,7 +25,7 @@ func init() { func main() { app := cli.NewApp() app.Name = "udm" - fmt.Print(app.Name, "\n") + appLog.Infoln(app.Name) app.Usage = "-free5gccfg common configuration file -udmcfg udm configuration file" app.Action = action app.Flags = UDM.GetCliCmd() diff --git a/udmtests/udm_nf_discovery_test.go b/udmtests/udm_nf_discovery_test.go index b302881..a771229 100644 --- a/udmtests/udm_nf_discovery_test.go +++ b/udmtests/udm_nf_discovery_test.go @@ -36,7 +36,7 @@ var ( func setupTest() { if err := factory.InitConfigFactory("../factory/udmcfg.yaml"); err != nil { - fmt.Printf("could not initialize UDM configuration: %+v\n", err) + fmt.Printf("could not initialize UDM configuration: %+v", err) } } @@ -54,7 +54,7 @@ func TestRegisterNF(t *testing.T) { consumer.SendSearchNFInstances = origSearchNFInstances consumer.SendUpdateNFInstance = origUpdateNFInstance }() - fmt.Printf("test case TestRegisterNF \n") + t.Logf("test case TestRegisterNF") var prof models.NfProfile consumer.SendRegisterNFInstance = func(nrfUri string, nfInstanceId string, profile models.NfProfile) (models.NfProfile, string, string, error) { udrProf := models.NfProfile{ @@ -68,11 +68,11 @@ func TestRegisterNF(t *testing.T) { NfStatus: "REGISTERED", } udrProf.HeartBeatTimer = 1 - fmt.Printf("Test RegisterNFInstance called\n") + t.Logf("test RegisterNFInstance called") return udrProf, "", "", nil } consumer.SendSearchNFInstances = func(nrfUri string, targetNfType, requestNfType models.NfType, param *Nnrf_NFDiscovery.SearchNFInstancesParamOpts) (models.SearchResult, error) { - fmt.Printf("Test SearchNFInstance called\n") + t.Logf("test SearchNFInstance called") return models.SearchResult{}, nil } consumer.SendUpdateNFInstance = func(patchItem []models.PatchItem) (nfProfile models.NfProfile, problemDetails *models.ProblemDetails, err error) { @@ -89,7 +89,7 @@ func TestRegisterNF(t *testing.T) { } func TestGetUDRUri(t *testing.T) { - fmt.Printf("test cases for Get UDR URI \n") + t.Logf("test cases for Get UDR URI") callCountSearchNFInstances := 0 callCountSendNfDiscovery := 0 origNRFCacheSearchNFInstances := consumer.NRFCacheSearchNFInstances @@ -183,12 +183,12 @@ func TestGetUDRUri(t *testing.T) { consumer.SendNfDiscoveryToNrf = origSendNfDiscoveryToNrf }() consumer.NRFCacheSearchNFInstances = func(nrfUri string, targetNfType, requestNfType models.NfType, param *Nnrf_NFDiscovery.SearchNFInstancesParamOpts) (models.SearchResult, error) { - fmt.Printf("Test SearchNFInstance called\n") + t.Logf("test SearchNFInstance called") callCountSearchNFInstances++ return searchResult1, nil } consumer.SendNfDiscoveryToNrf = func(nrfUri string, targetNfType, requestNfType models.NfType, param *Nnrf_NFDiscovery.SearchNFInstancesParamOpts) (models.SearchResult, error) { - fmt.Printf("Test SendNfDiscoveryToNrf called\n") + t.Logf("test SendNfDiscoveryToNrf called") callCountSendNfDiscovery++ return searchResult2, nil } @@ -232,7 +232,7 @@ func TestGetUDRUri(t *testing.T) { } func TestCreateSubscriptionSuccess(t *testing.T) { - fmt.Printf("test cases for CreateSubscription \n") + t.Logf("test cases for CreateSubscription") udrProfile := models.NfProfile{ UdrInfo: &models.UdrInfo{ SupportedDataSets: []models.DataSetId{ @@ -270,11 +270,11 @@ func TestCreateSubscriptionSuccess(t *testing.T) { consumer.CreateSubscription = origCreateSubscription }() consumer.StoreApiSearchNFInstances = func(*Nnrf_NFDiscovery.NFInstancesStoreApiService, context.Context, models.NfType, models.NfType, *Nnrf_NFDiscovery.SearchNFInstancesParamOpts) (models.SearchResult, *http.Response, error) { - fmt.Printf("Test SearchNFInstances called\n") + t.Logf("test SearchNFInstances called") return searchResult, &httpResponse, nil } consumer.CreateSubscription = func(nrfUri string, nrfSubscriptionData models.NrfSubscriptionData) (nrfSubData models.NrfSubscriptionData, problemDetails *models.ProblemDetails, err error) { - fmt.Printf("Test SendCreateSubsription called\n") + t.Logf("test SendCreateSubsription called") callCountSendCreateSubscription++ return models.NrfSubscriptionData{ NfStatusNotificationUri: "https://:0/nudm-callback/v1/nf-status-notify", @@ -326,7 +326,7 @@ func TestCreateSubscriptionSuccess(t *testing.T) { } func TestCreateSubscriptionFail(t *testing.T) { - fmt.Printf("test cases for CreateSubscription \n") + t.Logf("test cases for CreateSubscription") udrProfile := models.NfProfile{ UdrInfo: &models.UdrInfo{ SupportedDataSets: []models.DataSetId{ @@ -451,12 +451,12 @@ func TestCreateSubscriptionFail(t *testing.T) { for i := range parameters { t.Run(fmt.Sprintf("CreateSubscription testname %v result %v", parameters[i].testName, parameters[i].result), func(t *testing.T) { consumer.StoreApiSearchNFInstances = func(*Nnrf_NFDiscovery.NFInstancesStoreApiService, context.Context, models.NfType, models.NfType, *Nnrf_NFDiscovery.SearchNFInstancesParamOpts) (models.SearchResult, *http.Response, error) { - fmt.Printf("Test SearchNFInstances called\n") + t.Logf("test SearchNFInstances called") return parameters[i].searchResult, ¶meters[i].httpResponse, nil } consumer.CreateSubscription = func(nrfUri string, nrfSubscriptionData models.NrfSubscriptionData) (nrfSubData models.NrfSubscriptionData, problemDetails *models.ProblemDetails, err error) { - fmt.Printf("Test SendCreateSubsription called\n") + t.Logf("test SendCreateSubsription called") callCountSendCreateSubscription++ return parameters[i].nrfSubscriptionData, parameters[i].subscriptionProblem, parameters[i].subscriptionError } @@ -472,7 +472,7 @@ func TestCreateSubscriptionFail(t *testing.T) { } func TestNfSubscriptionStatusNotify(t *testing.T) { - fmt.Printf("test cases fore NfSubscriptionStatusNotify \n") + t.Logf("test cases fore NfSubscriptionStatusNotify") callCountSendRemoveSubscription := 0 callCountNRFCacheRemoveNfProfileFromNrfCache := 0 origSendRemoveSubscription := producer.SendRemoveSubscription @@ -482,12 +482,12 @@ func TestNfSubscriptionStatusNotify(t *testing.T) { producer.NRFCacheRemoveNfProfileFromNrfCache = origNRFCacheRemoveNfProfileFromNrfCache }() producer.SendRemoveSubscription = func(subscriptionId string) (problemDetails *models.ProblemDetails, err error) { - fmt.Printf("Test SendRemoveSubscription called\n") + t.Logf("test SendRemoveSubscription called") callCountSendRemoveSubscription++ return nil, nil } producer.NRFCacheRemoveNfProfileFromNrfCache = func(nfInstanceId string) bool { - fmt.Printf("Test NRFCacheRemoveNfProfileFromNrfCache called\n") + t.Logf("test NRFCacheRemoveNfProfileFromNrfCache called") callCountNRFCacheRemoveNfProfileFromNrfCache++ return true } diff --git a/ueauthentication/routers.go b/ueauthentication/routers.go index 2e63be2..d752461 100644 --- a/ueauthentication/routers.go +++ b/ueauthentication/routers.go @@ -19,13 +19,13 @@ import ( "strings" "github.com/gin-gonic/gin" - "github.com/sirupsen/logrus" + "go.uber.org/zap" "github.com/omec-project/udm/logger" - logger_util "github.com/omec-project/util/logger" + utilLogger "github.com/omec-project/util/logger" ) -var HttpLog *logrus.Entry +var HttpLog *zap.SugaredLogger func init() { HttpLog = logger.HttpLog @@ -48,7 +48,7 @@ type Routes []Route // NewRouter returns a new router. func NewRouter() *gin.Engine { - router := logger_util.NewGinWithLogrus(logger.GinLog) + router := utilLogger.NewGinWithZap(logger.GinLog) AddService(router) return router } diff --git a/uecontextmanagement/api_amf3_gpp_access_registration_info_retrieval.go b/uecontextmanagement/api_amf3_gpp_access_registration_info_retrieval.go index f409cb2..b2acd03 100644 --- a/uecontextmanagement/api_amf3_gpp_access_registration_info_retrieval.go +++ b/uecontextmanagement/api_amf3_gpp_access_registration_info_retrieval.go @@ -19,7 +19,6 @@ import ( "github.com/gin-gonic/gin" - // "fmt" "github.com/omec-project/openapi" "github.com/omec-project/openapi/models" "github.com/omec-project/udm/logger" diff --git a/uecontextmanagement/api_amf_registration_for3_gpp_access.go b/uecontextmanagement/api_amf_registration_for3_gpp_access.go index ecf76e8..8e344f2 100644 --- a/uecontextmanagement/api_amf_registration_for3_gpp_access.go +++ b/uecontextmanagement/api_amf_registration_for3_gpp_access.go @@ -19,7 +19,6 @@ import ( "github.com/gin-gonic/gin" - // "fmt" "github.com/omec-project/openapi" "github.com/omec-project/openapi/models" "github.com/omec-project/udm/logger" diff --git a/uecontextmanagement/api_parameter_update_in_the_amf_registration_for3_gpp_access.go b/uecontextmanagement/api_parameter_update_in_the_amf_registration_for3_gpp_access.go index 52b1d7c..069d057 100644 --- a/uecontextmanagement/api_parameter_update_in_the_amf_registration_for3_gpp_access.go +++ b/uecontextmanagement/api_parameter_update_in_the_amf_registration_for3_gpp_access.go @@ -19,7 +19,6 @@ import ( "github.com/gin-gonic/gin" - // "fmt" "github.com/omec-project/openapi" "github.com/omec-project/openapi/models" "github.com/omec-project/udm/logger" diff --git a/uecontextmanagement/routers.go b/uecontextmanagement/routers.go index b8e0028..3bfe7ff 100644 --- a/uecontextmanagement/routers.go +++ b/uecontextmanagement/routers.go @@ -21,7 +21,7 @@ import ( "github.com/gin-gonic/gin" "github.com/omec-project/udm/logger" - logger_util "github.com/omec-project/util/logger" + utilLogger "github.com/omec-project/util/logger" ) // Route is the information for every URI. @@ -41,7 +41,7 @@ type Routes []Route // NewRouter returns a new router. func NewRouter() *gin.Engine { - router := logger_util.NewGinWithLogrus(logger.GinLog) + router := utilLogger.NewGinWithZap(logger.GinLog) AddService(router) return router }