Skip to content

Commit

Permalink
fix: correct error handling
Browse files Browse the repository at this point in the history
  • Loading branch information
TYuan0816 committed Sep 11, 2024
1 parent c20a740 commit 4e6d3b2
Show file tree
Hide file tree
Showing 4 changed files with 43 additions and 45 deletions.
16 changes: 6 additions & 10 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,10 @@ module github.com/free5gc/ausf

go 1.21.0

toolchain go1.21.5

require (
github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2
github.com/bronze1man/radius v0.0.0-20190516032554-afd8baec892d
github.com/free5gc/openapi v1.0.8
github.com/free5gc/openapi v1.0.9-0.20240823100026-6a9f667e914f
github.com/free5gc/util v1.0.6
github.com/gin-gonic/gin v1.10.0
github.com/google/gopacket v1.1.19
Expand Down Expand Up @@ -49,11 +47,11 @@ require (
github.com/tim-ywliu/nested-logrus-formatter v1.3.2 // indirect
github.com/twitchyliquid64/golang-asm v0.15.1 // indirect
github.com/ugorji/go/codec v1.2.12 // indirect
go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace v0.54.0 // indirect
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.54.0 // indirect
go.opentelemetry.io/otel v1.29.0 // indirect
go.opentelemetry.io/otel/metric v1.29.0 // indirect
go.opentelemetry.io/otel/trace v1.29.0 // indirect
go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace v0.49.0 // indirect
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0 // indirect
go.opentelemetry.io/otel v1.24.0 // indirect
go.opentelemetry.io/otel/metric v1.24.0 // indirect
go.opentelemetry.io/otel/trace v1.24.0 // indirect
golang.org/x/arch v0.9.0 // indirect
golang.org/x/crypto v0.26.0 // indirect
golang.org/x/net v0.28.0 // indirect
Expand All @@ -63,5 +61,3 @@ require (
google.golang.org/protobuf v1.34.2 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
)

replace github.com/free5gc/openapi => github.com/free5gc/openapi v1.0.9-0.20240823100026-6a9f667e914f
20 changes: 10 additions & 10 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -106,16 +106,16 @@ github.com/ugorji/go/codec v1.2.12 h1:9LC83zGrHhuUA9l16C9AHXAqEV/2wBQ4nkvumAE65E
github.com/ugorji/go/codec v1.2.12/go.mod h1:UNopzCgEMSXjBc6AOMqYvWC1ktqTAfzJZUZgYf6w6lg=
github.com/urfave/cli v1.22.15 h1:nuqt+pdC/KqswQKhETJjo7pvn/k4xMUxgW6liI7XpnM=
github.com/urfave/cli v1.22.15/go.mod h1:wSan1hmo5zeyLGBjRJbzRTNk8gwoYa2B9n4q9dmRIc0=
go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace v0.54.0 h1:U9ge/19g8pkNXL+0eqeWgiJAd8nSmmvbvwehqyxU/Lc=
go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace v0.54.0/go.mod h1:dmNhUi0Tl5v/3e0QNp7/3KLMvAPoHh4lMbZU319UkM0=
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.54.0 h1:TT4fX+nBOA/+LUkobKGW1ydGcn+G3vRw9+g5HwCphpk=
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.54.0/go.mod h1:L7UH0GbB0p47T4Rri3uHjbpCFYrVrwc1I25QhNPiGK8=
go.opentelemetry.io/otel v1.29.0 h1:PdomN/Al4q/lN6iBJEN3AwPvUiHPMlt93c8bqTG5Llw=
go.opentelemetry.io/otel v1.29.0/go.mod h1:N/WtXPs1CNCUEx+Agz5uouwCba+i+bJGFicT8SR4NP8=
go.opentelemetry.io/otel/metric v1.29.0 h1:vPf/HFWTNkPu1aYeIsc98l4ktOQaL6LeSoeV2g+8YLc=
go.opentelemetry.io/otel/metric v1.29.0/go.mod h1:auu/QWieFVWx+DmQOUMgj0F8LHWdgalxXqvp7BII/W8=
go.opentelemetry.io/otel/trace v1.29.0 h1:J/8ZNK4XgR7a21DZUAsbF8pZ5Jcw1VhACmnYt39JTi4=
go.opentelemetry.io/otel/trace v1.29.0/go.mod h1:eHl3w0sp3paPkYstJOmAimxhiFXPg+MMTlEh3nsQgWQ=
go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace v0.49.0 h1:RtcvQ4iw3w9NBB5yRwgA4sSa82rfId7n4atVpvKx3bY=
go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace v0.49.0/go.mod h1:f/PbKbRd4cdUICWell6DmzvVJ7QrmBgFrRHjXmAXbK4=
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0 h1:jq9TW8u3so/bN+JPT166wjOI6/vQPF6Xe7nMNIltagk=
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0/go.mod h1:p8pYQP+m5XfbZm9fxtSKAbM6oIllS7s2AfxrChvc7iw=
go.opentelemetry.io/otel v1.24.0 h1:0LAOdjNmQeSTzGBzduGe/rU4tZhMwL5rWgtp9Ku5Jfo=
go.opentelemetry.io/otel v1.24.0/go.mod h1:W7b9Ozg4nkF5tWI5zsXkaKKDjdVjpD4oAt9Qi/MArHo=
go.opentelemetry.io/otel/metric v1.24.0 h1:6EhoGWWK28x1fbpA4tYTOWBkPefTDQnb8WSGXlc88kI=
go.opentelemetry.io/otel/metric v1.24.0/go.mod h1:VYhLe1rFfxuTXLgj4CBiyz+9WYBA8pNGJgDcSFRKBco=
go.opentelemetry.io/otel/trace v1.24.0 h1:CsKnnL4dUAr/0llH9FKuc698G04IrpWV0MQA/Y1YELI=
go.opentelemetry.io/otel/trace v1.24.0/go.mod h1:HPc3Xr/cOApsBI154IU0OI0HJexz+aw5uPdbs3UCjNU=
go.uber.org/mock v0.4.0 h1:VcM4ZOtdbR4f6VXfiOpwpVJDL6lCReaZ6mw31wqh7KU=
go.uber.org/mock v0.4.0/go.mod h1:a6FSlNadKUHUa9IP5Vyt1zh4fC7uAwxMutEAscFbkZc=
golang.org/x/arch v0.9.0 h1:ub9TgUInamJ8mrZIGlBG6/4TqWeMszd4N8lNorbrr6k=
Expand Down
23 changes: 7 additions & 16 deletions internal/sbi/consumer/nrf_service.go
Original file line number Diff line number Diff line change
Expand Up @@ -100,31 +100,22 @@ func (s *nnrfService) SendSearchNFInstances(
return &result, err
}

func (s *nnrfService) SendDeregisterNFInstance() (problemDetails *models.ProblemDetails, err error) {
func (s *nnrfService) SendDeregisterNFInstance() (err error) {
logger.ConsumerLog.Infof("Send Deregister NFInstance")

ctx, pd, err := ausf_context.GetSelf().GetTokenCtx(models.ServiceName_NNRF_NFM, models.NrfNfManagementNfType_NRF)
ctx, _, err := ausf_context.GetSelf().GetTokenCtx(models.ServiceName_NNRF_NFM, models.NrfNfManagementNfType_NRF)
if err != nil {
return pd, err
return err
}

ausfContext := s.consumer.Context()
client := s.getNFManagementClient(ausfContext.NrfUri)

request := &Nnrf_NFManagement.DeregisterNFInstanceRequest{
NfInstanceID: &ausfContext.NfId,
}

_, err = client.NFInstanceIDDocumentApi.DeregisterNFInstance(ctx, request)
var derigisterNfInstanceRequest Nnrf_NFManagement.DeregisterNFInstanceRequest
derigisterNfInstanceRequest.NfInstanceID = &ausfContext.NfId
_, err = client.NFInstanceIDDocumentApi.DeregisterNFInstance(ctx, &derigisterNfInstanceRequest)

switch e := err.(type) {
case openapi.GenericOpenAPIError:
return e.Model().(*models.ProblemDetails), nil
case nil:
return nil, nil
default:
return nil, err
}
return err
}

func (s *nnrfService) RegisterNFInstance(ctx context.Context) (
Expand Down
29 changes: 20 additions & 9 deletions pkg/service/init.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@ import (
"github.com/free5gc/ausf/internal/sbi/processor"
"github.com/free5gc/ausf/pkg/app"
"github.com/free5gc/ausf/pkg/factory"
"github.com/free5gc/openapi"
"github.com/free5gc/openapi/nrf/NFManagement"
)

var AUSF *AusfApp
Expand Down Expand Up @@ -161,19 +163,28 @@ func (a *AusfApp) Terminate() {

func (a *AusfApp) terminateProcedure() {
logger.MainLog.Infof("Terminating AUSF...")
a.CallServerStop()

// deregister with NRF
problemDetails, err := a.Consumer().SendDeregisterNFInstance()
if problemDetails != nil {
logger.MainLog.Errorf("Deregister NF instance Failed Problem[%+v]", problemDetails)
} else if err != nil {
logger.MainLog.Errorf("Deregister NF instance Error[%+v]", err)
} else {
logger.MainLog.Infof("Deregister from NRF successfully")
err := a.Consumer().SendDeregisterNFInstance()
if err != nil {
switch apiErr := err.(type) {
case openapi.GenericOpenAPIError:
switch errModel := apiErr.Model().(type) {
case NFManagement.DeregisterNFInstanceError:
pd := &errModel.ProblemDetails
logger.InitLog.Errorf("Deregister NF instance Failed Problem[%+v]", pd)
case error:
logger.InitLog.Errorf("Deregister NF instance Error[%+v]", err)
}
case error:
logger.InitLog.Errorf("Deregister NF instance Error[%+v]", err)
}
}
logger.MainLog.Infof("AUSF SBI Server terminated")

a.CallServerStop()
logger.MainLog.Infof("Deregister from NRF successfully")

logger.MainLog.Infof("AUSF SBI Server terminated")
}

func (a *AusfApp) CallServerStop() {
Expand Down

0 comments on commit 4e6d3b2

Please sign in to comment.