diff --git a/.golangci.yml b/.golangci.yml index 9b743a6ea6330ad14659f5117ba01bb2a9987a20..2141fe8030ba212bcf2a72c1dd7b5096475b6a01 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -33,7 +33,7 @@ issues: linters: # enable the specific needed linters # see here for full list: https://golangci-lint.run/usage/linters/ - # linters to consider: gosimple, containedctx, contextcheck, depguard, errchkjson, errname, exhaustive, exhaustruct, forbidigo, + # linters to consider: gosimple, containedctx, contextcheck, depguard, errchkjson, exhaustive, exhaustruct, forbidigo, # gochecknoinits, gocognit, goconst, gocritic, gofumpt, gomnd, gosec, importas, lll, nestif, nilerr, nlreturn, noctx, nolintlint, # nosnakecase, paralleltest, prealloc, structcheck, testpackage, tparallel, unparam, wastedassign, wrapcheck, wsl disable-all: true @@ -61,6 +61,7 @@ linters: - nilnil - predeclared - godot + - errname # custom settings for linters linters-settings: diff --git a/cli/adapter/PndAdapter.go b/cli/adapter/PndAdapter.go index 0cf7996831ddf2db56a67f5865247d362592e63f..89947898b994059b0027254a918de78b737b4511 100644 --- a/cli/adapter/PndAdapter.go +++ b/cli/adapter/PndAdapter.go @@ -7,8 +7,8 @@ import ( ppb "code.fbi.h-da.de/danet/gosdn/api/go/gosdn/pnd" tpb "code.fbi.h-da.de/danet/gosdn/api/go/gosdn/transport" "code.fbi.h-da.de/danet/gosdn/controller/api" + "code.fbi.h-da.de/danet/gosdn/controller/customerrs" "code.fbi.h-da.de/danet/gosdn/controller/interfaces/southbound" - "code.fbi.h-da.de/danet/gosdn/controller/nucleus/errors" "github.com/google/uuid" "github.com/openconfig/goyang/pkg/yang" "golang.org/x/sync/errgroup" @@ -37,12 +37,12 @@ func NewPndAdapter(id, endpoint string) (*PndAdapter, error) { // AddSbi adds an SBI to the PND Adapter. Currently not implemented. func (p *PndAdapter) AddSbi(s southbound.SouthboundInterface) error { - return &errors.ErrNotYetImplemented{} + return &customerrs.NotYetImplementedError{} } // RemoveSbi removes an SBI from the PND Adapter. Currently not implemented. func (p *PndAdapter) RemoveSbi(uuid.UUID) error { - return &errors.ErrNotYetImplemented{} + return &customerrs.NotYetImplementedError{} } // AddDevice adds a new device to the controller. The device name is optional. diff --git a/controller/nucleus/errors/errors.go b/controller/customerrs/errors.go similarity index 50% rename from controller/nucleus/errors/errors.go rename to controller/customerrs/errors.go index 483f4af8f3ac56f4956628b4457288a7799c17d1..d5197bd0ce948fd7a735ba8b4181c49f213a4ab6 100644 --- a/controller/nucleus/errors/errors.go +++ b/controller/customerrs/errors.go @@ -1,4 +1,4 @@ -package errors +package customerrs import ( "fmt" @@ -7,140 +7,140 @@ import ( "github.com/openconfig/ygot/ygot" ) -// ErrNilClient implements the Error interface and is called if a GNMI Client is nil. -type ErrNilClient struct { +// NilClientError implements the Error interface and is called if a GNMI Client is nil. +type NilClientError struct { } -func (e *ErrNilClient) Error() string { +func (e *NilClientError) Error() string { return fmt.Sprint("client cannot be nil") } -// ErrNil implements the Error interface and is called if a struct is nil. -type ErrNil struct { +// NilError implements the Error interface and is called if a struct is nil. +type NilError struct { } -func (e *ErrNil) Error() string { +func (e *NilError) Error() string { return fmt.Sprint("struct cannot be nil") } -// ErrAlreadyExists implements the Error interface and is called if a specific ID +// AlreadyExistsError implements the Error interface and is called if a specific ID // of a storable item already exists. -type ErrAlreadyExists struct { +type AlreadyExistsError struct { Item interface{} } -func (e *ErrAlreadyExists) Error() string { +func (e *AlreadyExistsError) Error() string { return fmt.Sprintf("%T %v already exists", e.Item, e.Item) } -// ErrInvalidUUID implements the Error interface and is called if a UUID is not valid. -type ErrInvalidUUID struct { +// InvalidUUIDError implements the Error interface and is called if a UUID is not valid. +type InvalidUUIDError struct { DeviceName string } -func (e *ErrInvalidUUID) Error() string { +func (e *InvalidUUIDError) Error() string { return fmt.Sprint("UUID not valid") } -// ErrInvalidTypeAssertion implements the Error interface and is called if the +// InvalidTypeAssertionError implements the Error interface and is called if the // type of a storable item does not correspond to the expected type. -type ErrInvalidTypeAssertion struct { +type InvalidTypeAssertionError struct { Value interface{} Type interface{} } -func (e ErrInvalidTypeAssertion) Error() string { +func (e InvalidTypeAssertionError) Error() string { return fmt.Sprintf("%v does not implement %v", reflect.TypeOf(e.Value).Elem(), reflect.TypeOf(e.Type).Elem()) } -// ErrUnsupportedPath implements the Error interface and is called if the +// UnsupportedPathError implements the Error interface and is called if the // given path is not supported. -type ErrUnsupportedPath struct { +type UnsupportedPathError struct { Path interface{} } -func (e ErrUnsupportedPath) Error() string { +func (e UnsupportedPathError) Error() string { return fmt.Sprintf("path %v is not supported", e.Path) } -// ErrPathNotFound implements the Error interface and is called if the +// PathNotFoundError implements the Error interface and is called if the // given path is not supported. -type ErrPathNotFound struct { +type PathNotFoundError struct { Path interface{} Err error } -func (e ErrPathNotFound) Error() string { +func (e PathNotFoundError) Error() string { return fmt.Sprintf("path %v not found: %v", e.Path, e.Err) } -// ErrNotYetImplemented implements the Error interface and is called if a function +// NotYetImplementedError implements the Error interface and is called if a function // is not implemented yet. -type ErrNotYetImplemented struct{} +type NotYetImplementedError struct{} -func (e ErrNotYetImplemented) Error() string { +func (e NotYetImplementedError) Error() string { return fmt.Sprint("function not yet implemented") } -// ErrInvalidParameters implements the Error interface and is called if the wrong +// InvalidParametersError implements the Error interface and is called if the wrong // or no parameters have been provided. -type ErrInvalidParameters struct { +type InvalidParametersError struct { Func interface{} Param interface{} } -func (e ErrInvalidParameters) Error() string { +func (e InvalidParametersError) Error() string { return fmt.Sprintf("invalid parameters for %v: %v", e.Func, e.Param) } -// ErrInvalidTransportOptions implements the Error interface and is called if the +// InvalidTransportOptionsError implements the Error interface and is called if the // wrong TransportOptions have been provided. -type ErrInvalidTransportOptions struct { +type InvalidTransportOptionsError struct { Opt interface{} } -func (e ErrInvalidTransportOptions) Error() string { +func (e InvalidTransportOptionsError) Error() string { return fmt.Sprintf("invalid transport options: %v", reflect.TypeOf(e.Opt)) } -// ErrOperationNotSupported implements the Error interface and is called if the +// OperationNotSupportedError implements the Error interface and is called if the // wrong Operation has been provided. -type ErrOperationNotSupported struct { +type OperationNotSupportedError struct { Op interface{} } -func (e ErrOperationNotSupported) Error() string { +func (e OperationNotSupportedError) Error() string { return fmt.Sprintf("transport operation not supported: %v", reflect.TypeOf(e.Op)) } -// ErrUnsupportedSbiType implements the Error interface and is called if the +// UnsupportedSbiTypeError implements the Error interface and is called if the // wrong Type for a SBI has been provided. -type ErrUnsupportedSbiType struct { +type UnsupportedSbiTypeError struct { Type interface{} } -func (e ErrUnsupportedSbiType) Error() string { +func (e UnsupportedSbiTypeError) Error() string { return fmt.Sprintf("SBI type not supported: %v", e.Type) } -// ErrPluginVersion implements the Error interface and is called if the Version +// PluginVersionError implements the Error interface and is called if the Version // of a Plugin is older than a Plugin in use. -type ErrPluginVersion struct { +type PluginVersionError struct { PlugID, ProvidedVer, UsedVer string } -func (e ErrPluginVersion) Error() string { +func (e PluginVersionError) Error() string { return fmt.Sprintf("Version of Plugin: %s is older than the one in use. Provided: %s, in use: %s", e.PlugID, e.ProvidedVer, e.UsedVer) } -// ErrorList implements the Error interface and is called if a slice of errors +// CombinedErrListError implements the Error interface and is called if a slice of errors // should be returned. The slice of errors is combined into a single error // message and returned. -type ErrorList struct { +type CombinedErrListError struct { Errors []error } -func (e ErrorList) Error() string { +func (e CombinedErrListError) Error() string { combinedErrString := "Errors found:" for i, err := range e.Errors { errString := fmt.Sprintf("\n %v. %v", i+1, err) @@ -149,130 +149,130 @@ func (e ErrorList) Error() string { return combinedErrString } -// ErrTypeNotSupported implements the Error interface and is called if the +// TypeNotSupportedError implements the Error interface and is called if the // wrong Type has been provided. -type ErrTypeNotSupported struct { +type TypeNotSupportedError struct { Type interface{} } -func (e ErrTypeNotSupported) Error() string { +func (e TypeNotSupportedError) Error() string { return fmt.Sprintf("type not supported: %v", reflect.TypeOf(e.Type)) } -// ErrCouldNotMarshall implements Error interface and is called if a +// CouldNotMarshallError implements Error interface and is called if a // database response can not be parsed. -type ErrCouldNotMarshall struct { +type CouldNotMarshallError struct { Identifier any Type any Err error } -func (e ErrCouldNotMarshall) Error() string { +func (e CouldNotMarshallError) Error() string { return fmt.Sprintf("could not marshall Identifier: %v of Type: %T, Internal error: %v", e.Identifier, e.Type, e.Err) } -// ErrCouldNotUpdate implements the Error interface and is called if a +// CouldNotUpdateError implements the Error interface and is called if a // stored item can not be updated. -type ErrCouldNotUpdate struct { +type CouldNotUpdateError struct { Identifier any Type any Err error } -func (e ErrCouldNotUpdate) Error() string { +func (e CouldNotUpdateError) Error() string { return fmt.Sprintf("could not update Identifier: %v of Type: %T, Internal error: %v", e.Identifier, e.Type, e.Err) } -// ErrCouldNotFind implements the Error interface and is called if a +// CouldNotFindError implements the Error interface and is called if a // stored item can not be found. -type ErrCouldNotFind struct { +type CouldNotFindError struct { ID any Name string } -func (e ErrCouldNotFind) Error() string { +func (e CouldNotFindError) Error() string { return fmt.Sprintf("ID: %v or Name: %v not found", e.ID, e.Name) } -// ErrCouldNotCreate implements the Error interface and is called if a +// CouldNotCreateError implements the Error interface and is called if a // stored item can not be found. -type ErrCouldNotCreate struct { +type CouldNotCreateError struct { Identifier any Type any Err error } -func (e ErrCouldNotCreate) Error() string { +func (e CouldNotCreateError) Error() string { return fmt.Sprintf("could not create Identifier: %v of Type: %T, Internal error: %v", e.Identifier, e.Type, e.Err) } -// ErrCouldNotDelete implements the Error interface and is called if a +// CouldNotDeleteError implements the Error interface and is called if a // stored item can not be deleted. -type ErrCouldNotDelete struct { +type CouldNotDeleteError struct { Identifier any Type any Err error } -func (e ErrCouldNotDelete) Error() string { +func (e CouldNotDeleteError) Error() string { return fmt.Sprintf("could not delete Identifier: %v of Type: %T, Internal error: %v", e.Identifier, e.Type, e.Err) } -// ErrNoNewChanges implements the Error interface and is called if a the +// NoNewChangesError implements the Error interface and is called if a the // gNMI-Notification created from ygot.Diff does not contain any `updates` or // `deletes`. -type ErrNoNewChanges struct { +type NoNewChangesError struct { Original ygot.GoStruct Modified ygot.GoStruct } -func (e ErrNoNewChanges) Error() string { +func (e NoNewChangesError) Error() string { return fmt.Sprintf("There are no changes between %v and %v", e.Original, e.Modified) } -// ErrAMQPInitFail implements the Error interface and is called if there is any issue related to +// AMQPInitFailError implements the Error interface and is called if there is any issue related to // the setup of the event management. -type ErrAMQPInitFail struct { +type AMQPInitFailError struct { Action string Err error } -func (e ErrAMQPInitFail) Error() string { +func (e AMQPInitFailError) Error() string { return fmt.Sprintf("Action: %s, Internal error: %v", e.Action, e.Err) } -// ErrAMQPMessageFail implements the Error interface and is called if there is any issue with sending +// AMQPMessageFailError implements the Error interface and is called if there is any issue with sending // or receiving messages. -type ErrAMQPMessageFail struct { +type AMQPMessageFailError struct { Action string Err error } -func (e ErrAMQPMessageFail) Error() string { +func (e AMQPMessageFailError) Error() string { return fmt.Sprintf("Action: %s, Internal error: %v", e.Action, e.Err) } -// ErrSubscribeResponse implements the Error interface and is called if there is an issue during a ongoing +// SubscribeResponseError implements the Error interface and is called if there is an issue during a ongoing // gNMI Subscription. -type ErrSubscribeResponse struct { +type SubscribeResponseError struct { PndID string DeviceID string DeviceName string Err string } -func (e ErrSubscribeResponse) Error() string { +func (e SubscribeResponseError) Error() string { return fmt.Sprintf("Subscribe failed, PndID: %s, DeviceID: %s, DeviceName: %s, Internal error: %s", e.PndID, e.DeviceID, e.DeviceName, e.Err) } -// ErrSubscribeSyncResponse implements the Error interface and is called if there is an issue syncing a +// SubscribeSyncResponseError implements the Error interface and is called if there is an issue syncing a // gNMI Subscription. -type ErrSubscribeSyncResponse struct { +type SubscribeSyncResponseError struct { PndID string DeviceID string DeviceName string } -func (e ErrSubscribeSyncResponse) Error() string { +func (e SubscribeSyncResponseError) Error() string { return fmt.Sprintf("Sync failed, PndID: %s, DeviceID: %s, DeviceName: %s", e.PndID, e.DeviceID, e.DeviceName) } diff --git a/controller/eventService/Service.go b/controller/eventService/Service.go index cdf4aaad7ee16d97c06d2f9f6ddcca3c512247be..8710655152b4db340ebfbebc2dd51d5d032370e3 100644 --- a/controller/eventService/Service.go +++ b/controller/eventService/Service.go @@ -5,8 +5,8 @@ import ( "encoding/json" "code.fbi.h-da.de/danet/gosdn/controller/config" + "code.fbi.h-da.de/danet/gosdn/controller/customerrs" "code.fbi.h-da.de/danet/gosdn/controller/event" - "code.fbi.h-da.de/danet/gosdn/controller/nucleus/errors" interfaces "code.fbi.h-da.de/danet/gosdn/controller/interfaces/event" @@ -29,12 +29,12 @@ func NewEventService() (interfaces.Service, error) { conn, err := amqp.Dial(amqpURIBuilder(config.AMQPPrefix, config.AMQPUser, config.AMQPPassword, config.AMQPHost, config.AMQPPort)) if err != nil { - return nil, &errors.ErrAMQPInitFail{Action: "failed to connect to RabbitMQ", Err: err} + return nil, &customerrs.AMQPInitFailError{Action: "failed to connect to RabbitMQ", Err: err} } ch, err := conn.Channel() if err != nil { - return nil, &errors.ErrAMQPInitFail{Action: "failed to open a channel", Err: err} + return nil, &customerrs.AMQPInitFailError{Action: "failed to open a channel", Err: err} } return &EventService{ @@ -54,12 +54,12 @@ func (e *EventService) PublishEvent(topic string, event event.Event) error { nil, // arguments ) if err != nil { - return &errors.ErrAMQPInitFail{Action: "failed declaring queue", Err: err} + return &customerrs.AMQPInitFailError{Action: "failed declaring queue", Err: err} } eventBody, err := json.Marshal(event) if err != nil { - return &errors.ErrCouldNotMarshall{Identifier: topic + " " + event.EntityID.String(), Type: event.Type, Err: err} + return &customerrs.CouldNotMarshallError{Identifier: topic + " " + event.EntityID.String(), Type: event.Type, Err: err} } err = e.channel.PublishWithContext( @@ -73,7 +73,7 @@ func (e *EventService) PublishEvent(topic string, event event.Event) error { Body: eventBody, }) if err != nil { - return &errors.ErrAMQPMessageFail{Action: "failed to publish message", Err: err} + return &customerrs.AMQPMessageFailError{Action: "failed to publish message", Err: err} } return nil diff --git a/controller/interfaces/plugin/plugin.go b/controller/interfaces/plugin/plugin.go index 9dcae112198986d0e04f51ece22678a5fb669957..019c0d9399ce9a973481204f6311f56f1cf8dcb4 100644 --- a/controller/interfaces/plugin/plugin.go +++ b/controller/interfaces/plugin/plugin.go @@ -5,7 +5,7 @@ import ( "io/ioutil" "regexp" - "code.fbi.h-da.de/danet/gosdn/controller/nucleus/errors" + "code.fbi.h-da.de/danet/gosdn/controller/customerrs" "github.com/google/uuid" "gopkg.in/yaml.v3" ) @@ -78,7 +78,7 @@ func (m *Manifest) Validate() error { errs = append(errs, fmt.Errorf("Version has to be of form: vX.X.X")) } if len(errs) != 0 { - return errors.ErrorList{Errors: errs} + return customerrs.CombinedErrListError{Errors: errs} } return nil } diff --git a/controller/northbound/server/pnd.go b/controller/northbound/server/pnd.go index 3805364c171aecda96454fa7e62bfb300c8506a1..dc8bd2f872ad666448229c5740e7cf31a7b86c54 100644 --- a/controller/northbound/server/pnd.go +++ b/controller/northbound/server/pnd.go @@ -7,11 +7,11 @@ import ( ppb "code.fbi.h-da.de/danet/gosdn/api/go/gosdn/pnd" spb "code.fbi.h-da.de/danet/gosdn/api/go/gosdn/southbound" + "code.fbi.h-da.de/danet/gosdn/controller/customerrs" "code.fbi.h-da.de/danet/gosdn/controller/interfaces/device" "code.fbi.h-da.de/danet/gosdn/controller/interfaces/networkdomain" "code.fbi.h-da.de/danet/gosdn/controller/metrics" "code.fbi.h-da.de/danet/gosdn/controller/nucleus" - "code.fbi.h-da.de/danet/gosdn/controller/nucleus/errors" "code.fbi.h-da.de/danet/gosdn/controller/store" "github.com/google/uuid" "github.com/openconfig/gnmi/proto/gnmi" @@ -443,7 +443,7 @@ func fillChanges(pnd networkdomain.NetworkDomain, all bool, cuid ...string) ([]* default: var err error if len(cuid) == 0 { - return nil, &errors.ErrInvalidParameters{ + return nil, &customerrs.InvalidParametersError{ Func: fillChanges, Param: "length of 'did' cannot be '0' when 'all' is set to 'false'", } @@ -556,7 +556,7 @@ func (p PndServer) SetChangeList(ctx context.Context, request *ppb.SetChangeList return nil, status.Errorf(codes.Aborted, "%v", err) } default: - return nil, &errors.ErrInvalidParameters{ + return nil, &customerrs.InvalidParametersError{ Param: r.Op, } } diff --git a/controller/nucleus/databaseDeviceStore.go b/controller/nucleus/databaseDeviceStore.go index a7664706c391a2de8e0e4593cc71b360dea40a8b..b2d8feef18e71820dc24f038597c88b07830fe8a 100644 --- a/controller/nucleus/databaseDeviceStore.go +++ b/controller/nucleus/databaseDeviceStore.go @@ -3,9 +3,9 @@ package nucleus import ( "fmt" + "code.fbi.h-da.de/danet/gosdn/controller/customerrs" "code.fbi.h-da.de/danet/gosdn/controller/interfaces/device" "code.fbi.h-da.de/danet/gosdn/controller/nucleus/database" - "code.fbi.h-da.de/danet/gosdn/controller/nucleus/errors" "code.fbi.h-da.de/danet/gosdn/controller/store" "go.mongodb.org/mongo-driver/bson" "go.mongodb.org/mongo-driver/bson/primitive" @@ -61,13 +61,13 @@ func (s *DatabaseDeviceStore) getByID(idOfDevice uuid.UUID) (loadedDevice device collection := db.Collection(s.storeName) result := collection.FindOne(ctx, bson.D{primitive.E{Key: "_id", Value: idOfDevice.String()}}) if result == nil { - return loadedDevice, errors.ErrCouldNotFind{ID: idOfDevice} + return loadedDevice, customerrs.CouldNotFindError{ID: idOfDevice} } err = result.Decode(&loadedDevice) if err != nil { log.Printf("Failed marshalling %v", err) - return loadedDevice, errors.ErrCouldNotMarshall{Identifier: idOfDevice, Type: loadedDevice, Err: err} + return loadedDevice, customerrs.CouldNotMarshallError{Identifier: idOfDevice, Type: loadedDevice, Err: err} } return loadedDevice, nil @@ -86,13 +86,13 @@ func (s *DatabaseDeviceStore) getByName(nameOfDevice string) (loadedDevice devic collection := db.Collection(s.storeName) result := collection.FindOne(ctx, bson.D{primitive.E{Key: "name", Value: nameOfDevice}}) if result == nil { - return loadedDevice, errors.ErrCouldNotFind{Name: nameOfDevice} + return loadedDevice, customerrs.CouldNotFindError{Name: nameOfDevice} } err = result.Decode(&loadedDevice) if err != nil { log.Printf("Failed marshalling %v", err) - return loadedDevice, errors.ErrCouldNotMarshall{Identifier: nameOfDevice, Type: loadedDevice, Err: err} + return loadedDevice, customerrs.CouldNotMarshallError{Identifier: nameOfDevice, Type: loadedDevice, Err: err} } return loadedDevice, nil @@ -127,7 +127,7 @@ func (s *DatabaseDeviceStore) GetAll() (loadedDevices []device.LoadedDevice, err if err != nil { log.Printf("Failed marshalling %v", err) - return nil, errors.ErrCouldNotMarshall{Type: loadedDevices, Err: err} + return nil, customerrs.CouldNotMarshallError{Type: loadedDevices, Err: err} } return loadedDevices, nil @@ -149,7 +149,7 @@ func (s *DatabaseDeviceStore) Add(deviceToAdd device.Device) (err error) { InsertOne(ctx, deviceToAdd) if err != nil { log.Printf("Could not create Device: %v", err) - return errors.ErrCouldNotCreate{Identifier: deviceToAdd.ID(), Type: deviceToAdd, Err: err} + return customerrs.CouldNotCreateError{Identifier: deviceToAdd.ID(), Type: deviceToAdd, Err: err} } return nil @@ -185,7 +185,7 @@ func (s *DatabaseDeviceStore) Update(deviceToUpdate device.Device) (err error) { if err != nil { log.Printf("Could not update Device: %v", err) - return errors.ErrCouldNotUpdate{Identifier: deviceToUpdate.ID(), Type: deviceToUpdate, Err: err} + return customerrs.CouldNotUpdateError{Identifier: deviceToUpdate.ID(), Type: deviceToUpdate, Err: err} } return nil @@ -206,7 +206,7 @@ func (s *DatabaseDeviceStore) Delete(deviceToDelete device.Device) (err error) { collection := db.Collection(s.storeName) _, err = collection.DeleteOne(ctx, bson.D{primitive.E{Key: deviceToDelete.ID().String()}}) if err != nil { - return errors.ErrCouldNotDelete{Identifier: deviceToDelete.ID(), Type: deviceToDelete, Err: err} + return customerrs.CouldNotDeleteError{Identifier: deviceToDelete.ID(), Type: deviceToDelete, Err: err} } return nil diff --git a/controller/nucleus/databasePndStore.go b/controller/nucleus/databasePndStore.go index 6a8ca96036f1b4884c2001840620f8c528f90db2..d04262e963035e260666a74c57b81884cab26302 100644 --- a/controller/nucleus/databasePndStore.go +++ b/controller/nucleus/databasePndStore.go @@ -7,8 +7,8 @@ import ( "code.fbi.h-da.de/danet/gosdn/controller/interfaces/networkdomain" cpb "code.fbi.h-da.de/danet/gosdn/api/go/gosdn/csbi" + "code.fbi.h-da.de/danet/gosdn/controller/customerrs" "code.fbi.h-da.de/danet/gosdn/controller/nucleus/database" - errors "code.fbi.h-da.de/danet/gosdn/controller/nucleus/errors" "code.fbi.h-da.de/danet/gosdn/controller/store" "github.com/google/uuid" log "github.com/sirupsen/logrus" @@ -43,14 +43,14 @@ func (s *DatabasePndStore) Get(query store.Query) (newPnd networkdomain.NetworkD collection := db.Collection(s.pndStoreName) result := collection.FindOne(ctx, bson.D{primitive.E{Key: "_id", Value: query.ID.String()}}) if result == nil { - return nil, errors.ErrCouldNotFind{ID: query.ID} + return nil, customerrs.CouldNotFindError{ID: query.ID} } err = result.Decode(&loadedPND) if err != nil { log.Printf("Failed marshalling %v", err) - return nil, errors.ErrCouldNotMarshall{Identifier: query.ID, Type: loadedPND, Err: err} + return nil, customerrs.CouldNotMarshallError{Identifier: query.ID, Type: loadedPND, Err: err} } csbiClient, err := s.getCsbiClient() @@ -103,7 +103,7 @@ func (s *DatabasePndStore) GetAll() (pnds []networkdomain.NetworkDomain, err err if err != nil { log.Printf("Failed marshalling %v", err) - return nil, errors.ErrCouldNotMarshall{Type: loadedPnds, Err: err} + return nil, customerrs.CouldNotMarshallError{Type: loadedPnds, Err: err} } csbiClient, err := s.getCsbiClient() @@ -144,7 +144,7 @@ func (s *DatabasePndStore) Add(pndToAdd networkdomain.NetworkDomain) (err error) Collection(s.pndStoreName). InsertOne(ctx, pndToAdd) if err != nil { - return errors.ErrCouldNotCreate{Identifier: pndToAdd.ID(), Type: pndToAdd, Err: err} + return customerrs.CouldNotCreateError{Identifier: pndToAdd.ID(), Type: pndToAdd, Err: err} } return nil @@ -165,7 +165,7 @@ func (s *DatabasePndStore) Delete(pndToDelete networkdomain.NetworkDomain) (err collection := db.Collection(s.pndStoreName) _, err = collection.DeleteOne(ctx, bson.D{primitive.E{Key: pndToDelete.ID().String()}}) if err != nil { - return errors.ErrCouldNotDelete{Identifier: pndToDelete.ID(), Type: pndToDelete, Err: err} + return customerrs.CouldNotDeleteError{Identifier: pndToDelete.ID(), Type: pndToDelete, Err: err} } // TODO: Delete all assosicated devices + SBIs @@ -178,7 +178,7 @@ func (s *DatabasePndStore) Delete(pndToDelete networkdomain.NetworkDomain) (err func (s *DatabasePndStore) PendingChannels(id uuid.UUID, parseErrors ...error) (chan device.Details, error) { ch, ok := s.pendingChannels[id] if !ok { - return nil, &errors.ErrCouldNotFind{ID: id} + return nil, &customerrs.CouldNotFindError{ID: id} } return ch, nil } diff --git a/controller/nucleus/databaseSbiStore.go b/controller/nucleus/databaseSbiStore.go index 77e4d4d332b37ffc00d3e048829360ac440838e7..03495cd3f1b439228924a6f31c375a9eb425baba 100644 --- a/controller/nucleus/databaseSbiStore.go +++ b/controller/nucleus/databaseSbiStore.go @@ -3,9 +3,9 @@ package nucleus import ( "fmt" + "code.fbi.h-da.de/danet/gosdn/controller/customerrs" "code.fbi.h-da.de/danet/gosdn/controller/interfaces/southbound" "code.fbi.h-da.de/danet/gosdn/controller/nucleus/database" - "code.fbi.h-da.de/danet/gosdn/controller/nucleus/errors" "code.fbi.h-da.de/danet/gosdn/controller/store" "go.mongodb.org/mongo-driver/bson" "go.mongodb.org/mongo-driver/bson/primitive" @@ -38,7 +38,7 @@ func (s *DatabaseSbiStore) Add(sbiToAdd southbound.SouthboundInterface) (err err return nil } - return errors.ErrCouldNotCreate{Identifier: sbiToAdd.ID(), Type: sbiToAdd, Err: err} + return customerrs.CouldNotCreateError{Identifier: sbiToAdd.ID(), Type: sbiToAdd, Err: err} } return nil @@ -59,7 +59,7 @@ func (s *DatabaseSbiStore) Delete(sbiToDelete southbound.SouthboundInterface) (e Collection(s.sbiStoreName). DeleteOne(ctx, bson.D{primitive.E{Key: "_id", Value: sbiToDelete.ID().String()}}) if err != nil { - return errors.ErrCouldNotDelete{Identifier: sbiToDelete.ID(), Type: sbiToDelete, Err: err} + return customerrs.CouldNotDeleteError{Identifier: sbiToDelete.ID(), Type: sbiToDelete, Err: err} } return nil @@ -83,14 +83,14 @@ func (s *DatabaseSbiStore) Get(query store.Query) (loadedSbi southbound.LoadedSb collection := db.Collection(s.sbiStoreName) result := collection.FindOne(ctx, bson.D{primitive.E{Key: "_id", Value: query.ID.String()}}) if result == nil { - return loadedSbi, errors.ErrCouldNotFind{ID: query.ID} + return loadedSbi, customerrs.CouldNotFindError{ID: query.ID} } err = result.Decode(&loadedSbi) if err != nil { log.Printf("Failed marshalling %v", err) - return loadedSbi, errors.ErrCouldNotMarshall{Identifier: query.ID, Type: loadedSbi, Err: err} + return loadedSbi, customerrs.CouldNotMarshallError{Identifier: query.ID, Type: loadedSbi, Err: err} } return loadedSbi, nil @@ -124,7 +124,7 @@ func (s *DatabaseSbiStore) GetAll() (loadedSbis []southbound.LoadedSbi, err erro if err != nil { log.Printf("Failed marshalling %v", err) - return nil, errors.ErrCouldNotMarshall{Type: loadedSbis, Err: err} + return nil, customerrs.CouldNotMarshallError{Type: loadedSbis, Err: err} } return loadedSbis, nil diff --git a/controller/nucleus/device.go b/controller/nucleus/device.go index ae4057eccd389a94aeeadb4559150444e7234b3e..f14052ef1ddbc30bf82eeaab68027e4806f13746 100644 --- a/controller/nucleus/device.go +++ b/controller/nucleus/device.go @@ -5,10 +5,10 @@ import ( spb "code.fbi.h-da.de/danet/gosdn/api/go/gosdn/southbound" tpb "code.fbi.h-da.de/danet/gosdn/api/go/gosdn/transport" + "code.fbi.h-da.de/danet/gosdn/controller/customerrs" "code.fbi.h-da.de/danet/gosdn/controller/interfaces/device" "code.fbi.h-da.de/danet/gosdn/controller/interfaces/southbound" "code.fbi.h-da.de/danet/gosdn/controller/interfaces/transport" - "code.fbi.h-da.de/danet/gosdn/controller/nucleus/errors" "github.com/docker/docker/pkg/namesgenerator" "github.com/google/uuid" "github.com/openconfig/ygot/ygot" @@ -42,7 +42,7 @@ func NewDevice(name string, uuidInput uuid.UUID, opt *tpb.TransportOption, sbi s } ygotDeepCopy, ok := root.(ygot.GoStruct) if !ok { - return nil, &errors.ErrInvalidTypeAssertion{ + return nil, &customerrs.InvalidTypeAssertionError{ Value: root, Type: (*ygot.ValidatedGoStruct)(nil), } @@ -200,7 +200,7 @@ func createValidatedCopy(d device.Device) (ygot.ValidatedGoStruct, error) { validatedCpy, ok := cpy.(ygot.ValidatedGoStruct) if !ok { - return nil, errors.ErrInvalidTypeAssertion{ + return nil, customerrs.InvalidTypeAssertionError{ Value: validatedCpy, Type: (*ygot.ValidatedGoStruct)(nil), } diff --git a/controller/nucleus/deviceFilesystemStore.go b/controller/nucleus/deviceFilesystemStore.go index ec10e84682ab6684ff39e6bdc8c1d95dde6eb747..eef874f5b4f11ae0367827525f03d8b75eca4d7e 100644 --- a/controller/nucleus/deviceFilesystemStore.go +++ b/controller/nucleus/deviceFilesystemStore.go @@ -5,8 +5,8 @@ import ( "io/ioutil" "sync" + "code.fbi.h-da.de/danet/gosdn/controller/customerrs" "code.fbi.h-da.de/danet/gosdn/controller/interfaces/device" - "code.fbi.h-da.de/danet/gosdn/controller/nucleus/errors" "code.fbi.h-da.de/danet/gosdn/controller/store" "github.com/google/uuid" log "github.com/sirupsen/logrus" @@ -81,7 +81,7 @@ func (s *FilesystemDeviceStore) Get(query store.Query) (device.LoadedDevice, err } } - return device, &errors.ErrCouldNotFind{ID: query.ID, Name: query.Name} + return device, &customerrs.CouldNotFindError{ID: query.ID, Name: query.Name} } // GetAll returns all stored devices. @@ -146,7 +146,7 @@ func (s *FilesystemDeviceStore) Update(deviceToUpdate device.Device) error { } } - return &errors.ErrCouldNotUpdate{Identifier: deviceToUpdate.ID(), Type: deviceToUpdate, Err: err} + return &customerrs.CouldNotUpdateError{Identifier: deviceToUpdate.ID(), Type: deviceToUpdate, Err: err} } // Delete deletes a device from the device store. @@ -174,5 +174,5 @@ func (s *FilesystemDeviceStore) Delete(deviceToDelete device.Device) error { } } - return &errors.ErrCouldNotDelete{Identifier: deviceToDelete.ID(), Type: deviceToDelete, Err: err} + return &customerrs.CouldNotDeleteError{Identifier: deviceToDelete.ID(), Type: deviceToDelete, Err: err} } diff --git a/controller/nucleus/deviceWatcher.go b/controller/nucleus/deviceWatcher.go index d6326e43a54e48ef378c05985380358d37023cec..b1738331b1f2a8d5df291c35cb4b17642719612f 100644 --- a/controller/nucleus/deviceWatcher.go +++ b/controller/nucleus/deviceWatcher.go @@ -4,10 +4,10 @@ import ( "context" "fmt" + "code.fbi.h-da.de/danet/gosdn/controller/customerrs" "code.fbi.h-da.de/danet/gosdn/controller/interfaces/device" "code.fbi.h-da.de/danet/gosdn/controller/interfaces/networkdomain" "code.fbi.h-da.de/danet/gosdn/controller/interfaces/transport" - "code.fbi.h-da.de/danet/gosdn/controller/nucleus/errors" "code.fbi.h-da.de/danet/gosdn/controller/nucleus/types" "code.fbi.h-da.de/danet/gosdn/controller/store" "code.fbi.h-da.de/danet/gosdn/forks/goarista/gnmi" @@ -121,7 +121,7 @@ func (d *DeviceWatcher) StopAndRemoveDeviceSubscription(subID uuid.UUID) { func (d *DeviceWatcher) handleSubscribeResponse(resp *gpb.SubscribeResponse, subscriptionInfo *transport.SubscriptionInformation) { switch resp := resp.Response.(type) { case *gpb.SubscribeResponse_Error: - log.Error(&errors.ErrSubscribeResponse{ + log.Error(&customerrs.SubscribeResponseError{ PndID: subscriptionInfo.PndID, DeviceID: subscriptionInfo.DeviceID, DeviceName: subscriptionInfo.DeviceName, @@ -129,7 +129,7 @@ func (d *DeviceWatcher) handleSubscribeResponse(resp *gpb.SubscribeResponse, sub }) case *gpb.SubscribeResponse_SyncResponse: if !resp.SyncResponse { - log.Error(&errors.ErrSubscribeSyncResponse{ + log.Error(&customerrs.SubscribeSyncResponseError{ PndID: subscriptionInfo.PndID, DeviceID: subscriptionInfo.DeviceID, DeviceName: subscriptionInfo.DeviceName, diff --git a/controller/nucleus/gnmi_transport.go b/controller/nucleus/gnmi_transport.go index f5a4482c7fe0a4bbfdb4dafa1d0d7efe776d7d6b..6ade294cecb5b14f6c65b16a2d81863aa68fdcf1 100644 --- a/controller/nucleus/gnmi_transport.go +++ b/controller/nucleus/gnmi_transport.go @@ -11,7 +11,7 @@ import ( ppb "code.fbi.h-da.de/danet/gosdn/api/go/gosdn/pnd" - "code.fbi.h-da.de/danet/gosdn/controller/nucleus/errors" + "code.fbi.h-da.de/danet/gosdn/controller/customerrs" "code.fbi.h-da.de/danet/gosdn/controller/nucleus/types" "code.fbi.h-da.de/danet/gosdn/forks/goarista/gnmi" gpb "github.com/openconfig/gnmi/proto/gnmi" @@ -40,12 +40,12 @@ type Gnmi struct { // Do not call directly. Use NewTransport() instead. func newGnmiTransport(opts *tpb.TransportOption, sbi southbound.SouthboundInterface) (*Gnmi, error) { if opts == nil || sbi == nil { - return nil, &errors.ErrInvalidParameters{ + return nil, &customerrs.InvalidParametersError{ Func: newGnmiTransport, Param: "'opts' and 'sbi' can not be nil", } } else if opts.TransportOption == nil { - return nil, &errors.ErrInvalidParameters{ + return nil, &customerrs.InvalidParametersError{ Func: newGnmiTransport, Param: "'opts.TransportOption' can not be nil", } @@ -82,7 +82,7 @@ func newGnmiTransport(opts *tpb.TransportOption, sbi southbound.SouthboundInterf // Get takes a slice of gnmi paths, splits them and calls get for each one of them. func (g *Gnmi) Get(ctx context.Context, params ...string) (interface{}, error) { if g.client == nil { - return nil, &errors.ErrNilClient{} + return nil, &customerrs.NilClientError{} } ctx = gnmi.NewContext(ctx, g.config) paths := gnmi.SplitPaths(params) @@ -96,7 +96,7 @@ func (g *Gnmi) Set(ctx context.Context, payload change.Payload, path string, sch return err } if g.client == nil { - return &errors.ErrNilClient{} + return &customerrs.NilClientError{} } ctx = gnmi.NewContext(ctx, g.config) return g.applyDiff(ctx, payload, p, schema) @@ -120,7 +120,7 @@ func (g *Gnmi) applyDiff(ctx context.Context, payload change.Payload, path *gpb. } if isGNMINotificationEmpty(diff) { - return errors.ErrNoNewChanges{Original: payload.Original, Modified: payload.Modified} + return customerrs.NoNewChangesError{Original: payload.Original, Modified: payload.Modified} } var json []byte @@ -148,7 +148,7 @@ func (g *Gnmi) applyDiff(ctx context.Context, payload change.Payload, path *gpb. } if len(nodes) == 0 || err != nil || util.IsValueNil(nodes[0].Data) { - return errors.ErrPathNotFound{Path: path, Err: err} + return customerrs.PathNotFoundError{Path: path, Err: err} } json, err = ygot.Marshal7951(nodes[0].Data, &ygot.RFC7951JSONConfig{AppendModuleName: true}) @@ -187,7 +187,7 @@ func createSetRequest(ctx context.Context, diff *gpb.Notification, json []byte, }, }} default: - return nil, &errors.ErrOperationNotSupported{Op: op} + return nil, &customerrs.OperationNotSupportedError{Op: op} } } else if diff.Delete != nil { req.Delete = diff.Delete @@ -198,7 +198,7 @@ func createSetRequest(ctx context.Context, diff *gpb.Notification, json []byte, //Subscribe subscribes to a gNMI target. func (g *Gnmi) Subscribe(ctx context.Context, params ...string) error { if g.client == nil { - return &errors.ErrNilClient{} + return &customerrs.NilClientError{} } return g.subscribe(ctx) } @@ -207,7 +207,7 @@ func (g *Gnmi) Subscribe(ctx context.Context, params ...string) error { // the callback function handles the responses received from the subscription. func (g *Gnmi) ControlPlaneSubscribe(ctx context.Context, subscribeCallbackFunc tpInterface.HandleSubscribeResponse, subscriptionInfo *tpInterface.SubscriptionInformation) error { if g.client == nil { - return &errors.ErrNilClient{} + return &customerrs.NilClientError{} } return g.controlPlaneSubscribe(ctx, subscribeCallbackFunc, subscriptionInfo) @@ -224,14 +224,14 @@ func (g *Gnmi) Type() string { func (g *Gnmi) ProcessResponse(resp interface{}, root interface{}, s *ytypes.Schema) error { d, ok := root.(ygot.ValidatedGoStruct) if !ok { - return &errors.ErrInvalidTypeAssertion{ + return &customerrs.InvalidTypeAssertionError{ Value: root, Type: (*ygot.ValidatedGoStruct)(nil), } } r, ok := resp.(*gpb.GetResponse) if !ok { - return &errors.ErrInvalidTypeAssertion{ + return &customerrs.InvalidTypeAssertionError{ Value: resp, Type: &gpb.GetResponse{}, } @@ -250,7 +250,7 @@ func (g *Gnmi) ProcessResponse(resp interface{}, root interface{}, s *ytypes.Sch func (g *Gnmi) ProcessControlPlaneSubscribeResponse(resp *gpb.SubscribeResponse_Update, root any, schema *ytypes.Schema) error { dModel, ok := root.(ygot.ValidatedGoStruct) if !ok { - return &errors.ErrInvalidTypeAssertion{ + return &customerrs.InvalidTypeAssertionError{ Value: root, Type: (*ygot.ValidatedGoStruct)(nil), } @@ -365,7 +365,7 @@ func (g *Gnmi) get(ctx context.Context, paths [][]string, origin string) (interf // and returns any response. func (g *Gnmi) getWithRequest(ctx context.Context, req *gpb.GetRequest) (interface{}, error) { if req == nil { - return nil, &errors.ErrNil{} + return nil, &customerrs.NilError{} } log.WithFields(log.Fields{ "target": g.Options.Address, @@ -384,7 +384,7 @@ func (g *Gnmi) subscribe(ctx context.Context) error { ctx = gnmi.NewContext(ctx, g.config) opts, ok := ctx.Value(types.CtxKeyOpts).(*gnmi.SubscribeOptions) if !ok { - return &errors.ErrInvalidTypeAssertion{ + return &customerrs.InvalidTypeAssertionError{ Value: ctx.Value(types.CtxKeyOpts), Type: &gnmi.SubscribeOptions{}, } @@ -415,7 +415,7 @@ func (g *Gnmi) controlPlaneSubscribe(ctx context.Context, subcribeCallbackFunc f ctx = gnmi.NewContext(ctx, g.config) opts, ok := ctx.Value(types.CtxKeyOpts).(*gnmi.SubscribeOptions) if !ok { - return &errors.ErrInvalidTypeAssertion{ + return &customerrs.InvalidTypeAssertionError{ Value: ctx.Value(types.CtxKeyOpts), Type: &gnmi.SubscribeOptions{}, } diff --git a/controller/nucleus/memoryDeviceStore.go b/controller/nucleus/memoryDeviceStore.go index 2bc4290582283ec2151c72f3437e0f6f90d9025e..6fc400b425fb50a9ad721cd161f323f1c640dacf 100644 --- a/controller/nucleus/memoryDeviceStore.go +++ b/controller/nucleus/memoryDeviceStore.go @@ -3,8 +3,8 @@ package nucleus import ( "encoding/json" + "code.fbi.h-da.de/danet/gosdn/controller/customerrs" "code.fbi.h-da.de/danet/gosdn/controller/interfaces/device" - "code.fbi.h-da.de/danet/gosdn/controller/nucleus/errors" "code.fbi.h-da.de/danet/gosdn/controller/store" ) @@ -50,7 +50,7 @@ func (t *MemoryDeviceStore) Add(item device.Device) error { func (t *MemoryDeviceStore) Update(item device.Device) error { _, ok := t.Store[item.ID().String()] if !ok { - return errors.ErrCouldNotFind{ID: item.ID(), Name: item.Name()} + return customerrs.CouldNotFindError{ID: item.ID(), Name: item.Name()} } var device device.LoadedDevice @@ -85,12 +85,12 @@ func (t *MemoryDeviceStore) Get(query store.Query) (device.LoadedDevice, error) // Second search for name id, ok := t.nameLookupTable[query.Name] if !ok { - return item, errors.ErrCouldNotFind{ID: query.ID, Name: query.Name} + return item, customerrs.CouldNotFindError{ID: query.ID, Name: query.Name} } item, ok := t.Store[id] if !ok { - return item, errors.ErrCouldNotFind{ID: query.ID, Name: query.Name} + return item, customerrs.CouldNotFindError{ID: query.ID, Name: query.Name} } return item, nil diff --git a/controller/nucleus/memoryPndStore.go b/controller/nucleus/memoryPndStore.go index 15cc6909e3b87a1de909ff3f71b378c0bb589c32..7cb549236657fa6076e763733d403df2332f8fca 100644 --- a/controller/nucleus/memoryPndStore.go +++ b/controller/nucleus/memoryPndStore.go @@ -1,9 +1,9 @@ package nucleus import ( + "code.fbi.h-da.de/danet/gosdn/controller/customerrs" "code.fbi.h-da.de/danet/gosdn/controller/interfaces/device" "code.fbi.h-da.de/danet/gosdn/controller/interfaces/networkdomain" - nerrors "code.fbi.h-da.de/danet/gosdn/controller/nucleus/errors" "code.fbi.h-da.de/danet/gosdn/controller/store" "github.com/google/uuid" ) @@ -45,7 +45,7 @@ func (t *MemoryPndStore) Delete(item networkdomain.NetworkDomain) error { func (t *MemoryPndStore) Get(query store.Query) (networkdomain.NetworkDomain, error) { item, ok := t.Store[query.ID] if !ok { - return nil, &nerrors.ErrCouldNotFind{ID: query.ID, Name: query.Name} + return nil, &customerrs.CouldNotFindError{ID: query.ID, Name: query.Name} } return item, nil @@ -67,7 +67,7 @@ func (t *MemoryPndStore) GetAll() ([]networkdomain.NetworkDomain, error) { func (t *MemoryPndStore) PendingChannels(id uuid.UUID, parseErrors ...error) (chan device.Details, error) { ch, ok := t.pendingChannels[id] if !ok { - return nil, &nerrors.ErrCouldNotFind{ID: id} + return nil, &customerrs.CouldNotFindError{ID: id} } return ch, nil } diff --git a/controller/nucleus/memorySbiStore.go b/controller/nucleus/memorySbiStore.go index 82a27673032322b2e2c86c13bfed2171164a2ed7..3b668d0caaddea5682580bff7efe4102a874fec7 100644 --- a/controller/nucleus/memorySbiStore.go +++ b/controller/nucleus/memorySbiStore.go @@ -3,8 +3,8 @@ package nucleus import ( "encoding/json" + "code.fbi.h-da.de/danet/gosdn/controller/customerrs" "code.fbi.h-da.de/danet/gosdn/controller/interfaces/southbound" - "code.fbi.h-da.de/danet/gosdn/controller/nucleus/errors" "code.fbi.h-da.de/danet/gosdn/controller/store" ) @@ -85,12 +85,12 @@ func (t *MemorySbiStore) Get(query store.Query) (southbound.LoadedSbi, error) { // Second search for name id, ok := t.nameLookupTable[query.Name] if !ok { - return item, errors.ErrCouldNotFind{ID: query.ID, Name: query.Name} + return item, customerrs.CouldNotFindError{ID: query.ID, Name: query.Name} } item, ok := t.Store[id] if !ok { - return item, errors.ErrCouldNotFind{ID: query.ID, Name: query.Name} + return item, customerrs.CouldNotFindError{ID: query.ID, Name: query.Name} } return item, nil diff --git a/controller/nucleus/plugin.go b/controller/nucleus/plugin.go index 82e65626f4c59f2e8ccde923317243d4068ef930..2fd9b55ed5e563b25c9130b10a538d91cb8ca861 100644 --- a/controller/nucleus/plugin.go +++ b/controller/nucleus/plugin.go @@ -6,8 +6,8 @@ import ( "path/filepath" goPlugin "plugin" + "code.fbi.h-da.de/danet/gosdn/controller/customerrs" "code.fbi.h-da.de/danet/gosdn/controller/interfaces/plugin" - "code.fbi.h-da.de/danet/gosdn/controller/nucleus/errors" "code.fbi.h-da.de/danet/gosdn/controller/nucleus/util" log "github.com/sirupsen/logrus" ) @@ -89,7 +89,7 @@ func UpdatePlugin(p plugin.Plugin) (updated bool, err error) { log.Info("Plugin update executed.") return true, nil } - return false, errors.ErrPluginVersion{ + return false, customerrs.PluginVersionError{ PlugID: p.ID().String(), ProvidedVer: tmpManifest.Version, UsedVer: p.Manifest().Version, diff --git a/controller/nucleus/pndFilesystemStore.go b/controller/nucleus/pndFilesystemStore.go index c179d5330637b0ecb7e24f123da6ba0121d9bf27..6625a93fff5b3bdaf5b7376e09c0fec1bd628e1e 100644 --- a/controller/nucleus/pndFilesystemStore.go +++ b/controller/nucleus/pndFilesystemStore.go @@ -6,9 +6,9 @@ import ( "sync" cpb "code.fbi.h-da.de/danet/gosdn/api/go/gosdn/csbi" + "code.fbi.h-da.de/danet/gosdn/controller/customerrs" "code.fbi.h-da.de/danet/gosdn/controller/interfaces/device" "code.fbi.h-da.de/danet/gosdn/controller/interfaces/networkdomain" - "code.fbi.h-da.de/danet/gosdn/controller/nucleus/errors" "code.fbi.h-da.de/danet/gosdn/controller/store" "github.com/google/uuid" log "github.com/sirupsen/logrus" @@ -134,7 +134,7 @@ func (t *FilesystemPndStore) Delete(pndToDelete networkdomain.NetworkDomain) err } } - return &errors.ErrCouldNotDelete{Identifier: pndToDelete.ID(), Type: pndToDelete, Err: err} + return &customerrs.CouldNotDeleteError{Identifier: pndToDelete.ID(), Type: pndToDelete, Err: err} } // Get provides a the query interface to find a stored pnd. @@ -153,7 +153,7 @@ func (t *FilesystemPndStore) Get(query store.Query) (networkdomain.NetworkDomain } } - return nil, &errors.ErrCouldNotFind{ID: query.ID, Name: query.Name} + return nil, &customerrs.CouldNotFindError{ID: query.ID, Name: query.Name} } // GetAll returns all pnds currently on the store. @@ -171,7 +171,7 @@ func (t *FilesystemPndStore) GetAll() ([]networkdomain.NetworkDomain, error) { func (t *FilesystemPndStore) PendingChannels(id uuid.UUID, parseErrors ...error) (chan device.Details, error) { ch, ok := t.pendingChannels[id] if !ok { - return nil, &errors.ErrCouldNotFind{ID: id} + return nil, &customerrs.CouldNotFindError{ID: id} } return ch, nil } diff --git a/controller/nucleus/principalNetworkDomain.go b/controller/nucleus/principalNetworkDomain.go index ea13d0988d345d8a4d0b5dcc82d17bb6fda6f470..05216b02ba98a36a71e593ddab73b800904f8e14 100644 --- a/controller/nucleus/principalNetworkDomain.go +++ b/controller/nucleus/principalNetworkDomain.go @@ -3,7 +3,7 @@ package nucleus import ( "context" "encoding/json" - goErrors "errors" + "errors" "fmt" "io" "os" @@ -25,12 +25,12 @@ import ( "google.golang.org/grpc" "google.golang.org/protobuf/proto" + "code.fbi.h-da.de/danet/gosdn/controller/customerrs" "code.fbi.h-da.de/danet/gosdn/controller/interfaces/change" "code.fbi.h-da.de/danet/gosdn/controller/interfaces/device" eventInterfaces "code.fbi.h-da.de/danet/gosdn/controller/interfaces/event" "code.fbi.h-da.de/danet/gosdn/controller/interfaces/networkdomain" "code.fbi.h-da.de/danet/gosdn/controller/interfaces/southbound" - "code.fbi.h-da.de/danet/gosdn/controller/nucleus/errors" gGnmi "code.fbi.h-da.de/danet/gosdn/controller/nucleus/util/gnmi" "code.fbi.h-da.de/danet/gosdn/controller/store" @@ -416,7 +416,7 @@ func (pnd *pndImplementation) Request(uuid uuid.UUID, path string) (proto.Messag } resp, ok := res.(proto.Message) if !ok { - return nil, &errors.ErrInvalidTypeAssertion{ + return nil, &customerrs.InvalidTypeAssertionError{ Value: res, Type: (*proto.Message)(nil), } @@ -518,7 +518,7 @@ func (pnd *pndImplementation) ChangeOND(duid uuid.UUID, operation ppb.ApiOperati } if operation != ppb.ApiOperation_API_OPERATION_DELETE && len(value) != 1 { - return uuid.Nil, &errors.ErrInvalidParameters{ + return uuid.Nil, &customerrs.InvalidParametersError{ Func: pnd.ChangeOND, Param: value, } @@ -550,7 +550,7 @@ func (pnd *pndImplementation) ChangeOND(duid uuid.UUID, operation ppb.ApiOperati return uuid.Nil, err } default: - return uuid.Nil, &errors.ErrOperationNotSupported{Op: operation} + return uuid.Nil, &customerrs.OperationNotSupportedError{Op: operation} } ygot.PruneEmptyBranches(validatedCpy) @@ -874,7 +874,7 @@ func saveStreamToFile[T StreamClient](sc T, filename string, id uuid.UUID) (err // clean path to prevent attackers to get access to to directories elsewhere on the system path = filepath.Clean(path) if !strings.HasPrefix(path, folderName) { - return &errors.ErrInvalidParameters{ + return &customerrs.InvalidParametersError{ Func: saveStreamToFile[T], Param: path, } @@ -901,7 +901,7 @@ func saveStreamToFile[T StreamClient](sc T, filename string, id uuid.UUID) (err for { payload, err := sc.Recv() if err != nil { - if goErrors.Is(err, io.EOF) { + if errors.Is(err, io.EOF) { break } closeErr := sc.CloseSend() diff --git a/controller/nucleus/restconf_transport.go b/controller/nucleus/restconf_transport.go index c00c852d68ba44c6bfe0735b2ac70bfd70c9cabf..42a6b44f8bff98a6be023ce49540623ad3b7d0cb 100644 --- a/controller/nucleus/restconf_transport.go +++ b/controller/nucleus/restconf_transport.go @@ -3,7 +3,7 @@ package nucleus import ( "context" - "code.fbi.h-da.de/danet/gosdn/controller/nucleus/errors" + "code.fbi.h-da.de/danet/gosdn/controller/customerrs" "github.com/openconfig/ygot/ytypes" ) @@ -14,17 +14,17 @@ type Restconf struct{} // Get not yet implemented. func (r Restconf) Get(ctx context.Context, params ...string) (interface{}, error) { - return nil, &errors.ErrNotYetImplemented{} + return nil, &customerrs.NotYetImplementedError{} } // Set not yet implemented. func (r Restconf) Set(ctx context.Context, params ...interface{}) error { - return &errors.ErrNotYetImplemented{} + return &customerrs.NotYetImplementedError{} } // Subscribe not yet implemented. func (r Restconf) Subscribe(ctx context.Context, params ...string) error { - return &errors.ErrNotYetImplemented{} + return &customerrs.NotYetImplementedError{} } // Type not yet implemented. @@ -34,10 +34,10 @@ func (r Restconf) Type() string { // GetOptions not yet implemented. func (r Restconf) GetOptions() interface{} { - return &errors.ErrNotYetImplemented{} + return &customerrs.NotYetImplementedError{} } // ProcessResponse not yet implemented. func (r Restconf) ProcessResponse(resp interface{}, root interface{}, models *ytypes.Schema) error { - return &errors.ErrNotYetImplemented{} + return &customerrs.NotYetImplementedError{} } diff --git a/controller/nucleus/sbiFilesystemStore.go b/controller/nucleus/sbiFilesystemStore.go index 7ead5bf270594cd5105ac6bebf5ecaea8e2d8d0c..d75a2f3e1d0bbba6232459c42334ffdd9fee3b0a 100644 --- a/controller/nucleus/sbiFilesystemStore.go +++ b/controller/nucleus/sbiFilesystemStore.go @@ -5,8 +5,8 @@ import ( "io/ioutil" "sync" + "code.fbi.h-da.de/danet/gosdn/controller/customerrs" "code.fbi.h-da.de/danet/gosdn/controller/interfaces/southbound" - "code.fbi.h-da.de/danet/gosdn/controller/nucleus/errors" "code.fbi.h-da.de/danet/gosdn/controller/store" "github.com/google/uuid" @@ -113,7 +113,7 @@ func (s *FilesystemSbiStore) Delete(sbiToDelete southbound.SouthboundInterface) return nil } } - return &errors.ErrCouldNotDelete{Identifier: sbiToDelete.ID(), Type: sbiToDelete, Err: err} + return &customerrs.CouldNotDeleteError{Identifier: sbiToDelete.ID(), Type: sbiToDelete, Err: err} } // Get takes a SouthboundInterface's UUID or name and returns the SouthboundInterface. If the requested @@ -135,7 +135,7 @@ func (s *FilesystemSbiStore) Get(query store.Query) (southbound.LoadedSbi, error } } - return sbi, &errors.ErrCouldNotFind{ID: query.ID, Name: query.Name} + return sbi, &customerrs.CouldNotFindError{ID: query.ID, Name: query.Name} } // GetAll returns all SBIs. diff --git a/controller/nucleus/southbound.go b/controller/nucleus/southbound.go index 4e3f4c1bdd211d84efe5ab6d616ca4535d644e70..9ab599b3e81a82d31a0b2f97eae4cf8dd276b1a3 100644 --- a/controller/nucleus/southbound.go +++ b/controller/nucleus/southbound.go @@ -4,7 +4,7 @@ import ( "encoding/json" "path/filepath" - "code.fbi.h-da.de/danet/gosdn/controller/nucleus/errors" + "code.fbi.h-da.de/danet/gosdn/controller/customerrs" "code.fbi.h-da.de/danet/gosdn/controller/nucleus/util" "code.fbi.h-da.de/danet/gosdn/models/generated/openconfig" "go.mongodb.org/mongo-driver/bson" @@ -43,7 +43,7 @@ func NewSBI(southbound spb.Type, sbUUID ...uuid.UUID) (southbound.SouthboundInte } return sbip, nil default: - return nil, errors.ErrUnsupportedSbiType{Type: southbound} + return nil, customerrs.UnsupportedSbiTypeError{Type: southbound} } } @@ -137,7 +137,7 @@ func unmarshal(schema *ytypes.Schema, bytes []byte, path *gpb.Path, goStruct ygo } validatedDeepCopy, ok := root.(ygot.ValidatedGoStruct) if !ok { - return &errors.ErrInvalidTypeAssertion{ + return &customerrs.InvalidTypeAssertionError{ Value: root, Type: (*ygot.ValidatedGoStruct)(nil), } @@ -151,7 +151,7 @@ func unmarshal(schema *ytypes.Schema, bytes []byte, path *gpb.Path, goStruct ygo } validatedCreatedNode, ok := createdNode.(ygot.ValidatedGoStruct) if !ok { - return &errors.ErrInvalidTypeAssertion{ + return &customerrs.InvalidTypeAssertionError{ Value: createdNode, Type: (*ygot.ValidatedGoStruct)(nil), } @@ -261,7 +261,7 @@ func (p *SouthboundPlugin) load(id uuid.UUID) error { sbi, ok := symbol.(southbound.SouthboundInterface) if !ok { p.state = plugin.FAULTY - return &errors.ErrInvalidTypeAssertion{ + return &customerrs.InvalidTypeAssertionError{ Value: symbol, Type: (*southbound.SouthboundInterface)(nil), } diff --git a/controller/nucleus/transport.go b/controller/nucleus/transport.go index a2db1ff28b60a17e3ee64f4c311f10bbfe071364..4836c694f470110176362aabcd73831bccefc7a6 100644 --- a/controller/nucleus/transport.go +++ b/controller/nucleus/transport.go @@ -2,33 +2,33 @@ package nucleus import ( tpb "code.fbi.h-da.de/danet/gosdn/api/go/gosdn/transport" + "code.fbi.h-da.de/danet/gosdn/controller/customerrs" "code.fbi.h-da.de/danet/gosdn/controller/interfaces/southbound" "code.fbi.h-da.de/danet/gosdn/controller/interfaces/transport" - "code.fbi.h-da.de/danet/gosdn/controller/nucleus/errors" ) // NewTransport receives TransportOptions and returns an appropriate Transport // implementation. func NewTransport(opts *tpb.TransportOption, sbi southbound.SouthboundInterface) (transport.Transport, error) { if opts == nil { - return nil, &errors.ErrInvalidParameters{ + return nil, &customerrs.InvalidParametersError{ Func: NewTransport, Param: "'opt' cannot be 'nil'", } } if sbi == nil { - return nil, errors.ErrInvalidParameters{ + return nil, customerrs.InvalidParametersError{ Param: "'sbi' cannot be 'nil'", } } if !validTransportOptions(opts) { - return nil, &errors.ErrInvalidTransportOptions{Opt: opts} + return nil, &customerrs.InvalidTransportOptionsError{Opt: opts} } switch o := opts.TransportOption.(type) { case *tpb.TransportOption_GnmiTransportOption: return newGnmiTransport(opts, sbi) default: - return nil, &errors.ErrInvalidTransportOptions{Opt: o} + return nil, &customerrs.InvalidTransportOptionsError{Opt: o} } } diff --git a/controller/rbac/databaseRoleStore.go b/controller/rbac/databaseRoleStore.go index 871edf47e2401487e8c636fef35af586f085e155..a28fd8251968a2f9aeff6c90d943b15ccc13a5a5 100644 --- a/controller/rbac/databaseRoleStore.go +++ b/controller/rbac/databaseRoleStore.go @@ -3,9 +3,9 @@ package rbac import ( "fmt" + "code.fbi.h-da.de/danet/gosdn/controller/customerrs" "code.fbi.h-da.de/danet/gosdn/controller/interfaces/rbac" "code.fbi.h-da.de/danet/gosdn/controller/nucleus/database" - "code.fbi.h-da.de/danet/gosdn/controller/nucleus/errors" "code.fbi.h-da.de/danet/gosdn/controller/store" "github.com/google/uuid" log "github.com/sirupsen/logrus" @@ -39,7 +39,7 @@ func (s *DatabaseRoleStore) Add(roleToAdd rbac.Role) (err error) { return nil } - return errors.ErrCouldNotCreate{Identifier: roleToAdd.ID(), Type: roleToAdd, Err: err} + return customerrs.CouldNotCreateError{Identifier: roleToAdd.ID(), Type: roleToAdd, Err: err} } return nil @@ -60,7 +60,7 @@ func (s *DatabaseRoleStore) Delete(roleToDelete rbac.Role) (err error) { Collection(s.roleStoreName). DeleteOne(ctx, bson.D{primitive.E{Key: "_id", Value: roleToDelete.ID().String()}}) if err != nil { - return errors.ErrCouldNotDelete{Identifier: roleToDelete.ID(), Type: roleToDelete, Err: err} + return customerrs.CouldNotDeleteError{Identifier: roleToDelete.ID(), Type: roleToDelete, Err: err} } return nil @@ -102,13 +102,13 @@ func (s *DatabaseRoleStore) getByID(idOfRole uuid.UUID) (loadedRole rbac.LoadedR collection := db.Collection(s.roleStoreName) result := collection.FindOne(ctx, bson.D{primitive.E{Key: "_id", Value: idOfRole.String()}}) if result == nil { - return loadedRole, errors.ErrCouldNotFind{ID: idOfRole} + return loadedRole, customerrs.CouldNotFindError{ID: idOfRole} } err = result.Decode(&loadedRole) if err != nil { log.Printf("Failed marshalling %v", err) - return loadedRole, errors.ErrCouldNotMarshall{Identifier: idOfRole, Type: loadedRole, Err: err} + return loadedRole, customerrs.CouldNotMarshallError{Identifier: idOfRole, Type: loadedRole, Err: err} } return loadedRole, nil @@ -128,13 +128,13 @@ func (s *DatabaseRoleStore) getByName(nameOfRole string) (loadedRole rbac.Loaded collection := db.Collection(s.roleStoreName) result := collection.FindOne(ctx, bson.D{primitive.E{Key: "rolename", Value: nameOfRole}}) if result == nil { - return loadedRole, errors.ErrCouldNotFind{Name: nameOfRole} + return loadedRole, customerrs.CouldNotFindError{Name: nameOfRole} } err = result.Decode(&loadedRole) if err != nil { log.Printf("Failed marshalling %v", err) - return loadedRole, errors.ErrCouldNotMarshall{Identifier: nameOfRole, Type: loadedRole, Err: err} + return loadedRole, customerrs.CouldNotMarshallError{Identifier: nameOfRole, Type: loadedRole, Err: err} } return loadedRole, nil @@ -169,7 +169,7 @@ func (s *DatabaseRoleStore) GetAll() (loadedRoles []rbac.LoadedRole, err error) if err != nil { log.Printf("Failed marshalling %v", err) - return nil, errors.ErrCouldNotMarshall{Type: loadedRoles, Err: err} + return nil, customerrs.CouldNotMarshallError{Type: loadedRoles, Err: err} } return loadedRoles, nil } @@ -203,7 +203,7 @@ func (s *DatabaseRoleStore) Update(roleToUpdate rbac.Role) (err error) { if err != nil { log.Printf("Could not update Role: %v", err) - return errors.ErrCouldNotUpdate{Identifier: roleToUpdate.ID(), Type: roleToUpdate, Err: err} + return customerrs.CouldNotUpdateError{Identifier: roleToUpdate.ID(), Type: roleToUpdate, Err: err} } return nil diff --git a/controller/rbac/databaseUserStore.go b/controller/rbac/databaseUserStore.go index b1f6eeee754ddf193e67a0939c9fe818a57678d8..c478610e680913bc979a77fd03b93efbfd8d6625 100644 --- a/controller/rbac/databaseUserStore.go +++ b/controller/rbac/databaseUserStore.go @@ -3,9 +3,9 @@ package rbac import ( "fmt" + "code.fbi.h-da.de/danet/gosdn/controller/customerrs" "code.fbi.h-da.de/danet/gosdn/controller/interfaces/rbac" "code.fbi.h-da.de/danet/gosdn/controller/nucleus/database" - "code.fbi.h-da.de/danet/gosdn/controller/nucleus/errors" "code.fbi.h-da.de/danet/gosdn/controller/store" "github.com/google/uuid" log "github.com/sirupsen/logrus" @@ -39,7 +39,7 @@ func (s *DatabaseUserStore) Add(userToAdd rbac.User) (err error) { return nil } - return errors.ErrCouldNotCreate{Identifier: userToAdd.ID(), Type: userToAdd, Err: err} + return customerrs.CouldNotCreateError{Identifier: userToAdd.ID(), Type: userToAdd, Err: err} } return nil @@ -60,7 +60,7 @@ func (s *DatabaseUserStore) Delete(userToDelete rbac.User) (err error) { Collection(s.userStoreName). DeleteOne(ctx, bson.D{primitive.E{Key: "_id", Value: userToDelete.ID().String()}}) if err != nil { - return errors.ErrCouldNotDelete{Identifier: userToDelete.ID(), Type: userToDelete, Err: err} + return customerrs.CouldNotDeleteError{Identifier: userToDelete.ID(), Type: userToDelete, Err: err} } return nil @@ -102,13 +102,13 @@ func (s *DatabaseUserStore) getByID(idOfUser uuid.UUID) (loadedUser rbac.LoadedU collection := db.Collection(s.userStoreName) result := collection.FindOne(ctx, bson.D{primitive.E{Key: "_id", Value: idOfUser.String()}}) if result == nil { - return loadedUser, errors.ErrCouldNotFind{ID: idOfUser} + return loadedUser, customerrs.CouldNotFindError{ID: idOfUser} } err = result.Decode(&loadedUser) if err != nil { log.Printf("Failed marshalling %v", err) - return loadedUser, errors.ErrCouldNotMarshall{Identifier: idOfUser, Type: loadedUser, Err: err} + return loadedUser, customerrs.CouldNotMarshallError{Identifier: idOfUser, Type: loadedUser, Err: err} } return loadedUser, nil @@ -128,13 +128,13 @@ func (s *DatabaseUserStore) getByName(nameOfUser string) (loadedUser rbac.Loaded collection := db.Collection(s.userStoreName) result := collection.FindOne(ctx, bson.D{primitive.E{Key: "username", Value: nameOfUser}}) if result == nil { - return loadedUser, errors.ErrCouldNotFind{Name: nameOfUser} + return loadedUser, customerrs.CouldNotFindError{Name: nameOfUser} } err = result.Decode(&loadedUser) if err != nil { log.Printf("Failed marshalling %v", err) - return loadedUser, errors.ErrCouldNotMarshall{Identifier: nameOfUser, Type: loadedUser, Err: err} + return loadedUser, customerrs.CouldNotMarshallError{Identifier: nameOfUser, Type: loadedUser, Err: err} } return loadedUser, nil @@ -169,7 +169,7 @@ func (s *DatabaseUserStore) GetAll() (loadedUsers []rbac.LoadedUser, err error) if err != nil { log.Printf("Failed marshalling %v", err) - return nil, errors.ErrCouldNotMarshall{Type: loadedUsers, Err: err} + return nil, customerrs.CouldNotMarshallError{Type: loadedUsers, Err: err} } return loadedUsers, nil } @@ -204,7 +204,7 @@ func (s *DatabaseUserStore) Update(userToUpdate rbac.User) (err error) { if err != nil { log.Printf("Could not update User: %v", err) - return errors.ErrCouldNotUpdate{Identifier: userToUpdate.ID(), Type: userToUpdate, Err: err} + return customerrs.CouldNotUpdateError{Identifier: userToUpdate.ID(), Type: userToUpdate, Err: err} } return nil diff --git a/controller/rbac/memoryRoleStore.go b/controller/rbac/memoryRoleStore.go index 103f1c1a229992225027c2264b07761f06fadb66..0c1ef261d29611c50f57a66a7bba49a043614a64 100644 --- a/controller/rbac/memoryRoleStore.go +++ b/controller/rbac/memoryRoleStore.go @@ -3,8 +3,8 @@ package rbac import ( "encoding/json" + "code.fbi.h-da.de/danet/gosdn/controller/customerrs" "code.fbi.h-da.de/danet/gosdn/controller/interfaces/rbac" - "code.fbi.h-da.de/danet/gosdn/controller/nucleus/errors" "code.fbi.h-da.de/danet/gosdn/controller/store" ) @@ -56,7 +56,7 @@ func (s *MemoryRoleStore) Delete(item rbac.Role) error { func (s *MemoryRoleStore) Update(item rbac.Role) error { _, ok := s.Store[item.ID().String()] if !ok { - return errors.ErrCouldNotFind{ID: item.ID(), Name: item.Name()} + return customerrs.CouldNotFindError{ID: item.ID(), Name: item.Name()} } var role rbac.LoadedRole @@ -84,12 +84,12 @@ func (s *MemoryRoleStore) Get(query store.Query) (rbac.LoadedRole, error) { // Second search for name id, ok := s.nameLookupTable[query.Name] if !ok { - return item, errors.ErrCouldNotFind{ID: query.ID, Name: query.Name} + return item, customerrs.CouldNotFindError{ID: query.ID, Name: query.Name} } item, ok := s.Store[id] if !ok { - return item, errors.ErrCouldNotFind{ID: query.ID, Name: query.Name} + return item, customerrs.CouldNotFindError{ID: query.ID, Name: query.Name} } return item, nil diff --git a/controller/rbac/memoryUserStore.go b/controller/rbac/memoryUserStore.go index 0387d2994eedacc4452140dd0cc1718d91c27dd1..e8d08ad4322d75c1f4b2f48f68c382448fa00f14 100644 --- a/controller/rbac/memoryUserStore.go +++ b/controller/rbac/memoryUserStore.go @@ -3,8 +3,8 @@ package rbac import ( "encoding/json" + "code.fbi.h-da.de/danet/gosdn/controller/customerrs" "code.fbi.h-da.de/danet/gosdn/controller/interfaces/rbac" - "code.fbi.h-da.de/danet/gosdn/controller/nucleus/errors" "code.fbi.h-da.de/danet/gosdn/controller/store" ) @@ -56,7 +56,7 @@ func (s *MemoryUserStore) Delete(item rbac.User) error { func (s *MemoryUserStore) Update(item rbac.User) error { _, ok := s.Store[item.ID().String()] if !ok { - return errors.ErrCouldNotFind{ID: item.ID(), Name: item.Name()} + return customerrs.CouldNotFindError{ID: item.ID(), Name: item.Name()} } var user rbac.LoadedUser @@ -84,12 +84,12 @@ func (s *MemoryUserStore) Get(query store.Query) (rbac.LoadedUser, error) { // Second search for name id, ok := s.nameLookupTable[query.Name] if !ok { - return item, errors.ErrCouldNotFind{ID: query.ID, Name: query.Name} + return item, customerrs.CouldNotFindError{ID: query.ID, Name: query.Name} } item, ok := s.Store[id] if !ok { - return item, errors.ErrCouldNotFind{ID: query.ID, Name: query.Name} + return item, customerrs.CouldNotFindError{ID: query.ID, Name: query.Name} } return item, nil diff --git a/controller/rbac/roleFileSystemStore.go b/controller/rbac/roleFileSystemStore.go index b6785cd66b8a5e499ca2b792bbc8a2db9079916d..bd4102357a3ed4d571222c77f3ee89f585abae11 100644 --- a/controller/rbac/roleFileSystemStore.go +++ b/controller/rbac/roleFileSystemStore.go @@ -5,8 +5,8 @@ import ( "io/ioutil" "sync" + "code.fbi.h-da.de/danet/gosdn/controller/customerrs" "code.fbi.h-da.de/danet/gosdn/controller/interfaces/rbac" - "code.fbi.h-da.de/danet/gosdn/controller/nucleus/errors" "code.fbi.h-da.de/danet/gosdn/controller/store" log "github.com/sirupsen/logrus" ) @@ -109,7 +109,7 @@ func (s *FileSystemRoleStore) Delete(roleToDelete rbac.Role) error { } } - return &errors.ErrCouldNotDelete{Identifier: roleToDelete.ID(), Type: roleToDelete, Err: err} + return &customerrs.CouldNotDeleteError{Identifier: roleToDelete.ID(), Type: roleToDelete, Err: err} } //Get takes a Roles ID and return the Role if found. @@ -129,7 +129,7 @@ func (s *FileSystemRoleStore) Get(query store.Query) (rbac.LoadedRole, error) { } } - return role, &errors.ErrCouldNotFind{ID: query.ID, Name: query.Name} + return role, &customerrs.CouldNotFindError{ID: query.ID, Name: query.Name} } // GetAll returns all the Roles. @@ -166,5 +166,5 @@ func (s *FileSystemRoleStore) Update(roleToUpdate rbac.Role) error { } } - return &errors.ErrCouldNotUpdate{Identifier: roleToUpdate.ID(), Type: roleToUpdate, Err: err} + return &customerrs.CouldNotUpdateError{Identifier: roleToUpdate.ID(), Type: roleToUpdate, Err: err} } diff --git a/controller/rbac/userFileSystemStore.go b/controller/rbac/userFileSystemStore.go index 4c181842f6821e4e9e3ea843365a47815e1e8006..1842d54dd3fb7a89e0b1e0615ddd36137ed615d0 100644 --- a/controller/rbac/userFileSystemStore.go +++ b/controller/rbac/userFileSystemStore.go @@ -5,8 +5,8 @@ import ( "io/ioutil" "sync" + "code.fbi.h-da.de/danet/gosdn/controller/customerrs" "code.fbi.h-da.de/danet/gosdn/controller/interfaces/rbac" - "code.fbi.h-da.de/danet/gosdn/controller/nucleus/errors" "code.fbi.h-da.de/danet/gosdn/controller/store" log "github.com/sirupsen/logrus" ) @@ -109,7 +109,7 @@ func (s *FileSystemUserStore) Delete(userToDelete rbac.User) error { } } - return &errors.ErrCouldNotDelete{Identifier: userToDelete.ID(), Type: userToDelete, Err: err} + return &customerrs.CouldNotDeleteError{Identifier: userToDelete.ID(), Type: userToDelete, Err: err} } //Get takes a Users ID and return the User if found. @@ -129,7 +129,7 @@ func (s *FileSystemUserStore) Get(query store.Query) (rbac.LoadedUser, error) { return user, nil } } - return user, &errors.ErrCouldNotFind{ID: query.ID, Name: query.Name} + return user, &customerrs.CouldNotFindError{ID: query.ID, Name: query.Name} } // GetAll returns all the Users. @@ -166,5 +166,5 @@ func (s *FileSystemUserStore) Update(userToUpdate rbac.User) error { } } - return &errors.ErrCouldNotUpdate{Identifier: userToUpdate.ID(), Type: userToUpdate, Err: err} + return &customerrs.CouldNotUpdateError{Identifier: userToUpdate.ID(), Type: userToUpdate, Err: err} } diff --git a/controller/store/changeStores.go b/controller/store/changeStores.go index 3b38a6e001771fd50a193191c20c590a32a1c812..b312753591aa67d924934c7c8af2a41c8ff52853 100644 --- a/controller/store/changeStores.go +++ b/controller/store/changeStores.go @@ -1,8 +1,8 @@ package store import ( + "code.fbi.h-da.de/danet/gosdn/controller/customerrs" "code.fbi.h-da.de/danet/gosdn/controller/interfaces/change" - "code.fbi.h-da.de/danet/gosdn/controller/nucleus/errors" "github.com/google/uuid" log "github.com/sirupsen/logrus" @@ -28,7 +28,7 @@ func (s *ChangeStore) GetChange(id uuid.UUID) (change.Change, error) { } c, ok := item.(change.Change) if !ok { - return nil, &errors.ErrInvalidTypeAssertion{ + return nil, &customerrs.InvalidTypeAssertionError{ Value: c, Type: (*change.Change)(nil), } diff --git a/controller/store/oldGenericStore.go b/controller/store/oldGenericStore.go index a08d8c628efd5b5406847e29cb2cd60efff7870d..e5ac25eea7f124db31e13eb21f8d3ed12a7d18f2 100644 --- a/controller/store/oldGenericStore.go +++ b/controller/store/oldGenericStore.go @@ -4,8 +4,8 @@ import ( "reflect" "sync" + "code.fbi.h-da.de/danet/gosdn/controller/customerrs" "code.fbi.h-da.de/danet/gosdn/controller/interfaces/store" - "code.fbi.h-da.de/danet/gosdn/controller/nucleus/errors" "github.com/google/uuid" log "github.com/sirupsen/logrus" @@ -32,7 +32,7 @@ func (s *genericStore) Exists(id uuid.UUID) bool { // Add adds a Storable to the Store. func (s *genericStore) Add(item store.Storable) error { if s.Exists(item.ID()) { - return &errors.ErrAlreadyExists{Item: item} + return &customerrs.AlreadyExistsError{Item: item} } s.storeLock.Lock() s.Store[item.ID()] = item @@ -50,7 +50,7 @@ func (s *genericStore) Add(item store.Storable) error { // use GetDevice, GetPND, GetSBI, or GetChange respectively. func (s *genericStore) Get(id uuid.UUID) (store.Storable, error) { if !s.Exists(id) { - return nil, &errors.ErrCouldNotFind{ID: id} + return nil, &customerrs.CouldNotFindError{ID: id} } log.WithFields(log.Fields{ "uuid": id, @@ -64,7 +64,7 @@ func (s *genericStore) Get(id uuid.UUID) (store.Storable, error) { // exist in the Store an error is returned. func (s *genericStore) Delete(id uuid.UUID) error { if !s.Exists(id) { - return &errors.ErrCouldNotFind{ID: id} + return &customerrs.CouldNotFindError{ID: id} } s.storeLock.Lock() delete(s.Store, id) diff --git a/controller/store/utils.go b/controller/store/utils.go index b6866b6cb994ce377aa9f6da3f3746051b812628..985bb928f40150817983516bf70c6aac119a31e2 100644 --- a/controller/store/utils.go +++ b/controller/store/utils.go @@ -6,7 +6,7 @@ import ( "path/filepath" "code.fbi.h-da.de/danet/gosdn/controller/config" - "code.fbi.h-da.de/danet/gosdn/controller/nucleus/errors" + "code.fbi.h-da.de/danet/gosdn/controller/customerrs" "github.com/google/uuid" log "github.com/sirupsen/logrus" ) @@ -21,7 +21,7 @@ func FromString(id string) (uuid.UUID, error) { log.WithFields(log.Fields{ "identifier": id, }).Debug(err) - return uuid.Nil, &errors.ErrInvalidUUID{DeviceName: id} + return uuid.Nil, &customerrs.InvalidUUIDError{DeviceName: id} } return idAsUUID, nil diff --git a/controller/test/integration/nucleusIntegration_test.go b/controller/test/integration/nucleusIntegration_test.go index 36b977a62b8a8db6ea6875f958ee4ce7ae8b7b2f..5cf80f4c2ea16e2a7c5076e87b99e729d81cb190 100644 --- a/controller/test/integration/nucleusIntegration_test.go +++ b/controller/test/integration/nucleusIntegration_test.go @@ -16,8 +16,8 @@ import ( "code.fbi.h-da.de/danet/gosdn/controller/interfaces/change" "code.fbi.h-da.de/danet/gosdn/models/generated/openconfig" + "code.fbi.h-da.de/danet/gosdn/controller/customerrs" "code.fbi.h-da.de/danet/gosdn/controller/nucleus" - "code.fbi.h-da.de/danet/gosdn/controller/nucleus/errors" "code.fbi.h-da.de/danet/gosdn/controller/nucleus/types" "code.fbi.h-da.de/danet/gosdn/controller/nucleus/util/proto" "code.fbi.h-da.de/danet/gosdn/forks/goarista/gnmi" @@ -249,7 +249,7 @@ func TestGnmi_SetValidIntegration(t *testing.T) { } r, ok := resp.(*gpb.GetResponse) if !ok { - t.Error(&errors.ErrInvalidTypeAssertion{ + t.Error(&customerrs.InvalidTypeAssertionError{ Value: resp, Type: &gpb.GetResponse{}, }) @@ -524,7 +524,7 @@ func TestGnmi_CapabilitiesIntegration(t *testing.T) { } g, ok := tr.(*nucleus.Gnmi) if !ok { - t.Error(&errors.ErrInvalidTypeAssertion{ + t.Error(&customerrs.InvalidTypeAssertionError{ Value: tr, Type: &nucleus.Gnmi{}, }) diff --git a/controller/test/plugin/csbiAdditions.go b/controller/test/plugin/csbiAdditions.go index 68d99fba78eae05283ba1901c79cb89ef4610422..d56abea584c1a18d1f8b5c41fdf4f3eb0251fb72 100644 --- a/controller/test/plugin/csbiAdditions.go +++ b/controller/test/plugin/csbiAdditions.go @@ -2,7 +2,7 @@ package main import ( spb "code.fbi.h-da.de/danet/gosdn/api/go/gosdn/southbound" - "code.fbi.h-da.de/danet/gosdn/controller/nucleus/errors" + "code.fbi.h-da.de/danet/gosdn/controller/customerrs" "github.com/google/uuid" gpb "github.com/openconfig/gnmi/proto/gnmi" "github.com/openconfig/goyang/pkg/yang" @@ -45,7 +45,7 @@ func unmarshal(schema *ytypes.Schema, bytes []byte, path *gpb.Path, goStruct ygo } validatedDeepCopy, ok := root.(ygot.GoStruct) if !ok { - return &errors.ErrInvalidTypeAssertion{} + return &customerrs.InvalidTypeAssertionError{} } // returns the node we want to fill with the data contained in 'bytes', @@ -56,7 +56,7 @@ func unmarshal(schema *ytypes.Schema, bytes []byte, path *gpb.Path, goStruct ygo } validatedCreatedNode, ok := createdNode.(ygot.GoStruct) if !ok { - return &errors.ErrInvalidTypeAssertion{} + return &customerrs.InvalidTypeAssertionError{} } if err := Unmarshal(bytes, validatedCreatedNode, opt...); err != nil { diff --git a/controller/topology/nodes/nodeStore.go b/controller/topology/nodes/nodeStore.go index 3f69c80d0671c8548a3ca1656ca57867cec9b231..cd4f28fbcbda6ec972deddee4235426e8cccee6e 100644 --- a/controller/topology/nodes/nodeStore.go +++ b/controller/topology/nodes/nodeStore.go @@ -3,8 +3,8 @@ package nodes import ( "fmt" + "code.fbi.h-da.de/danet/gosdn/controller/customerrs" "code.fbi.h-da.de/danet/gosdn/controller/nucleus/database" - "code.fbi.h-da.de/danet/gosdn/controller/nucleus/errors" query "code.fbi.h-da.de/danet/gosdn/controller/store" "github.com/google/uuid" @@ -41,7 +41,7 @@ func (s *DatabaseNodeStore) Get(query query.Query) (Node, error) { if query.ID.String() != "" { loadedNode, err := s.getByID(query.ID) if err != nil { - return loadedNode, errors.ErrCouldNotFind{ID: query.ID, Name: query.Name} + return loadedNode, customerrs.CouldNotFindError{ID: query.ID, Name: query.Name} } return loadedNode, nil @@ -49,7 +49,7 @@ func (s *DatabaseNodeStore) Get(query query.Query) (Node, error) { loadedNode, err := s.getByName(query.Name) if err != nil { - return loadedNode, errors.ErrCouldNotFind{ID: query.ID, Name: query.Name} + return loadedNode, customerrs.CouldNotFindError{ID: query.ID, Name: query.Name} } return loadedNode, nil @@ -71,12 +71,12 @@ func (s *DatabaseNodeStore) getByID(idOfNode uuid.UUID) (loadedNode Node, err er collection := db.Collection(s.storeName) result := collection.FindOne(ctx, bson.D{primitive.E{Key: "_id", Value: idAsByteArray}}) if result == nil { - return loadedNode, errors.ErrCouldNotFind{ID: idOfNode} + return loadedNode, customerrs.CouldNotFindError{ID: idOfNode} } err = result.Decode(&loadedNode) if err != nil { - return loadedNode, errors.ErrCouldNotMarshall{Identifier: idOfNode, Type: loadedNode, Err: err} + return loadedNode, customerrs.CouldNotMarshallError{Identifier: idOfNode, Type: loadedNode, Err: err} } return loadedNode, nil @@ -96,12 +96,12 @@ func (s *DatabaseNodeStore) getByName(nameOfNode string) (loadedNode Node, err e collection := db.Collection(s.storeName) result := collection.FindOne(ctx, bson.D{primitive.E{Key: "name", Value: nameOfNode}}) if result == nil { - return loadedNode, errors.ErrCouldNotFind{Name: nameOfNode} + return loadedNode, customerrs.CouldNotFindError{Name: nameOfNode} } err = result.Decode(&loadedNode) if err != nil { - return loadedNode, errors.ErrCouldNotMarshall{Identifier: nameOfNode, Type: loadedNode, Err: err} + return loadedNode, customerrs.CouldNotMarshallError{Identifier: nameOfNode, Type: loadedNode, Err: err} } return loadedNode, nil @@ -133,7 +133,7 @@ func (s *DatabaseNodeStore) GetAll() (loadedNode []Node, err error) { err = cursor.All(ctx, &loadedNode) if err != nil { - return loadedNode, errors.ErrCouldNotMarshall{Type: loadedNode, Err: err} + return loadedNode, customerrs.CouldNotMarshallError{Type: loadedNode, Err: err} } return loadedNode, nil @@ -154,7 +154,7 @@ func (s *DatabaseNodeStore) Add(node Node) (err error) { Collection(s.storeName). InsertOne(ctx, node) if err != nil { - return errors.ErrCouldNotCreate{Identifier: node.ID, Type: node, Err: err} + return customerrs.CouldNotCreateError{Identifier: node.ID, Type: node, Err: err} } return nil @@ -188,7 +188,7 @@ func (s *DatabaseNodeStore) Update(node Node) (err error) { ctx, bson.M{"_id": node.ID.String()}, update, &opt). Decode(&updatedLoadedNodes) if err != nil { - return errors.ErrCouldNotUpdate{Identifier: node.ID, Type: node, Err: err} + return customerrs.CouldNotUpdateError{Identifier: node.ID, Type: node, Err: err} } return nil diff --git a/controller/topology/ports/portStore.go b/controller/topology/ports/portStore.go index 0c44a0b3bfd45b1c76725752205f3d0d1a7eda6d..70ce2dfa90f0047b5b45b278f5f049a52251d857 100644 --- a/controller/topology/ports/portStore.go +++ b/controller/topology/ports/portStore.go @@ -3,9 +3,9 @@ package ports import ( "fmt" + "code.fbi.h-da.de/danet/gosdn/controller/customerrs" "code.fbi.h-da.de/danet/gosdn/controller/interfaces/device" "code.fbi.h-da.de/danet/gosdn/controller/nucleus/database" - "code.fbi.h-da.de/danet/gosdn/controller/nucleus/errors" query "code.fbi.h-da.de/danet/gosdn/controller/store" "github.com/google/uuid" @@ -42,7 +42,7 @@ func (s *DatabasePortStore) Get(query query.Query) (Port, error) { if query.ID.String() != "" { loadedPort, err := s.getByID(query.ID) if err != nil { - return loadedPort, errors.ErrCouldNotFind{ID: query.ID, Name: query.Name} + return loadedPort, customerrs.CouldNotFindError{ID: query.ID, Name: query.Name} } return loadedPort, nil @@ -50,7 +50,7 @@ func (s *DatabasePortStore) Get(query query.Query) (Port, error) { loadedPort, err := s.getByName(query.Name) if err != nil { - return loadedPort, errors.ErrCouldNotFind{ID: query.ID, Name: query.Name} + return loadedPort, customerrs.CouldNotFindError{ID: query.ID, Name: query.Name} } return loadedPort, nil @@ -72,12 +72,12 @@ func (s *DatabasePortStore) getByID(idOfPort uuid.UUID) (loadedPort Port, err er collection := db.Collection(s.storeName) result := collection.FindOne(ctx, bson.D{primitive.E{Key: "_id", Value: idAsByteArray}}) if result == nil { - return loadedPort, errors.ErrCouldNotFind{ID: idOfPort} + return loadedPort, customerrs.CouldNotFindError{ID: idOfPort} } err = result.Decode(&loadedPort) if err != nil { - return loadedPort, errors.ErrCouldNotMarshall{Identifier: idOfPort, Type: loadedPort, Err: err} + return loadedPort, customerrs.CouldNotMarshallError{Identifier: idOfPort, Type: loadedPort, Err: err} } return loadedPort, nil @@ -97,12 +97,12 @@ func (s *DatabasePortStore) getByName(nameOfPort string) (loadedPort Port, err e collection := db.Collection(s.storeName) result := collection.FindOne(ctx, bson.D{primitive.E{Key: "name", Value: nameOfPort}}) if result == nil { - return loadedPort, errors.ErrCouldNotFind{Name: nameOfPort} + return loadedPort, customerrs.CouldNotFindError{Name: nameOfPort} } err = result.Decode(&loadedPort) if err != nil { - return loadedPort, errors.ErrCouldNotMarshall{Identifier: nameOfPort, Type: loadedPort, Err: err} + return loadedPort, customerrs.CouldNotMarshallError{Identifier: nameOfPort, Type: loadedPort, Err: err} } return loadedPort, nil @@ -135,7 +135,7 @@ func (s *DatabasePortStore) GetAll() (loadedPorts []Port, err error) { err = cursor.All(ctx, &loadedPorts) if err != nil { - return loadedPorts, errors.ErrCouldNotMarshall{Type: loadedPorts, Err: err} + return loadedPorts, customerrs.CouldNotMarshallError{Type: loadedPorts, Err: err} } return loadedPorts, nil @@ -156,7 +156,7 @@ func (s *DatabasePortStore) Add(port Port) (err error) { Collection(s.storeName). InsertOne(ctx, port) if err != nil { - return errors.ErrCouldNotCreate{Identifier: port.ID, Type: port, Err: err} + return customerrs.CouldNotCreateError{Identifier: port.ID, Type: port, Err: err} } return nil @@ -190,7 +190,7 @@ func (s *DatabasePortStore) Update(port Port) (err error) { ctx, bson.M{"_id": port.ID.String()}, update, &opt). Decode(&updatedLoadedDevice) if err != nil { - return errors.ErrCouldNotUpdate{Identifier: port.ID, Type: port, Err: err} + return customerrs.CouldNotUpdateError{Identifier: port.ID, Type: port, Err: err} } return nil diff --git a/controller/topology/routing-tables/routingTableStore.go b/controller/topology/routing-tables/routingTableStore.go index 0bdd82c7772784973e5664a9a3a7cd5a7e8255d1..1c70c68a1d2965f5daa6877cf7056854fbfecc93 100644 --- a/controller/topology/routing-tables/routingTableStore.go +++ b/controller/topology/routing-tables/routingTableStore.go @@ -3,8 +3,8 @@ package routingtables import ( "fmt" + "code.fbi.h-da.de/danet/gosdn/controller/customerrs" "code.fbi.h-da.de/danet/gosdn/controller/nucleus/database" - "code.fbi.h-da.de/danet/gosdn/controller/nucleus/errors" query "code.fbi.h-da.de/danet/gosdn/controller/store" "github.com/google/uuid" @@ -41,7 +41,7 @@ func (s *DatabaseRoutingTableStore) Get(query query.Query) (RoutingTable, error) if query.ID.String() != "" { loadedRoutingTable, err := s.getByID(query.ID) if err != nil { - return loadedRoutingTable, errors.ErrCouldNotFind{ID: query.ID, Name: query.Name} + return loadedRoutingTable, customerrs.CouldNotFindError{ID: query.ID, Name: query.Name} } return loadedRoutingTable, nil @@ -49,7 +49,7 @@ func (s *DatabaseRoutingTableStore) Get(query query.Query) (RoutingTable, error) loadedRoutingTable, err := s.getByName(query.Name) if err != nil { - return loadedRoutingTable, errors.ErrCouldNotFind{ID: query.ID, Name: query.Name} + return loadedRoutingTable, customerrs.CouldNotFindError{ID: query.ID, Name: query.Name} } return loadedRoutingTable, nil @@ -69,12 +69,12 @@ func (s *DatabaseRoutingTableStore) getByID(idOfRoutingTable uuid.UUID) (routing collection := db.Collection(s.storeName) result := collection.FindOne(ctx, bson.D{primitive.E{Key: "_id", Value: idOfRoutingTable.String()}}) if result == nil { - return routingTable, errors.ErrCouldNotFind{ID: idOfRoutingTable} + return routingTable, customerrs.CouldNotFindError{ID: idOfRoutingTable} } err = result.Decode(&routingTable) if err != nil { - return routingTable, errors.ErrCouldNotMarshall{Identifier: idOfRoutingTable, Type: routingTable, Err: err} + return routingTable, customerrs.CouldNotMarshallError{Identifier: idOfRoutingTable, Type: routingTable, Err: err} } return routingTable, nil @@ -94,12 +94,12 @@ func (s *DatabaseRoutingTableStore) getByName(nameOfRoutingTable string) (loaded collection := db.Collection(s.storeName) result := collection.FindOne(ctx, bson.D{primitive.E{Key: "name", Value: nameOfRoutingTable}}) if result == nil { - return loadedRoutingTable, errors.ErrCouldNotFind{Name: nameOfRoutingTable} + return loadedRoutingTable, customerrs.CouldNotFindError{Name: nameOfRoutingTable} } err = result.Decode(&loadedRoutingTable) if err != nil { - return loadedRoutingTable, errors.ErrCouldNotMarshall{Type: loadedRoutingTable, Err: err} + return loadedRoutingTable, customerrs.CouldNotMarshallError{Type: loadedRoutingTable, Err: err} } return loadedRoutingTable, nil @@ -132,7 +132,7 @@ func (s *DatabaseRoutingTableStore) GetAll() (loadedRoutingTable []RoutingTable, err = cursor.All(ctx, &loadedRoutingTable) if err != nil { - return loadedRoutingTable, errors.ErrCouldNotMarshall{Type: loadedRoutingTable, Err: err} + return loadedRoutingTable, customerrs.CouldNotMarshallError{Type: loadedRoutingTable, Err: err} } return loadedRoutingTable, nil @@ -153,7 +153,7 @@ func (s *DatabaseRoutingTableStore) Add(routingTable RoutingTable) (err error) { Collection(s.storeName). InsertOne(ctx, routingTable) if err != nil { - return errors.ErrCouldNotCreate{Identifier: routingTable.ID, Type: routingTable, Err: err} + return customerrs.CouldNotCreateError{Identifier: routingTable.ID, Type: routingTable, Err: err} } return nil @@ -187,7 +187,7 @@ func (s *DatabaseRoutingTableStore) Update(routingTable RoutingTable) (err error ctx, bson.M{"_id": routingTable.ID.String()}, update, &opt). Decode(&updatedLoadedRoutingTable) if err != nil { - return errors.ErrCouldNotUpdate{Identifier: routingTable.ID, Type: routingTable, Err: err} + return customerrs.CouldNotUpdateError{Identifier: routingTable.ID, Type: routingTable, Err: err} } return nil diff --git a/controller/topology/topologyStore.go b/controller/topology/topologyStore.go index dc12b10af93c0bc226592f0498e54078c55fb7f8..e8118388eb96b6ce504e29b3cb942c9a18d861b1 100644 --- a/controller/topology/topologyStore.go +++ b/controller/topology/topologyStore.go @@ -3,8 +3,8 @@ package topology import ( "fmt" + "code.fbi.h-da.de/danet/gosdn/controller/customerrs" "code.fbi.h-da.de/danet/gosdn/controller/nucleus/database" - "code.fbi.h-da.de/danet/gosdn/controller/nucleus/errors" query "code.fbi.h-da.de/danet/gosdn/controller/store" "code.fbi.h-da.de/danet/gosdn/controller/topology/links" @@ -42,7 +42,7 @@ func (s *DatabaseTopologyStore) Get(query query.Query) (links.Link, error) { if query.ID.String() != "" { loadedTopology, err := s.getByID(query.ID) if err != nil { - return loadedTopology, errors.ErrCouldNotFind{ID: query.ID, Name: query.Name} + return loadedTopology, customerrs.CouldNotFindError{ID: query.ID, Name: query.Name} } return loadedTopology, nil @@ -50,7 +50,7 @@ func (s *DatabaseTopologyStore) Get(query query.Query) (links.Link, error) { loadedTopology, err := s.getByName(query.Name) if err != nil { - return loadedTopology, errors.ErrCouldNotFind{ID: query.ID, Name: query.Name} + return loadedTopology, customerrs.CouldNotFindError{ID: query.ID, Name: query.Name} } return loadedTopology, nil @@ -70,12 +70,12 @@ func (s *DatabaseTopologyStore) getByID(idOfTopology uuid.UUID) (loadedTopology collection := db.Collection(s.storeName) result := collection.FindOne(ctx, bson.D{primitive.E{Key: "_id", Value: idOfTopology.String()}}) if result == nil { - return loadedTopology, errors.ErrCouldNotFind{ID: idOfTopology} + return loadedTopology, customerrs.CouldNotFindError{ID: idOfTopology} } err = result.Decode(&loadedTopology) if err != nil { - return loadedTopology, errors.ErrCouldNotMarshall{Identifier: idOfTopology, Type: loadedTopology, Err: err} + return loadedTopology, customerrs.CouldNotMarshallError{Identifier: idOfTopology, Type: loadedTopology, Err: err} } return loadedTopology, nil @@ -95,12 +95,12 @@ func (s *DatabaseTopologyStore) getByName(nameOfTopology string) (loadedTopology collection := db.Collection(s.storeName) result := collection.FindOne(ctx, bson.D{primitive.E{Key: "name", Value: nameOfTopology}}) if result == nil { - return loadedTopology, errors.ErrCouldNotFind{Name: nameOfTopology} + return loadedTopology, customerrs.CouldNotFindError{Name: nameOfTopology} } err = result.Decode(&loadedTopology) if err != nil { - return loadedTopology, errors.ErrCouldNotMarshall{Identifier: nameOfTopology, Type: loadedTopology, Err: err} + return loadedTopology, customerrs.CouldNotMarshallError{Identifier: nameOfTopology, Type: loadedTopology, Err: err} } return loadedTopology, nil @@ -133,7 +133,7 @@ func (s *DatabaseTopologyStore) GetAll() (loadedTopology []links.Link, err error err = cursor.All(ctx, &loadedTopology) if err != nil { - return loadedTopology, errors.ErrCouldNotMarshall{Type: loadedTopology, Err: err} + return loadedTopology, customerrs.CouldNotMarshallError{Type: loadedTopology, Err: err} } return loadedTopology, nil @@ -154,7 +154,7 @@ func (s *DatabaseTopologyStore) Add(link links.Link) (err error) { Collection(s.storeName). InsertOne(ctx, link) if err != nil { - return errors.ErrCouldNotCreate{Identifier: link.ID, Type: link, Err: err} + return customerrs.CouldNotCreateError{Identifier: link.ID, Type: link, Err: err} } return nil @@ -188,7 +188,7 @@ func (s *DatabaseTopologyStore) Update(linkToUpdate links.Link) (err error) { ctx, bson.M{"_id": linkToUpdate.ID.String()}, update, &opt). Decode(&updatedLink) if err != nil { - return errors.ErrCouldNotUpdate{Identifier: linkToUpdate.ID, Type: linkToUpdate, Err: err} + return customerrs.CouldNotUpdateError{Identifier: linkToUpdate.ID, Type: linkToUpdate, Err: err} } return nil diff --git a/csbi/deployment.go b/csbi/deployment.go index 8cf1da9709e06aec3e2ede877cde7bfc2b09450a..7cd3769058f15e284d66f9dccb064eb0503b7cae 100644 --- a/csbi/deployment.go +++ b/csbi/deployment.go @@ -7,7 +7,7 @@ import ( "time" pb "code.fbi.h-da.de/danet/gosdn/api/go/gosdn/csbi" - "code.fbi.h-da.de/danet/gosdn/controller/nucleus/errors" + "code.fbi.h-da.de/danet/gosdn/controller/customerrs" "github.com/google/uuid" log "github.com/sirupsen/logrus" ) @@ -64,7 +64,7 @@ func (store DeploymentStore) Get(id uuid.UUID) (Deployment, error) { log.Tracef("requested %v from store", id) deployment := <-store.in if deployment.ID != id { - return Deployment{}, &errors.ErrCouldNotFind{ID: id} + return Deployment{}, &customerrs.CouldNotFindError{ID: id} } log.Tracef("received %v from store", id) log.Tracef("leaving Get func for %v", id) @@ -80,7 +80,7 @@ func (store DeploymentStore) Delete(id uuid.UUID) error { log.Tracef("requested %v from store", id) deployment := <-store.in if deployment.ID != id { - return &errors.ErrCouldNotFind{ID: id} + return &customerrs.CouldNotFindError{ID: id} } log.Tracef("received %v from store", id) deployment.State = pb.State_STATE_DECOMMISSIONED diff --git a/csbi/discover.go b/csbi/discover.go index fb270c1119bff0f88e40b064e445c49dcdcc88e5..38f6edcefb5d277e9351f55e4ec6d89d456edd5f 100644 --- a/csbi/discover.go +++ b/csbi/discover.go @@ -6,8 +6,8 @@ import ( spb "code.fbi.h-da.de/danet/gosdn/api/go/gosdn/southbound" tpb "code.fbi.h-da.de/danet/gosdn/api/go/gosdn/transport" + "code.fbi.h-da.de/danet/gosdn/controller/customerrs" "code.fbi.h-da.de/danet/gosdn/controller/nucleus" - "code.fbi.h-da.de/danet/gosdn/controller/nucleus/errors" "github.com/openconfig/gnmi/proto/gnmi" ) @@ -24,7 +24,7 @@ func Discover(ctx context.Context, opts *tpb.TransportOption) ([]*gnmi.ModelData } transport, ok := t.(*nucleus.Gnmi) if !ok { - return nil, &errors.ErrInvalidTypeAssertion{} + return nil, &customerrs.InvalidTypeAssertionError{} } resp, err := transport.Capabilities(ctx) if err != nil { @@ -32,7 +32,7 @@ func Discover(ctx context.Context, opts *tpb.TransportOption) ([]*gnmi.ModelData } capabilities, ok := resp.(*gnmi.CapabilityResponse) if !ok { - return nil, &errors.ErrInvalidTypeAssertion{ + return nil, &customerrs.InvalidTypeAssertionError{ Value: resp, Type: reflect.TypeOf(&gnmi.CapabilityResponse{}), } diff --git a/csbi/resources/csbiAdditions.go b/csbi/resources/csbiAdditions.go index 68d99fba78eae05283ba1901c79cb89ef4610422..d56abea584c1a18d1f8b5c41fdf4f3eb0251fb72 100644 --- a/csbi/resources/csbiAdditions.go +++ b/csbi/resources/csbiAdditions.go @@ -2,7 +2,7 @@ package main import ( spb "code.fbi.h-da.de/danet/gosdn/api/go/gosdn/southbound" - "code.fbi.h-da.de/danet/gosdn/controller/nucleus/errors" + "code.fbi.h-da.de/danet/gosdn/controller/customerrs" "github.com/google/uuid" gpb "github.com/openconfig/gnmi/proto/gnmi" "github.com/openconfig/goyang/pkg/yang" @@ -45,7 +45,7 @@ func unmarshal(schema *ytypes.Schema, bytes []byte, path *gpb.Path, goStruct ygo } validatedDeepCopy, ok := root.(ygot.GoStruct) if !ok { - return &errors.ErrInvalidTypeAssertion{} + return &customerrs.InvalidTypeAssertionError{} } // returns the node we want to fill with the data contained in 'bytes', @@ -56,7 +56,7 @@ func unmarshal(schema *ytypes.Schema, bytes []byte, path *gpb.Path, goStruct ygo } validatedCreatedNode, ok := createdNode.(ygot.GoStruct) if !ok { - return &errors.ErrInvalidTypeAssertion{} + return &customerrs.InvalidTypeAssertionError{} } if err := Unmarshal(bytes, validatedCreatedNode, opt...); err != nil { diff --git a/csbi/resources/go.mod b/csbi/resources/go.mod index 08239bf2af46e610fc73aa408217c71b176bde16..e8fe79116253740fa5750a706ad4f5f2c4bb231a 100644 --- a/csbi/resources/go.mod +++ b/csbi/resources/go.mod @@ -3,60 +3,60 @@ module code.fbi.h-da.de/danet/gosdn/csbi-autogen go 1.18 require ( - code.fbi.h-da.de/danet/gosdn v0.0.3-0.20220525102012-c7ccf6deae80 + code.fbi.h-da.de/danet/gosdn v0.0.3-0.20220805102430-8465989fb8b3 github.com/google/uuid v1.3.0 - github.com/openconfig/gnmi v0.0.0-20220503232738-6eb133c65a13 - github.com/openconfig/goyang v1.0.0 - github.com/openconfig/ygot v0.20.0 - github.com/sirupsen/logrus v1.8.1 - github.com/spf13/viper v1.11.0 - google.golang.org/grpc v1.46.0 + github.com/openconfig/gnmi v0.0.0-20220617175856-41246b1b3507 + github.com/openconfig/goyang v1.1.0 + github.com/openconfig/ygot v0.22.1 + github.com/sirupsen/logrus v1.9.0 + github.com/spf13/viper v1.12.0 + google.golang.org/grpc v1.48.0 ) require ( github.com/beorn7/perks v1.0.1 // indirect github.com/cespare/xxhash/v2 v2.1.2 // indirect - github.com/docker/docker v20.10.15+incompatible // indirect + github.com/docker/docker v20.10.17+incompatible // indirect github.com/fsnotify/fsnotify v1.5.4 // indirect - github.com/go-stack/stack v1.8.0 // indirect github.com/golang/glog v1.0.0 // indirect github.com/golang/protobuf v1.5.2 // indirect github.com/golang/snappy v0.0.4 // indirect github.com/google/go-cmp v0.5.8 // indirect - github.com/grpc-ecosystem/grpc-gateway/v2 v2.10.0 // indirect + github.com/grpc-ecosystem/grpc-gateway/v2 v2.11.0 // indirect github.com/hashicorp/hcl v1.0.0 // indirect - github.com/klauspost/compress v1.13.6 // indirect - github.com/kr/text v0.2.0 // indirect + github.com/klauspost/compress v1.15.9 // indirect github.com/kylelemons/godebug v1.1.0 // indirect github.com/magiconair/properties v1.8.6 // indirect github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369 // indirect github.com/mitchellh/mapstructure v1.5.0 // indirect + github.com/montanaflynn/stats v0.6.6 // indirect github.com/pelletier/go-toml v1.9.5 // indirect - github.com/pelletier/go-toml/v2 v2.0.0 // indirect + github.com/pelletier/go-toml/v2 v2.0.2 // indirect github.com/pkg/errors v0.9.1 // indirect - github.com/prometheus/client_golang v1.12.1 // indirect + github.com/prometheus/client_golang v1.12.2 // indirect github.com/prometheus/client_model v0.2.0 // indirect - github.com/prometheus/common v0.34.0 // indirect - github.com/prometheus/procfs v0.7.3 // indirect - github.com/spf13/afero v1.8.2 // indirect - github.com/spf13/cast v1.4.1 // indirect + github.com/prometheus/common v0.37.0 // indirect + github.com/prometheus/procfs v0.8.0 // indirect + github.com/rabbitmq/amqp091-go v1.4.0 // indirect + github.com/spf13/afero v1.9.2 // indirect + github.com/spf13/cast v1.5.0 // indirect github.com/spf13/jwalterweatherman v1.1.0 // indirect github.com/spf13/pflag v1.0.5 // indirect - github.com/subosito/gotenv v1.2.0 // indirect + github.com/subosito/gotenv v1.4.0 // indirect github.com/xdg-go/pbkdf2 v1.0.0 // indirect - github.com/xdg-go/scram v1.0.2 // indirect - github.com/xdg-go/stringprep v1.0.2 // indirect - github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d // indirect - go.mongodb.org/mongo-driver v1.8.4 // indirect - golang.org/x/crypto v0.0.0-20220411220226-7b82a4e95df4 // indirect - golang.org/x/net v0.0.0-20220425223048-2871e0cb64e4 // indirect - golang.org/x/sync v0.0.0-20210220032951-036812b2e83c // indirect - golang.org/x/sys v0.0.0-20220503163025-988cb79eb6c6 // indirect + github.com/xdg-go/scram v1.1.1 // indirect + github.com/xdg-go/stringprep v1.0.3 // indirect + github.com/youmark/pkcs8 v0.0.0-20201027041543-1326539a0a0a // indirect + go.mongodb.org/mongo-driver v1.10.0 // indirect + golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa // indirect + golang.org/x/net v0.0.0-20220728030405-41545e8bf201 // indirect + golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4 // indirect + golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10 // indirect golang.org/x/text v0.3.7 // indirect - google.golang.org/genproto v0.0.0-20220505152158-f39f71e6c8f3 // indirect - google.golang.org/protobuf v1.28.0 // indirect + google.golang.org/genproto v0.0.0-20220725144611-272f38e5d71b // indirect + google.golang.org/protobuf v1.28.1 // indirect gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c // indirect - gopkg.in/ini.v1 v1.66.4 // indirect + gopkg.in/ini.v1 v1.66.6 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect - gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b // indirect + gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/csbi/resources/go.sum b/csbi/resources/go.sum index 714b0acade1344c9b968b42df17e61114f29acda..0a1cb22c18eb2e5a18b21e11b1898997e73c5ac2 100644 --- a/csbi/resources/go.sum +++ b/csbi/resources/go.sum @@ -35,10 +35,8 @@ cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohl cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs= cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= cloud.google.com/go/storage v1.14.0/go.mod h1:GrKmX003DSIwi9o29oFT7YDnHYwZoctc3fOKtUw0Xmo= -code.fbi.h-da.de/danet/gosdn v0.0.3-0.20220510144954-5247307a8950 h1:TriIUgw7XziEqqVJdJBBwY7PgThfO5q4mul1znlzc98= -code.fbi.h-da.de/danet/gosdn v0.0.3-0.20220510144954-5247307a8950/go.mod h1:jWerZy0rEvKzNQFF758gyTj/HXdQted+jlZZZdNdQiI= -code.fbi.h-da.de/danet/gosdn v0.0.3-0.20220525102012-c7ccf6deae80 h1:iTbJMFIUxE4bbygnMxztzEP4GHk+jx6Di4APeBgcWD0= -code.fbi.h-da.de/danet/gosdn v0.0.3-0.20220525102012-c7ccf6deae80/go.mod h1:mmivI0sk29KRFVc8Sc/PVq4A64RzzKMT//gBvXRCd1U= +code.fbi.h-da.de/danet/gosdn v0.0.3-0.20220805102430-8465989fb8b3 h1:ajIh7gY4Cd5vCBkCjD/m5R3rEkDCw8j9TPg7KQjk3rA= +code.fbi.h-da.de/danet/gosdn v0.0.3-0.20220805102430-8465989fb8b3/go.mod h1:2lpx5wgQLmxLexKRYXotXOL7lpn2BkvvmGFtPqZx45Y= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= @@ -54,7 +52,6 @@ github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+Ce github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= github.com/cenkalti/backoff/v4 v4.0.0/go.mod h1:eEew/i+1Q6OrCDZh3WiXYv3+nJwBASZ8Bog/87DQnVg= -github.com/cenkalti/backoff/v4 v4.1.0/go.mod h1:scbssz8iZGpm3xbr14ovlUdkxfGXNInqkPWOWmG2CLw= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cespare/xxhash/v2 v2.1.2 h1:YRXhKfTDauu4ajMg1TPgFO5jnlC2HCbmLXMcTG5cbYE= @@ -70,12 +67,11 @@ github.com/cncf/udpa/go v0.0.0-20210930031921-04548b0d99d4/go.mod h1:6pvJx4me5XP github.com/cncf/xds/go v0.0.0-20210922020428-25de7278fc84/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cncf/xds/go v0.0.0-20211001041855-01bcc9b48dfe/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= -github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/docker/docker v20.10.15+incompatible h1:dk9FewY/9Xwm4ay/HViEEHSQuM/kL4F+JaG6GQdgmGo= -github.com/docker/docker v20.10.15+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v20.10.17+incompatible h1:JYCuMrWaVNophQTOrMMoSwudOVEfcegoZZrleKc1xwE= +github.com/docker/docker v20.10.17+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= @@ -84,6 +80,7 @@ github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.m github.com/envoyproxy/go-control-plane v0.9.9-0.20210217033140-668b12f5399d/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= github.com/envoyproxy/go-control-plane v0.10.2-0.20220325020618-49ff273808a1/go.mod h1:KJwIaB5Mv44NWtYuAOFCVOjcI94vtpEz2JU/D2v6IjE= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= +github.com/frankban/quicktest v1.14.3 h1:FJKSZTDHjyhriyC81FLQ0LY93eSai0ZyR/ZIkd3ZUKE= github.com/fsnotify/fsnotify v1.5.4 h1:jRbGcIw6P2Meqdwuo0H1p6JVLbL5DHKAKlYndzMwVZI= github.com/fsnotify/fsnotify v1.5.4/go.mod h1:OVB6XrOHzAwXMpEM7uPOzcehqUV2UqJxmVXmkdnm1bU= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= @@ -98,7 +95,6 @@ github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9 github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A= github.com/go-logfmt/logfmt v0.5.1/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KEVveWlfTs= -github.com/go-stack/stack v1.8.0 h1:5SgMzNM5HxrEjV0ww2lTmX6E2Izsfxas4+YHWRs3Lsk= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= @@ -172,8 +168,8 @@ github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+ github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= github.com/googleapis/google-cloud-go-testing v0.0.0-20200911160855-bcd43fbb19e8/go.mod h1:dvDLG8qkwmyD9a/MJJN3XJcT3xFxOKAvTZGvuZmac9g= github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= -github.com/grpc-ecosystem/grpc-gateway/v2 v2.10.0 h1:ESEyqQqXXFIcImj/BE8oKEX37Zsuceb2cZI+EL/zNCY= -github.com/grpc-ecosystem/grpc-gateway/v2 v2.10.0/go.mod h1:XnLCLFp3tjoZJszVKjfpyAK6J8sYIcQXWQxmqLWF21I= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.11.0 h1:Ghn7copILfeIg0y8sTGRppI1bd8I4l2VN3cob0Xeqwg= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.11.0/go.mod h1:dnjr4snxnhRSn5GWqJUva2AoMbeaxyAcepvc0Tg8lXk= github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= @@ -190,19 +186,19 @@ github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/X github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= -github.com/klauspost/compress v1.13.6 h1:P76CopJELS0TiO2mebmnzgWaajssP/EszplttgQxcgc= github.com/klauspost/compress v1.13.6/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk= +github.com/klauspost/compress v1.15.9 h1:wKRjX6JRtDdrE9qwa4b/Cip7ACOshUI4smpCQanqjSY= +github.com/klauspost/compress v1.15.9/go.mod h1:PhcZ0MbTNciWF3rruxRgKxI5NkcHHrHUDtV4Yw2GlzU= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= -github.com/kr/pretty v0.2.1 h1:Fmg33tUaq4/8ym9TJN1x7sLJnHVwhP33CNkpYV/7rwI= github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= +github.com/kr/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= -github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc= github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= github.com/magiconair/properties v1.8.6 h1:5ibWZ6iY0NctNGWo87LalDlEZ6R41TqbbDamhfG/Qzo= @@ -218,27 +214,29 @@ github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lN github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe/go.mod h1:wL8QJuTMNUDYhXwkmfOly8iTdp5TEcJFWZD2D7SIkUc= +github.com/montanaflynn/stats v0.6.6 h1:Duep6KMIDpY4Yo11iFsvyqJDyfzLF9+sndUKT+v64GQ= +github.com/montanaflynn/stats v0.6.6/go.mod h1:etXPPgVO6n31NxCd9KQUMvCM+ve0ruNzt6R8Bnaayow= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/openconfig/gnmi v0.0.0-20200414194230-1597cc0f2600/go.mod h1:M/EcuapNQgvzxo1DDXHK4tx3QpYM/uG4l591v33jG2A= github.com/openconfig/gnmi v0.0.0-20200508230933-d19cebf5e7be/go.mod h1:M/EcuapNQgvzxo1DDXHK4tx3QpYM/uG4l591v33jG2A= -github.com/openconfig/gnmi v0.0.0-20220503232738-6eb133c65a13 h1:6MHJ6YxMDr/dhS4mnM3sZxmolqgJw36ibOtwXNHTo6M= -github.com/openconfig/gnmi v0.0.0-20220503232738-6eb133c65a13/go.mod h1:h365Ifq35G6kLZDQlRvrccTt2LKK90VpjZLMNGxJRYc= +github.com/openconfig/gnmi v0.0.0-20220617175856-41246b1b3507 h1:tv9HygDMXnoGyWuLmNCodMV2+PK6+uT/ndAxDVzsUUQ= +github.com/openconfig/gnmi v0.0.0-20220617175856-41246b1b3507/go.mod h1:ycJVRtLs20E2c1WD+9oacgxbrBFwQygd8/uaOuGMlfc= github.com/openconfig/goyang v0.0.0-20200115183954-d0a48929f0ea/go.mod h1:dhXaV0JgHJzdrHi2l+w0fZrwArtXL7jEFoiqLEdmkvU= github.com/openconfig/goyang v0.2.2/go.mod h1:vX61x01Q46AzbZUzG617vWqh/cB+aisc+RrNkXRd3W8= -github.com/openconfig/goyang v1.0.0 h1:nYaFu7BOAk/eQn4CgAUjgYPfp3J6CdXrBryp32E5CjI= github.com/openconfig/goyang v1.0.0/go.mod h1:vX61x01Q46AzbZUzG617vWqh/cB+aisc+RrNkXRd3W8= +github.com/openconfig/goyang v1.1.0 h1:noOfMyWq1eXo9djmJ9MtY4qg/j/5z03lgsku7jvxPws= +github.com/openconfig/goyang v1.1.0/go.mod h1:vX61x01Q46AzbZUzG617vWqh/cB+aisc+RrNkXRd3W8= github.com/openconfig/gribi v0.1.1-0.20210423184541-ce37eb4ba92f/go.mod h1:OoH46A2kV42cIXGyviYmAlGmn6cHjGduyC2+I9d/iVs= -github.com/openconfig/grpctunnel v0.0.0-20210610163803-fde4a9dc048d/go.mod h1:x9tAZ4EwqCQ0jI8D6S8Yhw9Z0ee7/BxWQX0k0Uib5Q8= github.com/openconfig/ygot v0.6.0/go.mod h1:o30svNf7O0xK+R35tlx95odkDmZWS9JyWWQSmIhqwAs= github.com/openconfig/ygot v0.10.4/go.mod h1:oCQNdXnv7dWc8scTDgoFkauv1wwplJn5HspHcjlxSAQ= -github.com/openconfig/ygot v0.20.0 h1:j4VjbdJ2ogXrEsTA7KWMaN/85YNpd+Q8qzPr8Gqjds8= -github.com/openconfig/ygot v0.20.0/go.mod h1:7ZiBFNc4n/1Hkv2v2dAEpxisqDznp0JVpLR13Toe4AY= +github.com/openconfig/ygot v0.22.1 h1:jOpaEuOE1JaLDkDbDTza45YOxhn8ghroK7xxXHt4v0I= +github.com/openconfig/ygot v0.22.1/go.mod h1:7ZiBFNc4n/1Hkv2v2dAEpxisqDznp0JVpLR13Toe4AY= github.com/pborman/getopt v0.0.0-20190409184431-ee0cd42419d3/go.mod h1:85jBQOZwpVEaDAr341tbn15RS4fCAsIst0qp7i8ex1o= github.com/pelletier/go-toml v1.9.5 h1:4yBQzkHv+7BHq2PQUZF3Mx0IYxG7LsP222s7Agd3ve8= github.com/pelletier/go-toml v1.9.5/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= -github.com/pelletier/go-toml/v2 v2.0.0 h1:P7Bq0SaI8nsexyay5UAyDo+ICWy5MQPgEZ5+l8JQTKo= -github.com/pelletier/go-toml/v2 v2.0.0/go.mod h1:r9LEWfGN8R5k0VXJ+0BkIe7MYkRdwZOjgMj2KwnJFUo= +github.com/pelletier/go-toml/v2 v2.0.2 h1:+jQXlF3scKIcSEKkdHzXhCTDLPFi5r1wnK6yPS+49Gw= +github.com/pelletier/go-toml/v2 v2.0.2/go.mod h1:MovirKjgVRESsAvNZlAjtFwV867yGuwRkXbG66OzopI= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= @@ -250,8 +248,9 @@ github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXP github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= github.com/prometheus/client_golang v1.11.0/go.mod h1:Z6t4BnS23TR94PD6BsDNk8yVqroYurpAkEiz0P2BEV0= -github.com/prometheus/client_golang v1.12.1 h1:ZiaPsmm9uiBeaSMRznKsCDNtPCS0T3JVDGF+06gjBzk= github.com/prometheus/client_golang v1.12.1/go.mod h1:3Z9XVyYiZYEO+YQWt3RD2R3jrbd179Rt297l4aS6nDY= +github.com/prometheus/client_golang v1.12.2 h1:51L9cDoUHVrXx4zWYlcLQIZ+d+VXHgqnYKkIuq4g/34= +github.com/prometheus/client_golang v1.12.2/go.mod h1:3Z9XVyYiZYEO+YQWt3RD2R3jrbd179Rt297l4aS6nDY= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= @@ -261,31 +260,35 @@ github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y8 github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= github.com/prometheus/common v0.26.0/go.mod h1:M7rCNAaPfAosfx8veZJCuw84e35h3Cfd9VFqTh1DIvc= github.com/prometheus/common v0.32.1/go.mod h1:vu+V0TpY+O6vW9J44gczi3Ap/oXXR10b+M/gUGO4Hls= -github.com/prometheus/common v0.34.0 h1:RBmGO9d/FVjqHT0yUGQwBJhkwKV+wPCn7KGpvfab0uE= -github.com/prometheus/common v0.34.0/go.mod h1:gB3sOl7P0TvJabZpLY5uQMpUqRCPPCyRLCZYc7JZTNE= +github.com/prometheus/common v0.37.0 h1:ccBbHCgIiT9uSoFY0vX8H3zsNR5eLt17/RQLUvn8pXE= +github.com/prometheus/common v0.37.0/go.mod h1:phzohg0JFMnBEFGxTDbfu3QyL5GI8gTQJFhYO5B3mfA= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= -github.com/prometheus/procfs v0.7.3 h1:4jVXhlkAyzOScmCkXBTOLRLTz8EeU+eyjrwB/EPq0VU= github.com/prometheus/procfs v0.7.3/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= +github.com/prometheus/procfs v0.8.0 h1:ODq8ZFEaYeCaZOJlZZdJA2AbQR98dSHSM1KW/You5mo= +github.com/prometheus/procfs v0.8.0/go.mod h1:z7EfXMXOkbkqb9IINtpCn86r/to3BnA0uaxHdg830/4= +github.com/rabbitmq/amqp091-go v1.4.0 h1:T2G+J9W9OY4p64Di23J6yH7tOkMocgnESvYeBjuG9cY= +github.com/rabbitmq/amqp091-go v1.4.0/go.mod h1:JsV0ofX5f1nwOGafb8L5rBItt9GyhfQfcJj+oyz0dGg= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= +github.com/rogpeppe/go-internal v1.6.1 h1:/FiVV8dS/e+YqF2JvO3yXRFbBLTIuSDkuC7aBOAvL+k= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88= -github.com/sirupsen/logrus v1.8.1 h1:dJKuHgqk1NNQlqoA6BTlM1Wf9DOH3NBjQyu0h9+AZZE= -github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= -github.com/spf13/afero v1.8.2 h1:xehSyVa0YnHWsJ49JFljMpg1HX19V6NDZ1fkm1Xznbo= -github.com/spf13/afero v1.8.2/go.mod h1:CtAatgMJh6bJEIs48Ay/FOnkljP3WeGUG0MC1RfAqwo= -github.com/spf13/cast v1.4.1 h1:s0hze+J0196ZfEMTs80N7UlFt0BDuQ7Q+JDnHiMWKdA= -github.com/spf13/cast v1.4.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= +github.com/sirupsen/logrus v1.9.0 h1:trlNQbNUG3OdDrDil03MCb1H2o9nJ1x4/5LYw7byDE0= +github.com/sirupsen/logrus v1.9.0/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= +github.com/spf13/afero v1.9.2 h1:j49Hj62F0n+DaZ1dDCvhABaPNSGNkt32oRFxI33IEMw= +github.com/spf13/afero v1.9.2/go.mod h1:iUV7ddyEEZPO5gA3zD4fJt6iStLlL+Lg4m2cihcDf8Y= +github.com/spf13/cast v1.5.0 h1:rj3WzYc11XZaIZMPKmwP96zkFEnnAmV8s6XbB2aY32w= +github.com/spf13/cast v1.5.0/go.mod h1:SpXXQ5YoyJw6s3/6cMTQuxvgRl3PCJiyaX9p6b155UU= github.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk= github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= -github.com/spf13/viper v1.11.0 h1:7OX/1FS6n7jHD1zGrZTM7WtY13ZELRyosK4k93oPr44= -github.com/spf13/viper v1.11.0/go.mod h1:djo0X/bA5+tYVoCn+C7cAYJGcVn/qYLFTG8gdUsX7Zk= +github.com/spf13/viper v1.12.0 h1:CZ7eSOd3kZoaYDLbXnmzgQI5RlciuXBMA+18HwHRfZQ= +github.com/spf13/viper v1.12.0/go.mod h1:b6COn30jlNxbm/V2IqWiNWkJ+vZNiMNksliPCiuKtSI= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.2.0 h1:Hbg2NidpLE8veEBkEZTL3CvlkUIVzuU9jDplZO54c48= @@ -295,26 +298,28 @@ github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81P github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.7.1 h1:5TQK59W5E3v0r2duFAb7P95B6hEeOyEnHRa8MjYSMTY= -github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/subosito/gotenv v1.2.0 h1:Slr1R9HxAlEKefgq5jn9U+DnETlIUa6HfgEzj0g5d7s= -github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= +github.com/stretchr/testify v1.7.2 h1:4jaiDzPyXQvSd7D0EjG45355tLlV3VOECpq10pLC+8s= +github.com/stretchr/testify v1.7.2/go.mod h1:R6va5+xMeoiuVRoj+gSkQ7d3FALtqAAGI1FQKckRals= +github.com/subosito/gotenv v1.4.0 h1:yAzM1+SmVcz5R4tXGsNMu1jUl2aOJXoiWUCEwwnGrvs= +github.com/subosito/gotenv v1.4.0/go.mod h1:mZd6rFysKEcUhUHXJk0C/08wAgyDBFuwEYL7vWWGaGo= github.com/tidwall/pretty v1.0.0 h1:HsD+QiTn7sK6flMKIvNmpqz1qrpP3Ps6jOKIKMooyg4= github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk= github.com/xdg-go/pbkdf2 v1.0.0 h1:Su7DPu48wXMwC3bs7MCNG+z4FhcyEuz5dlvchbq0B0c= github.com/xdg-go/pbkdf2 v1.0.0/go.mod h1:jrpuAogTd400dnrH08LKmI/xc1MbPOebTwRqcT5RDeI= -github.com/xdg-go/scram v1.0.2 h1:akYIkZ28e6A96dkWNJQu3nmCzH3YfwMPQExUYDaRv7w= -github.com/xdg-go/scram v1.0.2/go.mod h1:1WAq6h33pAW+iRreB34OORO2Nf7qel3VV3fjBj+hCSs= -github.com/xdg-go/stringprep v1.0.2 h1:6iq84/ryjjeRmMJwxutI51F2GIPlP5BfTvXHeYjyhBc= -github.com/xdg-go/stringprep v1.0.2/go.mod h1:8F9zXuvzgwmyT5DUm4GUfZGDdT3W+LCvS6+da4O5kxM= -github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d h1:splanxYIlg+5LfHAM6xpdFEAYOk8iySO56hMFq6uLyA= +github.com/xdg-go/scram v1.1.1 h1:VOMT+81stJgXW3CpHyqHN3AXDYIMsx56mEFrB37Mb/E= +github.com/xdg-go/scram v1.1.1/go.mod h1:RaEWvsqvNKKvBPvcKeFjrG2cJqOkHTiyTpzz23ni57g= +github.com/xdg-go/stringprep v1.0.3 h1:kdwGpVNwPFtjs98xCGkHjQtGKh86rDcRZN17QEMCOIs= +github.com/xdg-go/stringprep v1.0.3/go.mod h1:W3f5j4i+9rC0kuIEJL0ky1VpHXQU3ocBgklLGvcBnW8= github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d/go.mod h1:rHwXgn7JulP+udvsHwJoVG1YGAP6VLg4y9I5dyZdqmA= +github.com/youmark/pkcs8 v0.0.0-20201027041543-1326539a0a0a h1:fZHgsYlfvtyqToslyjUt3VOPF4J7aK/3MPcK7xp3PDk= +github.com/youmark/pkcs8 v0.0.0-20201027041543-1326539a0a0a/go.mod h1:ul22v+Nro/R083muKhosV54bj5niojjWZvU8xrevuH4= github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -go.mongodb.org/mongo-driver v1.8.4 h1:NruvZPPL0PBcRJKmbswoWSrmHeUvzdxA3GCPfD/NEOA= -go.mongodb.org/mongo-driver v1.8.4/go.mod h1:0sQWfOeY63QTntERDJJ/0SuKK0T1uVSgKCuAROlKEPY= +github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= +go.mongodb.org/mongo-driver v1.10.0 h1:UtV6N5k14upNp4LTduX0QCufG124fSu25Wz9tu94GLg= +go.mongodb.org/mongo-driver v1.10.0/go.mod h1:wsihk0Kdgv8Kqu1Anit4sfK+22vSFbUrAVEYRhCXrA8= go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= @@ -322,6 +327,8 @@ go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= +go.uber.org/goleak v1.1.12 h1:gZAh5/EyT/HQwlpkCy6wTpqfH9H8Lz8zbm3dZh+OyzA= +go.uber.org/goleak v1.1.12/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= @@ -329,11 +336,11 @@ golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200302210943-78000ba7a073/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20201216223049-8b5274cf687f/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= golang.org/x/crypto v0.0.0-20211108221036-ceb1ce70b4fa/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.0.0-20220411220226-7b82a4e95df4 h1:kUhD7nTDoI3fVd9G4ORWrbV5NY0liEs/Jg2pv5f+bBA= -golang.org/x/crypto v0.0.0-20220411220226-7b82a4e95df4/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= +golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= +golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa h1:zuSxTR4o9y82ebqCUJYNGJbGPo6sKVl54f/TVDObg1c= +golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= @@ -367,6 +374,7 @@ golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -403,10 +411,11 @@ golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= golang.org/x/net v0.0.0-20210410081132-afb366fc7cd1/go.mod h1:9tjilg8BloeKEkVJvy7fQ90B1CfIiPueXVOjqfkSzI8= golang.org/x/net v0.0.0-20210525063256-abc453219eb5/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= -golang.org/x/net v0.0.0-20220425223048-2871e0cb64e4 h1:HVyaeDAYux4pnY+D/SiwmLOR36ewZ4iGQIIrtnuCjFA= -golang.org/x/net v0.0.0-20220425223048-2871e0cb64e4/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= +golang.org/x/net v0.0.0-20220728030405-41545e8bf201 h1:bvOltf3SADAfG05iRml8lAB3qjoEX5RCyN4K6G5v3N0= +golang.org/x/net v0.0.0-20220728030405-41545e8bf201/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -428,8 +437,9 @@ golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20210220032951-036812b2e83c h1:5KslGYwFpkhGh+Q16bwMP3cOontH8FOep7tGV86Y7SQ= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4 h1:uVc8UZUe6tr40fFVnUP5Oj+veunVezqYl9z7DYw9xzw= +golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -443,7 +453,6 @@ golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -467,7 +476,6 @@ golang.org/x/sys v0.0.0-20200905004654-be1d3432aa8f/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201201145000-ef89a241ccb3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20201214210602-f9fddec55a1e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210104204734-6f8348627aad/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -481,9 +489,9 @@ golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220114195835-da31bd327af9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220412211240-33da011f77ad/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220503163025-988cb79eb6c6 h1:nonptSpoQ4vQjyraW20DXPAglgQfVnM9ZC6MmNLMR60= -golang.org/x/sys v0.0.0-20220503163025-988cb79eb6c6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= +golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10 h1:WIoqL4EROvwiPdUtaip4VcDdpZ4kha7wBWZrbVKCIZg= +golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -492,7 +500,6 @@ golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3 golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7 h1:olpwvP2KacW1ZWvsR7uQhoyTYvKAupfQrRGBFM352Gk= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= @@ -508,7 +515,6 @@ golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3 golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= -golang.org/x/tools v0.0.0-20190531172133-b3315ee88b7d/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= @@ -547,6 +553,7 @@ golang.org/x/tools v0.0.0-20201208233053-a543418bbed2/go.mod h1:emZCQorbCU4vsT4f golang.org/x/tools v0.0.0-20210105154028-b0ab187a4818/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20210108195828-e2f9c7f1fc8e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= +golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -615,8 +622,8 @@ google.golang.org/genproto v0.0.0-20201210142538-e3217bee35cc/go.mod h1:FWY/as6D google.golang.org/genproto v0.0.0-20201214200347-8c77b98c765d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210108203827-ffc7fda8c3d7/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210226172003-ab064af71705/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20220505152158-f39f71e6c8f3 h1:q1kiSVscqoDeqTF27eQ2NnLLDmqF0I373qQNXYMy0fo= -google.golang.org/genproto v0.0.0-20220505152158-f39f71e6c8f3/go.mod h1:RAyBrSAP7Fh3Nc84ghnVLDPuV51xc9agzmm4Ph6i0Q4= +google.golang.org/genproto v0.0.0-20220725144611-272f38e5d71b h1:SfSkJugek6xm7lWywqth4r2iTrYLpD8lOj1nMIIhMNM= +google.golang.org/genproto v0.0.0-20220725144611-272f38e5d71b/go.mod h1:iHe1svFLAZg9VWz891+QbRMwUv9O/1Ww+/mngYeThbc= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= @@ -636,9 +643,8 @@ google.golang.org/grpc v1.34.0/go.mod h1:WotjhfgOW/POjDeRt8vscBtXq+2VjORFy659qA5 google.golang.org/grpc v1.35.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= google.golang.org/grpc v1.37.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= -google.golang.org/grpc v1.46.0 h1:oCjezcn6g6A75TGoKYBPgKmVBLexhYLM6MebdrPApP8= -google.golang.org/grpc v1.46.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk= -google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw= +google.golang.org/grpc v1.48.0 h1:rQOsyJ/8+ufEDJd/Gdsz7HG220Mh9HAhFHRGnIjda0w= +google.golang.org/grpc v1.48.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= @@ -652,8 +658,8 @@ google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlba google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.28.0 h1:w43yiav+6bVFTBQFZX0r7ipe9JQ1QsbMgHwbBziscLw= -google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.28.1 h1:d0NfwRgPtno5B1Wa6L2DAG+KivqkdutMf1UhdNx175w= +google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= @@ -661,8 +667,8 @@ gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8 gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= -gopkg.in/ini.v1 v1.66.4 h1:SsAcf+mM7mRZo2nJNGt8mZCjG8ZRaNGMURJw7BsIST4= -gopkg.in/ini.v1 v1.66.4/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= +gopkg.in/ini.v1 v1.66.6 h1:LATuAqN/shcYAOkv3wl2L4rkaKqkcgTBQjOyYDvcPKI= +gopkg.in/ini.v1 v1.66.6/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= @@ -672,8 +678,8 @@ gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b h1:h8qDotaEPuJATrMmW04NCwg7v22aHH28wwpauUhK9Oo= -gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= diff --git a/csbi/templates.go b/csbi/templates.go index 9289fc248ba2495ba2766690b7ebf906186f4131..e23bd1a3fc527ccbef7cbd33678028051cbac413 100644 --- a/csbi/templates.go +++ b/csbi/templates.go @@ -37,7 +37,7 @@ var southboundStruct = ygen.GoStructCodeSnippet{ } validatedDeepCopy, ok := root.(ygot.GoStruct) if !ok { - return &errors.ErrInvalidTypeAssertion{} + return &customerrs.InvalidTypeAssertionError{} } // returns the node we want to fill with the data contained in 'bytes', @@ -48,7 +48,7 @@ var southboundStruct = ygen.GoStructCodeSnippet{ } validatedCreatedNode, ok := createdNode.(ygot.GoStruct) if !ok { - return &errors.ErrInvalidTypeAssertion{} + return &customerrs.InvalidTypeAssertionError{} } if err := Unmarshal(bytes, validatedCreatedNode, opt...); err != nil { @@ -120,7 +120,7 @@ func (csbi *Csbi) Name() string { // deprecated. const southboundImportAmendmend = ` - "code.fbi.h-da.de/danet/gosdn/controller/nucleus/errors" + "code.fbi.h-da.de/danet/gosdn/controller/customerrs" spb "code.fbi.h-da.de/danet/gosdn/api/go/gosdn/southbound" "github.com/google/uuid"