From b2407882e77ce3880455adab2aa917f1769a923e Mon Sep 17 00:00:00 2001 From: Fernandez Ludovic Date: Sat, 20 Apr 2019 15:47:10 +0200 Subject: [PATCH] etcd: WIP. --- cmd/etcd.go | 47 ++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 42 insertions(+), 5 deletions(-) diff --git a/cmd/etcd.go b/cmd/etcd.go index 814d699..3c08ce1 100644 --- a/cmd/etcd.go +++ b/cmd/etcd.go @@ -1,8 +1,13 @@ package cmd import ( - "fmt" + "strconv" + "time" + "github.com/abronan/valkeyrie/store" + "github.com/abronan/valkeyrie/store/etcd/v2" + "github.com/ldez/traefik-certs-dumper/dumper" + "github.com/ldez/traefik-certs-dumper/dumper/kv" "github.com/spf13/cobra" ) @@ -11,10 +16,7 @@ var etcdCmd = &cobra.Command{ Use: "etcd", Short: "TODO", Long: `TODO`, - RunE: func(cmd *cobra.Command, args []string) error { - fmt.Println("etcd called") - return nil - }, + RunE: etcdRun, } func init() { @@ -22,3 +24,38 @@ func init() { etcdCmd.Flags().Int("sync-period", 0, "Sync period for etcd in seconds.") } + +func etcdRun(cmd *cobra.Command, _ []string) error { + // FIXME shared with file and all KVs + dumpPath := cmd.Flag("dest").Value.String() + + crtInfo := dumper.FileInfo{ + Name: cmd.Flag("crt-name").Value.String(), + Ext: cmd.Flag("crt-ext").Value.String(), + } + + keyInfo := dumper.FileInfo{ + Name: cmd.Flag("key-name").Value.String(), + Ext: cmd.Flag("key-ext").Value.String(), + } + + subDir, _ := strconv.ParseBool(cmd.Flag("domain-subdir").Value.String()) + + // --- + + config, err := getBaseConfig(cmd) + if err != nil { + return err + } + + synPeriod, err := cmd.Flags().GetInt("sync-period") + if err != nil { + return err + } + config.Options.SyncPeriod = time.Duration(synPeriod) * time.Second + + config.Backend = store.ETCD + etcd.Register() + + return kv.Dump(config, dumpPath, crtInfo, keyInfo, subDir) +}