diff --git a/pkg/api/handle_admin.go b/pkg/api/handle_admin.go index 022f2e3b..1f35f304 100644 --- a/pkg/api/handle_admin.go +++ b/pkg/api/handle_admin.go @@ -59,6 +59,12 @@ func (s *Server) handleUpdatePostgresSettings(w http.ResponseWriter, r *http.Req } defer close() + consul, err := state.NewStore() + if err != nil { + renderErr(w, err) + return + } + user := s.node.PGConfig.UserConfig() var in map[string]interface{} @@ -108,6 +114,12 @@ func (s *Server) handleUpdatePostgresSettings(w http.ResponseWriter, r *http.Req }} } + err = flypg.PushUserConfig(s.node.PGConfig, consul) + if err != nil { + renderErr(w, err) + return + } + renderJSON(w, res, http.StatusOK) } @@ -125,7 +137,7 @@ func (s *Server) handleApplyConfig(w http.ResponseWriter, r *http.Request) { return } - err = flypg.WriteUserConfig(s.node.PGConfig, consul) + err = flypg.SyncUserConfig(s.node.PGConfig, consul) if err != nil { renderErr(w, err) return diff --git a/pkg/flypg/config.go b/pkg/flypg/config.go index ddf77c4c..b2d232dd 100644 --- a/pkg/flypg/config.go +++ b/pkg/flypg/config.go @@ -35,6 +35,15 @@ func WriteUserConfig(c Config, consul *state.Store) error { return nil } +func PushUserConfig(c Config, consul *state.Store) error { + if c.UserConfig() != nil { + if err := pushToConsul(c, consul); err != nil { + return fmt.Errorf("failed to write to consul: %s", err) + } + } + return nil +} + func SyncUserConfig(c Config, consul *state.Store) error { cfg, err := pullFromConsul(c, consul) if err != nil {