2017-10-20 23 views
0

J'utilise la ressource suivante de ElasticSearch:tableau Ruby YAML

elasticsearch_configure 'elasticsearch' do 
    configuration ({ 
     'path.repo' => ["/backups/s3_currently_dev", "/backups/s3_currently", "/backups/s3_daily", "/backups/s3_weekly", "/backups/s3_monthly"] 
    }) 
end 

j'ai besoin exactement la sortie suivante:

path.repo: ["/backups/s3_currently_dev", "/backups/s3_currently", "/backups/s3_daily", "/backups/s3_weekly", "/backups/s3_monthly"] 

Mais j'obtenir la suivante:

path.repo: 
- "/backups/s3_currently_dev" 
- "/backups/s3_currently" 
- "/backups/s3_daily" 
- "/backups/s3_weekly" 
- "/backups/s3_monthly" 

Cela ne semble pas fonctionner. Comment puis-je obtenir la sortie désirée?

Reproduire:

1- Install Chef. 
2- Create a cookbook. 
3- Use elasticsearch community cookbook to install elasticsearch and configure with the resource shown. 
4- Use kitchen or vagrant to create. 
+0

Voulez-vous dire d'appeler 'path.repo' vous donne un résultat semblable YAML? Peut-être essayer d'écrire des étapes à reproduire. – henrebotha

+0

Oui. Comment puis-je changer ce résultat YAML dans la sortie que je veux? J'ai modifié avec des étapes à reproduire. – Lechucico

+0

Qu'est-ce que vous obtenez si vous faites 'path.repo.class'? – henrebotha

Répondre

0

Vous pouvez analyser la sortie existante en utilisant YAML.load comme ceci:

require 'yaml' 
=> true 

config = 'path.repo: 
- "/backups/s3_currently_dev" 
- "/backups/s3_currently" 
- "/backups/s3_daily" 
- "/backups/s3_weekly" 
- "/backups/s3_monthly"' 
=> "path.repo:\n- \"/backups/s3_currently_dev\"\n- \"/backups/s3_currently\"\n- \"/backups/s3_daily\"\n- \"/backups/s3_weekly\"\n- \"/backups/s3_monthly\"" 

doc = YAML.load config 
=> {"path.repo"=>["/backups/s3_currently_dev", "/backups/s3_currently", "/backups/s3_daily", "/backups/s3_weekly", "/backups/s3_monthly"]} 

doc["path.repo"] 
=> ["/backups/s3_currently_dev", "/backups/s3_currently", "/backups/s3_daily", "/backups/s3_weekly", "/backups/s3_monthly"]