57 lines
1.2 KiB
Go
57 lines
1.2 KiB
Go
package main
|
|
|
|
import (
|
|
"context"
|
|
"fmt"
|
|
"os"
|
|
|
|
"github.com/letsencrypt/boulder/cmd"
|
|
blog "github.com/letsencrypt/boulder/log"
|
|
"github.com/letsencrypt/boulder/metrics"
|
|
bredis "github.com/letsencrypt/boulder/redis"
|
|
|
|
"github.com/redis/go-redis/v9"
|
|
)
|
|
|
|
func main() {
|
|
rc := bredis.Config{
|
|
Username: "unittest-rw",
|
|
TLS: cmd.TLSConfig{
|
|
CACertFile: "test/certs/ipki/minica.pem",
|
|
CertFile: "test/certs/ipki/localhost/cert.pem",
|
|
KeyFile: "test/certs/ipki/localhost/key.pem",
|
|
},
|
|
Lookups: []cmd.ServiceDomain{
|
|
{
|
|
Service: "redisratelimits",
|
|
Domain: "service.consul",
|
|
},
|
|
},
|
|
LookupDNSAuthority: "consul.service.consul",
|
|
}
|
|
rc.PasswordConfig = cmd.PasswordConfig{
|
|
PasswordFile: "test/secrets/ratelimits_redis_password",
|
|
}
|
|
|
|
stats := metrics.NoopRegisterer
|
|
log := blog.NewMock()
|
|
ring, err := bredis.NewRingFromConfig(rc, stats, log)
|
|
if err != nil {
|
|
fmt.Printf("while constructing ring client: %v\n", err)
|
|
os.Exit(1)
|
|
}
|
|
|
|
err = ring.ForEachShard(context.Background(), func(ctx context.Context, shard *redis.Client) error {
|
|
cmd := shard.FlushAll(ctx)
|
|
_, err := cmd.Result()
|
|
if err != nil {
|
|
return err
|
|
}
|
|
return nil
|
|
})
|
|
if err != nil {
|
|
fmt.Printf("while flushing redis shards: %v\n", err)
|
|
os.Exit(1)
|
|
}
|
|
}
|