mirror of
https://github.com/coder/coder.git
synced 2026-06-02 20:48:20 +00:00
799b190dee
Only task workspaces have the checks in wsbuilder for violating the managed agent caps in the license. Stopped tasks that are resumed with a regular workspace start **still count as usage**.
45 lines
943 B
Go
45 lines
943 B
Go
package coderdtest
|
|
|
|
import (
|
|
"context"
|
|
"sync"
|
|
|
|
"github.com/coder/coder/v2/coderd/database"
|
|
"github.com/coder/coder/v2/coderd/usage"
|
|
"github.com/coder/coder/v2/coderd/usage/usagetypes"
|
|
)
|
|
|
|
var _ usage.Inserter = (*UsageInserter)(nil)
|
|
|
|
type UsageInserter struct {
|
|
sync.Mutex
|
|
events []usagetypes.DiscreteEvent
|
|
}
|
|
|
|
func NewUsageInserter() *UsageInserter {
|
|
return &UsageInserter{
|
|
events: []usagetypes.DiscreteEvent{},
|
|
}
|
|
}
|
|
|
|
func (u *UsageInserter) InsertDiscreteUsageEvent(_ context.Context, _ database.Store, event usagetypes.DiscreteEvent) error {
|
|
u.Lock()
|
|
defer u.Unlock()
|
|
u.events = append(u.events, event)
|
|
return nil
|
|
}
|
|
|
|
func (u *UsageInserter) GetEvents() []usagetypes.DiscreteEvent {
|
|
u.Lock()
|
|
defer u.Unlock()
|
|
eventsCopy := make([]usagetypes.DiscreteEvent, len(u.events))
|
|
copy(eventsCopy, u.events)
|
|
return eventsCopy
|
|
}
|
|
|
|
func (u *UsageInserter) Reset() {
|
|
u.Lock()
|
|
defer u.Unlock()
|
|
u.events = []usagetypes.DiscreteEvent{}
|
|
}
|