Compare commits
3 Commits
fb54254f4e
...
v0.5.2
| Author | SHA1 | Date | |
|---|---|---|---|
| 8c32b88e24 | |||
| 1bca1f7da1 | |||
| 5e5958d22e |
@@ -0,0 +1,49 @@
|
|||||||
|
package zones
|
||||||
|
|
||||||
|
import "darvaza.org/slog"
|
||||||
|
|
||||||
|
type logger interface {
|
||||||
|
withDebug() (slog.Logger, bool)
|
||||||
|
withInfo() (slog.Logger, bool)
|
||||||
|
|
||||||
|
debug() slog.Logger
|
||||||
|
info() slog.Logger
|
||||||
|
warn(error) slog.Logger
|
||||||
|
error(error) slog.Logger
|
||||||
|
}
|
||||||
|
|
||||||
|
var (
|
||||||
|
_ logger = (*Zones)(nil)
|
||||||
|
)
|
||||||
|
|
||||||
|
func (z *Zones) withDebug() (slog.Logger, bool) {
|
||||||
|
return z.debug().WithEnabled()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (z *Zones) withInfo() (slog.Logger, bool) {
|
||||||
|
return z.debug().WithEnabled()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (z *Zones) debug() slog.Logger {
|
||||||
|
return z.log.Debug()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (z *Zones) info() slog.Logger {
|
||||||
|
return z.log.Info()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (z *Zones) warn(err error) slog.Logger {
|
||||||
|
l := z.log.Warn()
|
||||||
|
if err != nil {
|
||||||
|
l = l.WithField(slog.ErrorFieldName, err)
|
||||||
|
}
|
||||||
|
return l
|
||||||
|
}
|
||||||
|
|
||||||
|
func (z *Zones) error(err error) slog.Logger {
|
||||||
|
l := z.log.Error()
|
||||||
|
if err != nil {
|
||||||
|
l = l.WithField(slog.ErrorFieldName, err)
|
||||||
|
}
|
||||||
|
return l
|
||||||
|
}
|
||||||
@@ -10,6 +10,8 @@ import (
|
|||||||
// A Machine is a machine on a Zone
|
// A Machine is a machine on a Zone
|
||||||
type Machine struct {
|
type Machine struct {
|
||||||
zone *Zone
|
zone *Zone
|
||||||
|
logger
|
||||||
|
|
||||||
ID int `toml:"id"`
|
ID int `toml:"id"`
|
||||||
Name string `toml:"-" json:"-" yaml:"-"`
|
Name string `toml:"-" json:"-" yaml:"-"`
|
||||||
|
|
||||||
|
|||||||
@@ -69,6 +69,7 @@ func WithLogger(log slog.Logger) ScanOption {
|
|||||||
}
|
}
|
||||||
|
|
||||||
opt.Logger = log
|
opt.Logger = log
|
||||||
|
m.log = log
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+6
-4
@@ -32,8 +32,9 @@ func (m *Zones) scanDirectory(_ *ScanOptions) error {
|
|||||||
for _, e := range entries {
|
for _, e := range entries {
|
||||||
if e.IsDir() {
|
if e.IsDir() {
|
||||||
z := &Zone{
|
z := &Zone{
|
||||||
zones: m,
|
zones: m,
|
||||||
Name: e.Name(),
|
logger: m,
|
||||||
|
Name: e.Name(),
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := z.scan(); err != nil {
|
if err := z.scan(); err != nil {
|
||||||
@@ -132,8 +133,9 @@ func (z *Zone) scan() error {
|
|||||||
for _, e := range entries {
|
for _, e := range entries {
|
||||||
if e.IsDir() {
|
if e.IsDir() {
|
||||||
m := &Machine{
|
m := &Machine{
|
||||||
zone: z,
|
zone: z,
|
||||||
Name: e.Name(),
|
logger: z,
|
||||||
|
Name: e.Name(),
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := m.init(); err != nil {
|
if err := m.init(); err != nil {
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ import (
|
|||||||
"sort"
|
"sort"
|
||||||
|
|
||||||
"darvaza.org/resolver"
|
"darvaza.org/resolver"
|
||||||
|
"darvaza.org/slog"
|
||||||
"github.com/gofrs/uuid/v5"
|
"github.com/gofrs/uuid/v5"
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -87,6 +88,7 @@ func FilterMachines(m MachineIterator, cond func(*Machine) bool) (Machines, int)
|
|||||||
// Zone represents one zone in a cluster
|
// Zone represents one zone in a cluster
|
||||||
type Zone struct {
|
type Zone struct {
|
||||||
zones *Zones
|
zones *Zones
|
||||||
|
logger
|
||||||
|
|
||||||
ID int `toml:"id"`
|
ID int `toml:"id"`
|
||||||
Name string `toml:"name"`
|
Name string `toml:"name"`
|
||||||
@@ -141,6 +143,7 @@ func (z *Zone) GatewayIDs() ([]int, int) {
|
|||||||
// Zones represents all zones in a cluster
|
// Zones represents all zones in a cluster
|
||||||
type Zones struct {
|
type Zones struct {
|
||||||
dir fs.FS
|
dir fs.FS
|
||||||
|
log slog.Logger
|
||||||
resolver resolver.Resolver
|
resolver resolver.Resolver
|
||||||
domain string
|
domain string
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user