This commit is contained in:
davidnewhall2 2020-02-02 21:59:55 -08:00
parent a370adab42
commit 72909bc774
2 changed files with 43 additions and 15 deletions

View File

@ -159,7 +159,15 @@ func (u *InputUnifi) dumpSitesJSON(c *Controller, path, name string, sites unifi
return allJSON, nil
}
func (u *InputUnifi) setDefaults(c *Controller) {
// setDefaults sets defaults for the defaults and for the controllers.
// which one depends on the useDefaults boolean.
func (u *InputUnifi) setDefaults(c *Controller, useDefaults bool) {
if c.Role == "" {
c.Role = c.URL
}
// Default defaults.
if useDefaults {
if c.SaveSites == nil {
t := true
c.SaveSites = &t
@ -169,10 +177,6 @@ func (u *InputUnifi) setDefaults(c *Controller) {
c.URL = defaultURL
}
if c.Role == "" {
c.Role = c.URL
}
if c.Pass == "" {
c.Pass = defaultPass
}
@ -184,6 +188,30 @@ func (u *InputUnifi) setDefaults(c *Controller) {
if len(c.Sites) == 0 {
c.Sites = []string{defaultSite}
}
return
}
// Configured controller defaults.
if c.SaveSites == nil {
c.SaveSites = u.Default.SaveSites
}
if c.URL == "" {
c.URL = u.Default.URL
}
if c.Pass == "" {
c.Pass = u.Default.Pass
}
if c.User == "" {
c.User = u.Default.User
}
if len(c.Sites) == 0 {
c.Sites = u.Default.Sites
}
}
// StringInSlice returns true if a string is in a slice.

View File

@ -23,7 +23,7 @@ func (u *InputUnifi) Initialize(l poller.Logger) error {
return nil
}
if u.setDefaults(&u.Default); len(u.Controllers) == 0 && !u.Dynamic {
if u.setDefaults(&u.Default, true); len(u.Controllers) == 0 && !u.Dynamic {
new := u.Default // copy defaults.
u.Controllers = []*Controller{&new}
}
@ -36,7 +36,7 @@ func (u *InputUnifi) Initialize(l poller.Logger) error {
u.Logger = l
for _, c := range u.Controllers {
u.setDefaults(c)
u.setDefaults(c, false)
switch err := u.getUnifi(c); err {
case nil: