diff --git a/controller/api/apiUtil_test.go b/controller/api/apiUtil_test.go index 78ae66d8bfbcc64121370f53f05840feaf702f6f..134949d52d050abeea7df18ef0ac32ffd0eb3d7f 100644 --- a/controller/api/apiUtil_test.go +++ b/controller/api/apiUtil_test.go @@ -5,9 +5,9 @@ import ( "time" "code.fbi.h-da.de/danet/gosdn/controller/conflict" + "code.fbi.h-da.de/danet/gosdn/controller/nucleus/domain/model" "code.fbi.h-da.de/danet/gosdn/controller/rbac" rbacImpl "code.fbi.h-da.de/danet/gosdn/controller/rbac" - "code.fbi.h-da.de/danet/gosdn/controller/store" "github.com/google/uuid" "github.com/sethvargo/go-password/password" "golang.org/x/crypto/argon2" @@ -142,7 +142,7 @@ func createTestUserToken(userName string, validTokenRequired bool) (string, erro } if validTokenRequired { - user, err := userService.Get(store.Query{Name: userName}) + user, err := userService.Get(model.Query{Name: userName}) if err != nil { return token, err } diff --git a/controller/app/Service.go b/controller/app/Service.go index 1f92ddc9a3a33f4aafcafac80b64f2247b497373..d7d09107547745dab64cbd5518a16e3b0b00a329 100644 --- a/controller/app/Service.go +++ b/controller/app/Service.go @@ -3,7 +3,7 @@ package app import ( "fmt" - "code.fbi.h-da.de/danet/gosdn/controller/store" + "code.fbi.h-da.de/danet/gosdn/controller/nucleus/domain/model" "github.com/google/uuid" ) @@ -31,7 +31,7 @@ func (a *Service) Register(appName, token string) (*App, error) { return nil, fmt.Errorf("token not valid") } - exisitingApp, err := a.store.Get(store.Query{ID: uuid.Nil, Name: appName}) + exisitingApp, err := a.store.Get(model.Query{ID: uuid.Nil, Name: appName}) if err != nil { if exisitingApp.ID == uuid.Nil { return a.createNewApp(appName) @@ -45,7 +45,7 @@ func (a *Service) Register(appName, token string) (*App, error) { // Deregister deregisters an app. func (a *Service) Deregister(appName string) error { - app, err := a.store.Get(store.Query{Name: appName}) + app, err := a.store.Get(model.Query{Name: appName}) if err != nil { return err } diff --git a/controller/app/Store.go b/controller/app/Store.go index 510fe56ea7c47911632ec95bd0d16b2ea2f1c3e2..446cbf81fd1987e007a5f8e6552ade7d7dee5add 100644 --- a/controller/app/Store.go +++ b/controller/app/Store.go @@ -5,8 +5,8 @@ import ( "log" "code.fbi.h-da.de/danet/gosdn/controller/customerrs" + "code.fbi.h-da.de/danet/gosdn/controller/nucleus/domain/model" "code.fbi.h-da.de/danet/gosdn/controller/nucleus/pkg/persistence/mongodb" - "code.fbi.h-da.de/danet/gosdn/controller/store" "github.com/google/uuid" "go.mongodb.org/mongo-driver/bson" @@ -19,7 +19,7 @@ type ManagementStore interface { Add(App) error Update(App) error Delete(App) error - Get(store.Query) (App, error) + Get(model.Query) (App, error) GetAll() ([]App, error) } @@ -36,7 +36,7 @@ func NewAppStore() ManagementStore { } // Get takes a app's UUID or name and returns the app. -func (s *Store) Get(query store.Query) (App, error) { +func (s *Store) Get(query model.Query) (App, error) { var loadedApp App if query.ID.String() != "" && query.ID != uuid.Nil { diff --git a/controller/controller.go b/controller/controller.go index a7db812da4a085fd918902e2afdcc9882554a193..6d55f93d12bbb9eebf453a2d11a1764da34ed0d2 100644 --- a/controller/controller.go +++ b/controller/controller.go @@ -249,7 +249,7 @@ func startGrpc() error { // createPrincipalNetworkDomain initializes the controller with an initial PND. func createPrincipalNetworkDomain() error { - basePnd, err := c.pndService.Get(store.Query{ID: config.BasePndUUID}) + basePnd, err := c.pndService.Get(model.Query{ID: config.BasePndUUID}) if err != nil { log.Info(err) } @@ -272,7 +272,7 @@ func createPrincipalNetworkDomain() error { func ensureDefaultRoleExists() error { defaultAdminRoleName := "admin" - adminRole, err := c.roleService.Get(store.Query{ID: uuid.Nil, Name: defaultAdminRoleName}) + adminRole, err := c.roleService.Get(model.Query{ID: uuid.Nil, Name: defaultAdminRoleName}) if err != nil { log.Info(err) } @@ -331,7 +331,7 @@ func ensureDefaultRoleExists() error { func ensureDefaultUserExists() error { defaultUserName := "admin" - adminUser, err := c.userService.Get(store.Query{ID: uuid.Nil, Name: defaultUserName}) + adminUser, err := c.userService.Get(model.Query{ID: uuid.Nil, Name: defaultUserName}) if err != nil { log.Info(err) } diff --git a/controller/interfaces/networkdomain/pndService.go b/controller/interfaces/networkdomain/pndService.go index ecc0c715b878df9801640e01b023d3bac1454910..df05d183e472cfaf3c61a2ada2e3959496ca7b9e 100644 --- a/controller/interfaces/networkdomain/pndService.go +++ b/controller/interfaces/networkdomain/pndService.go @@ -1,17 +1,13 @@ package networkdomain -import ( - "code.fbi.h-da.de/danet/gosdn/controller/store" -) - -// Service describes an interface for PND service implementation. -type Service interface { - Add(NetworkDomain) error - Delete(NetworkDomain) error - Get(store.Query) (NetworkDomain, error) - GetAll() ([]NetworkDomain, error) - // Note: Implement these in case we want to use cSBI again. - // PendingChannels(id uuid.UUID, parseErrors ...error) (chan networkelement.Details, error) - // AddPendingChannel(id uuid.UUID, ch chan networkelement.Details) - // RemovePendingChannel(id uuid.UUID) -} +// // Service describes an interface for PND service implementation. +// type Service interface { +// Add(NetworkDomain) error +// Delete(NetworkDomain) error +// Get(model.Query) (NetworkDomain, error) +// GetAll() ([]NetworkDomain, error) +// // Note: Implement these in case we want to use cSBI again. +// // PendingChannels(id uuid.UUID, parseErrors ...error) (chan networkelement.Details, error) +// // AddPendingChannel(id uuid.UUID, ch chan networkelement.Details) +// // RemovePendingChannel(id uuid.UUID) +// } diff --git a/controller/interfaces/networkdomain/pndStore.go b/controller/interfaces/networkdomain/pndStore.go index b88d61a213ced30e1fa55ef004408c126d089f6a..548ea284af3a8d4035ef22bce781f8c6f2e6259a 100644 --- a/controller/interfaces/networkdomain/pndStore.go +++ b/controller/interfaces/networkdomain/pndStore.go @@ -1,25 +1,18 @@ package networkdomain -import ( - "code.fbi.h-da.de/danet/gosdn/controller/store" - "github.com/google/uuid" +// // PndStore describes an interface for pnd store implementations. +// type PndStore interface { +// Add(NetworkDomain) error +// Delete(NetworkDomain) error +// Get(model.Query) (LoadedPnd, error) +// GetAll() ([]LoadedPnd, error) +// PendingChannels(id uuid.UUID, parseErrors ...error) (chan Details, error) +// AddPendingChannel(id uuid.UUID, ch chan Details) +// RemovePendingChannel(id uuid.UUID) +// } - tpb "code.fbi.h-da.de/danet/gosdn/api/go/gosdn/transport" -) - -// PndStore describes an interface for pnd store implementations. -type PndStore interface { - Add(NetworkDomain) error - Delete(NetworkDomain) error - Get(store.Query) (LoadedPnd, error) - GetAll() ([]LoadedPnd, error) - PendingChannels(id uuid.UUID, parseErrors ...error) (chan Details, error) - AddPendingChannel(id uuid.UUID, ch chan Details) - RemovePendingChannel(id uuid.UUID) -} - -type Details struct { - ID string - Address string - TransportOption *tpb.TransportOption -} +// type Details struct { +// ID string +// Address string +// TransportOption *tpb.TransportOption +// } diff --git a/controller/interfaces/networkelement/networkElementService.go b/controller/interfaces/networkelement/networkElementService.go index e77d4ec35cadcb7a4f2d3b449f91baef7d6122f3..8e1b149ba92349b207031533d44c4e34948966a0 100644 --- a/controller/interfaces/networkelement/networkElementService.go +++ b/controller/interfaces/networkelement/networkElementService.go @@ -1,17 +1,12 @@ package networkelement -import ( - "code.fbi.h-da.de/danet/gosdn/controller/store" - "github.com/google/uuid" -) - -// Service describes an interface for network element service implementations. -type Service interface { - Add(NetworkElement) error - Update(NetworkElement) error - UpdateModel(uuid.UUID, string) error - Delete(NetworkElement) error - Get(store.Query) (NetworkElement, error) - GetAll() ([]NetworkElement, error) - GetAllAsLoaded() ([]LoadedNetworkElement, error) -} +// // Service describes an interface for network element service implementations. +// type Service interface { +// Add(NetworkElement) error +// Update(NetworkElement) error +// UpdateModel(uuid.UUID, string) error +// Delete(NetworkElement) error +// Get(model.Query) (NetworkElement, error) +// GetAll() ([]NetworkElement, error) +// GetAllAsLoaded() ([]LoadedNetworkElement, error) +// } diff --git a/controller/interfaces/plugin/pluginService.go b/controller/interfaces/plugin/pluginService.go index ad4e1f3b33ba5539b35655f386675c100b45816a..801acaa9e6f06e02337ef0442b1975e7b9b1007f 100644 --- a/controller/interfaces/plugin/pluginService.go +++ b/controller/interfaces/plugin/pluginService.go @@ -1,15 +1,10 @@ package plugin -import ( - "code.fbi.h-da.de/danet/gosdn/controller/store" - "github.com/google/uuid" -) - -// Service describes an interface for plugin service implementations. -type Service interface { - Add(Plugin) error - Delete(Plugin) error - Get(store.Query) (Plugin, error) - GetAll() ([]Plugin, error) - RequestPlugin(uuid.UUID) (Plugin, error) -} +// // Service describes an interface for plugin service implementations. +// type Service interface { +// Add(Plugin) error +// Delete(Plugin) error +// Get(model.Query) (Plugin, error) +// GetAll() ([]Plugin, error) +// RequestPlugin(uuid.UUID) (Plugin, error) +// } diff --git a/controller/interfaces/plugin/pluginStore.go b/controller/interfaces/plugin/pluginStore.go index 0e8ef0a5eb40a7a546676a8b675b5489f9587e22..1f25a3c79f29ce41401045b5c5aa42c7b9df9ed1 100644 --- a/controller/interfaces/plugin/pluginStore.go +++ b/controller/interfaces/plugin/pluginStore.go @@ -1,14 +1,10 @@ package plugin -import ( - "code.fbi.h-da.de/danet/gosdn/controller/store" -) - -// Store describes an interface for plugin store implementations. -type Store interface { - Add(Plugin) error - Update(Plugin) error - Delete(Plugin) error - Get(store.Query) (LoadedPlugin, error) - GetAll() ([]LoadedPlugin, error) -} +// // Store describes an interface for plugin store implementations. +// type Store interface { +// Add(Plugin) error +// Update(Plugin) error +// Delete(Plugin) error +// Get(model.Query) (LoadedPlugin, error) +// GetAll() ([]LoadedPlugin, error) +// } diff --git a/controller/interfaces/rbac/rbacService.go b/controller/interfaces/rbac/rbacService.go index 39645f269225e2ff05abe256269002ce947823bd..84862f715004c0bd9a7cb78bd6d4b6e3f02f0b38 100644 --- a/controller/interfaces/rbac/rbacService.go +++ b/controller/interfaces/rbac/rbacService.go @@ -1,15 +1,13 @@ package rbac -import ( - "code.fbi.h-da.de/danet/gosdn/controller/store" -) +import "code.fbi.h-da.de/danet/gosdn/controller/nucleus/domain/model" // UserService describes an interface for user service implementation. type UserService interface { Add(User) error Delete(User) error Update(User) error - Get(store.Query) (User, error) + Get(model.Query) (User, error) GetAll() ([]User, error) } @@ -18,6 +16,6 @@ type RoleService interface { Add(Role) error Delete(Role) error Update(Role) error - Get(store.Query) (Role, error) + Get(model.Query) (Role, error) GetAll() ([]Role, error) } diff --git a/controller/interfaces/rbac/roleStore.go b/controller/interfaces/rbac/roleStore.go index 88ee8f59feb93ac99aaf61c35c2ab0b9f94af9ce..a26e54d107d27a1148274a5d1c02282c4e57a827 100644 --- a/controller/interfaces/rbac/roleStore.go +++ b/controller/interfaces/rbac/roleStore.go @@ -1,12 +1,12 @@ package rbac -import "code.fbi.h-da.de/danet/gosdn/controller/store" +import "code.fbi.h-da.de/danet/gosdn/controller/nucleus/domain/model" // RoleStore describes an interface for role store implementations. type RoleStore interface { Add(r Role) error Update(r Role) error Delete(Role) error - Get(store.Query) (LoadedRole, error) + Get(model.Query) (LoadedRole, error) GetAll() ([]LoadedRole, error) } diff --git a/controller/interfaces/rbac/userStore.go b/controller/interfaces/rbac/userStore.go index 014a20ce0ae06cc0091f9fefa4ab5b834059fafd..a69f7acb686b7afdd991ec836438ffd75cbd1121 100644 --- a/controller/interfaces/rbac/userStore.go +++ b/controller/interfaces/rbac/userStore.go @@ -1,14 +1,12 @@ package rbac -import ( - "code.fbi.h-da.de/danet/gosdn/controller/store" -) +import "code.fbi.h-da.de/danet/gosdn/controller/nucleus/domain/model" // UserStore describes an interface for user store implementations. type UserStore interface { Add(u User) error Update(u User) error Delete(User) error - Get(store.Query) (LoadedUser, error) + Get(model.Query) (LoadedUser, error) GetAll() ([]LoadedUser, error) } diff --git a/controller/mocks/PndService.go b/controller/mocks/PndService.go index 563ef3ce56ff72dae8cb7e228aa49beca41e0b97..03a006596dec8ae9cbe6aea4c73d0dd518a5dc19 100644 --- a/controller/mocks/PndService.go +++ b/controller/mocks/PndService.go @@ -42,11 +42,11 @@ func (_m *PndService) Delete(_a0 networkdomain.NetworkDomain) error { } // Get provides a mock function with given fields: _a0 -func (_m *PndService) Get(_a0 store.Query) (networkdomain.NetworkDomain, error) { +func (_m *PndService) Get(_a0 model.Query) (networkdomain.NetworkDomain, error) { ret := _m.Called(_a0) var r0 networkdomain.NetworkDomain - if rf, ok := ret.Get(0).(func(store.Query) networkdomain.NetworkDomain); ok { + if rf, ok := ret.Get(0).(func(model.Query) networkdomain.NetworkDomain); ok { r0 = rf(_a0) } else { if ret.Get(0) != nil { @@ -55,7 +55,7 @@ func (_m *PndService) Get(_a0 store.Query) (networkdomain.NetworkDomain, error) } var r1 error - if rf, ok := ret.Get(1).(func(store.Query) error); ok { + if rf, ok := ret.Get(1).(func(model.Query) error); ok { r1 = rf(_a0) } else { r1 = ret.Error(1) diff --git a/controller/mocks/PndStore.go b/controller/mocks/PndStore.go index 9d8512cadf80b3061150ce1c0a3c72f38f9c22e8..657dff27f886e3574faf6ab337612636f5ec89cb 100644 --- a/controller/mocks/PndStore.go +++ b/controller/mocks/PndStore.go @@ -51,21 +51,21 @@ func (_m *PndStore) Delete(_a0 networkdomain.NetworkDomain) error { } // Get provides a mock function with given fields: _a0 -func (_m *PndStore) Get(_a0 store.Query) (networkdomain.LoadedPnd, error) { +func (_m *PndStore) Get(_a0 model.Query) (networkdomain.LoadedPnd, error) { ret := _m.Called(_a0) var r0 networkdomain.LoadedPnd var r1 error - if rf, ok := ret.Get(0).(func(store.Query) (networkdomain.LoadedPnd, error)); ok { + if rf, ok := ret.Get(0).(func(model.Query) (networkdomain.LoadedPnd, error)); ok { return rf(_a0) } - if rf, ok := ret.Get(0).(func(store.Query) networkdomain.LoadedPnd); ok { + if rf, ok := ret.Get(0).(func(model.Query) networkdomain.LoadedPnd); ok { r0 = rf(_a0) } else { r0 = ret.Get(0).(networkdomain.LoadedPnd) } - if rf, ok := ret.Get(1).(func(store.Query) error); ok { + if rf, ok := ret.Get(1).(func(model.Query) error); ok { r1 = rf(_a0) } else { r1 = ret.Error(1) diff --git a/controller/mocks/RoleService.go b/controller/mocks/RoleService.go index c3ce6cb89968232100beaae5c5cb61167cba94f2..7925d9676f2fed995263bc4a61bc957075b9f259 100644 --- a/controller/mocks/RoleService.go +++ b/controller/mocks/RoleService.go @@ -42,15 +42,15 @@ func (_m *RoleService) Delete(_a0 rbac.Role) error { } // Get provides a mock function with given fields: _a0 -func (_m *RoleService) Get(_a0 store.Query) (rbac.Role, error) { +func (_m *RoleService) Get(_a0 model.Query) (rbac.Role, error) { ret := _m.Called(_a0) var r0 rbac.Role var r1 error - if rf, ok := ret.Get(0).(func(store.Query) (rbac.Role, error)); ok { + if rf, ok := ret.Get(0).(func(model.Query) (rbac.Role, error)); ok { return rf(_a0) } - if rf, ok := ret.Get(0).(func(store.Query) rbac.Role); ok { + if rf, ok := ret.Get(0).(func(model.Query) rbac.Role); ok { r0 = rf(_a0) } else { if ret.Get(0) != nil { @@ -58,7 +58,7 @@ func (_m *RoleService) Get(_a0 store.Query) (rbac.Role, error) { } } - if rf, ok := ret.Get(1).(func(store.Query) error); ok { + if rf, ok := ret.Get(1).(func(model.Query) error); ok { r1 = rf(_a0) } else { r1 = ret.Error(1) diff --git a/controller/mocks/RoleStore.go b/controller/mocks/RoleStore.go index 18d497f5e2e89f57b218a288150e766254e8e5a2..3467115f20f8ccd93d46cd956637060fcae19c32 100644 --- a/controller/mocks/RoleStore.go +++ b/controller/mocks/RoleStore.go @@ -42,21 +42,21 @@ func (_m *RoleStore) Delete(_a0 rbac.Role) error { } // Get provides a mock function with given fields: _a0 -func (_m *RoleStore) Get(_a0 store.Query) (rbac.LoadedRole, error) { +func (_m *RoleStore) Get(_a0 model.Query) (rbac.LoadedRole, error) { ret := _m.Called(_a0) var r0 rbac.LoadedRole var r1 error - if rf, ok := ret.Get(0).(func(store.Query) (rbac.LoadedRole, error)); ok { + if rf, ok := ret.Get(0).(func(model.Query) (rbac.LoadedRole, error)); ok { return rf(_a0) } - if rf, ok := ret.Get(0).(func(store.Query) rbac.LoadedRole); ok { + if rf, ok := ret.Get(0).(func(model.Query) rbac.LoadedRole); ok { r0 = rf(_a0) } else { r0 = ret.Get(0).(rbac.LoadedRole) } - if rf, ok := ret.Get(1).(func(store.Query) error); ok { + if rf, ok := ret.Get(1).(func(model.Query) error); ok { r1 = rf(_a0) } else { r1 = ret.Error(1) diff --git a/controller/mocks/Store.go b/controller/mocks/Store.go index 0662aa8c5d64ca937f792523feda9fe85e533658..3415cc22282995522b1d29438990a26c2dbcde37 100644 --- a/controller/mocks/Store.go +++ b/controller/mocks/Store.go @@ -42,21 +42,21 @@ func (_m *Store) Delete(_a0 networkelement.NetworkElement) error { } // Get provides a mock function with given fields: _a0 -func (_m *Store) Get(_a0 store.Query) (networkelement.LoadedNetworkElement, error) { +func (_m *Store) Get(_a0 model.Query) (networkelement.LoadedNetworkElement, error) { ret := _m.Called(_a0) var r0 networkelement.LoadedNetworkElement var r1 error - if rf, ok := ret.Get(0).(func(store.Query) (networkelement.LoadedNetworkElement, error)); ok { + if rf, ok := ret.Get(0).(func(model.Query) (networkelement.LoadedNetworkElement, error)); ok { return rf(_a0) } - if rf, ok := ret.Get(0).(func(store.Query) networkelement.LoadedNetworkElement); ok { + if rf, ok := ret.Get(0).(func(model.Query) networkelement.LoadedNetworkElement); ok { r0 = rf(_a0) } else { r0 = ret.Get(0).(networkelement.LoadedNetworkElement) } - if rf, ok := ret.Get(1).(func(store.Query) error); ok { + if rf, ok := ret.Get(1).(func(model.Query) error); ok { r1 = rf(_a0) } else { r1 = ret.Error(1) diff --git a/controller/mocks/UserService.go b/controller/mocks/UserService.go index 1f8be179ee86a8990d97a0366d5b86b109e2a64d..83d2ddcdfd39dc6e17190f532f2b8e3e2515cd84 100644 --- a/controller/mocks/UserService.go +++ b/controller/mocks/UserService.go @@ -42,15 +42,15 @@ func (_m *UserService) Delete(_a0 rbac.User) error { } // Get provides a mock function with given fields: _a0 -func (_m *UserService) Get(_a0 store.Query) (rbac.User, error) { +func (_m *UserService) Get(_a0 model.Query) (rbac.User, error) { ret := _m.Called(_a0) var r0 rbac.User var r1 error - if rf, ok := ret.Get(0).(func(store.Query) (rbac.User, error)); ok { + if rf, ok := ret.Get(0).(func(model.Query) (rbac.User, error)); ok { return rf(_a0) } - if rf, ok := ret.Get(0).(func(store.Query) rbac.User); ok { + if rf, ok := ret.Get(0).(func(model.Query) rbac.User); ok { r0 = rf(_a0) } else { if ret.Get(0) != nil { @@ -58,7 +58,7 @@ func (_m *UserService) Get(_a0 store.Query) (rbac.User, error) { } } - if rf, ok := ret.Get(1).(func(store.Query) error); ok { + if rf, ok := ret.Get(1).(func(model.Query) error); ok { r1 = rf(_a0) } else { r1 = ret.Error(1) diff --git a/controller/mocks/UserStore.go b/controller/mocks/UserStore.go index bc16141f0bdc0b058993fb7da68e846a83426c9f..c2cc5d41ec0938475a9ffdc3076148137c052587 100644 --- a/controller/mocks/UserStore.go +++ b/controller/mocks/UserStore.go @@ -42,21 +42,21 @@ func (_m *UserStore) Delete(_a0 rbac.User) error { } // Get provides a mock function with given fields: _a0 -func (_m *UserStore) Get(_a0 store.Query) (rbac.LoadedUser, error) { +func (_m *UserStore) Get(_a0 model.Query) (rbac.LoadedUser, error) { ret := _m.Called(_a0) var r0 rbac.LoadedUser var r1 error - if rf, ok := ret.Get(0).(func(store.Query) (rbac.LoadedUser, error)); ok { + if rf, ok := ret.Get(0).(func(model.Query) (rbac.LoadedUser, error)); ok { return rf(_a0) } - if rf, ok := ret.Get(0).(func(store.Query) rbac.LoadedUser); ok { + if rf, ok := ret.Get(0).(func(model.Query) rbac.LoadedUser); ok { r0 = rf(_a0) } else { r0 = ret.Get(0).(rbac.LoadedUser) } - if rf, ok := ret.Get(1).(func(store.Query) error); ok { + if rf, ok := ret.Get(1).(func(model.Query) error); ok { r1 = rf(_a0) } else { r1 = ret.Error(1) diff --git a/controller/northbound/server/auth.go b/controller/northbound/server/auth.go index 6466bac6ee6032c9dd477936992b56db6b0dd769..e3283b738e7949e628990678359105d483d103f2 100644 --- a/controller/northbound/server/auth.go +++ b/controller/northbound/server/auth.go @@ -8,8 +8,8 @@ import ( apb "code.fbi.h-da.de/danet/gosdn/api/go/gosdn/rbac" rbacInterfaces "code.fbi.h-da.de/danet/gosdn/controller/interfaces/rbac" "code.fbi.h-da.de/danet/gosdn/controller/metrics" + "code.fbi.h-da.de/danet/gosdn/controller/nucleus/domain/model" "code.fbi.h-da.de/danet/gosdn/controller/rbac" - "code.fbi.h-da.de/danet/gosdn/controller/store" "github.com/bufbuild/protovalidate-go" "github.com/prometheus/client_golang/prometheus" "golang.org/x/crypto/argon2" @@ -66,7 +66,7 @@ func (s AuthServer) Login(ctx context.Context, request *apb.LoginRequest) (*apb. return nil, err } - userToUpdate, err := s.userService.Get(store.Query{Name: user.UserName}) + userToUpdate, err := s.userService.Get(model.Query{Name: user.UserName}) if err != nil { return nil, err } @@ -108,7 +108,7 @@ func (s AuthServer) Logout(ctx context.Context, request *apb.LogoutRequest) (*ap // isValidUser checks if the provided user name fits to a stored one and then checks if the provided password is correct. func (s AuthServer) isValidUser(user rbac.User) error { - storedUser, err := s.userService.Get(store.Query{Name: user.Name()}) + storedUser, err := s.userService.Get(model.Query{Name: user.Name()}) if err != nil { return err } @@ -154,7 +154,7 @@ func (s AuthServer) handleLogout(ctx context.Context, userName string) error { return status.Errorf(codes.Aborted, "missing match of user associated to token and provided user name") } - storedUser, err := s.userService.Get(store.Query{Name: userName}) + storedUser, err := s.userService.Get(model.Query{Name: userName}) if err != nil { return err } diff --git a/controller/northbound/server/auth_interceptor.go b/controller/northbound/server/auth_interceptor.go index 30ffa2ea982be33282ab3db1c86cfe2f6e22d06e..6a389b6dd88c0636837f999b4bd013edde5af6c1 100644 --- a/controller/northbound/server/auth_interceptor.go +++ b/controller/northbound/server/auth_interceptor.go @@ -5,11 +5,11 @@ import ( "time" rbacInterfaces "code.fbi.h-da.de/danet/gosdn/controller/interfaces/rbac" + "code.fbi.h-da.de/danet/gosdn/controller/nucleus/domain/model" csbipb "code.fbi.h-da.de/danet/gosdn/api/go/gosdn/csbi" apb "code.fbi.h-da.de/danet/gosdn/api/go/gosdn/rbac" "code.fbi.h-da.de/danet/gosdn/controller/rbac" - "code.fbi.h-da.de/danet/gosdn/controller/store" "google.golang.org/grpc" "google.golang.org/grpc/codes" "google.golang.org/grpc/metadata" @@ -92,7 +92,7 @@ func (auth *AuthInterceptor) authorize(ctx context.Context, method string) error return status.Errorf(codes.PermissionDenied, "token expired at %v, please login", time.Unix(claims.ExpiresAt, 0)) } - user, err := auth.userService.Get(store.Query{Name: claims.Username}) + user, err := auth.userService.Get(model.Query{Name: claims.Username}) if err != nil { return err } diff --git a/controller/northbound/server/configurationmanagement.go b/controller/northbound/server/configurationmanagement.go index cef101a4c68b90312905251ad5de280881493a1a..3c6ba847cfd0aa47883db604d70abf76400790ef 100644 --- a/controller/northbound/server/configurationmanagement.go +++ b/controller/northbound/server/configurationmanagement.go @@ -12,7 +12,6 @@ import ( "code.fbi.h-da.de/danet/gosdn/controller/interfaces/plugin" "code.fbi.h-da.de/danet/gosdn/controller/nucleus/domain/model" "code.fbi.h-da.de/danet/gosdn/controller/nucleus/domain/ports" - "code.fbi.h-da.de/danet/gosdn/controller/store" "code.fbi.h-da.de/danet/gosdn/controller/topology" "code.fbi.h-da.de/danet/gosdn/controller/topology/links" "code.fbi.h-da.de/danet/gosdn/controller/topology/nodes" @@ -268,19 +267,19 @@ func (c ConfigurationManagementServer) createTopology(sdnConfig *loadedSDNConfig } for _, inputPort := range sdnConfig.Links { - sourceNode, err := c.nodeService.Get(store.Query{ID: inputPort.SourceNode.ID}) + sourceNode, err := c.nodeService.Get(model.Query{ID: inputPort.SourceNode.ID}) if err != nil { return err } - targetNode, err := c.nodeService.Get(store.Query{ID: inputPort.TargetNode.ID}) + targetNode, err := c.nodeService.Get(model.Query{ID: inputPort.TargetNode.ID}) if err != nil { return err } - sourcePort, err := c.portService.Get(store.Query{ID: inputPort.SourcePort.ID}) + sourcePort, err := c.portService.Get(model.Query{ID: inputPort.SourcePort.ID}) if err != nil { return err } - targetPort, err := c.portService.Get(store.Query{ID: inputPort.TargetPort.ID}) + targetPort, err := c.portService.Get(model.Query{ID: inputPort.TargetPort.ID}) if err != nil { return err } @@ -341,7 +340,7 @@ func (c ConfigurationManagementServer) createNetworkElements(sdnConfig *loadedSD return err } - networkElement, err := c.mneService.Get(store.Query{ID: uuid.MustParse(inputNetworkElement.ID)}) + networkElement, err := c.mneService.Get(model.Query{ID: uuid.MustParse(inputNetworkElement.ID)}) if err != nil { return err } diff --git a/controller/northbound/server/networkElement.go b/controller/northbound/server/networkElement.go index 023f33226df93c0dce2b1857209d3789e9ccb90f..6a0a098be480e8058a82823ec262af1846252afa 100644 --- a/controller/northbound/server/networkElement.go +++ b/controller/northbound/server/networkElement.go @@ -99,14 +99,14 @@ func NewNetworkElementServer( // // } // // default: // // var err error -// // sbi, err = n.sbiService.Get(store.Query{ID: sbiID}) +// // sbi, err = n.sbiService.Get(model.Query{ID: sbiID}) // // if err != nil { // // return uuid.Nil, err // // } // // } // // TODO(merge): add plugin stuff here! -// // sbi, err = n.sbiService.Get(store.Query{ID: sbiID}) +// // sbi, err = n.sbiService.Get(model.Query{ID: sbiID}) // // if err != nil { // // return uuid.Nil, err // // } @@ -170,7 +170,7 @@ func (n *NetworkElementServer) Get(ctx context.Context, request *mnepb.GetNetwor return nil, status.Errorf(codes.Aborted, "%v", err) } - mne, err := n.mneService.Get(store.Query{ID: uuid.MustParse(request.NetworkElementId)}) + mne, err := n.mneService.Get(model.Query{ID: uuid.MustParse(request.NetworkElementId)}) if err != nil { return nil, err } @@ -211,7 +211,7 @@ func (n *NetworkElementServer) Update(ctx context.Context, request *mnepb.Update return nil, err } - networkElement, err := n.mneService.Get(store.Query{ID: mneID}) + networkElement, err := n.mneService.Get(model.Query{ID: mneID}) if err != nil { return nil, err } @@ -304,7 +304,7 @@ func (n *NetworkElementServer) getMne(identifier string) (model.NetworkElement, id = uuid.Nil } - mne, err := n.mneService.Get(store.Query{ + mne, err := n.mneService.Get(model.Query{ ID: id, }) if mne == nil { @@ -323,7 +323,7 @@ func (n *NetworkElementServer) getPnd(identifier string) (model.NetworkDomain, e return nil, err } - pnd, err := n.pndService.Get(store.Query{ID: pid}) + pnd, err := n.pndService.Get(model.Query{ID: pid}) if err != nil { log.Error(err) return nil, status.Errorf(codes.Aborted, "%v", err) @@ -727,7 +727,7 @@ func (n *NetworkElementServer) addMne( // } // default: // var err error - // sbi, err = pnd.southboundService.Get(store.Query{ID: sid}) + // sbi, err = pnd.southboundService.Get(model.Query{ID: sid}) // if err != nil { // return uuid.Nil, err // } @@ -833,7 +833,7 @@ func (n *NetworkElementServer) Commit(u uuid.UUID) error { } // Set all the changes within the network elements model - networkElement, err := n.mneService.Get(store.Query{ID: ch.AssociatedDeviceID()}) + networkElement, err := n.mneService.Get(model.Query{ID: ch.AssociatedDeviceID()}) if err != nil { return err } @@ -910,7 +910,7 @@ func (n *NetworkElementServer) SetPathList(ctx context.Context, request *mnepb.S // ChangeMNE creates a change from the provided Operation, path and value. // The Change is Pending and times out after the specified timeout period. func (n *NetworkElementServer) ChangeMNE(duid uuid.UUID, operation mnepb.ApiOperation, path *gnmi.Path, value *gnmi.TypedValue) (uuid.UUID, error) { - mne, err := n.mneService.Get(store.Query{ + mne, err := n.mneService.Get(model.Query{ ID: duid, }) if err != nil { @@ -981,7 +981,7 @@ func (n *NetworkElementServer) DeleteMne(ctx context.Context, request *mnepb.Del } func (n *NetworkElementServer) deleteMne(id uuid.UUID) error { - mne, err := n.mneService.Get(store.Query{ + mne, err := n.mneService.Get(model.Query{ ID: id, Name: id.String(), }) diff --git a/controller/northbound/server/networkElement_test.go b/controller/northbound/server/networkElement_test.go index 85b531ccf58ed77894067362939e3a3f004e8156..e59edafb0c3c9c216b745d3ab356cd952b552116 100644 --- a/controller/northbound/server/networkElement_test.go +++ b/controller/northbound/server/networkElement_test.go @@ -63,7 +63,7 @@ package server // if tt.name != "fails wrong type" { // if err == nil { -// mne, err := mneServer.mneService.Get(store.Query{Name: tt.args.name}) +// mne, err := mneServer.mneService.Get(model.Query{Name: tt.args.name}) // if err != nil { // t.Errorf("AddNetworkElement() error = %v", err) // return @@ -425,7 +425,7 @@ package server // return // } -// changedMne, err := mneServer.mneService.Get(store.Query{ID: mneUUID}) +// changedMne, err := mneServer.mneService.Get(model.Query{ID: mneUUID}) // if err != nil { // t.Errorf("NetworkElementServer.Update() error = %v", err) // } diff --git a/controller/northbound/server/plugin.go b/controller/northbound/server/plugin.go index 0a77cdfa038237516118a097ee9b6b93c4d09693..49fac2c63584e128012e10f125b6cc23a402ea9b 100644 --- a/controller/northbound/server/plugin.go +++ b/controller/northbound/server/plugin.go @@ -10,9 +10,9 @@ import ( pipb "code.fbi.h-da.de/danet/gosdn/api/go/gosdn/plugin-internal" rpb "code.fbi.h-da.de/danet/gosdn/api/go/gosdn/plugin-registry" "code.fbi.h-da.de/danet/gosdn/controller/metrics" + "code.fbi.h-da.de/danet/gosdn/controller/nucleus/domain/model" "code.fbi.h-da.de/danet/gosdn/controller/nucleus/domain/ports" "code.fbi.h-da.de/danet/gosdn/controller/plugin/shared" - "code.fbi.h-da.de/danet/gosdn/controller/store" "github.com/bufbuild/protovalidate-go" "github.com/google/uuid" "github.com/prometheus/client_golang/prometheus" @@ -65,7 +65,7 @@ func (pis *PluginInternalServer) GetPluginSchema(request *pipb.GetPluginSchemaRe } buffer := make([]byte, int(shared.MB)) - plugin, err := pis.pluginService.Get(store.Query{ID: uuid.MustParse(request.GetPid())}) + plugin, err := pis.pluginService.Get(model.Query{ID: uuid.MustParse(request.GetPid())}) if err != nil { return handleRPCError(labels, err) } diff --git a/controller/northbound/server/pnd.go b/controller/northbound/server/pnd.go index c6a9744b20d8cb15888b09b4af8b1c5a10a4f478..5f1ebd2cba7e9f73287fbeb63f66f499db0fb19d 100644 --- a/controller/northbound/server/pnd.go +++ b/controller/northbound/server/pnd.go @@ -10,7 +10,6 @@ import ( "code.fbi.h-da.de/danet/gosdn/controller/metrics" "code.fbi.h-da.de/danet/gosdn/controller/nucleus/domain/model" "code.fbi.h-da.de/danet/gosdn/controller/nucleus/domain/ports" - "code.fbi.h-da.de/danet/gosdn/controller/store" "github.com/bufbuild/protovalidate-go" "github.com/google/uuid" "github.com/prometheus/client_golang/prometheus" @@ -61,7 +60,7 @@ func (s PndServer) GetPnd(ctx context.Context, request *ppb.GetPndRequest) (*ppb return nil, handleRPCError(labels, err) } - storedPnd, err := s.pndService.Get(store.Query{ID: pndID}) + storedPnd, err := s.pndService.Get(model.Query{ID: pndID}) if err != nil { return nil, err } @@ -145,7 +144,7 @@ func (s PndServer) DeletePnd(ctx context.Context, request *ppb.DeletePndRequest) return nil, handleRPCError(labels, err) } - pnd, err := s.pndService.Get(store.Query{ID: pndID}) + pnd, err := s.pndService.Get(model.Query{ID: pndID}) if err != nil { return nil, handleRPCError(labels, err) } diff --git a/controller/northbound/server/role.go b/controller/northbound/server/role.go index 1eff781de7354f34919b16cc3e73ff9a5f28ae0f..134fa30e0c7bec1e34604b4d4467be7f7791a3cc 100644 --- a/controller/northbound/server/role.go +++ b/controller/northbound/server/role.go @@ -8,8 +8,8 @@ import ( apb "code.fbi.h-da.de/danet/gosdn/api/go/gosdn/rbac" rbacInterfaces "code.fbi.h-da.de/danet/gosdn/controller/interfaces/rbac" "code.fbi.h-da.de/danet/gosdn/controller/metrics" + "code.fbi.h-da.de/danet/gosdn/controller/nucleus/domain/model" "code.fbi.h-da.de/danet/gosdn/controller/rbac" - "code.fbi.h-da.de/danet/gosdn/controller/store" "github.com/bufbuild/protovalidate-go" "github.com/google/uuid" "github.com/prometheus/client_golang/prometheus" @@ -80,7 +80,7 @@ func (r RoleServer) GetRole(ctx context.Context, request *apb.GetRoleRequest) (* return nil, fmt.Errorf("could not parse role uuid") } - roleData, err := r.roleService.Get(store.Query{Name: request.RoleName, ID: roleID}) + roleData, err := r.roleService.Get(model.Query{Name: request.RoleName, ID: roleID}) if err != nil { return nil, err } @@ -146,7 +146,7 @@ func (r RoleServer) UpdateRoles(ctx context.Context, request *apb.UpdateRolesReq if err != nil { return nil, handleRPCError(labels, err) } - _, err = r.roleService.Get(store.Query{ID: rid}) + _, err = r.roleService.Get(model.Query{ID: rid}) if err != nil { return nil, status.Errorf(codes.Canceled, "role not found %v", err) } @@ -174,7 +174,7 @@ func (r RoleServer) DeletePermissionsForRole(ctx context.Context, request *apb.D return nil, status.Errorf(codes.Aborted, "%v", err) } - roleToUpdate, err := r.roleService.Get(store.Query{Name: request.RoleName}) + roleToUpdate, err := r.roleService.Get(model.Query{Name: request.RoleName}) if err != nil { return nil, status.Errorf(codes.Canceled, "role not found %v", err) } @@ -221,7 +221,7 @@ func (r RoleServer) DeleteRoles(ctx context.Context, request *apb.DeleteRolesReq } for _, role := range request.RoleName { - roleToDelete, err := r.roleService.Get(store.Query{Name: role}) + roleToDelete, err := r.roleService.Get(model.Query{Name: role}) if err != nil { return nil, status.Errorf(codes.Canceled, "role not found") } diff --git a/controller/northbound/server/route.go b/controller/northbound/server/route.go index 00b33e0f8733eba43b2b0026c93110ae7d03eb7c..46289a5c1c9c4cc58893d5659751af2a92fc3048 100644 --- a/controller/northbound/server/route.go +++ b/controller/northbound/server/route.go @@ -5,7 +5,7 @@ import ( "time" topopb "code.fbi.h-da.de/danet/gosdn/api/go/gosdn/topology" - query "code.fbi.h-da.de/danet/gosdn/controller/store" + "code.fbi.h-da.de/danet/gosdn/controller/nucleus/domain/model" "code.fbi.h-da.de/danet/gosdn/controller/topology/nodes" "code.fbi.h-da.de/danet/gosdn/controller/topology/ports" routingtables "code.fbi.h-da.de/danet/gosdn/controller/topology/routing-tables" @@ -132,7 +132,7 @@ func (t *RoutingTableServiceServer) DeleteRoute( }, err } - foundRoute, err := t.routeService.Get(query.Query{ID: routeID}) + foundRoute, err := t.routeService.Get(model.Query{ID: routeID}) if err != nil { return &topopb.DeleteRoutesResponse{ Timestamp: time.Now().UnixNano(), diff --git a/controller/northbound/server/test_util_test.go b/controller/northbound/server/test_util_test.go index 72ded5bc087c580b3829a1daff782eb86b23d2b0..77904fb615934641a9e28e64bab608ccbb34f3a7 100644 --- a/controller/northbound/server/test_util_test.go +++ b/controller/northbound/server/test_util_test.go @@ -11,9 +11,9 @@ import ( "code.fbi.h-da.de/danet/gosdn/controller/interfaces/plugin" rbacInterfaces "code.fbi.h-da.de/danet/gosdn/controller/interfaces/rbac" "code.fbi.h-da.de/danet/gosdn/controller/mocks" + "code.fbi.h-da.de/danet/gosdn/controller/nucleus/domain/model" "code.fbi.h-da.de/danet/gosdn/controller/rbac" - "code.fbi.h-da.de/danet/gosdn/controller/store" "github.com/google/uuid" "github.com/sethvargo/go-password/password" "golang.org/x/crypto/argon2" @@ -181,7 +181,7 @@ func createTestUserToken(userName string, validTokenRequired bool, userService r } if validTokenRequired { - user, err := userService.Get(store.Query{Name: userName}) + user, err := userService.Get(model.Query{Name: userName}) if err != nil { return token, err } diff --git a/controller/northbound/server/topology.go b/controller/northbound/server/topology.go index b216eb7c9b6590ad558f5ce193d3768eddb7ba11..ec8b145f03e5ff5ad694e263d9072adffe09dcc9 100644 --- a/controller/northbound/server/topology.go +++ b/controller/northbound/server/topology.go @@ -5,7 +5,7 @@ import ( "time" topopb "code.fbi.h-da.de/danet/gosdn/api/go/gosdn/topology" - query "code.fbi.h-da.de/danet/gosdn/controller/store" + "code.fbi.h-da.de/danet/gosdn/controller/nucleus/domain/model" "code.fbi.h-da.de/danet/gosdn/controller/topology" "code.fbi.h-da.de/danet/gosdn/controller/topology/links" "code.fbi.h-da.de/danet/gosdn/controller/topology/nodes" @@ -141,7 +141,7 @@ func (t *TopologyServer) DeleteLink(ctx context.Context, request *topopb.DeleteL }, err } - foundLink, err := t.topologyService.Get(query.Query{ID: linkID}) + foundLink, err := t.topologyService.Get(model.Query{ID: linkID}) if err != nil { return &topopb.DeleteLinkResponse{ Timestamp: time.Now().UnixNano(), diff --git a/controller/northbound/server/user.go b/controller/northbound/server/user.go index 94f1b9628a217b99f988d17a0879010899ee8dc1..66864315fb68460979ef8d5dc1c9568433652c16 100644 --- a/controller/northbound/server/user.go +++ b/controller/northbound/server/user.go @@ -11,8 +11,8 @@ import ( "code.fbi.h-da.de/danet/gosdn/controller/conflict" rbacInterfaces "code.fbi.h-da.de/danet/gosdn/controller/interfaces/rbac" "code.fbi.h-da.de/danet/gosdn/controller/metrics" + "code.fbi.h-da.de/danet/gosdn/controller/nucleus/domain/model" "code.fbi.h-da.de/danet/gosdn/controller/rbac" - "code.fbi.h-da.de/danet/gosdn/controller/store" "github.com/bufbuild/protovalidate-go" "github.com/google/uuid" "github.com/prometheus/client_golang/prometheus" @@ -103,7 +103,7 @@ func (u UserServer) GetUser(ctx context.Context, request *apb.GetUserRequest) (* return nil, fmt.Errorf("could not parse user uuid") } - userData, err := u.userService.Get(store.Query{Name: request.Name, ID: userID}) + userData, err := u.userService.Get(model.Query{Name: request.Name, ID: userID}) if err != nil { return nil, err } @@ -174,7 +174,7 @@ func (u UserServer) UpdateUsers(ctx context.Context, request *apb.UpdateUsersReq return nil, handleRPCError(labels, err) } - storedUser, err := u.userService.Get(store.Query{ID: uid}) + storedUser, err := u.userService.Get(model.Query{ID: uid}) if err != nil { return nil, status.Errorf(codes.Canceled, "user not found %v", err) } @@ -210,7 +210,7 @@ func (u UserServer) DeleteUsers(ctx context.Context, request *apb.DeleteUsersReq } for _, user := range request.Username { - userToDelete, err := u.userService.Get(store.Query{Name: user}) + userToDelete, err := u.userService.Get(model.Query{Name: user}) if err != nil { return nil, status.Errorf(codes.Canceled, "user not found %v", err) } diff --git a/controller/nucleus/domain/application/service/genericService.go b/controller/nucleus/domain/application/service/genericService.go index 47d5fcad329427de37541c55e1e77749d444b89d..e57450544df2696a00cb90964f8eaeadf8467726 100644 --- a/controller/nucleus/domain/application/service/genericService.go +++ b/controller/nucleus/domain/application/service/genericService.go @@ -1,7 +1,7 @@ package service import ( - "code.fbi.h-da.de/danet/gosdn/controller/store" + "code.fbi.h-da.de/danet/gosdn/controller/nucleus/domain/model" "github.com/google/uuid" ) @@ -58,7 +58,7 @@ func (t *GenericService[T]) Delete(item T) error { } // Get gets a item T. -func (t *GenericService[T]) Get(query store.Query) (T, error) { +func (t *GenericService[T]) Get(query model.Query) (T, error) { // First search for direct hit on UUID. item, ok := t.Store[query.ID] if !ok { diff --git a/controller/nucleus/domain/application/service/networkElementService.go b/controller/nucleus/domain/application/service/networkElementService.go index c4796771fec3d6deaaa732ce6bd1fef974af5476..64d3081074414d557ac20e687b6e421653db14a4 100644 --- a/controller/nucleus/domain/application/service/networkElementService.go +++ b/controller/nucleus/domain/application/service/networkElementService.go @@ -8,7 +8,6 @@ import ( eventInterfaces "code.fbi.h-da.de/danet/gosdn/controller/interfaces/event" "code.fbi.h-da.de/danet/gosdn/controller/nucleus/domain/model" "code.fbi.h-da.de/danet/gosdn/controller/nucleus/domain/ports" - "code.fbi.h-da.de/danet/gosdn/controller/store" "github.com/google/uuid" "github.com/openconfig/gnmi/proto/gnmi" "github.com/openconfig/ygot/ygot" @@ -44,7 +43,7 @@ func NewNetworkElementService( } // Get takes a network element's UUID or name and returns the network element. -func (s *NetworkElementService) Get(query store.Query) (model.NetworkElement, error) { +func (s *NetworkElementService) Get(query model.Query) (model.NetworkElement, error) { loadedNetworkElement, err := s.networkElementStore.Get(query) if err != nil { return nil, err @@ -116,7 +115,7 @@ func (s *NetworkElementService) Add(networkElementToAdd model.NetworkElement) er // UpdateModel updates a existing network element with a new model provided as string. func (s *NetworkElementService) UpdateModel(networkElementID uuid.UUID, modelAsString string) error { - exisitingNetworkElement, err := s.Get(store.Query{ID: networkElementID}) + exisitingNetworkElement, err := s.Get(model.Query{ID: networkElementID}) if err != nil { return err } @@ -211,7 +210,7 @@ func (s *NetworkElementService) createNetworkElementFromStore(loadedNetworkEleme return nil, fmt.Errorf("can not get device, no running plugin found for network element") } - pluginForNetworkElement, err := s.pluginService.Get(store.Query{ID: uuid.MustParse(loadedNetworkElement.Plugin)}) + pluginForNetworkElement, err := s.pluginService.Get(model.Query{ID: uuid.MustParse(loadedNetworkElement.Plugin)}) if err != nil { return nil, err } diff --git a/controller/nucleus/domain/application/service/networkElementServiceMock.go b/controller/nucleus/domain/application/service/networkElementServiceMock.go index aec91d05237d279484ca957442edefbdde0c5a78..7a803b23a7b3e3d81c6ff53e10b9da911fdce2fc 100644 --- a/controller/nucleus/domain/application/service/networkElementServiceMock.go +++ b/controller/nucleus/domain/application/service/networkElementServiceMock.go @@ -1,27 +1,27 @@ package service import ( - "code.fbi.h-da.de/danet/gosdn/controller/interfaces/networkelement" - "code.fbi.h-da.de/danet/gosdn/controller/store" + "code.fbi.h-da.de/danet/gosdn/controller/nucleus/domain/model" + "code.fbi.h-da.de/danet/gosdn/controller/nucleus/domain/ports" "github.com/google/uuid" ) // NetworkElementServiceMock provides a in-memory implementation for multiple stores. type NetworkElementServiceMock struct { - Store map[uuid.UUID]networkelement.NetworkElement + Store map[uuid.UUID]model.NetworkElement nameLookupTable map[string]uuid.UUID } // NewNetworkElementServiceMock returns a specific in-memory store for network element service. -func NewNetworkElementServiceMock() networkelement.Service { +func NewNetworkElementServiceMock() ports.NetworkElementService { return &NetworkElementServiceMock{ - Store: make(map[uuid.UUID]networkelement.NetworkElement), + Store: make(map[uuid.UUID]model.NetworkElement), nameLookupTable: make(map[string]uuid.UUID), } } // Add adds a item network element. -func (t *NetworkElementServiceMock) Add(item networkelement.NetworkElement) error { +func (t *NetworkElementServiceMock) Add(item model.NetworkElement) error { _, ok := t.Store[item.ID()] if ok { return nil @@ -34,7 +34,7 @@ func (t *NetworkElementServiceMock) Add(item networkelement.NetworkElement) erro } // Update updates a item network element. -func (t *NetworkElementServiceMock) Update(item networkelement.NetworkElement) error { +func (t *NetworkElementServiceMock) Update(item model.NetworkElement) error { _, ok := t.Store[item.ID()] if ok { return nil @@ -52,14 +52,14 @@ func (t *NetworkElementServiceMock) UpdateModel(item uuid.UUID, model string) er } // Delete deletes a item network element. -func (t *NetworkElementServiceMock) Delete(item networkelement.NetworkElement) error { +func (t *NetworkElementServiceMock) Delete(item model.NetworkElement) error { delete(t.Store, item.ID()) return nil } // Get gets a item network element. -func (t *NetworkElementServiceMock) Get(query store.Query) (networkelement.NetworkElement, error) { +func (t *NetworkElementServiceMock) Get(query model.Query) (model.NetworkElement, error) { // First search for direct hit on UUID. item, ok := t.Store[query.ID] if !ok { @@ -81,8 +81,8 @@ func (t *NetworkElementServiceMock) Get(query store.Query) (networkelement.Netwo } // GetAll gets all items. -func (t *NetworkElementServiceMock) GetAll() ([]networkelement.NetworkElement, error) { - var allItems []networkelement.NetworkElement +func (t *NetworkElementServiceMock) GetAll() ([]model.NetworkElement, error) { + var allItems []model.NetworkElement for _, item := range t.Store { allItems = append(allItems, item) @@ -92,11 +92,11 @@ func (t *NetworkElementServiceMock) GetAll() ([]networkelement.NetworkElement, e } // GetAllAsLoaded gets all items as `networkelement.LoadedNetworkElement`. -func (t *NetworkElementServiceMock) GetAllAsLoaded() ([]networkelement.LoadedNetworkElement, error) { - var allItems []networkelement.LoadedNetworkElement +func (t *NetworkElementServiceMock) GetAllAsLoaded() ([]model.LoadedNetworkElement, error) { + var allItems []model.LoadedNetworkElement for _, item := range t.Store { - allItems = append(allItems, networkelement.LoadedNetworkElement{ + allItems = append(allItems, model.LoadedNetworkElement{ ID: item.ID().String(), Name: item.Name(), }) diff --git a/controller/nucleus/domain/application/service/networkElementService_test.go b/controller/nucleus/domain/application/service/networkElementService_test.go index 0306b6a6e4285bcce26d0be00bfa41e8cc4571d8..50f241be329bbaba2487e68e8cc480528d739ac6 100644 --- a/controller/nucleus/domain/application/service/networkElementService_test.go +++ b/controller/nucleus/domain/application/service/networkElementService_test.go @@ -9,7 +9,6 @@ import ( "code.fbi.h-da.de/danet/gosdn/controller/interfaces/plugin" "code.fbi.h-da.de/danet/gosdn/controller/mocks" "code.fbi.h-da.de/danet/gosdn/controller/nucleus/domain/model" - "code.fbi.h-da.de/danet/gosdn/controller/store" "github.com/google/uuid" "github.com/stretchr/testify/mock" "google.golang.org/grpc" @@ -68,7 +67,7 @@ func TestNetworkElementService_Get(t *testing.T) { networkElementService, _, mockNetworkElement, _ := getNetworkElementTestStores(t, mneID) - mne, err := networkElementService.Get(store.Query{ + mne, err := networkElementService.Get(model.Query{ ID: mockNetworkElement.ID(), Name: mockNetworkElement.Name(), }) @@ -86,7 +85,7 @@ func TestNetworkElementService_Delete(t *testing.T) { networkElementService, _, mockNetworkElement, _ := getNetworkElementTestStores(t, mneID) - mne, err := networkElementService.Get(store.Query{ + mne, err := networkElementService.Get(model.Query{ ID: mockNetworkElement.ID(), Name: mockNetworkElement.Name(), }) diff --git a/controller/nucleus/domain/application/service/pluginService.go b/controller/nucleus/domain/application/service/pluginService.go index d1e2f082c7e154612115ad900e4648bbdbfe1d65..df2764dcd1ea7e57f8ec6fdf3d89c6a801381216 100644 --- a/controller/nucleus/domain/application/service/pluginService.go +++ b/controller/nucleus/domain/application/service/pluginService.go @@ -18,7 +18,6 @@ import ( "code.fbi.h-da.de/danet/gosdn/controller/nucleus/domain/model" "code.fbi.h-da.de/danet/gosdn/controller/nucleus/domain/ports" "code.fbi.h-da.de/danet/gosdn/controller/nucleus/util" - "code.fbi.h-da.de/danet/gosdn/controller/store" "github.com/google/uuid" hcplugin "github.com/hashicorp/go-plugin" log "github.com/sirupsen/logrus" @@ -55,7 +54,7 @@ func NewPluginService( } // Get takes a Plugin's UUID or name and returns the Plugin. -func (s *PluginService) Get(query store.Query) (*model.Plugin, error) { +func (s *PluginService) Get(query model.Query) (*model.Plugin, error) { loadedPlugin, err := s.pluginStore.Get(query) if err != nil { return nil, err diff --git a/controller/nucleus/domain/application/service/pluginServiceMock.go b/controller/nucleus/domain/application/service/pluginServiceMock.go index 6873e65075aa1bd7a11e3b759a71d786af185c51..d95f8832168bf1f5fb5837c7254f647c2427ca21 100644 --- a/controller/nucleus/domain/application/service/pluginServiceMock.go +++ b/controller/nucleus/domain/application/service/pluginServiceMock.go @@ -1,25 +1,25 @@ package service import ( - "code.fbi.h-da.de/danet/gosdn/controller/interfaces/plugin" - "code.fbi.h-da.de/danet/gosdn/controller/store" + "code.fbi.h-da.de/danet/gosdn/controller/nucleus/domain/model" + "code.fbi.h-da.de/danet/gosdn/controller/nucleus/domain/ports" "github.com/google/uuid" ) // PluginServiceMock provides a in-memory implementation for multiple stores. type PluginServiceMock struct { - Store map[uuid.UUID]plugin.Plugin + Store map[uuid.UUID]*model.Plugin } // NewPluginSerivceMock returns a specific in-memory store for plugin service. -func NewPluginServiceMock() plugin.Service { +func NewPluginServiceMock() ports.PluginService { return &PluginServiceMock{ - Store: make(map[uuid.UUID]plugin.Plugin), + Store: make(map[uuid.UUID]*model.Plugin), } } // Add adds a item plugin. -func (t *PluginServiceMock) Add(item plugin.Plugin) error { +func (t *PluginServiceMock) Add(item *model.Plugin) error { _, ok := t.Store[item.ID()] if ok { return nil @@ -31,14 +31,14 @@ func (t *PluginServiceMock) Add(item plugin.Plugin) error { } // Delete deletes a item plugin. -func (t *PluginServiceMock) Delete(item plugin.Plugin) error { +func (t *PluginServiceMock) Delete(item *model.Plugin) error { delete(t.Store, item.ID()) return nil } // Get gets a plugin. -func (t *PluginServiceMock) Get(query store.Query) (plugin.Plugin, error) { +func (t *PluginServiceMock) Get(query model.Query) (*model.Plugin, error) { // search for direct hit on UUID. item, ok := t.Store[query.ID] if !ok { @@ -49,8 +49,8 @@ func (t *PluginServiceMock) Get(query store.Query) (plugin.Plugin, error) { } // GetAll gets all plugins. -func (t *PluginServiceMock) GetAll() ([]plugin.Plugin, error) { - var allItems []plugin.Plugin +func (t *PluginServiceMock) GetAll() ([]*model.Plugin, error) { + var allItems []*model.Plugin for _, item := range t.Store { allItems = append(allItems, item) @@ -61,6 +61,6 @@ func (t *PluginServiceMock) GetAll() ([]plugin.Plugin, error) { // RequestPlugin is a mock for requesting a plugin from the registry. // TODO: add plugin mock here. -func (t *PluginServiceMock) RequestPlugin(uuid.UUID) (plugin.Plugin, error) { +func (t *PluginServiceMock) RequestPlugin(uuid.UUID) (*model.Plugin, error) { return nil, nil } diff --git a/controller/nucleus/domain/application/service/pndService.go b/controller/nucleus/domain/application/service/pndService.go index da3251f299a51b488760caa340d1957f39c9bdcb..56a7277a3ac4569d7b41c3523c9787d0aeff8502 100644 --- a/controller/nucleus/domain/application/service/pndService.go +++ b/controller/nucleus/domain/application/service/pndService.go @@ -3,7 +3,6 @@ package service import ( "code.fbi.h-da.de/danet/gosdn/controller/nucleus/domain/model" "code.fbi.h-da.de/danet/gosdn/controller/nucleus/domain/ports" - "code.fbi.h-da.de/danet/gosdn/controller/store" "github.com/google/uuid" ) @@ -42,7 +41,7 @@ func (p *PndService) Delete(pndToDelete model.NetworkDomain) error { } // Get takes a PND's UUID or name and returns the PND. -func (p *PndService) Get(query store.Query) (model.NetworkDomain, error) { +func (p *PndService) Get(query model.Query) (model.NetworkDomain, error) { loadedPnd, err := p.pndStore.Get(query) if err != nil { return nil, err diff --git a/controller/nucleus/domain/model/principalNetworkDomain_test.go b/controller/nucleus/domain/model/principalNetworkDomain_test.go index 6b9f4f5e396ccf93954599afb68588c282f7065e..e1c801dd987ceb880f01bc4e97ecd2bf76256ab3 100644 --- a/controller/nucleus/domain/model/principalNetworkDomain_test.go +++ b/controller/nucleus/domain/model/principalNetworkDomain_test.go @@ -122,7 +122,7 @@ package model // if tt.name != "fails wrong type" { // if err == nil { -// mne, err := pnd.networkElementService.Get(store.Query{ID: defaultPndID}) +// mne, err := pnd.networkElementService.Get(model.Query{ID: defaultPndID}) // if err != nil { // t.Errorf("AddNetworkElement() error = %v", err) // return @@ -332,7 +332,7 @@ package model // t.Errorf("Request() error = %v, wantErr %v", err, tt.wantErr) // } -// // mne, _ := pnd.networkElementService.Get(store.Query{ID: mdid}) +// // mne, _ := pnd.networkElementService.Get(model.Query{ID: mdid}) // // if mne == nil { // // return // // } @@ -402,7 +402,7 @@ package model // // _, _ = pnd.addNetworkElement(networkElementWithMockTransport) -// // mne, _ := pnd.networkElementService.Get(store.Query{ID: mdid}) +// // mne, _ := pnd.networkElementService.Get(model.Query{ID: mdid}) // // if mne == nil { // // return // // } diff --git a/controller/nucleus/domain/model/query.go b/controller/nucleus/domain/model/query.go new file mode 100644 index 0000000000000000000000000000000000000000..ee2380056ea86ae4aded347382b86e5aa5ae016d --- /dev/null +++ b/controller/nucleus/domain/model/query.go @@ -0,0 +1,9 @@ +package model + +import "github.com/google/uuid" + +// Query is used to query objects from stores. +type Query struct { + ID uuid.UUID + Name string +} diff --git a/controller/interfaces/change/change.go b/controller/nucleus/domain/ports/change.go similarity index 97% rename from controller/interfaces/change/change.go rename to controller/nucleus/domain/ports/change.go index 3ec9de55589e7a450502610c2a4fa15f54f47678..53babeec3720765d556b6260bb82ac188efeceb5 100644 --- a/controller/interfaces/change/change.go +++ b/controller/nucleus/domain/ports/change.go @@ -1,4 +1,4 @@ -package change +package ports import ( "time" diff --git a/controller/nucleus/domain/ports/ports.go b/controller/nucleus/domain/ports/ports.go deleted file mode 100644 index a64a8bb3382cb76f59594807557e43d1808cd12e..0000000000000000000000000000000000000000 --- a/controller/nucleus/domain/ports/ports.go +++ /dev/null @@ -1,69 +0,0 @@ -package ports - -import ( - "code.fbi.h-da.de/danet/gosdn/controller/interfaces/networkelement" - "code.fbi.h-da.de/danet/gosdn/controller/nucleus/domain/model" - "code.fbi.h-da.de/danet/gosdn/controller/store" - "github.com/google/uuid" -) - -// Store describes an interface for network element store implementations. -type NetworkElementStore interface { - Add(model.NetworkElement) error - Update(model.NetworkElement) error - Delete(model.NetworkElement) error - Get(store.Query) (model.LoadedNetworkElement, error) - GetAll() ([]model.LoadedNetworkElement, error) -} - -// Store describes an interface for plugin store implementations. -type PluginStore interface { - Add(*model.Plugin) error - Update(*model.Plugin) error - Delete(*model.Plugin) error - Get(store.Query) (model.LoadedPlugin, error) - GetAll() ([]model.LoadedPlugin, error) -} - -// PndStore describes an interface for pnd store implementations. -type PndStore interface { - Add(model.NetworkDomain) error - Delete(model.NetworkDomain) error - Get(store.Query) (model.LoadedPnd, error) - GetAll() ([]model.LoadedPnd, error) - PendingChannels(id uuid.UUID, parseErrors ...error) (chan networkelement.Details, error) - AddPendingChannel(id uuid.UUID, ch chan networkelement.Details) - RemovePendingChannel(id uuid.UUID) -} - -// Service describes an interface for network element service implementations. -type NetworkElementService interface { - Add(model.NetworkElement) error - Update(model.NetworkElement) error - UpdateModel(uuid.UUID, string) error - Delete(model.NetworkElement) error - Get(store.Query) (model.NetworkElement, error) - GetAll() ([]model.NetworkElement, error) - GetAllAsLoaded() ([]model.LoadedNetworkElement, error) -} - -// Service describes an interface for plugin service implementations. -type PluginService interface { - Add(*model.Plugin) error - Delete(*model.Plugin) error - Get(store.Query) (*model.Plugin, error) - GetAll() ([]*model.Plugin, error) - RequestPlugin(uuid.UUID) (*model.Plugin, error) -} - -// Service describes an interface for PND service implementation. -type PndService interface { - Add(model.NetworkDomain) error - Delete(model.NetworkDomain) error - Get(store.Query) (model.NetworkDomain, error) - GetAll() ([]model.NetworkDomain, error) - // Note: Implement these in case we want to use cSBI again. - // PendingChannels(id uuid.UUID, parseErrors ...error) (chan networkelement.Details, error) - // AddPendingChannel(id uuid.UUID, ch chan networkelement.Details) - // RemovePendingChannel(id uuid.UUID) -} diff --git a/controller/nucleus/domain/ports/service.go b/controller/nucleus/domain/ports/service.go new file mode 100644 index 0000000000000000000000000000000000000000..a06f341ec2f0b47706522e614f0051128c383020 --- /dev/null +++ b/controller/nucleus/domain/ports/service.go @@ -0,0 +1,38 @@ +package ports + +import ( + "code.fbi.h-da.de/danet/gosdn/controller/nucleus/domain/model" + "github.com/google/uuid" +) + +// Service describes an interface for network element service implementations. +type NetworkElementService interface { + Add(model.NetworkElement) error + Update(model.NetworkElement) error + UpdateModel(uuid.UUID, string) error + Delete(model.NetworkElement) error + Get(model.Query) (model.NetworkElement, error) + GetAll() ([]model.NetworkElement, error) + GetAllAsLoaded() ([]model.LoadedNetworkElement, error) +} + +// Service describes an interface for plugin service implementations. +type PluginService interface { + Add(*model.Plugin) error + Delete(*model.Plugin) error + Get(model.Query) (*model.Plugin, error) + GetAll() ([]*model.Plugin, error) + RequestPlugin(uuid.UUID) (*model.Plugin, error) +} + +// Service describes an interface for PND service implementation. +type PndService interface { + Add(model.NetworkDomain) error + Delete(model.NetworkDomain) error + Get(model.Query) (model.NetworkDomain, error) + GetAll() ([]model.NetworkDomain, error) + // Note: Implement these in case we want to use cSBI again. + // PendingChannels(id uuid.UUID, parseErrors ...error) (chan networkelement.Details, error) + // AddPendingChannel(id uuid.UUID, ch chan networkelement.Details) + // RemovePendingChannel(id uuid.UUID) +} diff --git a/controller/nucleus/domain/ports/store.go b/controller/nucleus/domain/ports/store.go new file mode 100644 index 0000000000000000000000000000000000000000..f88c2a1ad136a0fe3918139ea83aec9a73a5632c --- /dev/null +++ b/controller/nucleus/domain/ports/store.go @@ -0,0 +1,36 @@ +package ports + +import ( + "code.fbi.h-da.de/danet/gosdn/controller/interfaces/networkelement" + "code.fbi.h-da.de/danet/gosdn/controller/nucleus/domain/model" + "github.com/google/uuid" +) + +// Store describes an interface for network element store implementations. +type NetworkElementStore interface { + Add(model.NetworkElement) error + Update(model.NetworkElement) error + Delete(model.NetworkElement) error + Get(model.Query) (model.LoadedNetworkElement, error) + GetAll() ([]model.LoadedNetworkElement, error) +} + +// Store describes an interface for plugin store implementations. +type PluginStore interface { + Add(*model.Plugin) error + Update(*model.Plugin) error + Delete(*model.Plugin) error + Get(model.Query) (model.LoadedPlugin, error) + GetAll() ([]model.LoadedPlugin, error) +} + +// PndStore describes an interface for pnd store implementations. +type PndStore interface { + Add(model.NetworkDomain) error + Delete(model.NetworkDomain) error + Get(model.Query) (model.LoadedPnd, error) + GetAll() ([]model.LoadedPnd, error) + PendingChannels(id uuid.UUID, parseErrors ...error) (chan networkelement.Details, error) + AddPendingChannel(id uuid.UUID, ch chan networkelement.Details) + RemovePendingChannel(id uuid.UUID) +} diff --git a/controller/nucleus/pkg/persistence/filesystem/networkElementFilesystemStore.go b/controller/nucleus/pkg/persistence/filesystem/networkElementFilesystemStore.go index c15b40aef4e504fe1b7e79b4547effa0bbb069d0..fa1a0bf3fd0f556723b498c445a1684fcb073d27 100644 --- a/controller/nucleus/pkg/persistence/filesystem/networkElementFilesystemStore.go +++ b/controller/nucleus/pkg/persistence/filesystem/networkElementFilesystemStore.go @@ -60,7 +60,7 @@ func (s *FilesystemNetworkElementStore) writeAllNetworkElementsToFile(mnes []mod } // Get takes a network element's UUID or name and returns the network element. -func (s *FilesystemNetworkElementStore) Get(query store.Query) (model.LoadedNetworkElement, error) { +func (s *FilesystemNetworkElementStore) Get(query model.Query) (model.LoadedNetworkElement, error) { s.fileMutex.Lock() defer s.fileMutex.Unlock() diff --git a/controller/nucleus/pkg/persistence/filesystem/networkElementFilesystemStore_test.go b/controller/nucleus/pkg/persistence/filesystem/networkElementFilesystemStore_test.go index b4c630a41567727ace3849f72d7e4dd054026e9a..aec420ad1bf1865adfc24869ba85761f3c68fe2c 100644 --- a/controller/nucleus/pkg/persistence/filesystem/networkElementFilesystemStore_test.go +++ b/controller/nucleus/pkg/persistence/filesystem/networkElementFilesystemStore_test.go @@ -137,7 +137,7 @@ func TestGetNetworkElement(t *testing.T) { } } - returnNetworkElement, err := networkElementStore.Get(store.Query{ID: mneID2, Name: "testname2"}) + returnNetworkElement, err := networkElementStore.Get(model.Query{ID: mneID2, Name: "testname2"}) if err != nil { t.Error(err) } @@ -179,7 +179,7 @@ func TestUpdateNetworkElement(t *testing.T) { t.Error(err) } - returnNetworkElement, err := networkElementStore.Get(store.Query{ID: mneID, Name: updatedNetworkElementName}) + returnNetworkElement, err := networkElementStore.Get(model.Query{ID: mneID, Name: updatedNetworkElementName}) if err != nil { t.Error(err) } diff --git a/controller/nucleus/pkg/persistence/filesystem/pluginFilesystemStore.go b/controller/nucleus/pkg/persistence/filesystem/pluginFilesystemStore.go index c1e74b4fe5b726d0d648d450d1b400f974cd9799..6b4fddd01c72869b3f58e569968c988a80f8e029 100644 --- a/controller/nucleus/pkg/persistence/filesystem/pluginFilesystemStore.go +++ b/controller/nucleus/pkg/persistence/filesystem/pluginFilesystemStore.go @@ -143,7 +143,7 @@ func (s *FilesystemPluginStore) Delete(pluginToDelete *model.Plugin) error { // Get takes a Plugin's UUID or name and returns the Plugin. If the requested // Plugin does not exist an error is returned. -func (s *FilesystemPluginStore) Get(query store.Query) (model.LoadedPlugin, error) { +func (s *FilesystemPluginStore) Get(query model.Query) (model.LoadedPlugin, error) { s.fileMutex.Lock() defer s.fileMutex.Unlock() diff --git a/controller/nucleus/pkg/persistence/filesystem/pluginFilesystemStore_test.go b/controller/nucleus/pkg/persistence/filesystem/pluginFilesystemStore_test.go index ac2881c804720a224fb35514c882b38612e089a9..f7ff8c4b660c91886cb89884edfb4b58d9a34496 100644 --- a/controller/nucleus/pkg/persistence/filesystem/pluginFilesystemStore_test.go +++ b/controller/nucleus/pkg/persistence/filesystem/pluginFilesystemStore_test.go @@ -5,6 +5,7 @@ import ( "code.fbi.h-da.de/danet/gosdn/controller/interfaces/plugin" "code.fbi.h-da.de/danet/gosdn/controller/mocks" + "code.fbi.h-da.de/danet/gosdn/controller/nucleus/domain/model" "code.fbi.h-da.de/danet/gosdn/controller/store" "github.com/google/uuid" ) @@ -98,7 +99,7 @@ func TestGetPlugin(t *testing.T) { } } - returnPlugin, err := pluginStore.Get(store.Query{ID: mockPlugin2ID, Name: ""}) + returnPlugin, err := pluginStore.Get(model.Query{ID: mockPlugin2ID, Name: ""}) if err != nil { t.Error(err) } diff --git a/controller/nucleus/pkg/persistence/filesystem/pndFilesystemStore.go b/controller/nucleus/pkg/persistence/filesystem/pndFilesystemStore.go index eca2a0a91ede2309a9ee20149839868da3e1ee82..634be0fb38d4990846a141223dada27d09a10bb8 100644 --- a/controller/nucleus/pkg/persistence/filesystem/pndFilesystemStore.go +++ b/controller/nucleus/pkg/persistence/filesystem/pndFilesystemStore.go @@ -141,7 +141,7 @@ func (t *FilesystemPndStore) Delete(pndToDelete model.NetworkDomain) error { } // Get provides a the query interface to find a stored pnd. -func (t *FilesystemPndStore) Get(query store.Query) (model.LoadedPnd, error) { +func (t *FilesystemPndStore) Get(query model.Query) (model.LoadedPnd, error) { t.fileMutex.Lock() defer t.fileMutex.Unlock() diff --git a/controller/nucleus/pkg/persistence/filesystem/pndFilesystemStore_test.go b/controller/nucleus/pkg/persistence/filesystem/pndFilesystemStore_test.go index 01e6aff9b40c546773d8e13779e6d82b237a5262..86e172597d05cdad33cb3568042025b5caed14a1 100644 --- a/controller/nucleus/pkg/persistence/filesystem/pndFilesystemStore_test.go +++ b/controller/nucleus/pkg/persistence/filesystem/pndFilesystemStore_test.go @@ -12,7 +12,7 @@ import ( func TestAddPnd(t *testing.T) { defer ensureStoreFileForTestsIsRemoved(store.PndFilename) - pluginServiceMock := NewPluginServiceMock() + pluginServiceMock := NewPluginServiceMock()ex pndStore := NewPndStore(pluginServiceMock) pndID, _ := uuid.Parse("b4016412-eec5-45a1-aa29-f59915357bad") @@ -81,7 +81,7 @@ func TestGetPnd(t *testing.T) { } } - returnPnd, err := pndStore.Get(store.Query{ID: pndID2, Name: ""}) + returnPnd, err := pndStore.Get(model.Query{ID: pndID2, Name: ""}) if err != nil { t.Error(err) } diff --git a/controller/nucleus/pkg/persistence/memory/memoryNetworkElementStore.go b/controller/nucleus/pkg/persistence/memory/memoryNetworkElementStore.go index 1144dc9baa9df9883397edad024fa4dd65851fc7..9a5bf744ef87c2c0b3c57fd6753362b655b400ef 100644 --- a/controller/nucleus/pkg/persistence/memory/memoryNetworkElementStore.go +++ b/controller/nucleus/pkg/persistence/memory/memoryNetworkElementStore.go @@ -6,7 +6,6 @@ import ( "code.fbi.h-da.de/danet/gosdn/controller/customerrs" "code.fbi.h-da.de/danet/gosdn/controller/nucleus/domain/model" "code.fbi.h-da.de/danet/gosdn/controller/nucleus/domain/ports" - "code.fbi.h-da.de/danet/gosdn/controller/store" ) // MemoryNetworkElementStore provides a in-memory implementation for network elements. @@ -79,7 +78,7 @@ func (t *MemoryNetworkElementStore) Delete(item model.NetworkElement) error { } // Get takes a network element's UUID or name and returns the network element. -func (t *MemoryNetworkElementStore) Get(query store.Query) (model.LoadedNetworkElement, error) { +func (t *MemoryNetworkElementStore) Get(query model.Query) (model.LoadedNetworkElement, error) { // First search for direct hit on UUID. item, ok := t.Store[query.ID.String()] if !ok { diff --git a/controller/nucleus/pkg/persistence/memory/memoryPluginStore.go b/controller/nucleus/pkg/persistence/memory/memoryPluginStore.go index 1a346aec0752d41fa54299e78a5224037ead29c8..7e372322e2c3371d46efec9f4fa3180750c4abf3 100644 --- a/controller/nucleus/pkg/persistence/memory/memoryPluginStore.go +++ b/controller/nucleus/pkg/persistence/memory/memoryPluginStore.go @@ -5,6 +5,7 @@ import ( "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/domain/model" "code.fbi.h-da.de/danet/gosdn/controller/store" ) @@ -72,7 +73,7 @@ func (t *MemoryPluginStore) Delete(item plugin.Plugin) error { } // Get takes a plugins's UUID or name and returns the plugin. -func (t *MemoryPluginStore) Get(query store.Query) (plugin.LoadedPlugin, error) { +func (t *MemoryPluginStore) Get(query model.Query) (plugin.LoadedPlugin, error) { // First search for direct hit on UUID. item, ok := t.Store[query.ID.String()] if !ok { diff --git a/controller/nucleus/pkg/persistence/memory/memoryPndStore.go b/controller/nucleus/pkg/persistence/memory/memoryPndStore.go index f63abc7a3d11c69e945e8f650ab1ada28295aaef..5d69f3db5f5a5c081aa20e77362017d4baf9a000 100644 --- a/controller/nucleus/pkg/persistence/memory/memoryPndStore.go +++ b/controller/nucleus/pkg/persistence/memory/memoryPndStore.go @@ -7,7 +7,6 @@ import ( "code.fbi.h-da.de/danet/gosdn/controller/interfaces/networkelement" "code.fbi.h-da.de/danet/gosdn/controller/nucleus/domain/model" "code.fbi.h-da.de/danet/gosdn/controller/nucleus/domain/ports" - "code.fbi.h-da.de/danet/gosdn/controller/store" "github.com/google/uuid" ) @@ -57,7 +56,7 @@ func (t *MemoryPndStore) Delete(item model.NetworkDomain) error { } // Get provides a the query interface to find a stored pnd. -func (t *MemoryPndStore) Get(query store.Query) (model.LoadedPnd, error) { +func (t *MemoryPndStore) Get(query model.Query) (model.LoadedPnd, error) { // First search for direct hit on UUID. item, ok := t.Store[query.ID] if !ok { diff --git a/controller/nucleus/pkg/persistence/mongodb/databaseNetworkElementStore.go b/controller/nucleus/pkg/persistence/mongodb/databaseNetworkElementStore.go index dd62e53e8b861d5421bc24b72c17a7015dbe4013..b26aa53b1ffc2f0064697cc0fef5143341605e6d 100644 --- a/controller/nucleus/pkg/persistence/mongodb/databaseNetworkElementStore.go +++ b/controller/nucleus/pkg/persistence/mongodb/databaseNetworkElementStore.go @@ -6,7 +6,6 @@ import ( "code.fbi.h-da.de/danet/gosdn/controller/customerrs" "code.fbi.h-da.de/danet/gosdn/controller/nucleus/domain/model" "code.fbi.h-da.de/danet/gosdn/controller/nucleus/domain/ports" - "code.fbi.h-da.de/danet/gosdn/controller/store" "go.mongodb.org/mongo-driver/bson" "go.mongodb.org/mongo-driver/bson/primitive" @@ -31,7 +30,7 @@ func NewDatabaseNetworkElementStore() ports.NetworkElementStore { } // Get takes a NetworkElement's UUID or name and returns the NetworkElement. -func (s *DatabaseNetworkElementStore) Get(query store.Query) (model.LoadedNetworkElement, error) { +func (s *DatabaseNetworkElementStore) Get(query model.Query) (model.LoadedNetworkElement, error) { var loadedNetworkElement model.LoadedNetworkElement if query.ID.String() != "" { diff --git a/controller/nucleus/pkg/persistence/mongodb/databasePluginStore.go b/controller/nucleus/pkg/persistence/mongodb/databasePluginStore.go index 19f9cd5fa876d409467cbf2ca3265e32fa459e36..9c1afe47087fdedd99d5282c5de48a9120fef688 100644 --- a/controller/nucleus/pkg/persistence/mongodb/databasePluginStore.go +++ b/controller/nucleus/pkg/persistence/mongodb/databasePluginStore.go @@ -110,7 +110,7 @@ func (s *DatabasePluginStore) Delete(pluginToDelete *model.Plugin) (err error) { // Get takes a SouthboundInterface's UUID or name and returns the SouthboundInterface. If the requested // SouthboundInterface does not exist an error is returned. -func (s *DatabasePluginStore) Get(query store.Query) (loadedPlugin model.LoadedPlugin, err error) { +func (s *DatabasePluginStore) Get(query model.Query) (loadedPlugin model.LoadedPlugin, err error) { client, ctx, cancel := GetMongoConnection() defer cancel() defer func() { diff --git a/controller/nucleus/pkg/persistence/mongodb/databasePndStore.go b/controller/nucleus/pkg/persistence/mongodb/databasePndStore.go index 5b82e904935b9dbe3505e7268f0d4021a8946fb3..e1e8cbffc710204d86ee4b4fdb1a4c8367c40552 100644 --- a/controller/nucleus/pkg/persistence/mongodb/databasePndStore.go +++ b/controller/nucleus/pkg/persistence/mongodb/databasePndStore.go @@ -8,7 +8,6 @@ import ( "code.fbi.h-da.de/danet/gosdn/controller/nucleus/domain/ports" "code.fbi.h-da.de/danet/gosdn/controller/customerrs" - "code.fbi.h-da.de/danet/gosdn/controller/store" "github.com/google/uuid" log "github.com/sirupsen/logrus" "go.mongodb.org/mongo-driver/bson" @@ -24,7 +23,7 @@ type DatabasePndStore struct { // Get takes a PrincipalNetworkDomain's UUID or name and returns the PrincipalNetworkDomain. If the requested // PrincipalNetworkDomain does not exist an error is returned. -func (s *DatabasePndStore) Get(query store.Query) (newPnd model.LoadedPnd, err error) { +func (s *DatabasePndStore) Get(query model.Query) (newPnd model.LoadedPnd, err error) { var loadedPND model.LoadedPnd if query.ID != uuid.Nil { diff --git a/controller/rbac/databaseRoleStore.go b/controller/rbac/databaseRoleStore.go index e263690f8855a90176b25141a342ecadf1915bef..bf45a8d0c624b2bd562545389f39cc848adb698a 100644 --- a/controller/rbac/databaseRoleStore.go +++ b/controller/rbac/databaseRoleStore.go @@ -5,8 +5,8 @@ import ( "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/domain/model" "code.fbi.h-da.de/danet/gosdn/controller/nucleus/pkg/persistence/mongodb" - "code.fbi.h-da.de/danet/gosdn/controller/store" "github.com/google/uuid" log "github.com/sirupsen/logrus" "go.mongodb.org/mongo-driver/bson" @@ -68,7 +68,7 @@ func (s *DatabaseRoleStore) Delete(roleToDelete rbac.Role) (err error) { // Get takes a Roles's UUID or name and returns the Role. If the requested // Role does not exist an error is returned. -func (s *DatabaseRoleStore) Get(query store.Query) (rbac.LoadedRole, error) { +func (s *DatabaseRoleStore) Get(query model.Query) (rbac.LoadedRole, error) { var loadedRole rbac.LoadedRole if query.ID != uuid.Nil { diff --git a/controller/rbac/databaseUserStore.go b/controller/rbac/databaseUserStore.go index 0788697f67a0553d571af3780e8a06c1429db880..bf1a9e18a3091320b02bceca5185f467a1973f78 100644 --- a/controller/rbac/databaseUserStore.go +++ b/controller/rbac/databaseUserStore.go @@ -5,8 +5,8 @@ import ( "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/domain/model" "code.fbi.h-da.de/danet/gosdn/controller/nucleus/pkg/persistence/mongodb" - "code.fbi.h-da.de/danet/gosdn/controller/store" "github.com/google/uuid" log "github.com/sirupsen/logrus" "go.mongodb.org/mongo-driver/bson" @@ -69,7 +69,7 @@ func (s *DatabaseUserStore) Delete(userToDelete rbac.User) (err error) { // Get takes a User's UUID or name and returns the User. If the requested // User does not exist an error is returned. -func (s *DatabaseUserStore) Get(query store.Query) (rbac.LoadedUser, error) { +func (s *DatabaseUserStore) Get(query model.Query) (rbac.LoadedUser, error) { var loadedUser rbac.LoadedUser if query.ID != uuid.Nil { diff --git a/controller/rbac/memoryRoleStore.go b/controller/rbac/memoryRoleStore.go index 86c6ee25f44ae67d876b00c656b33830127d85d2..f4b9312e14d1c36876e259cc544dea0b34db91f9 100644 --- a/controller/rbac/memoryRoleStore.go +++ b/controller/rbac/memoryRoleStore.go @@ -5,7 +5,7 @@ import ( "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/store" + "code.fbi.h-da.de/danet/gosdn/controller/nucleus/domain/model" ) // MemoryRoleStore provides a in-memory implementation for roles. @@ -77,7 +77,7 @@ func (s *MemoryRoleStore) Update(item rbac.Role) error { } // Get takes a role's UUID or name and returns the role. -func (s *MemoryRoleStore) Get(query store.Query) (rbac.LoadedRole, error) { +func (s *MemoryRoleStore) Get(query model.Query) (rbac.LoadedRole, error) { // First search for direct hit on UUID. item, ok := s.Store[query.ID.String()] if !ok { diff --git a/controller/rbac/memoryUserStore.go b/controller/rbac/memoryUserStore.go index b9bab5832703788b0dbbef0b13452d586d4d7dfc..52d33ae86ae017c4d3be524e20315186ff55a3dc 100644 --- a/controller/rbac/memoryUserStore.go +++ b/controller/rbac/memoryUserStore.go @@ -5,7 +5,7 @@ import ( "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/store" + "code.fbi.h-da.de/danet/gosdn/controller/nucleus/domain/model" ) // MemoryUserStore provides a in-memory implementation for users. @@ -77,7 +77,7 @@ func (s *MemoryUserStore) Update(item rbac.User) error { } // Get takes a user's UUID or name and returns the user. -func (s *MemoryUserStore) Get(query store.Query) (rbac.LoadedUser, error) { +func (s *MemoryUserStore) Get(query model.Query) (rbac.LoadedUser, error) { // First search for direct hit on UUID. item, ok := s.Store[query.ID.String()] if !ok { diff --git a/controller/rbac/rbacService.go b/controller/rbac/rbacService.go index 0a1d26a478b030824173a2e1d70589c6248ee308..816ff2210c69e6d11344539081f2b0728a5dcd2e 100644 --- a/controller/rbac/rbacService.go +++ b/controller/rbac/rbacService.go @@ -3,7 +3,7 @@ package rbac import ( "code.fbi.h-da.de/danet/gosdn/controller/event" "code.fbi.h-da.de/danet/gosdn/controller/interfaces/rbac" - "code.fbi.h-da.de/danet/gosdn/controller/store" + "code.fbi.h-da.de/danet/gosdn/controller/nucleus/domain/model" "github.com/google/uuid" eventInterfaces "code.fbi.h-da.de/danet/gosdn/controller/interfaces/event" @@ -100,7 +100,7 @@ func (s *UserService) Update(userToUpdate rbac.User) error { } // Get takes a user's UUID or name and returns the user. -func (s *UserService) Get(query store.Query) (rbac.User, error) { +func (s *UserService) Get(query model.Query) (rbac.User, error) { loadedUser, err := s.userStore.Get(query) if err != nil { return nil, err @@ -209,7 +209,7 @@ func (s *RoleService) Update(roleToUpdate rbac.Role) error { } // Get takes a roles's UUID or name and returns the role. -func (s *RoleService) Get(query store.Query) (rbac.Role, error) { +func (s *RoleService) Get(query model.Query) (rbac.Role, error) { loadedRole, err := s.roleStore.Get(query) if err != nil { return nil, err diff --git a/controller/rbac/roleFileSystemStore.go b/controller/rbac/roleFileSystemStore.go index c0780d9505baf0ea4cfef2e5dbea2a44739789aa..5850e023af259bcf6ac1638ae8a4f6c6117ef247 100644 --- a/controller/rbac/roleFileSystemStore.go +++ b/controller/rbac/roleFileSystemStore.go @@ -7,6 +7,7 @@ import ( "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/domain/model" "code.fbi.h-da.de/danet/gosdn/controller/store" log "github.com/sirupsen/logrus" ) @@ -113,7 +114,7 @@ func (s *FileSystemRoleStore) Delete(roleToDelete rbac.Role) error { } // Get takes a Roles ID and return the Role if found. -func (s *FileSystemRoleStore) Get(query store.Query) (rbac.LoadedRole, error) { +func (s *FileSystemRoleStore) Get(query model.Query) (rbac.LoadedRole, error) { s.fileMutex.Lock() defer s.fileMutex.Unlock() diff --git a/controller/rbac/roleFileSystemStore_test.go b/controller/rbac/roleFileSystemStore_test.go index 347b428534d178e91d517307d5bffd45c2003a7c..0906f1e6b17a5fd117ec19f360d991204eded012 100644 --- a/controller/rbac/roleFileSystemStore_test.go +++ b/controller/rbac/roleFileSystemStore_test.go @@ -5,6 +5,7 @@ import ( "testing" "code.fbi.h-da.de/danet/gosdn/controller/interfaces/rbac" + "code.fbi.h-da.de/danet/gosdn/controller/nucleus/domain/model" "code.fbi.h-da.de/danet/gosdn/controller/store" "github.com/google/uuid" ) @@ -67,7 +68,7 @@ func TestFileSystemRoleStore_Get(t *testing.T) { defer ensureStoreFileForTestsIsRemoved(store.RoleFilename) type args struct { - query store.Query + query model.Query } var idtest uuid.UUID var arrTest []string @@ -79,7 +80,7 @@ func TestFileSystemRoleStore_Get(t *testing.T) { wantErr bool }{ {"AddRole1", args{ - store.Query{ + model.Query{ ID: idtest, Name: "test", }, }, diff --git a/controller/rbac/userFileSystemStore.go b/controller/rbac/userFileSystemStore.go index 257fb5e111b897ddb67c3cf4832af9e2bc36f258..2bd90fd7aaf1357c42f794f9411fa0b0b6a00f67 100644 --- a/controller/rbac/userFileSystemStore.go +++ b/controller/rbac/userFileSystemStore.go @@ -7,6 +7,7 @@ import ( "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/domain/model" "code.fbi.h-da.de/danet/gosdn/controller/store" log "github.com/sirupsen/logrus" ) @@ -113,7 +114,7 @@ func (s *FileSystemUserStore) Delete(userToDelete rbac.User) error { } // Get takes a Users ID and return the User if found. -func (s *FileSystemUserStore) Get(query store.Query) (rbac.LoadedUser, error) { +func (s *FileSystemUserStore) Get(query model.Query) (rbac.LoadedUser, error) { s.fileMutex.Lock() defer s.fileMutex.Unlock() diff --git a/controller/rbac/userFileSystemStore_test.go b/controller/rbac/userFileSystemStore_test.go index 847d2be830b558624871a00c75c5496fe9eab324..b7a1c6d71d238d67b8c98475b65f05e9afd16d6e 100644 --- a/controller/rbac/userFileSystemStore_test.go +++ b/controller/rbac/userFileSystemStore_test.go @@ -6,6 +6,7 @@ import ( "code.fbi.h-da.de/danet/gosdn/controller/conflict" "code.fbi.h-da.de/danet/gosdn/controller/interfaces/rbac" + "code.fbi.h-da.de/danet/gosdn/controller/nucleus/domain/model" "code.fbi.h-da.de/danet/gosdn/controller/store" "github.com/google/uuid" ) @@ -78,7 +79,7 @@ func TestFileSystemUserStore_Get(t *testing.T) { defer ensureStoreFileForTestsIsRemoved(store.UserFilename) type args struct { - query store.Query + query model.Query } var idtest uuid.UUID var role map[string]string @@ -92,7 +93,7 @@ func TestFileSystemUserStore_Get(t *testing.T) { { "testUser", args{ - store.Query{ID: idtest, Name: "test"}, + model.Query{ID: idtest, Name: "test"}, }, rbac.LoadedUser{ID: idtest.String(), UserName: "", Roles: role, Password: "xyz", Token: "svsvsfbdwbwbev", Salt: "svswvasfbw"}, false, diff --git a/controller/store/changeStores.go b/controller/store/changeStores.go index 06db18452024e3dfd9b59e68732285a6d9897786..e6b55150bef486a00ea7b16785b87e3bfd778b1f 100644 --- a/controller/store/changeStores.go +++ b/controller/store/changeStores.go @@ -2,7 +2,7 @@ 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/domain/ports" "github.com/google/uuid" log "github.com/sirupsen/logrus" @@ -21,16 +21,16 @@ func NewChangeStore() *ChangeStore { // GetChange takes a Change's UUID and returns the Change. If the requested // Change does not exist an error is returned. -func (s *ChangeStore) GetChange(id uuid.UUID) (change.Change, error) { +func (s *ChangeStore) GetChange(id uuid.UUID) (ports.Change, error) { item, err := s.genericStore.Get(id) if err != nil { return nil, err } - c, ok := item.(change.Change) + c, ok := item.(ports.Change) if !ok { return nil, &customerrs.InvalidTypeAssertionError{ Value: c, - Type: (*change.Change)(nil), + Type: (*ports.Change)(nil), } } log.WithFields(log.Fields{ @@ -58,7 +58,7 @@ func filterChanges(store *ChangeStore, state mnepb.ChangeState) []uuid.UUID { changes := make([]uuid.UUID, 0) for _, ch := range store.Store { switch c := ch.(type) { - case change.Change: + case ports.Change: if c.State() == state { changes = append(changes, c.ID()) } diff --git a/controller/topology/nodes/nodeService.go b/controller/topology/nodes/nodeService.go index 518626c15e1f524fe375661acb256baa129a41d7..97170576d5bf60058df39b714a699aec094bb3b9 100644 --- a/controller/topology/nodes/nodeService.go +++ b/controller/topology/nodes/nodeService.go @@ -3,7 +3,7 @@ package nodes import ( "code.fbi.h-da.de/danet/gosdn/controller/event" eventInterfaces "code.fbi.h-da.de/danet/gosdn/controller/interfaces/event" - query "code.fbi.h-da.de/danet/gosdn/controller/store" + "code.fbi.h-da.de/danet/gosdn/controller/nucleus/domain/model" "github.com/google/uuid" log "github.com/sirupsen/logrus" @@ -19,7 +19,7 @@ type Service interface { EnsureExists(Node) (Node, error) Update(Node) error Delete(Node) error - Get(query.Query) (Node, error) + Get(model.Query) (Node, error) GetAll() ([]Node, error) } @@ -45,7 +45,7 @@ func (n *NodeService) EnsureExists(node Node) (Node, error) { } // Check if node with vaild UUID exists - existingNode, err := n.Get(query.Query{ID: node.ID}) + existingNode, err := n.Get(model.Query{ID: node.ID}) if err != nil { // Create new node with that UUID return n.createNode(node) @@ -120,7 +120,7 @@ func (n *NodeService) Delete(node Node) error { } // Get gets a node. -func (n *NodeService) Get(query query.Query) (Node, error) { +func (n *NodeService) Get(query model.Query) (Node, error) { node, err := n.store.Get(query) if err != nil { return node, err diff --git a/controller/topology/nodes/nodeService_test.go b/controller/topology/nodes/nodeService_test.go index 3eca6b3684c55db9c0ec42e20b3c80a2768fff65..95e215f0447f57650d4baa22252be496ab7eb19c 100644 --- a/controller/topology/nodes/nodeService_test.go +++ b/controller/topology/nodes/nodeService_test.go @@ -7,7 +7,7 @@ import ( "code.fbi.h-da.de/danet/gosdn/controller/conflict" eventservice "code.fbi.h-da.de/danet/gosdn/controller/eventService" "code.fbi.h-da.de/danet/gosdn/controller/interfaces/event" - query "code.fbi.h-da.de/danet/gosdn/controller/store" + "code.fbi.h-da.de/danet/gosdn/controller/nucleus/domain/model" "code.fbi.h-da.de/danet/gosdn/controller/topology/store" "github.com/google/uuid" @@ -167,7 +167,7 @@ func TestNodeService_Update(t *testing.T) { t.Errorf("NodeService.Update() error = %v, wantErr %v", err, tt.wantErr) } - updatedNode, err := p.Get(query.Query{ID: tt.args.node.ID, Name: tt.args.node.Name}) + updatedNode, err := p.Get(model.Query{ID: tt.args.node.ID, Name: tt.args.node.Name}) if err != nil { t.Errorf("NodeService.Get() failed %v", err) } @@ -235,7 +235,7 @@ func TestNodeService_Get(t *testing.T) { eventService event.Service } type args struct { - query query.Query + query model.Query } tests := []struct { name string @@ -251,7 +251,7 @@ func TestNodeService_Get(t *testing.T) { eventService: eventservice.NewMockEventService(), }, args: args{ - query: query.Query{ + query: model.Query{ ID: getTestNode().ID, Name: getTestNode().Name, }, @@ -266,7 +266,7 @@ func TestNodeService_Get(t *testing.T) { eventService: eventservice.NewMockEventService(), }, args: args{ - query: query.Query{ + query: model.Query{ ID: getTestNode().ID, Name: getTestNode().Name, }, diff --git a/controller/topology/nodes/nodeStore.go b/controller/topology/nodes/nodeStore.go index 7f53f179282b0969a5025e56e8faff0e1820cf52..d0292386749aae6611d0c7b2e434b6205a2d1ff6 100644 --- a/controller/topology/nodes/nodeStore.go +++ b/controller/topology/nodes/nodeStore.go @@ -5,8 +5,8 @@ import ( "time" "code.fbi.h-da.de/danet/gosdn/controller/customerrs" + "code.fbi.h-da.de/danet/gosdn/controller/nucleus/domain/model" "code.fbi.h-da.de/danet/gosdn/controller/nucleus/pkg/persistence/mongodb" - query "code.fbi.h-da.de/danet/gosdn/controller/store" "github.com/google/uuid" "go.mongodb.org/mongo-driver/bson" @@ -21,7 +21,7 @@ type Store interface { Add(Node) error Update(Node) error Delete(Node) error - Get(query.Query) (Node, error) + Get(model.Query) (Node, error) GetAll() ([]Node, error) } @@ -38,7 +38,7 @@ func NewDatabaseNodeStore() Store { } // Get takes a nodes's UUID or name and returns the nodes. -func (s *DatabaseNodeStore) Get(query query.Query) (Node, error) { +func (s *DatabaseNodeStore) Get(query model.Query) (Node, error) { var loadedNode Node if query.ID.String() != "" { diff --git a/controller/topology/ports/portService.go b/controller/topology/ports/portService.go index 25bfc09c6631dcb936449982a20322e266681b17..f37f0e852ddb26ac3ef5e2be4b0367de06852306 100644 --- a/controller/topology/ports/portService.go +++ b/controller/topology/ports/portService.go @@ -3,7 +3,7 @@ package ports import ( "code.fbi.h-da.de/danet/gosdn/controller/event" eventInterfaces "code.fbi.h-da.de/danet/gosdn/controller/interfaces/event" - query "code.fbi.h-da.de/danet/gosdn/controller/store" + "code.fbi.h-da.de/danet/gosdn/controller/nucleus/domain/model" "github.com/google/uuid" log "github.com/sirupsen/logrus" @@ -19,7 +19,7 @@ type Service interface { EnsureExists(Port) (Port, error) Update(Port) error Delete(Port) error - Get(query.Query) (Port, error) + Get(model.Query) (Port, error) GetAll() ([]Port, error) } @@ -44,7 +44,7 @@ func (p *PortService) EnsureExists(port Port) (Port, error) { return p.createPort(port) } - existingPort, err := p.Get(query.Query{ID: port.ID}) + existingPort, err := p.Get(model.Query{ID: port.ID}) if err != nil { return p.createPort(port) } @@ -118,7 +118,7 @@ func (p *PortService) Delete(port Port) error { } // Get gets a port. -func (p *PortService) Get(query query.Query) (Port, error) { +func (p *PortService) Get(query model.Query) (Port, error) { port, err := p.store.Get(query) if err != nil { return port, err diff --git a/controller/topology/ports/portService_test.go b/controller/topology/ports/portService_test.go index 951f2730ee43a6f8e5ab9180bb43c8dbab28f425..e9c56e6b20406bc3bdcbc8652047ed697c8c82b0 100644 --- a/controller/topology/ports/portService_test.go +++ b/controller/topology/ports/portService_test.go @@ -6,7 +6,7 @@ import ( eventservice "code.fbi.h-da.de/danet/gosdn/controller/eventService" eventInterfaces "code.fbi.h-da.de/danet/gosdn/controller/interfaces/event" - query "code.fbi.h-da.de/danet/gosdn/controller/store" + "code.fbi.h-da.de/danet/gosdn/controller/nucleus/domain/model" "code.fbi.h-da.de/danet/gosdn/controller/topology/store" "github.com/google/uuid" @@ -163,7 +163,7 @@ func TestPortService_Update(t *testing.T) { t.Errorf("PortService.Update() error = %v, wantErr %v", err, tt.wantErr) } - updatedPort, err := p.Get(query.Query{ID: tt.args.port.ID}) + updatedPort, err := p.Get(model.Query{ID: tt.args.port.ID}) if err != nil { t.Errorf("PortService.Get() failed %v", err) } @@ -230,7 +230,7 @@ func TestPortService_Get(t *testing.T) { eventService eventInterfaces.Service } type args struct { - query query.Query + query model.Query } tests := []struct { name string @@ -245,7 +245,7 @@ func TestPortService_Get(t *testing.T) { store: store.NewGenericStore[Port](), }, args: args{ - query: query.Query{ + query: model.Query{ ID: getTestPort().ID, Name: getTestPort().Name, }, @@ -260,7 +260,7 @@ func TestPortService_Get(t *testing.T) { eventService: eventservice.NewMockEventService(), }, args: args{ - query: query.Query{ + query: model.Query{ ID: getTestPort().ID, Name: getTestPort().Name, }, diff --git a/controller/topology/ports/portStore.go b/controller/topology/ports/portStore.go index cadda73fce3f2e4127db7e983803ae2583831ca6..5990f300c086a0f706bff29a49c07c94e81976c2 100644 --- a/controller/topology/ports/portStore.go +++ b/controller/topology/ports/portStore.go @@ -5,8 +5,8 @@ import ( "code.fbi.h-da.de/danet/gosdn/controller/customerrs" "code.fbi.h-da.de/danet/gosdn/controller/interfaces/networkelement" + "code.fbi.h-da.de/danet/gosdn/controller/nucleus/domain/model" "code.fbi.h-da.de/danet/gosdn/controller/nucleus/pkg/persistence/mongodb" - query "code.fbi.h-da.de/danet/gosdn/controller/store" "github.com/google/uuid" "go.mongodb.org/mongo-driver/bson" @@ -19,7 +19,7 @@ type Store interface { Add(Port) error Update(Port) error Delete(Port) error - Get(query.Query) (Port, error) + Get(model.Query) (Port, error) GetAll() ([]Port, error) } @@ -36,7 +36,7 @@ func NewDatabasePortStore() Store { } // Get takes a Ports's UUID or name and returns the port. -func (s *DatabasePortStore) Get(query query.Query) (Port, error) { +func (s *DatabasePortStore) Get(query model.Query) (Port, error) { var loadedPort Port if query.ID.String() != "" { diff --git a/controller/topology/routing-tables/routingTableService.go b/controller/topology/routing-tables/routingTableService.go index 2a1fc1348b56545cce10c527959fcb670c38a656..beddd9229c8ef921dc0ac97bc6925ce0aadf743b 100644 --- a/controller/topology/routing-tables/routingTableService.go +++ b/controller/topology/routing-tables/routingTableService.go @@ -3,7 +3,7 @@ package routingtables import ( "code.fbi.h-da.de/danet/gosdn/controller/event" eventInterfaces "code.fbi.h-da.de/danet/gosdn/controller/interfaces/event" - query "code.fbi.h-da.de/danet/gosdn/controller/store" + "code.fbi.h-da.de/danet/gosdn/controller/nucleus/domain/model" "code.fbi.h-da.de/danet/gosdn/controller/topology/nodes" "code.fbi.h-da.de/danet/gosdn/controller/topology/ports" "github.com/google/uuid" @@ -20,7 +20,7 @@ type Service interface { EnsureExists(RoutingTable) (RoutingTable, error) Update(RoutingTable) error Delete(RoutingTable) error - Get(query.Query) (RoutingTable, error) + Get(model.Query) (RoutingTable, error) GetAll() ([]RoutingTable, error) } @@ -54,7 +54,7 @@ func (r *RoutingTableService) EnsureExists(routingTable RoutingTable) (RoutingTa return r.createRoutingTable(routingTable) } - existingRoutingTable, err := r.Get(query.Query{ID: routingTable.ID}) + existingRoutingTable, err := r.Get(model.Query{ID: routingTable.ID}) if err != nil { return r.createRoutingTable(routingTable) } @@ -128,7 +128,7 @@ func (r *RoutingTableService) Delete(routingTable RoutingTable) error { } // Get gets a routingTable. -func (r *RoutingTableService) Get(query query.Query) (RoutingTable, error) { +func (r *RoutingTableService) Get(query model.Query) (RoutingTable, error) { routingTable, err := r.store.Get(query) if err != nil { return routingTable, err diff --git a/controller/topology/routing-tables/routingTableService_test.go b/controller/topology/routing-tables/routingTableService_test.go index 432f967e96cc845c9afbfd4ac9d2404895ca3836..bebf07bca34b98d44560f56faa83836ec5dd3eea 100644 --- a/controller/topology/routing-tables/routingTableService_test.go +++ b/controller/topology/routing-tables/routingTableService_test.go @@ -6,7 +6,7 @@ import ( eventservice "code.fbi.h-da.de/danet/gosdn/controller/eventService" eventInterfaces "code.fbi.h-da.de/danet/gosdn/controller/interfaces/event" - query "code.fbi.h-da.de/danet/gosdn/controller/store" + "code.fbi.h-da.de/danet/gosdn/controller/nucleus/domain/model" "code.fbi.h-da.de/danet/gosdn/controller/topology/nodes" "code.fbi.h-da.de/danet/gosdn/controller/topology/ports" "code.fbi.h-da.de/danet/gosdn/controller/topology/store" @@ -324,7 +324,7 @@ func TestRoutingTableService_Get(t *testing.T) { portService ports.Service } type args struct { - query query.Query + query model.Query } tests := []struct { name string @@ -341,7 +341,7 @@ func TestRoutingTableService_Get(t *testing.T) { portService: ports.NewPortService(getTestStoreWithPorts(t, []ports.Port{}), eventservice.NewMockEventService()), }, args: args{ - query: query.Query{ + query: model.Query{ ID: getTestRoutingTable().ID, }, }, @@ -354,7 +354,7 @@ func TestRoutingTableService_Get(t *testing.T) { store: getTestStoreWithRoutingTables(t, []RoutingTable{getTestRoutingTable()}), }, args: args{ - query: query.Query{ + query: model.Query{ ID: getTestRoutingTable().ID, }, }, diff --git a/controller/topology/routing-tables/routingTableStore.go b/controller/topology/routing-tables/routingTableStore.go index ca80c52d0d181c7b662cf5f6ecc1684b304e91d5..3cefb0ea6d0b89916233de587039d269d3a9f530 100644 --- a/controller/topology/routing-tables/routingTableStore.go +++ b/controller/topology/routing-tables/routingTableStore.go @@ -4,8 +4,8 @@ import ( "fmt" "code.fbi.h-da.de/danet/gosdn/controller/customerrs" + "code.fbi.h-da.de/danet/gosdn/controller/nucleus/domain/model" "code.fbi.h-da.de/danet/gosdn/controller/nucleus/pkg/persistence/mongodb" - query "code.fbi.h-da.de/danet/gosdn/controller/store" "github.com/google/uuid" "go.mongodb.org/mongo-driver/bson" @@ -18,7 +18,7 @@ type Store interface { Add(RoutingTable) error Update(RoutingTable) error Delete(RoutingTable) error - Get(query.Query) (RoutingTable, error) + Get(model.Query) (RoutingTable, error) GetAll() ([]RoutingTable, error) } @@ -35,7 +35,7 @@ func NewDatabaseRoutingTableStore() Store { } // Get takes a routing-tables's UUID or name and returns the entries. -func (s *DatabaseRoutingTableStore) Get(query query.Query) (RoutingTable, error) { +func (s *DatabaseRoutingTableStore) Get(query model.Query) (RoutingTable, error) { var loadedRoutingTable RoutingTable if query.ID.String() != "" { diff --git a/controller/topology/store/genericStore.go b/controller/topology/store/genericStore.go index 557426c307b7dcd1a83e0ed8480e82233f5a9963..2f7caf1b4efcbd636b2e1fea4679a47dc3a1f7a3 100644 --- a/controller/topology/store/genericStore.go +++ b/controller/topology/store/genericStore.go @@ -3,9 +3,8 @@ package store import ( "errors" + "code.fbi.h-da.de/danet/gosdn/controller/nucleus/domain/model" "github.com/google/uuid" - - query "code.fbi.h-da.de/danet/gosdn/controller/store" ) type storableConstraint interface { @@ -57,7 +56,7 @@ func (t *GenericStore[T]) Delete(item T) error { return nil } -func (t *GenericStore[T]) Get(query query.Query) (T, error) { +func (t *GenericStore[T]) Get(query model.Query) (T, error) { // First search for direct hit on UUID. item, ok := t.store[query.ID] if !ok { diff --git a/controller/topology/store/genericStore_test.go b/controller/topology/store/genericStore_test.go index b8828653077d6527dc6c809e400404feb7d586d1..3024dcaef6134566d786fb406b64d1c4a29de804 100644 --- a/controller/topology/store/genericStore_test.go +++ b/controller/topology/store/genericStore_test.go @@ -4,9 +4,8 @@ import ( "reflect" "testing" + "code.fbi.h-da.de/danet/gosdn/controller/nucleus/domain/model" "github.com/google/uuid" - - query "code.fbi.h-da.de/danet/gosdn/controller/store" ) type testItem struct { @@ -51,7 +50,7 @@ func TestGenericStore_Get(t *testing.T) { items []testItem } type args struct { - query query.Query + query model.Query } tests := []struct { name string @@ -66,7 +65,7 @@ func TestGenericStore_Get(t *testing.T) { items: []testItem{}, }, args: args{ - query: query.Query{ + query: model.Query{ ID: getTestItem().ID, }, }, @@ -79,7 +78,7 @@ func TestGenericStore_Get(t *testing.T) { items: []testItem{getTestItem()}, }, args: args{ - query: query.Query{ + query: model.Query{ ID: getTestItem().ID, }, }, @@ -116,7 +115,7 @@ func TestGenericStore_GetAll(t *testing.T) { items []testItem } type args struct { - query query.Query + query model.Query } tests := []struct { name string @@ -131,7 +130,7 @@ func TestGenericStore_GetAll(t *testing.T) { items: []testItem{getTestItem()}, }, args: args{ - query: query.Query{ + query: model.Query{ ID: getTestItem().ID, }, }, diff --git a/controller/topology/topologyService.go b/controller/topology/topologyService.go index f7934bf6c20332aaa64e24651fae1ca9102d1d5f..129ae048c413dcb3717784895dcac535d3dfa5ad 100644 --- a/controller/topology/topologyService.go +++ b/controller/topology/topologyService.go @@ -3,7 +3,7 @@ package topology import ( "code.fbi.h-da.de/danet/gosdn/controller/event" eventInterfaces "code.fbi.h-da.de/danet/gosdn/controller/interfaces/event" - query "code.fbi.h-da.de/danet/gosdn/controller/store" + "code.fbi.h-da.de/danet/gosdn/controller/nucleus/domain/model" "code.fbi.h-da.de/danet/gosdn/controller/topology/links" "code.fbi.h-da.de/danet/gosdn/controller/topology/nodes" "code.fbi.h-da.de/danet/gosdn/controller/topology/ports" @@ -20,7 +20,7 @@ type Service interface { AddLink(links.Link) error UpdateLink(links.Link) error DeleteLink(links.Link) error - Get(query.Query) (links.Link, error) + Get(model.Query) (links.Link, error) GetAll() ([]links.Link, error) } @@ -145,7 +145,7 @@ func (t *TopoService) GetAll() ([]links.Link, error) { } // Get returns the current topology. -func (t *TopoService) Get(query query.Query) (links.Link, error) { +func (t *TopoService) Get(query model.Query) (links.Link, error) { link, err := t.store.Get(query) if err != nil { return link, err diff --git a/controller/topology/topologyService_test.go b/controller/topology/topologyService_test.go index e28df6d9e6990c63528bbd7130c5ea5e0d7f1c98..fe65dec8217ca2efadc44e7df11caf1e9757e1fb 100644 --- a/controller/topology/topologyService_test.go +++ b/controller/topology/topologyService_test.go @@ -6,7 +6,7 @@ import ( eventservice "code.fbi.h-da.de/danet/gosdn/controller/eventService" eventInterfaces "code.fbi.h-da.de/danet/gosdn/controller/interfaces/event" - query "code.fbi.h-da.de/danet/gosdn/controller/store" + "code.fbi.h-da.de/danet/gosdn/controller/nucleus/domain/model" "code.fbi.h-da.de/danet/gosdn/controller/topology/links" "code.fbi.h-da.de/danet/gosdn/controller/topology/nodes" "code.fbi.h-da.de/danet/gosdn/controller/topology/ports" @@ -197,7 +197,7 @@ func TestTopologyService_AddLink(t *testing.T) { return } - got, err := p.Get(query.Query{ID: tt.args.link.ID}) + got, err := p.Get(model.Query{ID: tt.args.link.ID}) if (err != nil) != tt.wantErr { t.Errorf("service.Get() error = %v, wantErr %v", err, tt.wantErr) return @@ -255,7 +255,7 @@ func TestTopologyService_Update(t *testing.T) { return } - got, err := p.Get(query.Query{ID: tt.args.link.ID}) + got, err := p.Get(model.Query{ID: tt.args.link.ID}) if (err != nil) != tt.wantErr { t.Errorf("service.Get() error = %v, wantErr %v", err, tt.wantErr) return @@ -333,7 +333,7 @@ func TestTopologyService_Get(t *testing.T) { eventService eventInterfaces.Service } type args struct { - query query.Query + query model.Query } tests := []struct { name string @@ -350,7 +350,7 @@ func TestTopologyService_Get(t *testing.T) { portService: ports.NewPortService(getTestStoreWithPorts(t, []ports.Port{}), eventservice.NewMockEventService()), }, args: args{ - query: query.Query{ + query: model.Query{ ID: getTestLink().ID, Name: getTestLink().Name, }, @@ -364,7 +364,7 @@ func TestTopologyService_Get(t *testing.T) { store: getTestStoreWithLinks(t, []links.Link{getTestLink()}), }, args: args{ - query: query.Query{ + query: model.Query{ ID: getTestLink().ID, Name: getTestLink().Name, }, diff --git a/controller/topology/topologyStore.go b/controller/topology/topologyStore.go index 375f85226b8956a7b7bb0aaf7bfd5a7e755489be..9c08c7dd8930ba36800f93ae4dd38b93b2527aaa 100644 --- a/controller/topology/topologyStore.go +++ b/controller/topology/topologyStore.go @@ -4,8 +4,8 @@ import ( "fmt" "code.fbi.h-da.de/danet/gosdn/controller/customerrs" + "code.fbi.h-da.de/danet/gosdn/controller/nucleus/domain/model" "code.fbi.h-da.de/danet/gosdn/controller/nucleus/pkg/persistence/mongodb" - query "code.fbi.h-da.de/danet/gosdn/controller/store" "code.fbi.h-da.de/danet/gosdn/controller/topology/links" "github.com/google/uuid" @@ -19,7 +19,7 @@ type Store interface { Add(links.Link) error Update(links.Link) error Delete(links.Link) error - Get(query.Query) (links.Link, error) + Get(model.Query) (links.Link, error) GetAll() ([]links.Link, error) } @@ -36,7 +36,7 @@ func NewDatabaseTopologyStore() Store { } // Get takes a link's UUID or name and returns the link. -func (s *DatabaseTopologyStore) Get(query query.Query) (links.Link, error) { +func (s *DatabaseTopologyStore) Get(query model.Query) (links.Link, error) { var loadedTopology links.Link if query.ID.String() != "" {