1
0
Fork 0
mirror of https://github.com/portainer/portainer.git synced 2025-07-25 08:19:40 +02:00

feat(dataservices): unify access methods and abstract away redundant code [EE-5628] (#9115)

This commit is contained in:
andres-portainer 2023-06-22 18:28:07 -03:00 committed by GitHub
parent 4c6bbe9a2f
commit 4cc96b4b30
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
171 changed files with 714 additions and 1590 deletions

View file

@ -432,7 +432,7 @@ func DefaultPortainerAuthorizations() portainer.Authorizations {
// UpdateUsersAuthorizations will trigger an update of the authorizations for all the users.
func (service *Service) UpdateUsersAuthorizations() error {
users, err := service.dataStore.User().Users()
users, err := service.dataStore.User().ReadAll()
if err != nil {
return err
}
@ -448,7 +448,7 @@ func (service *Service) UpdateUsersAuthorizations() error {
}
func (service *Service) updateUserAuthorizations(userID portainer.UserID) error {
user, err := service.dataStore.User().User(userID)
user, err := service.dataStore.User().Read(userID)
if err != nil {
return err
}
@ -460,7 +460,7 @@ func (service *Service) updateUserAuthorizations(userID portainer.UserID) error
user.EndpointAuthorizations = endpointAuthorizations
return service.dataStore.User().UpdateUser(userID, user)
return service.dataStore.User().Update(userID, user)
}
func (service *Service) getAuthorizations(user *portainer.User) (portainer.EndpointAuthorizations, error) {
@ -479,12 +479,12 @@ func (service *Service) getAuthorizations(user *portainer.User) (portainer.Endpo
return endpointAuthorizations, err
}
endpointGroups, err := service.dataStore.EndpointGroup().EndpointGroups()
endpointGroups, err := service.dataStore.EndpointGroup().ReadAll()
if err != nil {
return endpointAuthorizations, err
}
roles, err := service.dataStore.Role().Roles()
roles, err := service.dataStore.Role().ReadAll()
if err != nil {
return endpointAuthorizations, err
}
@ -605,7 +605,7 @@ func getAuthorizationsFromRoles(roleIdentifiers []portainer.RoleID, roles []port
}
func (service *Service) UserIsAdminOrAuthorized(userID portainer.UserID, endpointID portainer.EndpointID, authorizations []portainer.Authorization) (bool, error) {
user, err := service.dataStore.User().User(userID)
user, err := service.dataStore.User().Read(userID)
if err != nil {
return false, err
}

View file

@ -68,7 +68,7 @@ func (service *Service) getUserEndpointAccessWithPolicies(
}
if endpointGroup == nil {
endpointGroup, err = tx.EndpointGroup().EndpointGroup(endpoint.GroupID)
endpointGroup, err = tx.EndpointGroup().Read(endpoint.GroupID)
if err != nil {
return false, err
}
@ -114,7 +114,7 @@ func (service *Service) getTeamEndpointAccessWithPolicies(
) (bool, error) {
if endpointGroup == nil {
var err error
endpointGroup, err = tx.EndpointGroup().EndpointGroup(endpoint.GroupID)
endpointGroup, err = tx.EndpointGroup().Read(endpoint.GroupID)
if err != nil {
return false, err
}

View file

@ -51,14 +51,14 @@ func GetEndpointsFromEdgeGroups(edgeGroupIDs []portainer.EdgeGroupID, datastore
return nil, err
}
endpointGroups, err := datastore.EndpointGroup().EndpointGroups()
endpointGroups, err := datastore.EndpointGroup().ReadAll()
if err != nil {
return nil, err
}
var response []portainer.EndpointID
for _, edgeGroupID := range edgeGroupIDs {
edgeGroup, err := datastore.EdgeGroup().EdgeGroup(edgeGroupID)
edgeGroup, err := datastore.EdgeGroup().Read(edgeGroupID)
if err != nil {
return nil, err
}

View file

@ -7,7 +7,7 @@ import (
// LoadEdgeJobs registers all edge jobs inside corresponding environment(endpoint) tunnel
func LoadEdgeJobs(dataStore dataservices.DataStore, reverseTunnelService portainer.ReverseTunnelService) error {
edgeJobs, err := dataStore.EdgeJob().EdgeJobs()
edgeJobs, err := dataStore.EdgeJob().ReadAll()
if err != nil {
return err
}

View file

@ -48,12 +48,12 @@ func FetchEndpointRelationsConfig(tx dataservices.DataStoreTx) (*EndpointRelatio
return nil, fmt.Errorf("unable to retrieve environments from database: %w", err)
}
endpointGroups, err := tx.EndpointGroup().EndpointGroups()
endpointGroups, err := tx.EndpointGroup().ReadAll()
if err != nil {
return nil, fmt.Errorf("unable to retrieve environment groups from database: %w", err)
}
edgeGroups, err := tx.EdgeGroup().EdgeGroups()
edgeGroups, err := tx.EdgeGroup().ReadAll()
if err != nil {
return nil, fmt.Errorf("unable to retrieve edge groups from database: %w", err)
}

View file

@ -14,7 +14,7 @@ func hasPermission(
endpointID portainer.EndpointID,
registry *portainer.Registry,
) (hasPermission bool, err error) {
user, err := dataStore.User().User(userID)
user, err := dataStore.User().Read(userID)
if err != nil {
return
}
@ -41,7 +41,7 @@ func GetAccessibleRegistry(
registryID portainer.RegistryID,
) (registry *portainer.Registry, err error) {
registry, err = dataStore.Registry().Registry(registryID)
registry, err = dataStore.Registry().Read(registryID)
if err != nil {
return
}

View file

@ -16,7 +16,7 @@ func isRegistryAssignedToNamespace(registry portainer.Registry, endpointID porta
}
func RefreshEcrSecret(cli portainer.KubeClient, endpoint *portainer.Endpoint, dataStore dataservices.DataStore, namespace string) (err error) {
registries, err := dataStore.Registry().Registries()
registries, err := dataStore.Registry().ReadAll()
if err != nil {
return
}

View file

@ -24,7 +24,7 @@ func doGetRegToken(dataStore dataservices.DataStore, registry *portainer.Registr
registry.AccessToken = *accessToken
registry.AccessTokenExpiry = expiryAt.Unix()
err = dataStore.Registry().UpdateRegistry(registry.ID, registry)
err = dataStore.Registry().Update(registry.ID, registry)
return
}

View file

@ -133,7 +133,7 @@ func (service *Service) FillSnapshotData(endpoint *portainer.Endpoint) error {
}
func FillSnapshotData(tx dataservices.DataStoreTx, endpoint *portainer.Endpoint) error {
snapshot, err := tx.Snapshot().Snapshot(endpoint.ID)
snapshot, err := tx.Snapshot().Read(endpoint.ID)
if tx.IsErrObjectNotFound(err) {
endpoint.Snapshots = []portainer.DockerSnapshot{}
endpoint.Kubernetes.Snapshots = []portainer.KubernetesSnapshot{}

View file

@ -131,15 +131,15 @@ type stubUserService struct {
}
func (s *stubUserService) BucketName() string { return "users" }
func (s *stubUserService) User(ID portainer.UserID) (*portainer.User, error) { return nil, nil }
func (s *stubUserService) Read(ID portainer.UserID) (*portainer.User, error) { return nil, nil }
func (s *stubUserService) UserByUsername(username string) (*portainer.User, error) { return nil, nil }
func (s *stubUserService) Users() ([]portainer.User, error) { return s.users, nil }
func (s *stubUserService) ReadAll() ([]portainer.User, error) { return s.users, nil }
func (s *stubUserService) UsersByRole(role portainer.UserRole) ([]portainer.User, error) {
return s.users, nil
}
func (s *stubUserService) Create(user *portainer.User) error { return nil }
func (s *stubUserService) UpdateUser(ID portainer.UserID, user *portainer.User) error { return nil }
func (s *stubUserService) DeleteUser(ID portainer.UserID) error { return nil }
func (s *stubUserService) Create(user *portainer.User) error { return nil }
func (s *stubUserService) Update(ID portainer.UserID, user *portainer.User) error { return nil }
func (s *stubUserService) Delete(ID portainer.UserID) error { return nil }
// WithUsers testDatastore option that will instruct testDatastore to return provided users
func WithUsers(us []portainer.User) datastoreOption {
@ -152,22 +152,25 @@ type stubEdgeJobService struct {
jobs []portainer.EdgeJob
}
func (s *stubEdgeJobService) BucketName() string { return "edgejob" }
func (s *stubEdgeJobService) EdgeJobs() ([]portainer.EdgeJob, error) { return s.jobs, nil }
func (s *stubEdgeJobService) EdgeJob(ID portainer.EdgeJobID) (*portainer.EdgeJob, error) {
func (s *stubEdgeJobService) BucketName() string { return "edgejobs" }
func (s *stubEdgeJobService) ReadAll() ([]portainer.EdgeJob, error) { return s.jobs, nil }
func (s *stubEdgeJobService) Read(ID portainer.EdgeJobID) (*portainer.EdgeJob, error) {
return nil, nil
}
func (s *stubEdgeJobService) Create(ID portainer.EdgeJobID, edgeJob *portainer.EdgeJob) error {
func (s *stubEdgeJobService) Create(edgeJob *portainer.EdgeJob) error {
return nil
}
func (s *stubEdgeJobService) UpdateEdgeJob(ID portainer.EdgeJobID, edgeJob *portainer.EdgeJob) error {
func (s *stubEdgeJobService) CreateWithID(ID portainer.EdgeJobID, edgeJob *portainer.EdgeJob) error {
return nil
}
func (s *stubEdgeJobService) Update(ID portainer.EdgeJobID, edgeJob *portainer.EdgeJob) error {
return nil
}
func (s *stubEdgeJobService) UpdateEdgeJobFunc(ID portainer.EdgeJobID, updateFunc func(edgeJob *portainer.EdgeJob)) error {
return nil
}
func (s *stubEdgeJobService) DeleteEdgeJob(ID portainer.EdgeJobID) error { return nil }
func (s *stubEdgeJobService) GetNextIdentifier() int { return 0 }
func (s *stubEdgeJobService) Delete(ID portainer.EdgeJobID) error { return nil }
func (s *stubEdgeJobService) GetNextIdentifier() int { return 0 }
// WithEdgeJobs option will instruct testDatastore to return provided jobs
func WithEdgeJobs(js []portainer.EdgeJob) datastoreOption {