Skip to content

Commit

Permalink
fly pg config update now goes over http instead ssh
Browse files Browse the repository at this point in the history
  • Loading branch information
rugwirobaker committed Dec 1, 2022
1 parent de12f92 commit 48ed8fe
Show file tree
Hide file tree
Showing 4 changed files with 29 additions and 12 deletions.
12 changes: 11 additions & 1 deletion flypg/pg.go
Original file line number Diff line number Diff line change
Expand Up @@ -168,7 +168,7 @@ func (c *Client) Failover(ctx context.Context) error {
return nil
}

func (c *Client) SettingsView(ctx context.Context, settings []string) (*PGSettings, error) {
func (c *Client) ViewSettings(ctx context.Context, settings []string) (*PGSettings, error) {
endpoint := "/commands/admin/settings/view"

out := new(SettingsViewResponse)
Expand All @@ -179,3 +179,13 @@ func (c *Client) SettingsView(ctx context.Context, settings []string) (*PGSettin

return &out.Result, nil
}

func (c *Client) UpdateSettings(ctx context.Context, settings map[string]string) error {
endpoint := "/commands/admin/settings/update"

if err := c.Do(ctx, http.MethodPost, endpoint, settings, nil); err != nil {
return err
}

return nil
}
22 changes: 15 additions & 7 deletions internal/command/postgres/config_update.go
Original file line number Diff line number Diff line change
Expand Up @@ -110,12 +110,18 @@ func runMachineConfigUpdate(ctx context.Context, app *api.AppCompact) error {
autoConfirm = flag.GetBool(ctx, "yes")
)

var MinPostgresVersion = "v0.0.32"

machines, releaseLeaseFunc, err := mach.AcquireAllLeases(ctx)
defer releaseLeaseFunc(ctx, machines)
if err != nil {
return fmt.Errorf("machines could not be retrieved")
}

if err := hasRequiredVersionOnMachines(machines, MinPostgresVersion, MinPostgresVersion); err != nil {
return err
}

leader, err := pickLeader(ctx, machines)
if err != nil {
return err
Expand Down Expand Up @@ -160,6 +166,12 @@ func runNomadConfigUpdate(ctx context.Context, app *api.AppCompact) error {
autoConfirm = flag.GetBool(ctx, "yes")
)

var MinPostgresVersion = "v0.0.32"

if err := hasRequiredVersionOnNomad(app, MinPostgresVersion, MinPostgresVersion); err != nil {
return err
}

client := client.FromContext(ctx).API()

agentclient, err := agent.Establish(ctx, client)
Expand Down Expand Up @@ -233,7 +245,7 @@ func updateStolonConfig(ctx context.Context, app *api.AppCompact, leaderIP strin
if !force {
// Query PG settings
pgclient := flypg.NewFromInstance(leaderIP, dialer)
settings, err := pgclient.SettingsView(ctx, keys)
settings, err := pgclient.ViewSettings(ctx, keys)
if err != nil {
return false, err
}
Expand Down Expand Up @@ -282,15 +294,11 @@ func updateStolonConfig(ctx context.Context, app *api.AppCompact, leaderIP strin
}
}

cmd, err := flypg.NewCommand(ctx, app)
if err != nil {
return false, err
}
cmd := flypg.NewFromInstance(leaderIP, dialer)

fmt.Fprintln(io.Out, "Performing update...")

err = cmd.UpdateSettings(ctx, leaderIP, changes)
if err != nil {
if err := cmd.UpdateSettings(ctx, changes); err != nil {
return false, err
}
fmt.Fprintln(io.Out, "Update complete!")
Expand Down
2 changes: 1 addition & 1 deletion internal/command/postgres/config_view.go
Original file line number Diff line number Diff line change
Expand Up @@ -144,7 +144,7 @@ func viewSettings(ctx context.Context, app *api.AppCompact, leaderIP string) err
settings = append(settings, k)
}

res, err := pgclient.SettingsView(ctx, settings)
res, err := pgclient.ViewSettings(ctx, settings)
if err != nil {
return err
}
Expand Down
5 changes: 2 additions & 3 deletions internal/command/postgres/restart.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@ import (
"github.com/superfly/flyctl/internal/command"
"github.com/superfly/flyctl/internal/command/apps"
"github.com/superfly/flyctl/internal/flag"
"github.com/superfly/flyctl/internal/machine"
mach "github.com/superfly/flyctl/internal/machine"
"github.com/superfly/flyctl/iostreams"
)
Expand Down Expand Up @@ -118,7 +117,7 @@ func machinesRestart(ctx context.Context, input *api.RestartMachineInput) (err e

// Restarting replicas
for _, replica := range replicas {
if err = machine.Restart(ctx, replica, input); err != nil {
if err = mach.Restart(ctx, replica, input); err != nil {
return err
}
}
Expand All @@ -145,7 +144,7 @@ func machinesRestart(ctx context.Context, input *api.RestartMachineInput) (err e
}
}

if err = machine.Restart(ctx, leader, input); err != nil {
if err = mach.Restart(ctx, leader, input); err != nil {
return err
}

Expand Down

0 comments on commit 48ed8fe

Please sign in to comment.