Files
backroad/api/dataservices/edgestack/edgestack.go
2022-10-15 00:12:51 +13:00

101 lines
2.7 KiB
Go

package edgestack
import (
portainer "github.com/portainer/portainer/api"
)
const (
// BucketName represents the name of the bucket where this service stores data.
BucketName = "edge_stack"
)
// Service represents a service for managing Edge stack data.
type Service struct {
connection portainer.Connection
}
func (service *Service) BucketName() string {
return BucketName
}
// NewService creates a new instance of a service.
func NewService(connection portainer.Connection) (*Service, error) {
// err := connection.SetServiceName(BucketName)
// if err != nil {
// return nil, err
// }
return &Service{
connection: connection,
}, nil
}
// EdgeStacks returns an array containing all edge stacks
func (service *Service) EdgeStacks() ([]portainer.EdgeStack, error) {
var stacks = make([]portainer.EdgeStack, 0)
// err := service.connection.GetAll(
// BucketName,
// &portainer.EdgeStack{},
// func(obj interface{}) (interface{}, error) {
// //var tag portainer.Tag
// stack, ok := obj.(*portainer.EdgeStack)
// if !ok {
// log.Debug().Str("obj", fmt.Sprintf("%#v", obj)).Msg("failed to convert to EdgeStack object")
// return nil, fmt.Errorf("Failed to convert to EdgeStack object: %s", obj)
// }
// stacks = append(stacks, *stack)
// return &portainer.EdgeStack{}, nil
// })
return stacks, nil
}
// EdgeStack returns an Edge stack by ID.
func (service *Service) EdgeStack(ID portainer.EdgeStackID) (*portainer.EdgeStack, error) {
var stack portainer.EdgeStack
// identifier := service.connection.ConvertToKey(int(ID))
// err := service.connection.GetObject(BucketName, identifier, &stack)
// if err != nil {
// return nil, err
// }
return &stack, nil
}
// CreateEdgeStack saves an Edge stack object to db.
func (service *Service) Create(id portainer.EdgeStackID, edgeStack *portainer.EdgeStack) error {
// edgeStack.ID = id
// return service.connection.CreateObjectWithId(
// BucketName,
// int(edgeStack.ID),
// edgeStack,
// )
return nil
}
// UpdateEdgeStack updates an Edge stack.
func (service *Service) UpdateEdgeStack(ID portainer.EdgeStackID, edgeStack *portainer.EdgeStack) error {
// identifier := service.connection.ConvertToKey(int(ID))
// return service.connection.UpdateObject(BucketName, identifier, edgeStack)
return nil
}
// DeleteEdgeStack deletes an Edge stack.
func (service *Service) DeleteEdgeStack(ID portainer.EdgeStackID) error {
// identifier := service.connection.ConvertToKey(int(ID))
// return service.connection.DeleteObject(BucketName, identifier)
return nil
}
// GetNextIdentifier returns the next identifier for an environment(endpoint).
func (service *Service) GetNextIdentifier() int {
// return service.connection.GetNextIdentifier(BucketName)
return 0
}