refactor: baseconfig.
This commit is contained in:
parent
886ee86eec
commit
3283611d7f
@ -1,8 +1,6 @@
|
|||||||
package cmd
|
package cmd
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"strconv"
|
|
||||||
|
|
||||||
"github.com/abronan/valkeyrie/store"
|
"github.com/abronan/valkeyrie/store"
|
||||||
"github.com/abronan/valkeyrie/store/boltdb"
|
"github.com/abronan/valkeyrie/store/boltdb"
|
||||||
"github.com/ldez/traefik-certs-dumper/dumper"
|
"github.com/ldez/traefik-certs-dumper/dumper"
|
||||||
@ -15,7 +13,7 @@ var boltdbCmd = &cobra.Command{
|
|||||||
Use: "boltdb",
|
Use: "boltdb",
|
||||||
Short: "TODO",
|
Short: "TODO",
|
||||||
Long: `TODO`,
|
Long: `TODO`,
|
||||||
RunE: boltdbRun,
|
RunE: runE(boltdbRun),
|
||||||
}
|
}
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
@ -25,25 +23,8 @@ func init() {
|
|||||||
boltdbCmd.Flags().String("bucket", "traefik", "Bucket for boltdb.")
|
boltdbCmd.Flags().String("bucket", "traefik", "Bucket for boltdb.")
|
||||||
}
|
}
|
||||||
|
|
||||||
func boltdbRun(cmd *cobra.Command, _ []string) error {
|
func boltdbRun(baseConfig *dumper.BaseConfig, cmd *cobra.Command) error {
|
||||||
// FIXME shared with file and all KVs
|
config, err := getKvConfig(cmd)
|
||||||
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 {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@ -54,5 +35,5 @@ func boltdbRun(cmd *cobra.Command, _ []string) error {
|
|||||||
config.Backend = store.BOLTDB
|
config.Backend = store.BOLTDB
|
||||||
boltdb.Register()
|
boltdb.Register()
|
||||||
|
|
||||||
return kv.Dump(config, dumpPath, crtInfo, keyInfo, subDir)
|
return kv.Dump(config, baseConfig)
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,8 +1,6 @@
|
|||||||
package cmd
|
package cmd
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"strconv"
|
|
||||||
|
|
||||||
"github.com/abronan/valkeyrie/store"
|
"github.com/abronan/valkeyrie/store"
|
||||||
"github.com/abronan/valkeyrie/store/consul"
|
"github.com/abronan/valkeyrie/store/consul"
|
||||||
"github.com/ldez/traefik-certs-dumper/dumper"
|
"github.com/ldez/traefik-certs-dumper/dumper"
|
||||||
@ -15,7 +13,7 @@ var consulCmd = &cobra.Command{
|
|||||||
Use: "consul",
|
Use: "consul",
|
||||||
Short: "TODO",
|
Short: "TODO",
|
||||||
Long: `TODO`,
|
Long: `TODO`,
|
||||||
RunE: consulRun,
|
RunE: runE(consulRun),
|
||||||
}
|
}
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
@ -24,25 +22,8 @@ func init() {
|
|||||||
consulCmd.Flags().String("token", "", "Token for consul.")
|
consulCmd.Flags().String("token", "", "Token for consul.")
|
||||||
}
|
}
|
||||||
|
|
||||||
func consulRun(cmd *cobra.Command, _ []string) error {
|
func consulRun(baseConfig *dumper.BaseConfig, cmd *cobra.Command) error {
|
||||||
// FIXME shared with file and all KVs
|
config, err := getKvConfig(cmd)
|
||||||
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 {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@ -52,5 +33,5 @@ func consulRun(cmd *cobra.Command, _ []string) error {
|
|||||||
config.Backend = store.CONSUL
|
config.Backend = store.CONSUL
|
||||||
consul.Register()
|
consul.Register()
|
||||||
|
|
||||||
return kv.Dump(config, dumpPath, crtInfo, keyInfo, subDir)
|
return kv.Dump(config, baseConfig)
|
||||||
}
|
}
|
||||||
|
|||||||
26
cmd/etcd.go
26
cmd/etcd.go
@ -1,7 +1,6 @@
|
|||||||
package cmd
|
package cmd
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"strconv"
|
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/abronan/valkeyrie/store"
|
"github.com/abronan/valkeyrie/store"
|
||||||
@ -16,7 +15,7 @@ var etcdCmd = &cobra.Command{
|
|||||||
Use: "etcd",
|
Use: "etcd",
|
||||||
Short: "TODO",
|
Short: "TODO",
|
||||||
Long: `TODO`,
|
Long: `TODO`,
|
||||||
RunE: etcdRun,
|
RunE: runE(etcdRun),
|
||||||
}
|
}
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
@ -25,25 +24,8 @@ func init() {
|
|||||||
etcdCmd.Flags().Int("sync-period", 0, "Sync period for etcd in seconds.")
|
etcdCmd.Flags().Int("sync-period", 0, "Sync period for etcd in seconds.")
|
||||||
}
|
}
|
||||||
|
|
||||||
func etcdRun(cmd *cobra.Command, _ []string) error {
|
func etcdRun(baseConfig *dumper.BaseConfig, cmd *cobra.Command) error {
|
||||||
// FIXME shared with file and all KVs
|
config, err := getKvConfig(cmd)
|
||||||
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 {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@ -57,5 +39,5 @@ func etcdRun(cmd *cobra.Command, _ []string) error {
|
|||||||
config.Backend = store.ETCD
|
config.Backend = store.ETCD
|
||||||
etcd.Register()
|
etcd.Register()
|
||||||
|
|
||||||
return kv.Dump(config, dumpPath, crtInfo, keyInfo, subDir)
|
return kv.Dump(config, baseConfig)
|
||||||
}
|
}
|
||||||
|
|||||||
30
cmd/file.go
30
cmd/file.go
@ -1,8 +1,6 @@
|
|||||||
package cmd
|
package cmd
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"strconv"
|
|
||||||
|
|
||||||
"github.com/ldez/traefik-certs-dumper/dumper"
|
"github.com/ldez/traefik-certs-dumper/dumper"
|
||||||
"github.com/ldez/traefik-certs-dumper/dumper/file"
|
"github.com/ldez/traefik-certs-dumper/dumper/file"
|
||||||
"github.com/spf13/cobra"
|
"github.com/spf13/cobra"
|
||||||
@ -13,33 +11,11 @@ var fileCmd = &cobra.Command{
|
|||||||
Use: "file",
|
Use: "file",
|
||||||
Short: `Dump the content of the "acme.json" file.`,
|
Short: `Dump the content of the "acme.json" file.`,
|
||||||
Long: `Dump the content of the "acme.json" file from Traefik to certificates.`,
|
Long: `Dump the content of the "acme.json" file from Traefik to certificates.`,
|
||||||
RunE: func(cmd *cobra.Command, _ []string) error {
|
RunE: runE(func(baseConfig *dumper.BaseConfig, cmd *cobra.Command) error {
|
||||||
// FIXME shared with KV
|
|
||||||
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())
|
|
||||||
|
|
||||||
// ---
|
|
||||||
|
|
||||||
acmeFile := cmd.Flag("source").Value.String()
|
acmeFile := cmd.Flag("source").Value.String()
|
||||||
|
|
||||||
err := file.Dump(acmeFile, dumpPath, crtInfo, keyInfo, subDir)
|
return file.Dump(acmeFile, baseConfig)
|
||||||
if err != nil {
|
}),
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
return dumper.Tree(dumpPath, "")
|
|
||||||
},
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
|
|||||||
@ -29,7 +29,7 @@ func init() {
|
|||||||
kvCmd.PersistentFlags().String("tls.ca-cert-file", "", "Root CA file for certificate verification if TLS is enabled.")
|
kvCmd.PersistentFlags().String("tls.ca-cert-file", "", "Root CA file for certificate verification if TLS is enabled.")
|
||||||
}
|
}
|
||||||
|
|
||||||
func getBaseConfig(cmd *cobra.Command) (*kv.BaseConfig, error) {
|
func getKvConfig(cmd *cobra.Command) (*kv.Config, error) {
|
||||||
endpoints, err := cmd.Flags().GetStringSlice("endpoints")
|
endpoints, err := cmd.Flags().GetStringSlice("endpoints")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
@ -50,7 +50,7 @@ func getBaseConfig(cmd *cobra.Command) (*kv.BaseConfig, error) {
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
return &kv.BaseConfig{
|
return &kv.Config{
|
||||||
Endpoints: endpoints,
|
Endpoints: endpoints,
|
||||||
Options: &store.Config{
|
Options: &store.Config{
|
||||||
ClientTLS: nil,
|
ClientTLS: nil,
|
||||||
|
|||||||
37
cmd/root.go
37
cmd/root.go
@ -5,6 +5,7 @@ import (
|
|||||||
"os"
|
"os"
|
||||||
"strconv"
|
"strconv"
|
||||||
|
|
||||||
|
"github.com/ldez/traefik-certs-dumper/dumper"
|
||||||
homedir "github.com/mitchellh/go-homedir"
|
homedir "github.com/mitchellh/go-homedir"
|
||||||
"github.com/spf13/cobra"
|
"github.com/spf13/cobra"
|
||||||
"github.com/spf13/viper"
|
"github.com/spf13/viper"
|
||||||
@ -82,3 +83,39 @@ func initConfig() {
|
|||||||
fmt.Println("Using config file:", viper.ConfigFileUsed())
|
fmt.Println("Using config file:", viper.ConfigFileUsed())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func getBaseConfig(cmd *cobra.Command) (*dumper.BaseConfig, error) {
|
||||||
|
subDir, err := strconv.ParseBool(cmd.Flag("domain-subdir").Value.String())
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
return &dumper.BaseConfig{
|
||||||
|
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(),
|
||||||
|
},
|
||||||
|
DomainSubDir: subDir,
|
||||||
|
}, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func runE(apply func(*dumper.BaseConfig, *cobra.Command) error) func(*cobra.Command, []string) error {
|
||||||
|
return func(cmd *cobra.Command, _ []string) error {
|
||||||
|
baseConfig, err := getBaseConfig(cmd)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
err = apply(baseConfig, cmd)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
return dumper.Tree(baseConfig.DumpPath, "")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@ -1,8 +1,6 @@
|
|||||||
package cmd
|
package cmd
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"strconv"
|
|
||||||
|
|
||||||
"github.com/abronan/valkeyrie/store"
|
"github.com/abronan/valkeyrie/store"
|
||||||
"github.com/abronan/valkeyrie/store/zookeeper"
|
"github.com/abronan/valkeyrie/store/zookeeper"
|
||||||
"github.com/ldez/traefik-certs-dumper/dumper"
|
"github.com/ldez/traefik-certs-dumper/dumper"
|
||||||
@ -15,32 +13,15 @@ var zookeeperCmd = &cobra.Command{
|
|||||||
Use: "zookeeper",
|
Use: "zookeeper",
|
||||||
Short: "TODO",
|
Short: "TODO",
|
||||||
Long: `TODO`,
|
Long: `TODO`,
|
||||||
RunE: zookeeperRun,
|
RunE: runE(zookeeperRun),
|
||||||
}
|
}
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
kvCmd.AddCommand(zookeeperCmd)
|
kvCmd.AddCommand(zookeeperCmd)
|
||||||
}
|
}
|
||||||
|
|
||||||
func zookeeperRun(cmd *cobra.Command, _ []string) error {
|
func zookeeperRun(baseConfig *dumper.BaseConfig, cmd *cobra.Command) error {
|
||||||
// FIXME shared with file and all KVs
|
config, err := getKvConfig(cmd)
|
||||||
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 {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@ -48,5 +29,5 @@ func zookeeperRun(cmd *cobra.Command, _ []string) error {
|
|||||||
config.Backend = store.ZK
|
config.Backend = store.ZK
|
||||||
zookeeper.Register()
|
zookeeper.Register()
|
||||||
|
|
||||||
return kv.Dump(config, dumpPath, crtInfo, keyInfo, subDir)
|
return kv.Dump(config, baseConfig)
|
||||||
}
|
}
|
||||||
|
|||||||
9
dumper/config.go
Normal file
9
dumper/config.go
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
package dumper
|
||||||
|
|
||||||
|
// BaseConfig FIXME
|
||||||
|
type BaseConfig struct {
|
||||||
|
DumpPath string
|
||||||
|
CrtInfo FileInfo
|
||||||
|
KeyInfo FileInfo
|
||||||
|
DomainSubDir bool
|
||||||
|
}
|
||||||
@ -21,34 +21,34 @@ type FileInfo struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Dump FIXME
|
// Dump FIXME
|
||||||
func Dump(data *StoredData, dumpPath string, crtInfo, keyInfo FileInfo, domainSubDir bool) error {
|
func Dump(data *StoredData, baseConfig *BaseConfig) error {
|
||||||
if err := os.RemoveAll(dumpPath); err != nil {
|
if err := os.RemoveAll(baseConfig.DumpPath); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
if !domainSubDir {
|
if !baseConfig.DomainSubDir {
|
||||||
if err := os.MkdirAll(filepath.Join(dumpPath, certsSubDir), 0755); err != nil {
|
if err := os.MkdirAll(filepath.Join(baseConfig.DumpPath, certsSubDir), 0755); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := os.MkdirAll(filepath.Join(dumpPath, keysSubDir), 0755); err != nil {
|
if err := os.MkdirAll(filepath.Join(baseConfig.DumpPath, keysSubDir), 0755); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
privateKeyPem := extractPEMPrivateKey(data.Account)
|
privateKeyPem := extractPEMPrivateKey(data.Account)
|
||||||
err := ioutil.WriteFile(filepath.Join(dumpPath, keysSubDir, "letsencrypt"+keyInfo.Ext), privateKeyPem, 0666)
|
err := ioutil.WriteFile(filepath.Join(baseConfig.DumpPath, keysSubDir, "letsencrypt"+baseConfig.KeyInfo.Ext), privateKeyPem, 0666)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, cert := range data.Certificates {
|
for _, cert := range data.Certificates {
|
||||||
err := writeCert(dumpPath, cert, crtInfo, domainSubDir)
|
err := writeCert(baseConfig.DumpPath, cert, baseConfig.CrtInfo, baseConfig.DomainSubDir)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
err = writeKey(dumpPath, cert, keyInfo, domainSubDir)
|
err = writeKey(baseConfig.DumpPath, cert, baseConfig.KeyInfo, baseConfig.DomainSubDir)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|||||||
@ -8,13 +8,13 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
// Dump FIXME
|
// Dump FIXME
|
||||||
func Dump(acmeFile, dumpPath string, crtInfo, keyInfo dumper.FileInfo, domainSubDir bool) error {
|
func Dump(acmeFile string, baseConfig *dumper.BaseConfig) error {
|
||||||
data, err := readFile(acmeFile)
|
data, err := readFile(acmeFile)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
return dumper.Dump(data, dumpPath, crtInfo, keyInfo, domainSubDir)
|
return dumper.Dump(data, baseConfig)
|
||||||
}
|
}
|
||||||
|
|
||||||
func readFile(acmeFile string) (*dumper.StoredData, error) {
|
func readFile(acmeFile string) (*dumper.StoredData, error) {
|
||||||
|
|||||||
10
dumper/kv/config.go
Normal file
10
dumper/kv/config.go
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
package kv
|
||||||
|
|
||||||
|
import "github.com/abronan/valkeyrie/store"
|
||||||
|
|
||||||
|
// Config FIXME
|
||||||
|
type Config struct {
|
||||||
|
Backend store.Backend
|
||||||
|
Endpoints []string
|
||||||
|
Options *store.Config
|
||||||
|
}
|
||||||
@ -14,15 +14,8 @@ import (
|
|||||||
// FIXME prefix
|
// FIXME prefix
|
||||||
const storeKey = "traefik/acme/account/object"
|
const storeKey = "traefik/acme/account/object"
|
||||||
|
|
||||||
// BaseConfig FIXME
|
|
||||||
type BaseConfig struct {
|
|
||||||
Backend store.Backend
|
|
||||||
Endpoints []string
|
|
||||||
Options *store.Config
|
|
||||||
}
|
|
||||||
|
|
||||||
// Dump FIXME
|
// Dump FIXME
|
||||||
func Dump(config *BaseConfig, dumpPath string, crtInfo, keyInfo dumper.FileInfo, domainSubDir bool) error {
|
func Dump(config *Config, baseConfig *dumper.BaseConfig) error {
|
||||||
kvStore, err := valkeyrie.NewStore(config.Backend, config.Endpoints, config.Options)
|
kvStore, err := valkeyrie.NewStore(config.Backend, config.Endpoints, config.Options)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
@ -38,7 +31,7 @@ func Dump(config *BaseConfig, dumpPath string, crtInfo, keyInfo dumper.FileInfo,
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
return dumper.Dump(data, dumpPath, crtInfo, keyInfo, domainSubDir)
|
return dumper.Dump(data, baseConfig)
|
||||||
}
|
}
|
||||||
|
|
||||||
func getStoredDataFromGzip(pair *store.KVPair) (*dumper.StoredData, error) {
|
func getStoredDataFromGzip(pair *store.KVPair) (*dumper.StoredData, error) {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user