2017-10-20 7 views
0

私はelasticsearchから次のリソースを使用しています: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 

私は正確に次のような出力が必要です。

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

をしかし、私は、次のいずれかを入手します。

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

これはうまくいかないようです。どのように私は希望の出力を得ることができますか?

再現:

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

あなたは 'path.repo'があなたにYAMLのような結果を与えている呼び出して言っていますか?たぶん、再現する手順を書いてみてください。 – henrebotha

+0

はい。そのYAML結果を、私が望む出力にどのように変更できますか?私は再現するステップを編集しました。 – Lechucico

+0

'path.repo.class'を実行するとどうなりますか? – henrebotha

答えて

0

あなたはそうのようなYAML.loadを使用して、既存の出力を解析することができます

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"]