diff --git a/integrations/inputunifi/input.go b/integrations/inputunifi/input.go index 0d52083a..840a7adb 100644 --- a/integrations/inputunifi/input.go +++ b/integrations/inputunifi/input.go @@ -159,30 +159,58 @@ func (u *InputUnifi) dumpSitesJSON(c *Controller, path, name string, sites unifi return allJSON, nil } -func (u *InputUnifi) setDefaults(c *Controller) { - if c.SaveSites == nil { - t := true - c.SaveSites = &t - } - - if c.URL == "" { - c.URL = defaultURL - } - +// 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 + } + + if c.URL == "" { + c.URL = defaultURL + } + + if c.Pass == "" { + c.Pass = defaultPass + } + + if c.User == "" { + c.User = defaultUser + } + + 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 = defaultPass + c.Pass = u.Default.Pass } if c.User == "" { - c.User = defaultUser + c.User = u.Default.User } if len(c.Sites) == 0 { - c.Sites = []string{defaultSite} + c.Sites = u.Default.Sites } } diff --git a/integrations/inputunifi/interface.go b/integrations/inputunifi/interface.go index 1f95f2b3..c81c7670 100644 --- a/integrations/inputunifi/interface.go +++ b/integrations/inputunifi/interface.go @@ -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: