40 lines
1.0 KiB
Go
40 lines
1.0 KiB
Go
package scheduler
|
|
|
|
import (
|
|
"time"
|
|
|
|
"github.com/containarr/server/internal/store"
|
|
)
|
|
|
|
// StoreAdapter wraps *store.Store so it satisfies StoreInterface.
|
|
type StoreAdapter struct {
|
|
s *store.Store
|
|
}
|
|
|
|
// NewStoreAdapter creates a StoreAdapter wrapping the given *store.Store.
|
|
func NewStoreAdapter(s *store.Store) *StoreAdapter {
|
|
return &StoreAdapter{s: s}
|
|
}
|
|
|
|
// ListDueAutoUpdatePolicies implements StoreInterface by converting
|
|
// *store.AutoUpdatePolicy to DuePolicy.
|
|
func (a *StoreAdapter) ListDueAutoUpdatePolicies(now time.Time) ([]DuePolicy, error) {
|
|
policies, err := a.s.ListDueAutoUpdatePolicies(now)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
out := make([]DuePolicy, 0, len(policies))
|
|
for _, p := range policies {
|
|
out = append(out, DuePolicy{
|
|
AgentID: p.AgentID,
|
|
ContainerID: p.ContainerID,
|
|
})
|
|
}
|
|
return out, nil
|
|
}
|
|
|
|
// UpdateAutoUpdateChecked implements StoreInterface.
|
|
func (a *StoreAdapter) UpdateAutoUpdateChecked(agentID, containerID string, at time.Time) error {
|
|
return a.s.UpdateAutoUpdateChecked(agentID, containerID, at)
|
|
}
|