refactor(api): use generic marshal/unmarshal functions in bolt package

pull/1980/head
Anthony Lapenna 2018-06-17 19:57:22 +03:00
parent 783f838171
commit f3ce5c25de
13 changed files with 56 additions and 158 deletions

View File

@ -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
}

View File

@ -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
}

View File

@ -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
}

View File

@ -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.

View File

@ -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
}

View File

@ -31,7 +31,7 @@ func (service *RegistryService) Registry(ID portainer.RegistryID) (*portainer.Re
}
var registry portainer.Registry
err = internal.UnmarshalRegistry(data, &registry)
err = internal.UnmarshalObject(data, &registry)
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, &registry)
err := internal.UnmarshalObject(v, &registry)
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
}

View File

@ -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
}

View File

@ -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
}

View File

@ -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
}

View File

@ -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
}

View File

@ -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
}

View File

@ -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
}

View File

@ -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
}