@@ -323,6 +323,34 @@ func (n *Node) NewLocalConnection(ctx context.Context, database string) (*pgx.Co
323
323
return openConnection (ctx , host , database , n .OperatorCredentials )
324
324
}
325
325
326
+ func (n * Node ) UnregisterMemberByHostname (ctx context.Context , hostname string ) error {
327
+ cs , err := state .NewClusterState ()
328
+ if err != nil {
329
+ fmt .Printf ("failed initialize cluster state store. %v" , err )
330
+ }
331
+
332
+ member , err := cs .FindMemberByHostname (hostname )
333
+ if err != nil {
334
+ return err
335
+ }
336
+
337
+ return n .unregisterNode (ctx , cs , member )
338
+ }
339
+
340
+ func (n * Node ) UnregisterMemberByID (ctx context.Context , id int32 ) error {
341
+ cs , err := state .NewClusterState ()
342
+ if err != nil {
343
+ fmt .Printf ("failed initialize cluster state store. %v" , err )
344
+ }
345
+
346
+ member , err := cs .FindMemberByID (id )
347
+ if err != nil {
348
+ return err
349
+ }
350
+
351
+ return n .unregisterNode (ctx , cs , member )
352
+ }
353
+
326
354
func (n * Node ) isInitialized () bool {
327
355
_ , err := os .Stat (n .DataDir )
328
356
if os .IsNotExist (err ) {
@@ -383,6 +411,25 @@ func (n *Node) createRequiredUsers(ctx context.Context, conn *pgx.Conn) error {
383
411
return nil
384
412
}
385
413
414
+ func (n * Node ) unregisterNode (ctx context.Context , cs * state.ClusterState , member * state.Member ) error {
415
+ if member == nil {
416
+ return state .ErrMemberNotFound
417
+ }
418
+
419
+ // Unregister from repmgr
420
+ err := n .RepMgr .UnregisterStandby (int (member .ID ))
421
+ if err != nil {
422
+ return fmt .Errorf ("failed to unregister member %d from repmgr: %s" , member .ID , err )
423
+ }
424
+
425
+ // Unregister from consul
426
+ if err := cs .UnregisterMember (member .ID ); err != nil {
427
+ return fmt .Errorf ("failed to unregister member %d from consul: %v" , member .ID , err )
428
+ }
429
+
430
+ return nil
431
+ }
432
+
386
433
type HBAEntry struct {
387
434
Type string
388
435
Database string
@@ -464,75 +511,6 @@ func (n *Node) setDefaultHBA() error {
464
511
return nil
465
512
}
466
513
467
- func UnregisterMemberByHostname (ctx context.Context , hostname string ) error {
468
- cs , err := state .NewClusterState ()
469
- if err != nil {
470
- fmt .Printf ("failed initialize cluster state store. %v" , err )
471
- }
472
-
473
- member , err := cs .FindMemberByHostname (hostname )
474
- if err != nil {
475
- return err
476
- }
477
-
478
- if member == nil {
479
- return state .ErrMemberNotFound
480
- }
481
-
482
- node , err := NewNode ()
483
- if err != nil {
484
- return err
485
- }
486
-
487
- // Unregister from repmgr
488
- err = node .RepMgr .UnregisterStandby (int (member .ID ))
489
- if err != nil {
490
- return fmt .Errorf ("failed to unregister member %d from repmgr: %s" , member .ID , err )
491
- }
492
-
493
- // Unregister from consul
494
- if err := cs .UnregisterMember (int32 (member .ID )); err != nil {
495
- fmt .Printf ("failed to unregister member %d from consul: %v" , member .ID , err )
496
- }
497
-
498
- return nil
499
- }
500
-
501
- func UnregisterMemberByID (ctx context.Context , id int32 ) error {
502
-
503
- cs , err := state .NewClusterState ()
504
- if err != nil {
505
- fmt .Printf ("failed initialize cluster state store. %v" , err )
506
- }
507
-
508
- member , err := cs .FindMemberByID (id )
509
- if err != nil {
510
- return err
511
- }
512
-
513
- if member == nil {
514
- return state .ErrMemberNotFound
515
- }
516
-
517
- node , err := NewNode ()
518
- if err != nil {
519
- return err
520
- }
521
-
522
- // Unregister from repmgr
523
- err = node .RepMgr .UnregisterStandby (int (member .ID ))
524
- if err != nil {
525
- return fmt .Errorf ("failed to unregister member %d from repmgr: %s" , member .ID , err )
526
- }
527
-
528
- // Unregister from consul
529
- if err := cs .UnregisterMember (member .ID ); err != nil {
530
- return fmt .Errorf ("failed to unregister member %d from consul: %v" , member .ID , err )
531
- }
532
-
533
- return nil
534
- }
535
-
536
514
func openConnection (parentCtx context.Context , host string , database string , creds Credentials ) (* pgx.Conn , error ) {
537
515
ctx , cancel := context .WithTimeout (parentCtx , 10 * time .Second )
538
516
defer cancel ()
0 commit comments