Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 13 additions & 12 deletions domain/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,19 +8,20 @@ import (

type Config struct {
// Valid log levels are: DEBUG, INFO, WARN, ERROR, FATAL and PANIC
LogLevel string `required:"false" default:"debug" desc:"set log level" split_words:"true"`
PartitionID string `required:"true" desc:"set the partition ID" envconfig:"partition_id"`
LeaseFile string `required:"false" default:"/var/lib/dhcp/dhcpd.leases" desc:"the dhcp lease file to read" split_words:"true"`
ReportInterval time.Duration `required:"false" default:"5m" desc:"the interval for periodical reports" split_words:"true"`
MetalAPIURL *url.URL `required:"true" desc:"endpoint for the metal-api" envconfig:"metal_api_url"`
MetalAPIHMACKey string `required:"true" desc:"the preshared key for the hmac calculation" envconfig:"metal_api_hmac_key"`
IpmiPort int `required:"false" default:"623" desc:"the ipmi port" split_words:"true"`
IpmiUser string `required:"false" default:"ADMIN" desc:"the ipmi user" split_words:"true"`
IpmiPassword string `required:"false" default:"ADMIN" desc:"the ipmi password" split_words:"true"`
IgnoreMacs []string `required:"false" desc:"mac addresses to ignore" split_words:"true"`
LogLevel string `required:"false" default:"debug" desc:"set log level" split_words:"true"`
PartitionID string `required:"true" desc:"set the partition ID" envconfig:"partition_id"`
LeaseFile string `required:"false" default:"/var/lib/dhcp/dhcpd.leases" desc:"the dhcp lease file to read" split_words:"true"`
ReportInterval time.Duration `required:"false" default:"5m" desc:"the interval for periodical reports" split_words:"true"`
SelReportInterval time.Duration `required:"false" default:"1h" desc:"the interval for periodical system event log reports" split_words:"true"`
MetalAPIURL *url.URL `required:"true" desc:"endpoint for the metal-api" envconfig:"metal_api_url"`
MetalAPIHMACKey string `required:"true" desc:"the preshared key for the hmac calculation" envconfig:"metal_api_hmac_key"`
IpmiPort int `required:"false" default:"623" desc:"the ipmi port" split_words:"true"`
IpmiUser string `required:"false" default:"ADMIN" desc:"the ipmi user" split_words:"true"`
IpmiPassword string `required:"false" default:"ADMIN" desc:"the ipmi password" split_words:"true"`
IgnoreMacs []string `required:"false" desc:"mac addresses to ignore" split_words:"true"`
}

func (c Config) String() string {
return fmt.Sprintf("loglevel:%s partition:%s leasefile:%s report interval:%s metal-api url:%s ipmiport:%d ipmiuser:%s, ignored-macs:%v",
c.LogLevel, c.PartitionID, c.LeaseFile, c.ReportInterval, c.MetalAPIURL, c.IpmiPort, c.IpmiUser, c.IgnoreMacs)
return fmt.Sprintf("loglevel:%s partition:%s leasefile:%s report interval:%s sel interval:%s metal-api url:%s ipmiport:%d ipmiuser:%s, ignored-macs:%v",
c.LogLevel, c.PartitionID, c.LeaseFile, c.ReportInterval, c.SelReportInterval, c.MetalAPIURL, c.IpmiPort, c.IpmiUser, c.IgnoreMacs)
}
45 changes: 23 additions & 22 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -4,37 +4,38 @@ go 1.17

require (
github.com/kelseyhightower/envconfig v1.4.0
github.com/metal-stack/go-hal v0.3.6
github.com/metal-stack/metal-go v0.16.1
github.com/metal-stack/go-hal v0.3.8-0.20220304074706-15d76dbd2ca6
github.com/metal-stack/metal-go v0.16.3
github.com/metal-stack/v v1.0.3
github.com/stretchr/testify v1.7.0
go.uber.org/zap v1.19.1
go.uber.org/zap v1.21.0
golang.org/x/sync v0.0.0-20210220032951-036812b2e83c
)

require (
github.com/PuerkitoBio/purell v1.1.1 // indirect
github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 // indirect
github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be // indirect
github.com/asaskevich/govalidator v0.0.0-20200907205600-7a23bdc65eef // indirect
github.com/avast/retry-go v3.0.0+incompatible // indirect
github.com/aws/aws-sdk-go v1.38.40 // indirect
github.com/avast/retry-go/v4 v4.0.3 // indirect
github.com/aws/aws-sdk-go v1.43.11 // indirect
github.com/coreos/go-oidc/v3 v3.0.0 // indirect
github.com/creack/pty v1.1.12 // indirect
github.com/creack/pty v1.1.17 // indirect
github.com/davecgh/go-spew v1.1.1 // indirect
github.com/decred/dcrd/dcrec/secp256k1/v3 v3.0.0 // indirect
github.com/gliderlabs/ssh v0.3.2 // indirect
github.com/gliderlabs/ssh v0.3.3 // indirect
github.com/go-logr/logr v1.0.0 // indirect
github.com/go-openapi/analysis v0.20.0 // indirect
github.com/go-openapi/analysis v0.20.1 // indirect
github.com/go-openapi/errors v0.20.1 // indirect
github.com/go-openapi/jsonpointer v0.19.5 // indirect
github.com/go-openapi/jsonreference v0.19.5 // indirect
github.com/go-openapi/loads v0.20.2 // indirect
github.com/go-openapi/runtime v0.19.30 // indirect
github.com/go-openapi/spec v0.20.3 // indirect
github.com/go-openapi/strfmt v0.20.2 // indirect
github.com/go-openapi/jsonreference v0.19.6 // indirect
github.com/go-openapi/loads v0.21.0 // indirect
github.com/go-openapi/runtime v0.21.0 // indirect
github.com/go-openapi/spec v0.20.4 // indirect
github.com/go-openapi/strfmt v0.21.1 // indirect
github.com/go-openapi/swag v0.19.15 // indirect
github.com/go-openapi/validate v0.20.2 // indirect
github.com/go-stack/stack v1.8.0 // indirect
github.com/go-openapi/validate v0.20.3 // indirect
github.com/go-stack/stack v1.8.1 // indirect
github.com/goccy/go-json v0.7.4 // indirect
github.com/golang-jwt/jwt/v4 v4.0.0 // indirect
github.com/golang/protobuf v1.5.2 // indirect
Expand All @@ -50,8 +51,8 @@ require (
github.com/lestrrat-go/jwx v1.2.5 // indirect
github.com/lestrrat-go/option v1.0.0 // indirect
github.com/mailru/easyjson v0.7.6 // indirect
github.com/mattn/go-colorable v0.1.8 // indirect
github.com/mattn/go-isatty v0.0.12 // indirect
github.com/mattn/go-colorable v0.1.11 // indirect
github.com/mattn/go-isatty v0.0.14 // indirect
github.com/metal-stack/masterdata-api v0.8.8 // indirect
github.com/metal-stack/metal-lib v0.8.1 // indirect
github.com/metal-stack/security v0.6.2 // indirect
Expand All @@ -61,16 +62,16 @@ require (
github.com/pkg/errors v0.9.1 // indirect
github.com/pmezard/go-difflib v1.0.0 // indirect
github.com/sethvargo/go-password v0.2.0 // indirect
github.com/stmcginnis/gofish v0.10.0 // indirect
github.com/stmcginnis/gofish v0.12.0 // indirect
github.com/vmware/goipmi v0.0.0-20181114221114-2333cd82d702 // indirect
go.mongodb.org/mongo-driver v1.5.1 // indirect
go.mongodb.org/mongo-driver v1.7.5 // indirect
go.uber.org/atomic v1.7.0 // indirect
go.uber.org/multierr v1.6.0 // indirect
golang.org/x/crypto v0.0.0-20210813211128-0a44fdfbc16e // indirect
golang.org/x/net v0.0.0-20210813160813-60bc85c4be6d // indirect
golang.org/x/net v0.0.0-20220225172249-27dd8689420f // indirect
golang.org/x/oauth2 v0.0.0-20210819190943-2bc19b11175f // indirect
golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1 // indirect
golang.org/x/text v0.3.6 // indirect
golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e // indirect
golang.org/x/text v0.3.7 // indirect
google.golang.org/appengine v1.6.7 // indirect
google.golang.org/protobuf v1.27.1 // indirect
gopkg.in/square/go-jose.v2 v2.6.0 // indirect
Expand Down
Loading