Skip to content

Commit 4e9284f

Browse files
committed
Checkin
1 parent 0c6e061 commit 4e9284f

File tree

4 files changed

+30
-8
lines changed

4 files changed

+30
-8
lines changed

.flyctl/cmd/pg_unregister/main.go

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
package main
22

33
import (
4+
"context"
45
"encoding/base64"
6+
"fmt"
57
"os"
68

79
"github.com/fly-apps/postgres-flex/pkg/flypg"
@@ -12,14 +14,16 @@ func main() {
1214
encodedArg := os.Args[1]
1315
hostnameBytes, err := base64.StdEncoding.DecodeString(encodedArg)
1416
if err != nil {
15-
utils.WriteError(err)
16-
sys.Exit(1)
17+
utils.WriteError(fmt.Errorf("failed to decode hostname: %v", err))
18+
os.Exit(1)
19+
return
1720
}
1821

19-
if err := flypg.UnregisterMemberByHostname(ctx, string(hostnameBytes)); err != nil {
22+
if err := flypg.UnregisterMemberByHostname(context.Background(), string(hostnameBytes)); err != nil {
2023
utils.WriteError(err)
21-
sys.Exit(1)
24+
os.Exit(1)
25+
return
2226
}
2327

24-
utils.WriteOutput("Member has been succesfully unregistered")
28+
utils.WriteOutput("Member has been succesfully unregistered", "")
2529
}

cmd/standby_cleaner/main.go

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,13 @@ import (
99
"github.com/fly-apps/postgres-flex/pkg/flypg"
1010
)
1111

12+
// We need to adjust this to look at replication slots.
13+
// Pull ids from repmgr.show_nodes
14+
// Pull replication_slot ids that are inactive.
15+
16+
// Remove replication slot if the slot_name id is inactive and is not
17+
// present as a repmgr node.
18+
1219
var Minute int64 = 60
1320

1421
func main() {
@@ -36,7 +43,7 @@ func main() {
3643
fmt.Printf("Failed to check role: %s", err)
3744
continue
3845
}
39-
if role != "primary" {
46+
if role != flypg.PrimaryRoleName {
4047
continue
4148
}
4249
standbys, err := flypgNode.RepMgr.Standbys(ctx, conn)

pkg/flypg/admin/admin.go

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,17 @@ func DeleteDatabase(ctx context.Context, pg *pgx.Conn, name string) error {
7575
return nil
7676
}
7777

78+
func DropReplicationSlot(ctx context.Context, pg *pgx.Conn, name string) error {
79+
sql := fmt.Sprintf("SELECT pg_drop_replication_slot('%s');", name)
80+
81+
_, err := pg.Exec(ctx, sql)
82+
if err != nil {
83+
return err
84+
}
85+
86+
return nil
87+
}
88+
7889
func EnableExtension(ctx context.Context, pg *pgx.Conn, extension string) error {
7990
sql := fmt.Sprintf("CREATE EXTENSION IF NOT EXISTS %s;", extension)
8091
_, err := pg.Exec(context.Background(), sql)

pkg/flypg/node.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -491,8 +491,8 @@ func UnregisterMemberByHostname(ctx context.Context, hostname string) error {
491491
}
492492

493493
// Unregister from consul
494-
if err := cs.UnregisterMember(member.ID); err != nil {
495-
return fmt.Errorf("failed to unregister member %d from consul: %v", member.ID, err)
494+
if err := cs.UnregisterMember(int32(member.ID)); err != nil {
495+
fmt.Printf("failed to unregister member %d from consul: %v", member.ID, err)
496496
}
497497

498498
return nil

0 commit comments

Comments
 (0)