forked from Deuxfleurs/infrastructure
34 lines
752 B
Go
34 lines
752 B
Go
package main
|
|
import (
|
|
"github.com/hashicorp/consul/api"
|
|
/*"crypto/aes"*/
|
|
"log"
|
|
/*"github.com/aws/aws-sdk-go/service/s3"*/
|
|
)
|
|
|
|
func errIsPanic(err error, format string, a ...interface{}) {
|
|
if err != nil {
|
|
log.Panicf(format, a...)
|
|
}
|
|
}
|
|
|
|
func main() {
|
|
log.Println("starting consul kv backup...")
|
|
conf := api.DefaultConfig()
|
|
//@FIXME add later support for a different URL
|
|
//@FIXME add later support for HTTPS
|
|
|
|
options := api.QueryOptions {
|
|
// Prevent from backuping forever silently a desynchronized node
|
|
AllowStale: false,
|
|
}
|
|
|
|
consul, err := api.NewClient(conf)
|
|
errIsPanic(err, "Unable to build a new client. %v", err)
|
|
|
|
_, _, err = consul.Snapshot().Save(&options)
|
|
errIsPanic(err, "Snapshot failed. %v", err)
|
|
|
|
|
|
|
|
}
|