diff --git a/api/bolt/dockerhub_service.go b/api/bolt/dockerhub_service.go index 34acd5594..d28aa6fb2 100644 --- a/api/bolt/dockerhub_service.go +++ b/api/bolt/dockerhub_service.go @@ -35,7 +35,7 @@ func (service *DockerHubService) DockerHub() (*portainer.DockerHub, error) { } var dockerhub portainer.DockerHub - err = internal.UnmarshalDockerHub(data, &dockerhub) + err = internal.UnmarshalObject(data, &dockerhub) if err != nil { return nil, err } @@ -47,7 +47,7 @@ func (service *DockerHubService) StoreDockerHub(dockerhub *portainer.DockerHub) return service.store.db.Update(func(tx *bolt.Tx) error { bucket := tx.Bucket([]byte(dockerhubBucketName)) - data, err := internal.MarshalDockerHub(dockerhub) + data, err := internal.MarshalObject(dockerhub) if err != nil { return err } diff --git a/api/bolt/endpoint_group_service.go b/api/bolt/endpoint_group_service.go index c52e95dac..9a539ee83 100644 --- a/api/bolt/endpoint_group_service.go +++ b/api/bolt/endpoint_group_service.go @@ -31,7 +31,7 @@ func (service *EndpointGroupService) EndpointGroup(ID portainer.EndpointGroupID) } var endpointGroup portainer.EndpointGroup - err = internal.UnmarshalEndpointGroup(data, &endpointGroup) + err = internal.UnmarshalObject(data, &endpointGroup) if err != nil { return nil, err } @@ -47,7 +47,7 @@ func (service *EndpointGroupService) EndpointGroups() ([]portainer.EndpointGroup cursor := bucket.Cursor() for k, v := cursor.First(); k != nil; k, v = cursor.Next() { var endpointGroup portainer.EndpointGroup - err := internal.UnmarshalEndpointGroup(v, &endpointGroup) + err := internal.UnmarshalObject(v, &endpointGroup) if err != nil { return err } @@ -71,7 +71,7 @@ func (service *EndpointGroupService) CreateEndpointGroup(endpointGroup *portaine id, _ := bucket.NextSequence() endpointGroup.ID = portainer.EndpointGroupID(id) - data, err := internal.MarshalEndpointGroup(endpointGroup) + data, err := internal.MarshalObject(endpointGroup) if err != nil { return err } @@ -86,7 +86,7 @@ func (service *EndpointGroupService) CreateEndpointGroup(endpointGroup *portaine // UpdateEndpointGroup updates an endpoint group. func (service *EndpointGroupService) UpdateEndpointGroup(ID portainer.EndpointGroupID, endpointGroup *portainer.EndpointGroup) error { - data, err := internal.MarshalEndpointGroup(endpointGroup) + data, err := internal.MarshalObject(endpointGroup) if err != nil { return err } diff --git a/api/bolt/endpoint_service.go b/api/bolt/endpoint_service.go index a92048d7a..e685a9b72 100644 --- a/api/bolt/endpoint_service.go +++ b/api/bolt/endpoint_service.go @@ -31,7 +31,7 @@ func (service *EndpointService) Endpoint(ID portainer.EndpointID) (*portainer.En } var endpoint portainer.Endpoint - err = internal.UnmarshalEndpoint(data, &endpoint) + err = internal.UnmarshalObject(data, &endpoint) if err != nil { return nil, err } @@ -47,7 +47,7 @@ func (service *EndpointService) Endpoints() ([]portainer.Endpoint, error) { cursor := bucket.Cursor() for k, v := cursor.First(); k != nil; k, v = cursor.Next() { var endpoint portainer.Endpoint - err := internal.UnmarshalEndpoint(v, &endpoint) + err := internal.UnmarshalObject(v, &endpoint) if err != nil { return err } @@ -107,7 +107,7 @@ func (service *EndpointService) CreateEndpoint(endpoint *portainer.Endpoint) err // UpdateEndpoint updates an endpoint. func (service *EndpointService) UpdateEndpoint(ID portainer.EndpointID, endpoint *portainer.Endpoint) error { - data, err := internal.MarshalEndpoint(endpoint) + data, err := internal.MarshalObject(endpoint) if err != nil { return err } @@ -135,7 +135,7 @@ func (service *EndpointService) DeleteEndpoint(ID portainer.EndpointID) error { } func marshalAndStoreEndpoint(endpoint *portainer.Endpoint, bucket *bolt.Bucket) error { - data, err := internal.MarshalEndpoint(endpoint) + data, err := internal.MarshalObject(endpoint) if err != nil { return err } diff --git a/api/bolt/internal/internal.go b/api/bolt/internal/internal.go index 7ed0d72be..4c45524b6 100644 --- a/api/bolt/internal/internal.go +++ b/api/bolt/internal/internal.go @@ -1,120 +1,18 @@ package internal import ( - "github.com/portainer/portainer" - "encoding/binary" "encoding/json" ) -// MarshalUser encodes a user to binary format. -func MarshalUser(user *portainer.User) ([]byte, error) { - return json.Marshal(user) +// MarshalObject encodes an object to binary format +func MarshalObject(object interface{}) ([]byte, error) { + return json.Marshal(object) } -// UnmarshalUser decodes a user from a binary data. -func UnmarshalUser(data []byte, user *portainer.User) error { - return json.Unmarshal(data, user) -} - -// MarshalTeam encodes a team to binary format. -func MarshalTeam(team *portainer.Team) ([]byte, error) { - return json.Marshal(team) -} - -// UnmarshalTeam decodes a team from a binary data. -func UnmarshalTeam(data []byte, team *portainer.Team) error { - return json.Unmarshal(data, team) -} - -// MarshalTeamMembership encodes a team membership to binary format. -func MarshalTeamMembership(membership *portainer.TeamMembership) ([]byte, error) { - return json.Marshal(membership) -} - -// UnmarshalTeamMembership decodes a team membership from a binary data. -func UnmarshalTeamMembership(data []byte, membership *portainer.TeamMembership) error { - return json.Unmarshal(data, membership) -} - -// MarshalEndpoint encodes an endpoint to binary format. -func MarshalEndpoint(endpoint *portainer.Endpoint) ([]byte, error) { - return json.Marshal(endpoint) -} - -// UnmarshalEndpoint decodes an endpoint from a binary data. -func UnmarshalEndpoint(data []byte, endpoint *portainer.Endpoint) error { - return json.Unmarshal(data, endpoint) -} - -// MarshalEndpointGroup encodes an endpoint group to binary format. -func MarshalEndpointGroup(group *portainer.EndpointGroup) ([]byte, error) { - return json.Marshal(group) -} - -// UnmarshalEndpointGroup decodes an endpoint group from a binary data. -func UnmarshalEndpointGroup(data []byte, group *portainer.EndpointGroup) error { - return json.Unmarshal(data, group) -} - -// MarshalStack encodes a stack to binary format. -func MarshalStack(stack *portainer.Stack) ([]byte, error) { - return json.Marshal(stack) -} - -// UnmarshalStack decodes a stack from a binary data. -func UnmarshalStack(data []byte, stack *portainer.Stack) error { - return json.Unmarshal(data, stack) -} - -// MarshalRegistry encodes a registry to binary format. -func MarshalRegistry(registry *portainer.Registry) ([]byte, error) { - return json.Marshal(registry) -} - -// UnmarshalRegistry decodes a registry from a binary data. -func UnmarshalRegistry(data []byte, registry *portainer.Registry) error { - return json.Unmarshal(data, registry) -} - -// MarshalResourceControl encodes a resource control object to binary format. -func MarshalResourceControl(rc *portainer.ResourceControl) ([]byte, error) { - return json.Marshal(rc) -} - -// UnmarshalResourceControl decodes a resource control object from a binary data. -func UnmarshalResourceControl(data []byte, rc *portainer.ResourceControl) error { - return json.Unmarshal(data, rc) -} - -// MarshalSettings encodes a settings object to binary format. -func MarshalSettings(settings *portainer.Settings) ([]byte, error) { - return json.Marshal(settings) -} - -// UnmarshalSettings decodes a settings object from a binary data. -func UnmarshalSettings(data []byte, settings *portainer.Settings) error { - return json.Unmarshal(data, settings) -} - -// MarshalDockerHub encodes a Dockerhub object to binary format. -func MarshalDockerHub(settings *portainer.DockerHub) ([]byte, error) { - return json.Marshal(settings) -} - -// UnmarshalDockerHub decodes a Dockerhub object from a binary data. -func UnmarshalDockerHub(data []byte, settings *portainer.DockerHub) error { - return json.Unmarshal(data, settings) -} - -// MarshalTag encodes a Tag object to binary format. -func MarshalTag(tag *portainer.Tag) ([]byte, error) { - return json.Marshal(tag) -} - -// UnmarshalTag decodes a Tag object from a binary data. -func UnmarshalTag(data []byte, tag *portainer.Tag) error { - return json.Unmarshal(data, tag) +// UnmarshalObject decodes an object from binary data +func UnmarshalObject(data []byte, object interface{}) error { + return json.Unmarshal(data, object) } // Itob returns an 8-byte big endian representation of v. diff --git a/api/bolt/migrate_dbversion1.go b/api/bolt/migrate_dbversion1.go index b34ba7867..0b255cd68 100644 --- a/api/bolt/migrate_dbversion1.go +++ b/api/bolt/migrate_dbversion1.go @@ -66,7 +66,7 @@ func (m *Migrator) retrieveLegacyResourceControls() ([]portainer.ResourceControl cursor := bucket.Cursor() for k, v := cursor.First(); k != nil; k, v = cursor.Next() { var resourceControl portainer.ResourceControl - err := internal.UnmarshalResourceControl(v, &resourceControl) + err := internal.UnmarshalObject(v, &resourceControl) if err != nil { return err } @@ -78,7 +78,7 @@ func (m *Migrator) retrieveLegacyResourceControls() ([]portainer.ResourceControl cursor = bucket.Cursor() for k, v := cursor.First(); k != nil; k, v = cursor.Next() { var resourceControl portainer.ResourceControl - err := internal.UnmarshalResourceControl(v, &resourceControl) + err := internal.UnmarshalObject(v, &resourceControl) if err != nil { return err } @@ -90,7 +90,7 @@ func (m *Migrator) retrieveLegacyResourceControls() ([]portainer.ResourceControl cursor = bucket.Cursor() for k, v := cursor.First(); k != nil; k, v = cursor.Next() { var resourceControl portainer.ResourceControl - err := internal.UnmarshalResourceControl(v, &resourceControl) + err := internal.UnmarshalObject(v, &resourceControl) if err != nil { return err } diff --git a/api/bolt/registry_service.go b/api/bolt/registry_service.go index 4c0c393ae..a7cabb313 100644 --- a/api/bolt/registry_service.go +++ b/api/bolt/registry_service.go @@ -31,7 +31,7 @@ func (service *RegistryService) Registry(ID portainer.RegistryID) (*portainer.Re } var registry portainer.Registry - err = internal.UnmarshalRegistry(data, ®istry) + err = internal.UnmarshalObject(data, ®istry) if err != nil { return nil, err } @@ -47,7 +47,7 @@ func (service *RegistryService) Registries() ([]portainer.Registry, error) { cursor := bucket.Cursor() for k, v := cursor.First(); k != nil; k, v = cursor.Next() { var registry portainer.Registry - err := internal.UnmarshalRegistry(v, ®istry) + err := internal.UnmarshalObject(v, ®istry) if err != nil { return err } @@ -71,7 +71,7 @@ func (service *RegistryService) CreateRegistry(registry *portainer.Registry) err id, _ := bucket.NextSequence() registry.ID = portainer.RegistryID(id) - data, err := internal.MarshalRegistry(registry) + data, err := internal.MarshalObject(registry) if err != nil { return err } @@ -86,7 +86,7 @@ func (service *RegistryService) CreateRegistry(registry *portainer.Registry) err // UpdateRegistry updates an registry. func (service *RegistryService) UpdateRegistry(ID portainer.RegistryID, registry *portainer.Registry) error { - data, err := internal.MarshalRegistry(registry) + data, err := internal.MarshalObject(registry) if err != nil { return err } diff --git a/api/bolt/resource_control_service.go b/api/bolt/resource_control_service.go index 2986d5add..cbd13fa4a 100644 --- a/api/bolt/resource_control_service.go +++ b/api/bolt/resource_control_service.go @@ -31,7 +31,7 @@ func (service *ResourceControlService) ResourceControl(ID portainer.ResourceCont } var resourceControl portainer.ResourceControl - err = internal.UnmarshalResourceControl(data, &resourceControl) + err = internal.UnmarshalObject(data, &resourceControl) if err != nil { return nil, err } @@ -48,7 +48,7 @@ func (service *ResourceControlService) ResourceControlByResourceID(resourceID st cursor := bucket.Cursor() for k, v := cursor.First(); k != nil; k, v = cursor.Next() { var rc portainer.ResourceControl - err := internal.UnmarshalResourceControl(v, &rc) + err := internal.UnmarshalObject(v, &rc) if err != nil { return err } @@ -82,7 +82,7 @@ func (service *ResourceControlService) ResourceControls() ([]portainer.ResourceC cursor := bucket.Cursor() for k, v := cursor.First(); k != nil; k, v = cursor.Next() { var resourceControl portainer.ResourceControl - err := internal.UnmarshalResourceControl(v, &resourceControl) + err := internal.UnmarshalObject(v, &resourceControl) if err != nil { return err } @@ -104,7 +104,7 @@ func (service *ResourceControlService) CreateResourceControl(resourceControl *po bucket := tx.Bucket([]byte(resourceControlBucketName)) id, _ := bucket.NextSequence() resourceControl.ID = portainer.ResourceControlID(id) - data, err := internal.MarshalResourceControl(resourceControl) + data, err := internal.MarshalObject(resourceControl) if err != nil { return err } @@ -119,7 +119,7 @@ func (service *ResourceControlService) CreateResourceControl(resourceControl *po // UpdateResourceControl saves a ResourceControl object. func (service *ResourceControlService) UpdateResourceControl(ID portainer.ResourceControlID, resourceControl *portainer.ResourceControl) error { - data, err := internal.MarshalResourceControl(resourceControl) + data, err := internal.MarshalObject(resourceControl) if err != nil { return err } diff --git a/api/bolt/settings_service.go b/api/bolt/settings_service.go index 9ea7cc2ab..2053feac9 100644 --- a/api/bolt/settings_service.go +++ b/api/bolt/settings_service.go @@ -35,7 +35,7 @@ func (service *SettingsService) Settings() (*portainer.Settings, error) { } var settings portainer.Settings - err = internal.UnmarshalSettings(data, &settings) + err = internal.UnmarshalObject(data, &settings) if err != nil { return nil, err } @@ -47,7 +47,7 @@ func (service *SettingsService) StoreSettings(settings *portainer.Settings) erro return service.store.db.Update(func(tx *bolt.Tx) error { bucket := tx.Bucket([]byte(settingsBucketName)) - data, err := internal.MarshalSettings(settings) + data, err := internal.MarshalObject(settings) if err != nil { return err } diff --git a/api/bolt/stack_service.go b/api/bolt/stack_service.go index 7fe023546..60230341b 100644 --- a/api/bolt/stack_service.go +++ b/api/bolt/stack_service.go @@ -31,7 +31,7 @@ func (service *StackService) Stack(ID portainer.StackID) (*portainer.Stack, erro } var stack portainer.Stack - err = internal.UnmarshalStack(data, &stack) + err = internal.UnmarshalObject(data, &stack) if err != nil { return nil, err } @@ -47,7 +47,7 @@ func (service *StackService) StackByName(name string) (*portainer.Stack, error) cursor := bucket.Cursor() for k, v := cursor.First(); k != nil; k, v = cursor.Next() { var t portainer.Stack - err := internal.UnmarshalStack(v, &t) + err := internal.UnmarshalObject(v, &t) if err != nil { return err } @@ -76,7 +76,7 @@ func (service *StackService) Stacks() ([]portainer.Stack, error) { cursor := bucket.Cursor() for k, v := cursor.First(); k != nil; k, v = cursor.Next() { var stack portainer.Stack - err := internal.UnmarshalStack(v, &stack) + err := internal.UnmarshalObject(v, &stack) if err != nil { return err } @@ -97,7 +97,7 @@ func (service *StackService) CreateStack(stack *portainer.Stack) error { return service.store.db.Update(func(tx *bolt.Tx) error { bucket := tx.Bucket([]byte(stackBucketName)) - data, err := internal.MarshalStack(stack) + data, err := internal.MarshalObject(stack) if err != nil { return err } @@ -112,7 +112,7 @@ func (service *StackService) CreateStack(stack *portainer.Stack) error { // UpdateStack updates an stack. func (service *StackService) UpdateStack(ID portainer.StackID, stack *portainer.Stack) error { - data, err := internal.MarshalStack(stack) + data, err := internal.MarshalObject(stack) if err != nil { return err } diff --git a/api/bolt/tag_service.go b/api/bolt/tag_service.go index 0c57ace8f..9ff0fb244 100644 --- a/api/bolt/tag_service.go +++ b/api/bolt/tag_service.go @@ -21,7 +21,7 @@ func (service *TagService) Tags() ([]portainer.Tag, error) { cursor := bucket.Cursor() for k, v := cursor.First(); k != nil; k, v = cursor.Next() { var tag portainer.Tag - err := internal.UnmarshalTag(v, &tag) + err := internal.UnmarshalObject(v, &tag) if err != nil { return err } @@ -45,7 +45,7 @@ func (service *TagService) CreateTag(tag *portainer.Tag) error { id, _ := bucket.NextSequence() tag.ID = portainer.TagID(id) - data, err := internal.MarshalTag(tag) + data, err := internal.MarshalObject(tag) if err != nil { return err } diff --git a/api/bolt/team_membership_service.go b/api/bolt/team_membership_service.go index da2b47266..b56a4bed7 100644 --- a/api/bolt/team_membership_service.go +++ b/api/bolt/team_membership_service.go @@ -31,7 +31,7 @@ func (service *TeamMembershipService) TeamMembership(ID portainer.TeamMembership } var membership portainer.TeamMembership - err = internal.UnmarshalTeamMembership(data, &membership) + err = internal.UnmarshalObject(data, &membership) if err != nil { return nil, err } @@ -47,7 +47,7 @@ func (service *TeamMembershipService) TeamMemberships() ([]portainer.TeamMembers cursor := bucket.Cursor() for k, v := cursor.First(); k != nil; k, v = cursor.Next() { var membership portainer.TeamMembership - err := internal.UnmarshalTeamMembership(v, &membership) + err := internal.UnmarshalObject(v, &membership) if err != nil { return err } @@ -72,7 +72,7 @@ func (service *TeamMembershipService) TeamMembershipsByUserID(userID portainer.U cursor := bucket.Cursor() for k, v := cursor.First(); k != nil; k, v = cursor.Next() { var membership portainer.TeamMembership - err := internal.UnmarshalTeamMembership(v, &membership) + err := internal.UnmarshalObject(v, &membership) if err != nil { return err } @@ -99,7 +99,7 @@ func (service *TeamMembershipService) TeamMembershipsByTeamID(teamID portainer.T cursor := bucket.Cursor() for k, v := cursor.First(); k != nil; k, v = cursor.Next() { var membership portainer.TeamMembership - err := internal.UnmarshalTeamMembership(v, &membership) + err := internal.UnmarshalObject(v, &membership) if err != nil { return err } @@ -119,7 +119,7 @@ func (service *TeamMembershipService) TeamMembershipsByTeamID(teamID portainer.T // UpdateTeamMembership saves a TeamMembership object. func (service *TeamMembershipService) UpdateTeamMembership(ID portainer.TeamMembershipID, membership *portainer.TeamMembership) error { - data, err := internal.MarshalTeamMembership(membership) + data, err := internal.MarshalObject(membership) if err != nil { return err } @@ -143,7 +143,7 @@ func (service *TeamMembershipService) CreateTeamMembership(membership *portainer id, _ := bucket.NextSequence() membership.ID = portainer.TeamMembershipID(id) - data, err := internal.MarshalTeamMembership(membership) + data, err := internal.MarshalObject(membership) if err != nil { return err } @@ -176,7 +176,7 @@ func (service *TeamMembershipService) DeleteTeamMembershipByUserID(userID portai cursor := bucket.Cursor() for k, v := cursor.First(); k != nil; k, v = cursor.Next() { var membership portainer.TeamMembership - err := internal.UnmarshalTeamMembership(v, &membership) + err := internal.UnmarshalObject(v, &membership) if err != nil { return err } @@ -200,7 +200,7 @@ func (service *TeamMembershipService) DeleteTeamMembershipByTeamID(teamID portai cursor := bucket.Cursor() for k, v := cursor.First(); k != nil; k, v = cursor.Next() { var membership portainer.TeamMembership - err := internal.UnmarshalTeamMembership(v, &membership) + err := internal.UnmarshalObject(v, &membership) if err != nil { return err } diff --git a/api/bolt/team_service.go b/api/bolt/team_service.go index 2830e7783..61ba23207 100644 --- a/api/bolt/team_service.go +++ b/api/bolt/team_service.go @@ -31,7 +31,7 @@ func (service *TeamService) Team(ID portainer.TeamID) (*portainer.Team, error) { } var team portainer.Team - err = internal.UnmarshalTeam(data, &team) + err = internal.UnmarshalObject(data, &team) if err != nil { return nil, err } @@ -47,7 +47,7 @@ func (service *TeamService) TeamByName(name string) (*portainer.Team, error) { cursor := bucket.Cursor() for k, v := cursor.First(); k != nil; k, v = cursor.Next() { var t portainer.Team - err := internal.UnmarshalTeam(v, &t) + err := internal.UnmarshalObject(v, &t) if err != nil { return err } @@ -76,7 +76,7 @@ func (service *TeamService) Teams() ([]portainer.Team, error) { cursor := bucket.Cursor() for k, v := cursor.First(); k != nil; k, v = cursor.Next() { var team portainer.Team - err := internal.UnmarshalTeam(v, &team) + err := internal.UnmarshalObject(v, &team) if err != nil { return err } @@ -94,7 +94,7 @@ func (service *TeamService) Teams() ([]portainer.Team, error) { // UpdateTeam saves a Team. func (service *TeamService) UpdateTeam(ID portainer.TeamID, team *portainer.Team) error { - data, err := internal.MarshalTeam(team) + data, err := internal.MarshalObject(team) if err != nil { return err } @@ -118,7 +118,7 @@ func (service *TeamService) CreateTeam(team *portainer.Team) error { id, _ := bucket.NextSequence() team.ID = portainer.TeamID(id) - data, err := internal.MarshalTeam(team) + data, err := internal.MarshalObject(team) if err != nil { return err } diff --git a/api/bolt/user_service.go b/api/bolt/user_service.go index 1e1c68f40..55723f321 100644 --- a/api/bolt/user_service.go +++ b/api/bolt/user_service.go @@ -31,7 +31,7 @@ func (service *UserService) User(ID portainer.UserID) (*portainer.User, error) { } var user portainer.User - err = internal.UnmarshalUser(data, &user) + err = internal.UnmarshalObject(data, &user) if err != nil { return nil, err } @@ -47,7 +47,7 @@ func (service *UserService) UserByUsername(username string) (*portainer.User, er cursor := bucket.Cursor() for k, v := cursor.First(); k != nil; k, v = cursor.Next() { var u portainer.User - err := internal.UnmarshalUser(v, &u) + err := internal.UnmarshalObject(v, &u) if err != nil { return err } @@ -76,7 +76,7 @@ func (service *UserService) Users() ([]portainer.User, error) { cursor := bucket.Cursor() for k, v := cursor.First(); k != nil; k, v = cursor.Next() { var user portainer.User - err := internal.UnmarshalUser(v, &user) + err := internal.UnmarshalObject(v, &user) if err != nil { return err } @@ -101,7 +101,7 @@ func (service *UserService) UsersByRole(role portainer.UserRole) ([]portainer.Us cursor := bucket.Cursor() for k, v := cursor.First(); k != nil; k, v = cursor.Next() { var user portainer.User - err := internal.UnmarshalUser(v, &user) + err := internal.UnmarshalObject(v, &user) if err != nil { return err } @@ -120,7 +120,7 @@ func (service *UserService) UsersByRole(role portainer.UserRole) ([]portainer.Us // UpdateUser saves a user. func (service *UserService) UpdateUser(ID portainer.UserID, user *portainer.User) error { - data, err := internal.MarshalUser(user) + data, err := internal.MarshalObject(user) if err != nil { return err } @@ -144,7 +144,7 @@ func (service *UserService) CreateUser(user *portainer.User) error { id, _ := bucket.NextSequence() user.ID = portainer.UserID(id) - data, err := internal.MarshalUser(user) + data, err := internal.MarshalObject(user) if err != nil { return err }