// newWatcher creates a new watcher. func newWatcher(c *Config, clients *dep.ClientSet, once bool) (*watch.Watcher, error) { log.Printf("[INFO] (runner) creating watcher") w, err := watch.NewWatcher(&watch.NewWatcherInput{ Clients: clients, MaxStale: c.MaxStale, Once: once, RenewVault: false, RetryFuncConsul: func(retry int) (bool, time.Duration) { if retry > 5 { return false, 0 } base := math.Pow(2, float64(retry)) sleep := time.Duration(base) * c.Retry return true, sleep }, RetryFuncDefault: nil, RetryFuncVault: nil, }) if err != nil { return nil, errors.Wrap(err, "runner") } return w, nil }
// newWatcher creates a new watcher. func newWatcher(config *Config, client *api.Client, once bool) (*watch.Watcher, error) { log.Printf("[INFO] (runner) creating Watcher") clients := dep.NewClientSet() if err := clients.CreateConsulClient(&dep.CreateConsulClientInput{ Address: config.Consul, Token: config.Token, AuthEnabled: config.Auth.Enabled, AuthUsername: config.Auth.Username, AuthPassword: config.Auth.Password, SSLEnabled: config.SSL.Enabled, SSLVerify: config.SSL.Verify, }); err != nil { return nil, err } watcher, err := watch.NewWatcher(&watch.WatcherConfig{ Clients: clients, Once: once, MaxStale: config.MaxStale, RetryFunc: func(current time.Duration) time.Duration { return config.Retry }, }) if err != nil { return nil, err } return watcher, err }
// newWatcher creates a new watcher. func newWatcher(config *Config, clients *dep.ClientSet, once bool) (*watch.Watcher, error) { log.Printf("[INFO] (runner) creating Watcher") watcher, err := watch.NewWatcher(&watch.WatcherConfig{ Clients: clients, Once: once, MaxStale: config.MaxStale, RetryFunc: func(current time.Duration) time.Duration { return config.Retry }, }) if err != nil { return nil, err } return watcher, err }
// newWatcher creates a new watcher. func newWatcher(config *JsonExport, client *api.Client, once bool) (*watch.Watcher, error) { log.Println("[INFO] (runner) creating Watcher") clientSet := dep.NewClientSet() if err := clientSet.Add(client); err != nil { return nil, err } watcher, err := watch.NewWatcher(&watch.WatcherConfig{ Clients: clientSet, Once: once, }) if err != nil { return nil, err } return watcher, err }
// newWatcher creates a new watcher. func newWatcher(c *config.Config, clients *dep.ClientSet, once bool) (*watch.Watcher, error) { log.Printf("[INFO] (runner) creating watcher") w, err := watch.NewWatcher(&watch.NewWatcherInput{ Clients: clients, MaxStale: config.TimeDurationVal(c.MaxStale), Once: once, RenewVault: config.StringPresent(c.Vault.Token) && config.BoolVal(c.Vault.RenewToken), RetryFuncConsul: watch.RetryFunc(c.Consul.Retry.RetryFunc()), // TODO: Add a sane default retry - right now this only affects "local" // dependencies like reading a file from disk. RetryFuncDefault: nil, RetryFuncVault: watch.RetryFunc(c.Vault.Retry.RetryFunc()), }) if err != nil { return nil, errors.Wrap(err, "runner") } return w, nil }