add known working replset initiation code

This commit is contained in:
Late Night Defender 2024-05-27 15:02:05 +07:00
parent aa8d6c05c7
commit 77d9030e80

View file

@ -2,44 +2,43 @@ package main
import (
"context"
"time"
"fmt"
"go.mongodb.org/mongo-driver/bson"
"go.mongodb.org/mongo-driver/mongo"
"go.mongodb.org/mongo-driver/mongo/options"
"go.mongodb.org/mongo-driver/bson"
)
func initReplMongo() {
// Create a new client and connect to the servers
client, err := mongo.Connect(context.TODO(), options.Client().ApplyURI("mongodb://localhost:30000"))
if err != nil {
panic(err)
}
defer client.Disconnect(context.TODO())
ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
defer cancel()
// Get a handle to the admin database
admin := client.Database("admin")
// Create a new replica set client
client, err := mongo.Connect(ctx, options.Client().ApplyURI("mongodb://sasha:12345@localhost:30000/?directConnection=true"))
if err != nil {
panic(err)
}
// Define the replica set configuration
config := bson.M{
"_id": replicasetName,
"members": []bson.M{},
}
db := client.Database("admin")
for i := 0; i < int(numberOfContainers); i++ {
member := bson.M{
members := make([]bson.M, numberOfContainers)
for i := 0; i < numberOfContainers; i++ {
members[i] = bson.M{
"_id": i,
"host": fmt.Sprintf("mongo%d", i),
}
config["members"] = append(config["members"].([]bson.M), member)
}
// Initiate the replica set
res, err := admin.RunCommand(context.TODO(), bson.D{{"replSetInitiate", config}}).Raw()
config := bson.M{
"_id": replicasetName,
"members": members,
}
command := bson.D{{"replSetInitiate", config}}
var result bson.M
err = db.RunCommand(context.TODO(), command).Decode(&result)
if err != nil {
panic(err)
}
fmt.Println(res)
panic(err)
}
client.Disconnect(ctx)
}