mirror of
https://github.com/portainer/portainer.git
synced 2025-08-05 13:55:21 +02:00
53 lines
1.4 KiB
Go
53 lines
1.4 KiB
Go
package snapshot
|
|
|
|
import (
|
|
portainer "github.com/portainer/portainer/api"
|
|
"github.com/portainer/portainer/api/dataservices"
|
|
)
|
|
|
|
type ServiceTx struct {
|
|
dataservices.BaseDataServiceTx[portainer.Snapshot, portainer.EndpointID]
|
|
}
|
|
|
|
func (service ServiceTx) Create(snapshot *portainer.Snapshot) error {
|
|
return service.Tx.CreateObjectWithId(BucketName, int(snapshot.EndpointID), snapshot)
|
|
}
|
|
|
|
func (service ServiceTx) ReadWithoutSnapshotRaw(ID portainer.EndpointID) (*portainer.Snapshot, error) {
|
|
var snapshot struct {
|
|
Docker *struct {
|
|
X struct{} `json:"DockerSnapshotRaw"`
|
|
*portainer.DockerSnapshot
|
|
} `json:"Docker"`
|
|
|
|
portainer.Snapshot
|
|
}
|
|
|
|
identifier := service.Connection.ConvertToKey(int(ID))
|
|
|
|
if err := service.Tx.GetObject(service.Bucket, identifier, &snapshot); err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
if snapshot.Docker != nil {
|
|
snapshot.Snapshot.Docker = snapshot.Docker.DockerSnapshot
|
|
}
|
|
|
|
return &snapshot.Snapshot, nil
|
|
}
|
|
|
|
func (service ServiceTx) ReadRawMessage(ID portainer.EndpointID) (*portainer.SnapshotRawMessage, error) {
|
|
var snapshot = portainer.SnapshotRawMessage{}
|
|
|
|
identifier := service.Connection.ConvertToKey(int(ID))
|
|
|
|
if err := service.Tx.GetObject(service.Bucket, identifier, &snapshot); err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
return &snapshot, nil
|
|
}
|
|
|
|
func (service ServiceTx) CreateRawMessage(snapshot *portainer.SnapshotRawMessage) error {
|
|
return service.Tx.CreateObjectWithId(BucketName, int(snapshot.EndpointID), snapshot)
|
|
}
|