1
0
Fork 0
mirror of https://github.com/Luzifer/yaml-vault.git synced 2024-10-18 06:44:25 +00:00

fix read tries when path has no current children

This commit is contained in:
Knut Ahlers 2016-07-11 18:37:50 +02:00
parent 0563f3b2d9
commit fe4d5ddc86
Signed by: luzifer
GPG key ID: DC2729FDD34BE99E

35
main.go
View file

@ -139,34 +139,35 @@ func exportFromVault(client *api.Client) error {
}
func readRecurse(client *api.Client, path string, out *importFile) error {
if strings.HasSuffix(path, "/") {
secret, err := client.Logical().List(path)
if !strings.HasSuffix(path, "/") {
secret, err := client.Logical().Read(path)
if err != nil {
return fmt.Errorf("Error reading %s: %s", path, err)
return err
}
if secret != nil && secret.Data["keys"] != nil {
for _, k := range secret.Data["keys"].([]interface{}) {
if err := readRecurse(client, path+k.(string), out); err != nil {
return err
}
}
return nil
if secret == nil {
return fmt.Errorf("Unable to read %s: %#v", path, secret)
}
out.Keys[path] = secret.Data
debug("Successfully read data from key '%s'", path)
return nil
}
secret, err := client.Logical().Read(path)
secret, err := client.Logical().List(path)
if err != nil {
return err
return fmt.Errorf("Error reading %s: %s", path, err)
}
if secret == nil {
return fmt.Errorf("Unable to read %s: %#v", path, secret)
if secret != nil && secret.Data["keys"] != nil {
for _, k := range secret.Data["keys"].([]interface{}) {
if err := readRecurse(client, path+k.(string), out); err != nil {
return err
}
}
return nil
}
out.Keys[path] = secret.Data
debug("Successfully read data from key '%s'", path)
return nil
}