/
driver.go
45 lines (40 loc) · 1 KB
/
driver.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
// Package mock implements mockup sabakan model for testing.
package mock
import (
"context"
"sync"
"github.com/cybozu-go/sabakan"
)
// driver implements all interfaces for sabakan model.
type driver struct {
mu sync.Mutex
ipam *sabakan.IPAMConfig
machines map[string]*sabakan.Machine
storage map[string][]byte
log *sabakan.AuditLog
}
// NewModel returns sabakan.Model
func NewModel() sabakan.Model {
d := &driver{
machines: make(map[string]*sabakan.Machine),
storage: make(map[string][]byte),
}
return sabakan.Model{
Runner: d,
IPAM: ipamDriver{d},
Machine: machineDriver{d},
Storage: d,
DHCP: newDHCPDriver(d),
Image: newImageDriver(),
Asset: newAssetDriver(),
Ignition: newIgnitionDriver(),
Log: logDriver{d},
KernelParams: newKernelParamsDriver(),
Health: newHealthDriver(),
Schema: d,
}
}
func (d *driver) Run(ctx context.Context, ch chan<- struct{}) error {
ch <- struct{}{}
return nil
}